Нечеткие нейронные сети

Содержание

Введение

Сети данного типа получили свое название в силу того, что для аппроксимации зависимости выходного сигнала от входного вектора X=[x1, x2, ..., xN, ]T в них используются выражения, заимствованные из нечетких систем (в частности, из систем Мамдани-Заде и Такаги-Сугено-Канга). Теоретически доказано, что эти выражения позволяют с произвольной точностью аппроксимировать любую непрерывную нелинейную функцию многих переменных суммой функций (называемых нечеткими) одной переменной.

Сеть Такаги-Сугено-Канга

В сети Такаги-Сугено-Канга (сокращенно, TSK) выходной сигнал рассчитывается с помощью выражения

y(X)=sum[i=1:M](wi*yi (X))/sum[i=1:M](wi ),
где yi(X)=pi0+sum[j=1:N](pij*xj) - i-ый полиномиальный компонент аппроксимации.

Веса wi компонентов рассчитываются по следующей формуле (с использованием рациональной формы функции Гаусса)

wi=prod[j=1:N](wij(xj))=prod[j=1:N](1/(1+((xj-cij)/sij)2*bij)).

Приведенным выражениям соответствует пятислойная нейронная сеть, структурная схема которой представлена ниже.



Первый слой содержит N*M узлов, каждый из которых реализует расчет функции Гаусса с параметрами cij, sij и bij. С точки зрения нечетких систем это слой фуззификации входных переменных. Слой называется параметрическим, поскольку в процессе обучения сети подбору подлежат параметры этого слоя.

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

Третий слой - генератор (полиномиальных) функций TSK yi(X) и их умножитель на весовой коэффициент wi. Это параметрический слой, в котором в процессе обучения сети адаптации подвергаются коэффициенты pij, i=1,2 ,..., M, j=0,1 ,..., N. Общее количество коэффициентов pij в сети равно M*(N+1).

Четвертый слой составляют два нейрона-сумматора. Первый ряссчитывает взвешенную сумму сигналов yi(X), а второй - сумму весов wi, i=1,2 ,..., M. Это непараметрический слой.

Последний, пятый, слой осуществляет нормализацию весов. Это также непараметрический слой.

Из описания сети TSK следует, что она содержит два параметрических слоя (первый и третий), параметры которых подлежат подбору в процессе обучения. Параметры первого слоя будем называть нелинейными, так как они относятся к нелинейной функции, а параметры третьего слоя - линейными.

Общее количество параметров (линейных и нелинейных) сети TSK равно

M*3*N+M*(N+1)=M*(4*N+1).
Во многих практических приложениях это чрезмерная величина, поэтому часто для входных переменных xj используют ограниченный набор функций mu(xj), что уменьшает количество нелинейных параметров.

Сеть Ванга-Менделя

В сети данного типа выходной сигнал рассчитывается с помощью выражения

y(X) = sum[i=1:M](ci*wi)/sum[i=1:M](wi)
= sum[i=1:M](ci*prod[j=1:N](muij(xj)))/sum[i=1:M](prod[j=1:N](muij(xj))),
где ci - весовой коэффициент (с точки зрения нечетких систем это центр функции принадлежности правой части продукции), muij() - функция Гаусса (в экспоненциальном или рациональном виде) с параметрами центра cij, ширины sij и формы bij (с точки зрения нечетких систем muij() - функция принадлежности к нечеткому множеству).

Легко заметить, что выражение для y(X) в сети Ванга-Менделя является частным случаем аналогичного выражения в сети TSK, если в последней принять yi(X)=ci. Поэтому сеть Ванга-Менделя проще и имеет следующую трехслойную структуру.



В данной сети параметрическими являются первый и третий слои. Первый содержит M*N*3 нелинейных параметров функции Гаусса, а третий - M линейных параметров ci.

