Алгоритм пикового группирования

Алгоритм нечеткой самоорганизации C-means

В данном алгоритме подаваемый на вход очередной обучающий вектор Xk принадлежит различным кластерам (представленным своими центрами Ci, i =1, 2,..., M) в степени uki, 0< uki <1, при соблюдении условия

sum[i=1:M](uki)=1.

При этом значение uki тем больше, чем ближе Xk к Ci. Погрешность соотнесения обучающих векторов Xk и центров Ci для всех p обучающих векторов может быть выражена следующим образом

E=sum[i=1:M](sum[k=1:p]((uki)m*|Xk-Ci|2)),

где m - показатель, выбираемый из ряда 1, 2, 3,....

Цель обучения - подбор таких значений центров Ci, которые обеспечивают минимальное значение погрешности E при одновременном соблюдении условия

sum[i=1:M](uki)=1.

Решение этой задачи можно свести к минимизации функции Лагранжа в виде

LE=sum[i=1:M](sum[k=1:p]((uki)m*|Xk-Ci|2))+

+sum[k=1:p](Lk*(sum[i=1:M](uki)-1)),

где Lk, k =1, 2,..., p - множители Лагранжа.

Доказано, что решение этой задачи можно представить в виде

Ci=sum[k=1:p]((uki)m*Xk)/sum[k=1:p]((uki)m),
uki=1/sum[l=1:M](((dki)2/(dkl)2))1/(m-1)),

где dki=|Xk-Ci|2 - эвклидово расстояние между Xk и Ci.

Алгоритм обучения, реализующий описанную выше идею, получил название C-means. Он носит итерационный характер и может быть описан следующим образом.

1. Выполнить случайный выбор коэффициентов uki из диапазона [0,1] при соблюдении условия sum[i=1:M](uki)=1.

2. Вычислить все M центров Ci по приведенной выше формуле.

3. Рассчитать значение погрешности E. Если это значение меньше установленного порога или незначительно изменилось относительно предыдущей итерации, то закончить вычисления. Иначе перейти к п. 4.

4. Рассчитать новые значения uki по приведенной выше формуле и перейти к п. 2.

Описанный выше итерационный алгоритм ведет к достижению минимума погрешности E, который, однако, необязательно будет глобальным минимумом.

На вероятность отыскания глобального минимума влияет выбор начальных значений uki и Ci.

Специально для подбора "хороших" начальных значений центров Ci разработаны процедуры инициализации, две из которых представлены ниже.

Для отыскания "первого приближения" к наилучшему расположению центров Ci в данном алгоритме используются так называемые пиковые функции.

При подаче на вход сети p обучающих векторов Xk создается равномерная сетка, покрывающая все пространство, занимаемое данными векторами.

Узлы сетки обозначим как Vl, для каждого из них рассчитывается значение пиковой функции

m(Vl)=sum[k=1:p](exp(-(|Xk-Vl|22*b/(2*s2)))),

где s - константа, индивидуально подбираемая для каждой задачи.

Значение m(Vl) пропорционально количеству обучающих векторов Xk, находящихся в окрестности потенциального центра Vl.

Малое значение m(Vl) говорит о том, что Vl в области, где количество векторов Xk мало.

Следует отметить, что коэффициент s оказывает незначитетьное влияние на соотношение значений Vl для разных узлов сетки, поэтому подбор его величины не является критичным.

После расчета m(Vl) для всех потенциальных центров (узлов сетки) отбирается узел, имеющий наибольшее значение пиковой функции.

С этим узлом отождествляется первый центр C1.

Для выбора аналогичным образом следующего центра из рассмотрения исключается центр C1 и соседние с ним узлы сетки.

Это удобно сделать переопределением пиковой функции

mnew(Vl)=m(Vl)-m(C1)*exp(-(|Vl-C1|2*b/(2*s2))),

где m(C1) - значение пиковой функции в центре C1.

Процесс последовательного отыскания центров C1, C2, C3,... завершается после обнаружения центра CM.

Основной недостаток алгоритма пикового группирования - экспоненциальный рост сложности с увеличением размерности векторов входных данных Xk.

Следовательно, он применим лишь при при небольшом количестве входных сигналов N.

Представленный далее алгоритм также имеет экспоненциальный рост сложности, но это рост в зависимости от количества обучающих выборок p.

В этом алгоритме в качестве потенциальных центров рассматриваются обучающие векторы Xk, k =1, 2,..., p.

Пиковая функция m(Xi) определяется в следующем виде

m(Xi)=sum[k=1:p](exp(-(|Xk-Xi|2*b/(r1/2)2))),

где значение коэффициента r1 определяет размер сферы соседства.

При большой плотности входных векторов вокруг Xi значение функции велико, и, напротив, малое значение m(Xi) свидетельствует о незначительном количестве соседей.

После расчета значений m(Xi) для всех входных векторов в качестве первого центра C1 принимается Xi с наибольшим значением пиковой функции.

Для отыскания второго центра используется модифицированная пиковая функция в виде

mnew(Xi)=m(Xi)-m(C1)*exp(-(|Xi-C1|22*b/(r2/2)2)),

где r2 задает новый размер сферы соседства, обычно r2>=r1.

Пиковая функция mnew(Xi) принимает нулевое значение для Xi=C1.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: