Сети данного типа получили свое название в силу того, что для аппроксимации зависимости выходного сигнала от входного вектора X=[x1, x2, ..., xN, ]T в них используются выражения, заимствованные из нечетких систем (в частности, из систем Мамдани-Заде и Такаги-Сугено-Канга). Теоретически доказано, что эти выражения позволяют с произвольной точностью аппроксимировать любую непрерывную нелинейную функцию многих переменных суммой функций (называемых нечеткими) одной переменной.
В сети Такаги-Сугено-Канга (сокращенно, TSK) выходной сигнал рассчитывается с помощью выражения
Веса wi компонентов рассчитываются по следующей формуле (с использованием рациональной формы функции Гаусса)
Приведенным выражениям соответствует пятислойная нейронная сеть, структурная схема которой представлена ниже.
Первый слой содержит 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 равно
В сети данного типа выходной сигнал рассчитывается с помощью выражения
Легко заметить, что выражение для y(X) в сети Ванга-Менделя является частным случаем аналогичного выражения в сети TSK, если в последней принять yi(X)=ci. Поэтому сеть Ванга-Менделя проще и имеет следующую трехслойную структуру.
В данной сети параметрическими являются первый и третий слои. Первый содержит M*N*3 нелинейных параметров функции Гаусса, а третий - M линейных параметров ci.
Нечеткие нейронные сети (как Ванга-Менделя, так и TSK) могут быть обобщены на случай многих выходных переменных. Их обучение, так же как и классических сетей, может проводиться как с учителем, так и без оного. Обучение с учителем основано на минимизации целевой функции, определяемой с использованием эвклидовой нормы
Обучение без учителя основано на самоорганизации сети, обеспечивающей кластеризацию входных данных.
Данный алгоритм применим к обеим описанным выше структурам, но рассмотрим его касательно сетей TSK, как более общих. Гибридный алгоритм обучения нечетких сетей можно считать вариантом гибридного алгоритма обучения радиальных сетей.
Алгоритм реализуется чередованием двух этапов:
Этап 1. На данном этапе обучения нелинейные параметры фиксированы. Выходной сигнал определяется как
Для K обучающих выборок <Xk,dk>, k=1, 2 , ..., K, получаем систему K линейных уравнений
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). Решение этой системы линейных алгебраических уравнений может быть получено за один шаг следующим образом:
Этап 2. Здесь фиксируются значения коэффициентов полиномов третьего слоя и осуществляется уточнение (обычно многократное) коэффициентов функции Гаусса для первого слоя сети стандартным методом градиента:
Поскольку в череде этапов этап уточнения нелинейных параметров функции Гаусса имеет много меньшую скорость сходимости, то в ходе обучения реализацию этапа 1, как правило, сопровождает реализация нескольких этапов 2.
Сети данного типа на этапе обучения осуществляют группирование входных вектров Xk, k=1, 2, ..., p, в M кластеров, каждый из которых определяется своим центром Ci, i=1, 2, ..., M. На этапе классификации сеть отождествляет очередной входной вектор данных X с одним из ранее определенных кластеров.
Нечеткая сеть с самоорганизацией имеет простую двухслойную структуру.
Нейроны первого слоя реализуют обощенную функцию Гауcса в рациональной форме:
Каждый нейрон второго слоя характеризуется центром Ci=[ц1i, ц2i, ..., цNi, ]T.
В данном алгоритме подаваемый на вход очередной обучающий вектор Xk принадлежит различным кластерам (представленным своими центрами Ci, i=1, 2, ..., M) в степени uki, 0<uki<1, при соблюдении условия
При этом значение uki тем больше, чем ближе Xk к Ci.
Погрешность соотнесения обучающих векторов Xk и центров Ci для всех p обучающих векторов может быть выражена следующим образом
Цель обучения - подбор таких значений центров Ci, которые обеспечивают минимальное значение погрешности E при одновременном соблюдении условия
Решение этой задачи можно свести к минимизации функции Лагранжа в виде
Доказано, что решение этой задачи можно представить в виде
Алгоритм обучения, реализующий описанную выше идею, получил название 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) пропорционально количеству обучающих векторов Xk, находящихся в окрестности потенциального центра Vl. Малое значение m(Vl) говорит о том, что Vl в области, где количество векторов Xk мало. Следует отметить, что коэффициент s оказывает незначитетьное влияние на соотношение значений Vl для разных узлов сетки, поэтому подбор его величины не является критичным.
После расчета m(Vl) для всех потенциальных центров (узлов сетки) отбирается узел, имеющий наибольшее значение пиковой функции. С этим узлом отождествляется первый центр C1. Для выбора аналогичным образом следующего центра из рассмотрения исключается центр C1 и соседние с ним узлы сетки. Это удобно сделать переопределением пиковой функции
Процесс последовательного отыскания центров C1, C2, C3, ... завершается после обнаружения центра CM.
Основной недостаток алгоритма пикового группирования - экспоненциальный рост сложности с увеличением размерности векторов входных данных Xk. Следовательно, он применим лишь при при небольшом количестве входных сигналов N. Представленный далее алгоритм также имеет экспоненциальный рост сложности, но это рост в зависимости от количества обучающих выборок p.
В этом алгоритме в качестве потенциальных центров рассматриваются обучающие векторы Xk, k=1, 2, ..., p. Пиковая функция m(Xi) определяется в следующем виде
После расчета значений m(Xi) для всех входных векторов в качестве первого центра C1 принимается Xi с наибольшим значением пиковой функции.
Для отыскания второго центра используется модифицированная пиковая функция в виде
Пиковая функция mnew(Xi) принимает нулевое значение для Xi=C1.