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

.........

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

Обучение гибридных сетей

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

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

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.


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



double arrow