удк 004.8.032.26 принцип работы модуля нечетко

advertisement
УДК 004.8.032.26
ПРИНЦИП РАБОТЫ МОДУЛЯ НЕЧЕТКО-НЕЙРОННОГО УПРАВЛЕНИЯ НА
ОСНОВЕ АЛГОРИТМА ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ
Жантасова Б.Т., botasha_zhan@mail.ru
Костанайский государственный университет им. А.Байтурсынова,
Костанай Научный руководитель – С.Кудубаева
В последние годы большой интерес вызывает проблематика нейронных сетей,
генетических алгоритмов и нечетких систем, и в особенности комбинации этих методов – это
одна из наиболее интенсивно развивающихся в настоящее время областей исследований,
получившей название «Computational Intelligence». Данная область исследует
интеллектуальные методы решения различных задач, применяемые в различных областях, в
том числе в промышленности, экономике, медицине и др. При этом интеллектуальные
вычислительные системы (ИВС), представляющие собой объединение нейронных сетей,
генетических алгоритмов и нечетких систем, позволяют решать различные задачи, но самое
важное – они становятся универсальным инструментом для обработки информации.
Дополняя классические экспертные системы, ИВС применяются для решения
различных задач, что является их несомненным достоинством, их можно легко
«перепрограммировать» на решение другой задачи, причем роль такого программирования
играет обучение. Таким образом, эти системы обладают главным атрибутом
интеллектуальности - способностью к обучению.
Задачи нейронных сетей, генетических алгоритмов и нечетких систем могут
рассматриваться независимо между собой, однако их взаимосвязь оказывается весьма
важной. Например, генетические алгоритмы применяются для подбора весов, топологии
нейронных сетей и для формирования базы правил и функций принадлежности нечеткой
системы. Нейронные сети позволяют выбирать соответствующие параметры для самих
генетических алгоритмов (параметры скрещивания и мутации); саму философию нейронных
сетей можно заложить в фундамент нечетких систем, которые в результате обретают
способность к обучению. Кроме того, методы теории нечетких множеств позволяют
подбирать как упомянутые выше параметры генетических алгоритмов, так и коэффициенты,
определяющие скорость обучения нейронных сетей [1].
В данной статье раскрываются необычайно интересные возможности взаимосвязи
нейронных сетей и нечетких систем, а именно рассмотрен принцип работы модуля нечетко нейронного управления на основе алгоритма обратного распространения ошибки.
Объединение этого типа сохраняет и усиливает достоинства, как нейронных сетей, так
и нечетких систем. Они потенциально применимы во всех ситуациях, когда конструктор
системы располагает и количественной (численные данные), и качественной
(лингвистические правила) информацией. Представим себе структуры, которые объединяют
наилучшие свойства обоих методов, и в то же время свободны от их проблем.
86
Цель настоящей статьи заключается в демонстрации того, что конструирование таких
гибридов возможно, причем они обладают очень интересными особенностями. Оба подхода
весьма успешно справляются с задачами, которые традиционные системы регулирования
решают не самым лучшим образом. Если возникает необходимость управлять объектом,
который обладает неоднозначными свойствами, описание которого заведомо неполно либо
не может быть сведено к простой математической модели, то приходится искать решения,
альтернативные «обычным» способам управления, и чаще всего выбираются нейронные сети
или системы с нечеткой логикой.
Основное достоинство нейронных сетей – это возможность их обучения и адаптации.
При этом исключается необходимость в полных знаниях об объекте управления, т.е. нам не
требуется его математическая модель. На основе входных и заданных (эталонных) сигналов
нейронная сеть может научиться управлять объектом. Нейронные сети состоят из огромного
количества взаимосвязанных простых обрабатывающих элементов (нейронов), что в
результате дает громадную вычислительную мощность при использовании параллельной
обработки информации. Способ проектирования таких систем основывается скорее на
интуиции, чем на существующих закономерностях, так как неизвестен алгоритм расчета
количества слоев сети и количества нейронов в каждом слое для конкретных приложений.
Тем не менее, по завершении обучения нейронные сети становятся незаменимыми
средствами решения задач распознавания образов, аппроксимации, оптимизации, векторного
квантования либо классификации. С другой стороны, накопленные нейронной сетью знания,
оказываются распределенными между всеми ее элементами, что делает их практически
недоступными для наблюдателя.
Этого недостатка лишены системы управления с нечеткой логикой. Однако в данном
случае знания о способе управления необходимы уже на стадии проектирования
управляющих модулей, причем они должны исходить от экспертов и, следовательно,
возможность обучения отсутствует. Однако, полные знания, описывающие в
математическом виде функциональную зависимость между входами и выходами системы, не
требуются. В отличие от обычных модулей управления, используются не количественные
(«сколько?»), а качественные («как?») знания. Система принимает решения на основе
правил, записанных в форме импликации IF-THEN. Простейший подход к проектированию
таких систем заключается в формулировании правил управления и функции принадлежности
по результатам наблюдения за процессом управления, осуществляемым человеком либо уже
существующим регулятором, с последующим оцениванием корректности функционирования
такой системы. Если проект оказывается неудачным, то функцию принадлежности и/или
правила управления можно легко модифицировать. Как уже отмечалось, основной
недостаток подобных систем - это невозможность адаптации и обучения [1]. Объединение
обоих подходов позволяет, с одной стороны, привнести способность к обучению и
вычислительную мощность нейронных сетей в системы с нечеткой логикой, а с другой
стороны – усилить интеллектуальные возможности нейронных сетей свойственными
«человеческому» способу мышления нечеткими правилами выработки решений. Попытки
такого объединения стали в последние годы предметом весьма интенсивных исследований.
Их результатом можно считать системы выработки решений, в разной степени реализующих
идею нечеткого мышления в комплексе с заимствованной от нейронных сетей способностью
к обучению.
За счет представления модулей нечеткого управления в форме многослойных сетей с
прямым распространением сигнала (типа feedforward), стало возможным применение
алгоритма обратного распространения ошибки для их обучения.
Поскольку рассматриваемая структура представляет собой многослойную сеть и, как
уже отмечалось, алгоритм обратного распространения ошибки можно обобщить на любую
сеть с прямым распространением сигнала, то возможно обучать предлагаемый модуль
нечеткого управления так же, как и обычную нейронную сеть. Для этого потребуется
87
T
обучающая выборка в виде пар ( x, d ) , где x
эталонный сигнал. Значение выходного сигнала
– это входной вектор, a d
для
заданного
входного сигнала
y(x)
–
x
x1 ,..., xn
будем для упрощения обозначать y . Задача заключается в такой модификации (коррекции)
параметров модуля нечеткого управления, описанного выражением
N
y
xi
xi
exp
k 1
k
i 1
i
y
N
xi
,
2
k
n
(1)
xi
exp
k 1
2
k
n
k
k
i 1
i
чтобы мера погрешности, задаваемая выражением
1
e
2
y(x)
(2)
d
2
была минимальной [2]. Допустим, что
m
m
количество
правил N можно
задать. Остается
m
подобрать три параметра: y , xi и i для m 1,..., N. Начнем с весов y m в слое L3.
Алгоритм обратного распространения ошибки относится к классу так называемых
градиентных алгоритмов. Их идея заключается в уменьшении предыдущего значения веса на
величину производной от меры погрешности (2), умноженную на некоторый коэффициент.
Процесс длится до тех пор, пока погрешность на выходе системы не достигнет априорно
установленной минимальной величины. Для веса
модификации, будет иметь вид
m
y m выражение, определяющее способ
m
e(t)
y (t 1) y (t)
m
,
(3)
y (t)
m
(0) – начальное значение веса), а константа
0,1,2,... обозначает номер итерации ( y
(0,1) интерпретируется как коэффициент, определяющий скорость обучения или же шаг
коррекции. В формуле (2), задающей меру погрешности, содержится выходной сигнал
где t
N
системы (модуля управления). Представим уравнение (3) в виде y
a
yk z
N
b
k
, где
k 1
k
z
k 1
k
n
x
k
z
exp
xi
i
2
(4)
.
k
yi
i 1
Легко заметить, что значение y и, следовательно, также мера погрешности e зависит
k
от веса y только в числителе. Если применить правило дифференцирования сложной
функции, то можно рассчитать производную меры погрешности относительно веса y m
e
y
y d
m
y a
a ym
1 m
y d bz .
(5)
При подстановке (5) в (3) получаем алгоритм обучения:
m
y (t 1)
m
y (t)
y
dz
m
b
(6)
(t ),
который с учетом выведенных выше зависимостей представляется в виде
88
m
n
d
y
m
xi
m
i
i 1
m
y (t 1)
xi
exp
2
y (t)
N
k
n
xi
exp
k 1
2
xi
k
i 1
i
(t ).
Для упрощения записи в приведенной формуле зависимость отдельных ее параметров
от номера итерации t , t 1,2,... обозначена символически. Процесс обучения подразделяется
на два этапа. Вначале на вход модуля управления подается значение сигнала x , входящее в
обучающую выборку; на его основе формируется выходное управляющее воздействие. Этот
сигнал распространяется по сети в прямом направлении, и последовательно рассчитываются
k
значения z k 1,.., N , a , b и, наконец, y . Затем выполняется второй этап: обратное
распространение ошибки. При этом выходная реакция
y сравнивается с эталонным
значением d , и по результатам сравнения
модифицируются значения весов y m [2].
m
m
и
. Для x i применяется рекурсия
Аналогично находим остальные параметры: x im
i
m
i
(t 1)
x
i
m
(t)
где i 1,..., n , m 1,..., N , t 1,2,... . Из уравнения (4)
мера погрешности e зависят от
k
x
i
(7)
e(t) ,
x
m
x i (t)
следует, что выходная величина
только через z k . При использовании,
формулы для расчета производной от составной функции, получаем
y
e
y
m
xi
d
zm
y
m
m
y
m
d
b
y
m
i
2 xi
z
как и прежде,
m
x
m
2
.
(8)
z
x
i
Подставив равенства (8) в (7), получаем алгоритм обучения для параметра
m
x i в виде
m
m
m
xi (t 1)
m
y
xi (t)
где b и z
y z
2 xi
(9)
xi
m
b
m
m
y
d
2
i
(t ),
m
определяются по формуле (4). Алгоритм обучения для параметра
:
i
m
m
i
e(t)
m
(t 1)
i
(t)
y
m
i
m
(t)
y
b
(t)
i
d
m
i
m
y z
2 xi
2
xi
m
(10)
2
(t ).
Представленные зависимости (6), (9) и (10) определяют способ модификации весов и
параметров на основе алгоритма обратного распространения ошибки. На первом этапе
входной вектор x распространяется по сети в прямом направлении, и последовательно
k
рассчитываются значения
z k 1,.., N , a , b и, наконец, y . На втором этапе с
использованием представленных формул рассчитываются новые значения весов связей
k
k
k
и
(t 1) для i 1,..., n ; k 1,..., N , после чего старые значения
y (t 1) , x i (t 1)
i
заменяются новыми, и счетчик количества итераций t увеличивается на 1. Такая
последовательность имеет существенное значение, поскольку, например, в формулах расчета
m
«нового» значения весов xi (t 1) и
m
m
i
(t 1) содержатся «старые» (рассчитанные на
m
предыдущем шаге) значения весов y (t) , x i (t) и
m
i
yи
(t) ; их преждевременное изменение
могло бы ухудшить качество обучения сети. Заметим, что во всех формулах фигурирует
89
«нормализованная» погрешность y
. Она распространяется в обратном направлении до
d
b
третьего слоя (L3), в котором
k
y . Впоследствии каждый
находятся веса связей
вес
m
y модифицируется согласно алгоритму (6), причем следует отметить, что значения z m уже
определены ранее на первом этапе (это сигналы, выходящие из предыдущего слоя). Для
m
m
та же «нормализованная» погрешность y d
обучения параметров x i и
умножается
i
b
m
на разность y
y и на значение z , после чего распространяется в обратном направлении
m
до первого слоя (L1). Параметры x i m и
модифицируются по алгоритмам (9) и (10)
m
i
соответственно. Это доказывает, что они с полным основанием
могут называться
«алгоритмами обратного распространения ошибки» [3]. Алгоритм обучения обсуждаемой
сети представлен на Рис. 2 в виде блок-схемы.
НАЧАЛО
Назначить начальные значения весам и параметрам, t=0
Подать на вход модуля входные сигналы x из обучающей выборки
k
Рассчитать во всех слоях значения z k 1,.., N , а также a , b и y
Рассчитать погрешность на выходе модуля: y
d
Модифицировать веса и параметры по формулам:
m
y (t 1)
y
m
y
(t)
d
zm
b
(t )
m
m
m
xi (t 1)
m
i
m
(t 1)
i
(t)
xi (t)
y
d
m
m
i
i
m
y
2 xi
y z
xi
m 2
b
e(t)
(t)
m
i
y
d
(t)
m
y
(t ),
m 2 xi
y z
b
Перейти к следующему обучающему эталону
Увеличить номер итерации: t=t+1
НЕТ
Использовать все обучающие
эталоны?
ДА
НЕТ
Перейти к первому эталону
Сеть обучена корректно?
90
ДА
КОНЕЦ
m 2
xi
m
i
2
(t ).
Рис. 2. Алгоритм обучения модуля нечеткого управления, заданного выражением (1).
Программная реализация приведенного алгоритма не представляет проблему,
однако следует помнить очень важное правило: на каждом шаге вначале рассчитываются
поправки для всех весов в каждом слое, и только после этого корректируются значения
самих весов.
Список использованных источников
1. Заде Л.А. Понятие лингвистической переменной и его применение к принятию
приближенных решений. - М.: Мир, 1976, 165 с.
2. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические
алгоритмы и нечеткие системы: Пер.с польск. И. Д. Рудинского. - М.: Горячая линияТелеком, 2006, 452 c.
3. Горбань А.Н., Дунин-Барковский В.Л., Кирдин А.Н. и др. Нейроинформатика. Новосибирск: Наука. Сибирское предприятие РАН, 1998. – 296 с.
Download