Нечеткие нейронные сети (как Ванга-Менделя, так и TSK) могут быть обобщены на случай многих выходных переменных. Их обучение, так же как и классических сетей, может проводиться как с учителем, так и без оного. Обучение с учителем основано на минимизации целевой функции, определяемой с использованием эвклидовой нормы

E=(1/2)*sum[k=1:p]((y(Xk)-dk)2).

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

Гибридный алгоритм обучения

Данный алгоритм применим к обеим описанным выше структурам, но рассмотрим его касательно сетей TSK, как более общих. Гибридный алгоритм обучения нечетких сетей можно считать вариантом гибридного алгоритма обучения радиальных сетей.

Алгоритм реализуется чередованием двух этапов:

  1. при зафиксиронных значениях нелинейных параметров cij, sij и bij первого слоя нейронов отыскиваются значения линейных параметров pij третьего слоя сети;
  2. при зафиксиронных значениях линейных параметров pij третьего слоя уточняются нелинейные параметры cij, sij и bij первого слоя сети.

Этап 1. На данном этапе обучения нелинейные параметры фиксированы. Выходной сигнал определяется как

y(X)=sum[i=1:M](w'*(pi0+sum[j=1:N](pij*xj))),
где
w'=vi=prod[j=1:N](muij(xj))/sum[l=1:M](prod[j=1:N](mulj(xj)))=const.

Для K обучающих выборок <Xk,dk>, k=1, 2 , ..., K, получаем систему K линейных уравнений

A*P=D,
где P=[p10, p11, ..., p1N, ..., pM0, pM1, ..., pMN]T - вектор весов третьего слоя сети, а D=[d1, d2, ..., dk]T - вектор ожидаемых значений, составленный из всех K обучающих выборок. Матрица A представлена ниже:
v11 v11*x11 ... v11*x1N ... v1M v1M*x11 ... v1M*x1N
v21 v21*x21 ... v21*x2N ... v2M v2M*x21 ... v2M*x3N
. . . . . . . . .
vk1 vk1*xk1 ... vk1*xkN ... vkM vkM*xk1 ... vkM*xkN

Количество строк K матрицы A значительно больше количества ее столбцов M*(N+1). Решение этой системы линейных алгебраических уравнений может быть получено за один шаг следующим образом:

P=A+*D,
где A+ - псевдоинверсия матрицы A.

Этап 2. Здесь фиксируются значения коэффициентов полиномов третьего слоя и осуществляется уточнение (обычно многократное) коэффициентов функции Гаусса для первого слоя сети стандартным методом градиента:

ck+1ij=ckij-nuc*дEk/дckij,
sk+1ij=skij-nus*дEk/дskij,
bk+1ij=bkij-nub*дEk/дbkij,
где k - номер очередного цикла обучения ( в режиме "онлайн" он совпадает с номером обучающей выборки). С технической точки зрения получение аналитических выражений для производных целевой функции по нелинейным параметрам проблем не представляет. Однако, здесь в силу громоздкости эти выражения не приводятся.

Поскольку в череде этапов этап уточнения нелинейных параметров функции Гаусса имеет много меньшую скорость сходимости, то в ходе обучения реализацию этапа 1, как правило, сопровождает реализация нескольких этапов 2.

Нечеткие сети с самоорганизацией

Сети данного типа на этапе обучения осуществляют группирование входных вектров Xk, k=1, 2, ..., p, в M кластеров, каждый из которых определяется своим центром Ci, i=1, 2, ..., M. На этапе классификации сеть отождествляет очередной входной вектор данных X с одним из ранее определенных кластеров.

Нечеткая сеть с самоорганизацией имеет простую двухслойную структуру.



Нейроны первого слоя реализуют обощенную функцию Гауcса в рациональной форме:

muij(xj)=1/(1+((xj-cij)/sij)2*bij).

Каждый нейрон второго слоя характеризуется центром Ci=[ц1i, ц2i, ..., цNi, ]T.

Алгоритм нечеткой самоорганизации 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.