2 Модели искусственных нейронных сетей

advertisement
2 Модели искусственных нейронных сетей
2.1 Решение задач при помощи нейронных сетей
Большая часть прикладных задач может быть сведена к реализации
некоторого сложного функционального многомерного преобразования
ХY. В результате отображения необходимо обеспечить формирование
правильных выходных сигналов не только со всеми примерами обучающей
выборки, но и возможными входными сигналами, которые не вошли в
обучающую выборку.
Процесс функционирования НС зависит от величин синаптических
связей. Поэтому, задавшись определенной структурой сети, соответствующей какой-либо задаче, необходимо найти оптимальные значения всех
переменных весовых коэффициентов (некоторые синаптические связи могут быть постоянными).
Этот этап называется обучением НС, и от того, насколько качественно он будет выполнен, зависит способность сети решать поставленные перед ней проблемы во время функционирования.
В процессе функционирования НС формирует выходной сигнал Y в
соответствии с входным сигналом X, реализуя некоторую функцию g:
Y  g (X ) . Если архитектура сети задана, то вид функции g определяется
значениями синаптических весов сети. Обозначим через G множество всех
возможных функций g, соответствующих заданной архитектуре сети.
Пусть решение некоторой задачи есть функция r. Y  r (X ) , заданная
парами входных-выходных данных (X1, Y1), ... , (Xk, Yk), для которых
Y k  g ( X k ) , k  1, K . E – функция ошибки (функционал качества), показы-
вающая для каждой из функции g степень близости к r.
Решить поставленную задачу с помощью НС заданной архитектуры
– это значит построить (синтезировать) функцию gG, подобрав парамет-
49
ры нейронов (синаптические веса) таким образом, чтобы функционал качества обращался в оптимум для всех пар (Xk, Yk).
Таким образом, задача обучения НС определяется совокупностью
пяти компонентов: <Х, Y, r, G, Е>.
Обучение состоит в поиске (синтезе) функции g, оптимальной по E.
Оно требует длительных вычислений и представляет собой итерационную
процедуру. Число итераций может составлять от 103 до 108. На каждой
итерации происходит уменьшение функции ошибки.
Для решения задачи в нейросетевом базисе необходимо:
1. Определить объект, выступающий в роли входного сигнала НС.
Это может быть элемент исходных данных, начальное значение определяемых величин и т.д.
2. Определить объект, выступающий в роли выходного сигнала НС.
Это может быть само решение или некоторая его характеристика.
3. Определить желаемый (требуемый) выходной сигнал НС.
4. Определить структуру НС:
а) число слоев;
б) связи между слоями;
в) объекты, являющиеся весовыми коэффициентами.
5. Определить функцию ошибки системы, т. е. функцию, характеризующую отклонение желаемого выходного сигнала НС от реального выходного сигнала.
6. Определить критерий качества системы и функционал ее оптимизации, зависящий от ошибки.
7. Определить значения весовых коэффициентов – в зависимости от
задачи это можно сделать различными способами:
а) аналитически, непосредственно из постановки задачи;
б) с помощью некоторых численных методов;
в) применив процедуру настройки коэффициентов НС.
50
Решение задачи с помощью нейросетевого алгоритма заключается в
применении (функционировании в некотором режиме) построенной вычислительной процедуры с конкретными значениями числовых данных.
Процесс решения включает:
1. Получение конкретной структуры НС, соответствующей применяемому алгоритму;
2. Нахождение значений весовых коэффициентов, либо выбор их из
памяти, если они были найдены ранее;
3. Генерацию начальных приближений параметров, если это необходимо;
4. Передачу всех численных значений в НС и ее запуск;
5. Функционирование сети в соответствии с режимом:
а) за один шаг или фиксированное число шагов;
б) за переменное число шагов, зависящее от требуемой точности
и/или конкретных числовых значений параметров. В этом случае, происходит процесс настройки входного сигнала;
в) получение решения.
При многократном использовании п.1) и 2) могут быть выполнены
однократно.
Практически все известные подходы к проектированию НС связаны
в основном с выбором и анализом некоторых частных видов структур с известными свойствами (парадигм) и некоторых режимов их работы. Использование НС сводится к применению этих структур для решения классов адекватных им задач, при изменении или выборе параметров структур.
Алгоритмы обучения НС можно разделить на два больших класса: с
учителем и без учителя. В многослойных НС оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, неизвестны.
Трех- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах сети.
51
2.2 Метод обратного распространения ошибки
Один из вариантов решения этой проблемы – разработка наборов
выходных сигналов, соответствующих входным, для каждого слоя
нейронной сети, что, конечно, является очень трудоемкой операцией и не
всегда осуществимо. Второй вариант – динамическая подстройка весовых
коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону,
а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный метод, несмотря на кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец,
третий, более приемлемый вариант – распространение сигналов ошибки от
выходов нейронной сети к ее входам, в направлении, обратном прямому
распространению сигналов в обычном режиме работы. Этот алгоритм обучения получил название процедуры обратного распространения ошибки
[18, 20, 25]. Это – итеративный градиентный алгоритм обучения, который
используется с целью минимизации среднеквадратичного отклонения текущих от требуемых выходов многослойных нейронной сети с последовательными связями. Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки нейронной сети является величина:
E ( w) 
1
( y j ,k  t j ,k ) 2

2 j ,k
(2.1)
где y j , k – реальное выходное состояние j-го нейрона выходного слоя НС
при подаче на ее входы k-го образа; t j ,k – требуемое выходное состояние
этого нейрона.
Суммирование ведется по всем нейронам выходного слоя и по всем
обрабатываемым сетью образам. Минимизация методом градиентного
спуска обеспечивает подстройку весовых коэффициентов следующим образом:
52
wij( l )  
E
,
wij
(2.2)
где wij - весовой коэффициент синаптической связи, соединяющей i-й
нейрон слоя (l-1) с j-м нейроном слоя l;  - коэффициент скорости обучения, 0< <1.
В соответствии с правилом дифференцирования сложной функции:
E E y j s j

,
wij y j s j wij
(2.3)
где sj – взвешенная сумма входных сигналов нейрона j, т. е. аргумент активационной функции. Так как производная активационной функции должна
быть определена на всей оси абсцисс, то функция единичного скачка и
прочие активационные функции с неоднородностями не подходят для рассматриваемых НС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. Например, в
случае гиперболического тангенса:
y
 1  s2 .
s
Третий множитель
(2.4)
s j
равен выходу нейрона предыдущего слоя
wij
yi(l-1).
Что касается первого множителя в (2.3), он легко раскладывается
следующим образом:
E
E dyi si

.
y j
i yi dsi y j
(2.5)
Здесь суммирование по i выполняется среди нейронов слоя (l+1).
Введя новую переменную:
 j( q ) 
E dy j
y j ds j
53
(2.6)
получим рекурсивную формулу для расчетов величин j(q) слоя q из величин j(l+1) более старшего слоя (l+1):
 j( q )     i( l 1) wij( l 1) 

i
dy j
.
 ds j
(2.7)
dy j
.
ds j
(2.8)
Для выходного слоя:
 j( L )   y (j L )  d j 
Теперь можно записать (2.2) в раскрытом виде:
wij(l )   j(l ) y ( l 1)i .
(2.9)
Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности
целевой функции, (2.9) дополняется значением изменения веса на предыдущей итерации:
wij( l ) (t )   wij(l ) (t  1)  (1   ) j(l ) y (l 1)i ,
(2.10)
где  - коэффициент инерционности; t – номер текущей итерации.
Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится следующим образом:
Шаг 1. Подать на входы сети один из возможных образов и в режиме
обычного функционирования НС, когда сигналы распространяются от
входов к выходам, рассчитать значения
s 
(l )
j
nll 1 1

i 0
yi( l 1) wij( l ) ,
(2.11)
где nl-1 – число нейронов в слое (l-1), вход нейрона j слоя l.
Шаг 2. Рассчитать  j( L ) для выходного слоя по формуле (2.7). Рассчитать по формуле (2.8) изменения весов w( L ) для слоя L.
Шаг 3. Рассчитать по формулам (2.8) и (2.9)  j(l ) и w(l ) для всех
остальных слоев, l=L-1, … , 1.
Шаг 4. Скорректировать все веса в НС:
54
wij(l ) (t )  wij(l ) (t  1)  wij( l ) (t ) .
(2.12)
Шаг 5. Если ошибка сети существенна, перейти на шаг 1. В противном случае – конец.
Рассмотренный алгоритм обратного распространения ошибки подразумевает наличие некоего внешнего звена, предоставляющего НС, кроме
входных, целевые выходные образы. Алгоритмы, основанные на подобной
концепции, называются алгоритмами обучения с учителем. Для их успешного функционирования необходимо наличие экспертов, задающих на
предварительном этапе для каждого входного образа эталонный выходной.
К недостаткам метода обратного распространения ошибки относят
следующие:
 медленную сходимость градиентного метода при постоянном шаге
обучения;
 возможное смешение точек локального и глобального минимумов;
 влияние случайной инициализации весовых коэффициентов на скорость поиска минимума.
Для их преодоления предложено несколько модификаций алгоритма
обратного распространения ошибки: с импульсом, позволяющим учесть
текущий и предыдущий градиенты (метод тяжелого шарика); с адаптивным шагом обучения и др. Использование производных второго порядка
для коррекции весов алгоритма обратного распространения ошибки, как
показала практика, не дало значительного улучшения решений прикладных задач.
Для многослойных сетей прямой передачи сигнала с логистической
функцией активации рекомендуется случайные начальные значения весов
инициализировать по правилу (Р. Палмер)
wij 
1
,
n(l )
где n(l) – количество нейронных элементов в слое l.
55
(2.13)
По мнению других авторов [2], начальные весовые коэффициенты
следует выбирать в диапазоне [-0.05;0.05] или [-0.1;0.1]. При этом смещение принимает единичные значения в начальный момент времени. Кроме
этого, количество нейронных элементов скрытых слоев должно быть
меньше тренировочных образов. Для обеспечения требуемой обобщающей
способности сети можно использовать сеть с несколькими скрытыми слоями, размерность которых меньше, чем для сети с одним скрытым слоем.
Однако нейронные сети, имеющие несколько скрытых слоев, обучаются
значительно медленнее.
Для ускорения процесса обучения многослойных нейронных сетей,
применяют и другие алгоритмы обучения, такие как: алгоритм Resilient
Propagation (RProp QuickProp), метод сопряженных градиентов, метод Левенберга-Маркара и др.
Рассмотрим работу алгоритма RProp, предложенного М. Ридмиллером (M.Riedmiller) и Г. Брауном (H.Braun). В нем в отличие от стандартного алгоритма обратного распространения (Backprop), использует только
знаки частных производных для подстройки весовых коэффициентов. Алгоритм использует так называемое «обучение по эпохам», когда коррекция
весов происходит после предъявления сети всех примеров из обучающей
выборки [26].
Для определения величины коррекции используется следующее правило:
  ( t ) E ( t )
  ij , w

(t )
ij
 ij  
(t )

E
  (ijt ) ,
wij

E ( t 1)
0
wij
,
E ( t 1)
0
wij
(2.14)
0   1  .
Если на текущем шаге частная производная по соответствующему
весу wij поменяла свой знак, то это говорит о том, что последнее измене56
ние было большим, и алгоритм проскочил локальный минимум, и, следовательно, величину изменения необходимо уменьшить на   и вернуть
предыдущее значение весового коэффициента: другими словами необходимо произвести «откат»
wij  wij (t )  (ijt 1) .
(2.15)
Если знак частной производной не изменился, то нужно увеличить
величину коррекции на   для достижения более быстрой сходимости. Зафиксировав множители   и   , можно отказаться от глобальных параметров настройки нейронной сети, что также можно рассматривать как
преимущество рассматриваемого алгоритма перед стандартным алгоритмом Backprop.
Рекомендованные значения для   = 0.5,   = 1.2, но нет никаких
ограничений на использование других значений для этих параметров.
Для того, чтобы не допустить слишком больших или малых значений
весов, величину коррекции ограничивают сверху максимальным  max и
снизу минимальным  min значениями величины коррекции, которые по
умолчанию, соответственно, устанавливаются равными 50 и 1.0E-6.
Начальные значения для всех  ij устанавливаются равными 0.1.
Опять же, это следует рассматривать лишь как рекомендацию, и в практической реализации можно задать другое значение для инициализации.
Для вычисления значения коррекции весов используется следующее
правило:
 ( t ) E ( t )
0
  ij ,

w
ij


E ( t )
wij (t )   (ijt ) ,
0.

w
ij

(t )

E
 0, w  0
ij

57
(2.16)
Если производная положительна, т.е. ошибка возрастает, то весовой
коэффициент уменьшается на величину коррекции, в противном случае –
увеличивается.
Затем подстраиваются веса:
wij (t  1)  wij (t )  wij (t ) .
(2.17)
Алгоритм:
Шаг 1. Проинициализировать величину коррекции  ij
Шаг 2. Предъявить все примеры из выборки и вычислить частные производные.
Шаг 3. Подсчитать новое значение  ij по формулам 2.1 и 2.3.
Шаг 4. Скорректировать веса по формуле 2.4.
Шаг 5. Если условие останова не выполнено, то перейти к 2.2.
Данный алгоритм сходится в 4-5 раз быстрее, чем стандартный алгоритм Backprop.
2.3 Нейронные сети радиально-базисных функций
Радиальные базисные нейронные сети состоят из большего количества нейронов, чем стандартные сети с прямой передачей сигналов и обучением методом обратного распространения ошибки, но на их создание
требуется значительно меньше времени. Эти сети особенно эффективны,
когда доступно большое количество обучающих векторов. Область применения: распознавание образов, классификация.
Сети радиально-базисных функций – RBF-сети кардинально отличаются от многослойного персептрона. Многослойный персептрон решает
задачу с помощью нейронов, производящих нелинейные преобразования
своих взвешенных входов, алгоритм его обучения сложен и трудоемок. В
RBF-сети активизации нейронов задается дистанцией между входным вектором и заданным в процессе обучения вектором-прототипом, а обучение
происходит быстро и носит элементы как обучения «с учителем», так и
58
«без учителя». RBF-сети берут свое начало от теории точного приближения функций, предложенной Пауэлом в 1987 г [27].
Пусть задан набор из K входных векторов xk с соответствующими
выходами tk. Задача точного приближения функций – найти такую функцию y, чтобы y( x k )  t k , k=1, ..., K. Для этого Пауэл предложил использовать набор базисных функций вида h( x  x k ) , тогда получаем
y( x)   wk  h( x  x k )  t k , k=1, 2, …, K.
(2.18)
k
Здесь wk – свободно настраиваемые параметры. Обычно в качестве
базисной функции используют функцию Гаусса
h j ( х)  exp( x   j /σ 2 )
2
(2.19)
Для случая µ=0 и  =1 (регулирующий параметр) график функции
изображен на рисунке 2.1. Такая функция обладает необходимым свойством базисной функции
lim ( ( x))  0 .
x 
Рисунок 2.1 – Функция Гаусса
Примером радиально-симмeтричных функций могут служить и другие функции:
h j ( х)  ( x 2   2 )  a , a  0
(2.20)
h j ( х)  ( x 2   2 )1/2 .
(2.21)
Но такое точное приближение дает плохие результаты для зашумленных данных, поэтому в 1988 г. Д. Брумхеад и Д. Лоув предложили модель RBF-сети.
59
RBF сети.
Традиционно термин RBF сети ассоциируется с радиальносимметричными функциями в однослойных сетях, имеющих структуру,
представленную на рисунке 2.2.
x1
h1(X)
.
.
.
.
.
.
xi
hi(X)
.
.
.
.
.
.
xm
hm(X)
w1
w2
y(X)
wm
Рисунок 2.2 – Структура RBF сети
RBF-сеть имеет промежуточный слой из радиальных элементов,
каждый из которых воспроизводит гауссову поверхность отклика. Поскольку эти функции нелинейны, для моделирования произвольной функции нет необходимости брать более одного промежуточного слоя. Для моделирования любой функции необходимо лишь взять достаточное число
радиальных элементов. Остается решить вопрос о том, как следует скомбинировать выходы скрытых радиальных элементов, чтобы получить из
них выход сети. Оказывается, что достаточно взять их линейную комбинацию (т.е. взвешенную сумму гауссовых функций). Сеть RBF имеет выходной слой, состоящий из элементов с линейными функциями активации
(Haykin, 1994; Bishop, 1995).
Правила задания RBF-сети:
1. Число m базисных функций выбирается много меньше числа обучающих данных: m << K. Число нейронов в скрытом слое можно задать
по числу кластеров в обучающем множестве (для кластеризации
входных данных можно использовать в простейшем случае метод kсредних, самоорганизующиеся карты Кохонена или деревья решений).
60
2. Центры базисных функций μj не опираются на точки входных данных. Определение центров функций становится частью процесса
обучения.
3. Для каждой из m базисных функций задается свой регулирующий
параметр σj, который также определяется в процессе обучения RBFсети. В итоге RBF-сеть будет описываться формулой
m
y ( X )   w j h j ( X ) ,
(2.22)
j 1
В 1993 г. Д. Парк и И. Сандер показали, что RBF-сети, построенные
подобным образом, обладают свойством аппроксимации любой произвольно гладкой функции при условии достаточного количества базисных
функций.
Обучение RBF-сети.
Имеем обучающий набор: {xk} → {tk}. Обучение происходит в два
этапа:
1) определяются параметры базисных функций: μj, σj. Причем, как правило, используются только входные векторы {xk}, т.е. обучение происходит по схеме «без учителя».
Для определения σj используется алгоритм «ближайшего соседа».
Выбирается количество центров (базисов) m. Алгоритм ищет разбиение
множества {xk} на m несмежных подмножеств Sj таким образом, чтобы минимизировать функцию J:
m
J    x k   j , где  j 
2
j 1 kS j
1
Kj
x
k
.
(2.23)
kS j
Здесь  j играет роль средней точки Sj. Первоначальное разбиение
производится случайным образом. Вычисляется  j . Затем разбиение изменяется, пока существует возможность уменьшить J.
61
Параметр σj вычисляется эвристическим путем. Как правило, σj делают чуть большим расстояния между центрами соответствующих базисных функций  j .
2) На втором этапе фиксируются базисные функции. RBF-сеть получается равной однослойной нейронной сети. Затем обучение происходит по правилу обучения с «учителем». Нахождение весов в формуле
(2.15) осуществляется методами линейной алгебры крайне быстро.
Метод называется методом псевдообратных матриц и он минимизирует средний квадрат ошибки. Находится интерполяционная матрица H:
 h1 ( X 1 ) h2 ( X 1 )
h (X ) h (X )
2
2
H  1 2
 ...
...

h1 ( X K ) h2 ( X K )
... hm ( X 1 ) 
... hm ( X 2 ) 

...
... 

... hm ( X K )
(2.24)
На следующем этапе вычисляется инверсия произведения матрицы H
на транспонированную матрицу H:
A1  ( H T H ) 1
(2.25)
Находим окончательный результат - вектор весов:
W  A1 H T y
(2.26)
Все, что для этого необходимо – умение умножать, транспонировать
и инвертировать матрицы. Следовательно, алгоритм обучения RBF–сетей
является очень эффективным.
Проведем сравнение многослойного персептрона и RBF-сетей [28,
29]. Элемент многослойного персептрона полностью задается значениями
своих весов и порогов, которые в совокупности определяют уравнение
разделяющей прямой и скорость изменения функции при отходе от этой
линии. До действия сигмоидной функции активации уровень активации
такого элемента определяется гиперплоскостью.
62
В отличие от них, радиальный элемент задаётся своим центром - μj и
"радиусом"- σj. Положение точки в N-мерном пространстве определяется N
числовыми параметрами, т.е. их ровно столько же, сколько весов у линейного элемента, и поэтому координаты центра радиального элемента хранятся как "веса". Его радиус (отклонение) хранится как "порог". Следует
отчетливо понимать, что "веса" и "пороги" радиального элемента принципиально отличаются от весов и порогов линейного элемента, и если забыть
об этом, термин может ввести в заблуждение. Радиальные веса на самом
деле представляют точку, а радиальный порог - отклонение.
Сети RBF имеют ряд преимуществ перед сетями MLP. Во-первых,
они моделируют произвольную нелинейную функцию с помощью всего
одного промежуточного слоя, и тем самым избавляют нас от необходимости решать вопрос о числе слоев. Во-вторых, параметры линейной комбинации в выходном слое можно полностью оптимизировать с помощью хорошо известных методов линейного моделирования, которые работают
быстро и не испытывают трудностей с локальными минимумами, так мешающими при обучении MLP. Поэтому сеть RBF обучается очень быстро
(на порядок быстрее MLP).
С другой стороны, до того, как применять линейную оптимизацию в
выходном слое сети RBF, необходимо определить число радиальных элементов, положение их центров и величины отклонений. Соответствующие
алгоритмы, хотя и работают быстрее алгоритмов обучения MLP, в меньшей степени пригодны для отыскания субоптимальных решений.
Другие отличия работы RBF от MLP связаны с различным представлением пространства модели: "групповым" в RBF и "плоскостным" в MLP.
Опыт показывает, что для правильного моделирования типичной
функции сеть RBF, с ее более эксцентричной поверхностью отклика, требует несколько большего числа элементов. Конечно, можно специально
придумать форму поверхности, которая будет хорошо представляться пер63
вым или, наоборот, вторым способом, но общий итог оказывается не в
пользу RBF. Следовательно, модель, основанная на RBF, будет работать
медленнее и потребует больше памяти, чем соответствующий MLP (однако она гораздо быстрее обучается, а в некоторых случаях это важнее).
С "групповым" подходом связано и неумение сетей RBF экстраполировать свои выводы за область известных данных. При удалении от обучающего множества значение функции отклика быстро спадает до нуля.
Напротив, сеть MLP выдает более определенные решения при обработке
сильно отклоняющихся данных. Достоинство это или недостаток - зависит
от конкретной задачи, однако в целом склонность MLP к некритическому
экстраполированию результата считается его слабостью. Экстраполяция на
данные, лежащие далеко от обучающего множества, - вещь, как правило,
опасная и необоснованная.
Сети RBF более чувствительны к "проклятию размерности" и испытывают значительные трудности, когда число входов велико. Как уже говорилось, обучение RBF- сети происходит в несколько этапов. Сначала
определяются центры и отклонения для радиальных элементов; после этого оптимизируются параметры линейного выходного слоя.
Расположение центров должно соответствовать кластерам, реально
присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.
Выборка из выборки. В качестве центров радиальных элементов берутся несколько случайно выбранных точек обучающего множества. В силу случайности выбора они "представляют" распределение обучающих
данных в статистическом смысле. Однако, если число радиальных элементов невелико, такое представление может быть неудовлетворительным
(Haykin, 1994).
Алгоритм K-средних. Этот алгоритм (Bishop, 1995) стремится выбрать оптимальное множество точек, являющихся центроидами кластеров
64
в обучающих данных. При K радиальных элементах их центры располагаются таким образом, чтобы:

каждая обучающая точка "относилась" к одному центру кластера и
лежала к нему ближе, чем к любому другому центру;

каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру.
После того, как определено расположение центров, нужно найти от-
клонения. Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько "острой" будет гауссова функция. Если эти
функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна форма проявления дилеммы пере/недообучения. Как правило, отклонения выбираются
таким образом, чтобы колпак каждой гауссовой функций захватывал "несколько" соседних центров. Для этого имеется несколько методов:

Явный. Отклонения задаются пользователем.

Изотропный. Отклонение берётся одинаковым для всех элементов и
определяется эвристически с учётом количества радиальных элементов и объёма покрываемого пространства (Haykin, 1994).

K ближайших соседей. Отклонение каждого элемента устанавливается (индивидуально) равным среднему расстоянию до его K ближайших соседей (Bishop, 1995). Тем самым отклонения будут меньше в тех частях пространства, где точки расположены густо, - здесь
будут хорошо учитываться детали, - а там, где точек мало, отклонения будут большими (и будет производиться интерполяция).
После того, как выбраны центры и отклонения, параметры выходно-
го слоя оптимизируются с помощью стандартного метода линейной опти-
65
мизации - алгоритма псевдообратных матриц (сингулярного разложения)
(Haykin, 1994; Golub and Kahan, 1965).
Могут быть построены различные гибридные разновидности радиальных базисных функций. Например, выходной слой может иметь нелинейные функции активации, и тогда для его обучения используется какойлибо из алгоритмов обучения многослойных персептронов, например, метод обратного распространения. Можно также обучать радиальный (скрытый) слой с помощью алгоритма обучения сети Кохонена - это ещё один
способ разместить центры так, чтобы они отражали расположение данных.
Приведем краткую таблицу сравнительных характеристик RBF-сетей
и многослойного персептрона [27]:
Многослойный персептрон
RBF-сети
Граница решения представляет собой пересечение гиперплоскостей
Граница решения – это пересечение
гиперсфер, что задает границу более
сложной формы
Сложная топология связей нейронов Простая 2-слойная нейронная сеть
и слоев
Сложный и медленно сходящийся
Быстрая процедура обучения: решеалгоритм обучения
ние системы уравнений + кластеризация
Работает на небольшой обучающей Требуется значительное число обувыборке
чающих данных для приемлемого
результата
Универсальность применения: кла- Как правило, только аппроксимация
стеризация, аппроксимация, управ- функций и кластеризация
ление и проч.
2.4 Вероятностная и обобщённо-регрессионная нейронные сети
Вероятностная нейронную сеть.
Вероятностные нейронные сети (PNN – probabilistic neuron networks)
используются для решения проблемы классификации. В задаче классификации выходы сети можно интерпретировать как оценки вероятности того,
что элемент принадлежит некоторому классу, и сеть фактически учится
66
оценивать функцию плотности вероятности. Аналогичная полезная интерпретация может иметь место и в задачах регрессии – выход сети рассматривается как ожидаемое значение модели в данной точке пространства
входов. Это ожидаемое значение связано с плотностью вероятности совместного распределения входных и выходных данных.
При решении задачи классификации можно оценить плотность вероятности для каждого класса, сравнить между собой вероятности принадлежности различным классам и выбрать наиболее вероятный. На самом
деле именно это происходит, когда мы обучаем нейронную сеть решать задачу классификации – сеть пытается определить (т.е. аппроксимировать)
плотность вероятности [29].
Традиционный подход к задаче состоит в том, чтобы построить
оценку для плотности вероятности по имеющимся данным. Обычно при
этом предполагается, что плотность имеет некоторый определенный вид
(чаще всего - что она имеет нормальное распределение). После этого оцениваются параметры модели. Нормальное распределение часто используется потому, что тогда параметры модели (среднее и стандартное отклонение) можно оценить аналитически. При этом остается вопрос о том, что
предположение о нормальности не всегда оправдано.
Другой подход к оценке плотности вероятности основан на ядерных
оценках (Parzen, 1962; Speckt, 1990; Speckt, 1991; Bishop, 1995; Patterson,
1996). Можно рассуждать так: тот факт, что наблюдение расположено в
данной точке пространства, свидетельствует о том, что в этой точке имеется некоторая плотность вероятности. Кластеры из близко лежащих точек
указывают на то, что в этом месте плотность вероятности большая. Вблизи
наблюдения имеется большее доверие к уровню плотности, а по мере отдаления от него доверие убывает и стремится к нулю. В методе ядерных
оценок в точке, соответствующей каждому наблюдению, помещается некоторая простая функция, затем все они складываются и в результате по67
лучается оценка для общей плотности вероятности. Чаще всего в качестве
ядерных функций берутся гауссовы функции (с формой колокола). Если
обучающих примеров достаточное количество, то такой метод дает достаточно хорошее приближение к истинной плотности вероятности.
Метод аппроксимации плотности вероятности с помощью ядерных
функций во многом похож на метод радиальных базисных функций, и таким образом мы естественно приходим к понятиям вероятностной нейронной сети (PNN) и обобщенно-регрессионной нейронной сети (GRNN)
(Speckt 1990, 1991). PNN-сети предназначены для задач классификации, а
GRNN - для задач регрессии. Сети этих двух типов представляют собой
реализацию методов ядерной аппроксимации, оформленных в виде
нейронной сети.
Архитектура сети PNN представлена на рисунке 2.3.
Рисунок 2.3 – Структура вероятностной нейронной сети
Задачей входного слоя является распределение данных входного образа для слоя образцов. Первым слоем в архитектуре PNN является слой
радиальных базисных нейронов, который вычисляет расстояние и вектор
индикаторов принадлежности другим входным векторам, используемым
при обучении. Второй слой суммирует эти значения для каждого класса
входов и формирует выходы сети, как вектор вероятностей. Далее специ68
альная функция активации (compete) определяет максимум вероятностей
на выходе второго слоя и устанавливает данный выход в 1, а остальные
выходы в 0. Матрица весов первого слоя IW1,1 установлена в соответствии
с обучающими парами. Блок расчета расстояний получает вектор, элементы которого показывают, насколько близок входной вектор к векторам
обучающего множества. Элементы вектора умножаются на вектор порогов
и преобразуются радиальной базисной функцией. Входной вектор, близкий
к некоторому образцу, устанавливается в 1 в выходном векторе первого
слоя. Если входной вектор близок к нескольким образцам отдельного класса, то несколько элементов выходного вектора первого слоя будут иметь
значения, близкие к 1.
Веса второго слоя LW2,1 устанавливаются по матрице T целевых векторов, каждый вектор которой включает значение 1 в строке, связанной с
определенным классом входов, и нули в остальных позициях. Произведения Та1 суммируют элементы выходного вектора первого слоя а1 для каждого из К классов. Затем функция активации второго слоя (compete) установит значение 1 в позицию, соответствующую большему элементу выходного вектора, и 0 во все остальные. Значения выходных сигналов получаются пропорциональными ядерным оценкам вероятности принадлежности соответствующим классам, и, пронормировав их на единицу, мы получаем окончательные оценки вероятности принадлежности классам. Следовательно, сеть классифицирует входные векторы, назначая входу единственный класс на основе максимальной вероятности принадлежности.
Базовая модель PNN-сети может иметь две модификации.
В первом случае мы предполагаем, что пропорции классов в обучающем множестве соответствуют их пропорциям во всей исследуемой популяции (или так называемым априорным вероятностям). Например, если
среди всех людей больными являются 2%, то в обучающем множестве для
сети, диагностирующей заболевание, больных должно быть тоже 2%. Если
69
же априорные вероятности будут отличаться от пропорций в обучающей
выборке, то сеть будет выдавать неправильный результат. Это можно впоследствии учесть (если стали известны априорные вероятности), вводя поправочные коэффициенты для различных классов.
Второй вариант модификации основан на следующей идее. Любая
оценка, выдаваемая сетью, основывается на зашумлённых данных и неизбежно будет приводить к отдельным ошибкам классификации (например, у
некоторых больных результаты анализов могут быть вполне нормальными). Иногда бывает целесообразно считать, что некоторые виды ошибок
обходятся "дороже" других (например, если здоровый человек будет диагностирован как больной, то это вызовет лишние затраты на его обследование, но не создаст угрозы для жизни; если же не будет выявлен действительный больной, то это может привести к смертельному исходу). В такой
ситуации те вероятности, которые выдает сеть, следует домножить на коэффициенты потерь, отражающие относительную цену ошибок классификации.
Вероятностная нейронная сеть имеет единственный управляющий
параметр обучения, значение которого должно выбираться пользователем,
- степень сглаживания (или отклонение гауссовой функции). Как и в случае RBF-сетей, этот параметр выбирается из тех соображений, чтобы шапки "определённое число раз перекрывались": выбор слишком маленьких
отклонений приведет к "острым" аппроксимирующим функциям и неспособности сети к обобщению, а при слишком больших отклонениях будут
теряться детали. Требуемое значение несложно найти опытным путём,
подбирая его так, чтобы контрольная ошибка была как можно меньше. К
счастью, PNN-сети не очень чувствительны к выбору параметра сглаживания.
Наиболее важные преимущества PNN-сетей состоят в том, что выходное значение имеет вероятностный смысл (и поэтому его легче интер70
претировать), и в том, что сеть быстро обучается. При обучении такой сети
время тратится практически только на то, чтобы подавать ей на вход обучающие наблюдения, и сеть работает настолько быстро, насколько это вообще возможно.
Существенным недостатком таких сетей является их объём. PNNсеть фактически вмещает в себя все обучающие данные, поэтому она требует много памяти и может медленно работать.
PNN-сети особенно полезны при пробных экспериментах (например,
когда нужно решить, какие из входных переменных использовать), так как
благодаря короткому времени обучения можно быстро проделать большое
количество пробных тестов.
Обобщённо-регрессионная нейронная сеть.
Обобщенно-регрессионная нейронная сеть (GRNN) устроена аналогично вероятностной нейронной сети (рис. 2.4), но она предназначена для
решения задач регрессии, а не классификации (Speckt, 1991; Patterson,
1996; Bishop, 1995). Как и в случае PNN-сети, в точку расположения каждого обучающего наблюдения помещается гауссова ядерная функция.
Считается, что каждое наблюдение свидетельствует о некоторой уверенности в том, что поверхность отклика в данной точке имеет определённую
высоту, и эта уверенность убывает при отходе в сторону от точки. GRNNсеть копирует внутрь себя все обучающие наблюдения и использует их для
оценки отклика в произвольной точке. Окончательная выходная оценка сети получается как взвешенное среднее выходов по всем обучающим
наблюдениям, где величины весов отражают расстояние от этих наблюдений до той точки, в которой производится оценивание (и, таким образом,
более близкие точки вносят больший вклад в оценку) [29].
71
Рисунок 2.4 – Схема архитектуры GRNN-сети
Первый промежуточный слой сети GRNN состоит из радиальных
элементов. Второй промежуточный слой содержит элементы, которые помогают оценить взвешенное среднее. Для этого используется специальная
процедура. Каждый выход имеет в этом слое свой элемент, формирующий
для него взвешенную сумму. Чтобы получить из взвешенной суммы взвешенное среднее, эту сумму нужно поделить на сумму весовых коэффициентов. Последнюю сумму вычисляет специальный элемент второго слоя.
После этого в выходном слое производится собственно деление (с помощью специальных элементов "деления"). Таким образом, число элементов
во втором промежуточном слое на единицу больше, чем в выходном слое.
Как правило, в задачах регрессии требуется оценить одно выходное значение, и, соответственно, второй промежуточный слой содержит два элемента.
Можно модифицировать GRNN-сеть таким образом, чтобы радиальные элементы соответствовали не отдельным обучающим случаям, а их
кластерам. Это уменьшает размеры сети и увеличивает скорость обучения.
Центры для таких элементов можно выбирать с помощью любого предназначенного для этой цели алгоритма (k-средних или сети Кохонена).
Достоинства и недостатки у сетей GRNN в основном такие же, как и
у сетей PNN - единственное различие в том, что GRNN используются в за72
дачах регрессии, а PNN - в задачах классификации. GRNN-сеть обучается
почти мгновенно, но может получиться большой и медленной (хотя здесь,
в отличие от PNN, не обязательно иметь по одному радиальному элементу
на каждый обучающий пример, их число все равно будет большим). Как и
сеть RBF, сеть GRNN не обладает способностью экстраполировать данные
[2].
2.5 Соревновательный слой нейронов. Самоорганизующаяся
сеть Кохонена
Соревновательный слой нейронов.
Свойство самоорганизации является одним из наиболее привлекательных свойств нейронных сетей. Таким свойством обладают самоорганизующиеся нейронные сети, описанные финским ученым Т. Кохоненом.
Данные сети позволяют в результате обучения осуществлять типологически непрерывное отображения F входного n-мерного пространства в выходное m-мерное пространство, т.е. [ F : R m  R n ] . При этом обучение
происходит без учителя на основе образов, поступающих на сеть. В качестве метода обучения используется конкурентное обучение. Область применения: кластерный анализ, распознавание образов, классификация [30,
31].
Для анализа данных предполагается заданной выборка x(k), k  1, K ,
где k - номер выборочного примера. На рисунке 2.5 представлен пример, в
котором символом ‘+’ отмечены выборочные примеры в проекции на
плоскость X1X2. Как видно на рисунке, выборочные данные образуют несколько групп (кластеров), каждая из которых может быть представлена
своим прототипом, отмеченным на рисунке ‘o’. Знание прототипов и переход с их помощью к кластерам данных существенно сокращает размерность решаемой задачи и облегчает исследование. Этот прием может быть
73
применен и для решения задачи сжатия данных (если допускается загрубление данных и некоторая потеря информации).
Поставим задачу кластеризации данных, то есть их разделения на
группы (кластеры), если априорное расположение и точное число кластеров неизвестно. Потребуем, чтобы метод решения задачи предусматривал
возможность после завершения процедуры кластеризации выборочных
данных относить любой предъявленный объект, не принадлежащий обучающей выборке, к одному из найденных кластеров.
Рисунок 2.5. – Примеры обучающей выборки в проекции на плоскость X1X2.
Рассмотрим нейросетевую систему обработки данных, схема которой
представлена на рисунке 2.6. Первый слой выполняет распределительные
функции, причем каждый нейрон его имеет соединения со всеми нейронными
элементами
выходного
слоя.
Входной
вектор
признаков
x=(x1, x2, ... ,xM) поступает на слой, содержащий N нейронов. Допустим, что
смещения нейронов отсутствуют, так что bi =0, i  1, N . Тогда потенциал iго нейрона, i  1, N , определяется следующим выражением:
M
hi  wij x j , j= 1, N .
(2.27)
j 1
Эту формулу можно записать кратко, если ввести вектор-строку синаптических коэффициентов i-го нейрона wi = (wi1, wi2, ... , wiM) :
74
hi = (x, wi) = x wiT .
(2.28)
Потребуем, чтобы после настройки векторы синаптических коэффициентов wi, i  1, N , представляли собой центры кластеров и служили прототипами для групп данных. Таким образом, второй слой осуществляет
конкуренцию между нейронными элементами, в результате которой определяется нейрон-победитель, количество которых совпадает с количеством
классов. Число нейронов N должно выбираться на основе априорной информации и соответствует предполагаемому числу кластеров.
Рисунок 2.6 – Соревновательный слой нейронов
Процесс самообучения организован так, что на сеть подаются поочередно примеры обучающей выборки и для каждого примера последовательно подстраиваются синаптические коэффициенты нейронов. Один
цикл просмотра всех выборочных примеров образует “эпоху”. Полная
настройка для пространственных структур данных может завершиться после нескольких сотен эпох самообучения.
Допустим, что в результате предварительной обработки данных норма векторов признаков приведена к 1: x ( k ) 1 , k  1, K . Кроме того, векторы синаптических коэффициентов нейронов на каждом шаге обучения
также приведены к единичной норме: wi 1, i  1, N .
75
Пусть на такте t самообучения, когда векторы синаптических коэффициентов приняли значения, слою нейронов предъявлен
пример x(k).
Сформулируем принцип настройки нейронов: если пример x(k) принадлежит i-му кластеру, то настройке (самообучению) должен подвергаться
только вектор wi , характеризующий прототип i-го кластера. Этот принцип
содержит в себе свойство избирательности нейрона-прототипа по отношению к данным, используемым для его настройки. В соревновательном слое
нейронов эта избирательность реализуется с помощью расчета расстояния
между векторами x(k) и wi для всех i  1, N . Определим расстояние D(x(k),wi)
формулой:
D ( x ( k ) , wi (t ) ) 
*
2 1 M
1 (k )
x wi   ( x (j k ) wij ) 2 .
2
2 j 1
(2.29)
Учитывая, что x ( k )  wi 1 , после простейшего алгебраического преобразования получим
M
D ( x ( k ) , wi (t ) )  1   ( x (j k ) wi j )  1  ( x ( k ) , wi )  1  hi .
*
(2.30)
j 1
Таким образом, расстояние между x(k) и wi тем меньше, чем больше
потенциал i-го нейрона. Поскольку скалярное произведение (x(k), wi) векторов единичной нормы равно cos( ) , то расстояние можно оценивать углом
между векторами .
В соответствии со сформулированным выше принципом самообучения настройке должен подвергаться только тот нейрон, для которого при
воздействии вектора x(k) потенциал максимален. Этот нейрон называют
нейроном-победителем. Его номер i* определяется выражением:
i * arg max hi .
(2.31)
i
Настройка синаптических коэффициентов
состоит в уменьшении
расстояния D ( x ( k ) , wi (t ) ) , которое определяется формулой (2.29):
*
D ( x ( k ) , wi (t ) ) 
*
1 M (k )
( x j wi j ) 2 .

2 j 1
*
76
(2.32)
Воспользуемся градиентным методом минимизации функционала
(2.32). Тогда на следующем шаге настройки следует перейти к значениям
~ (t  1), j  1, M , определяемым выражением
w
i j
*
~ (t  1)  w (t )  D(t ) , j  1, M ,
w
i j
i j
 wi j
*
*
(2.33)
*
где  - параметр скорости самообучения. Здесь знак ‘~’ применен потому,
что используемая настройка синаптических коэффициентов не обеспечи~ (t  1) , поэтому для определения
вает единичной нормы для вектора w
i*
wi (t  1) необходимо “растянуть” этот вектор до единичной нормы.
*
Поскольку
 D(t )
 ( x (j k ) wi j ) , уравнение самообучения представля wi j
*
*
ется в форме:
~ (t  1)  w (t )   ( x ( k ) w (t )) , j  1, M .
w
j
i j
i j
i j
*
*
*
(2.34)
Отметим, что параметр скорости обучения 01. Обычно рекомендуется параметр  уменьшать в процессе обучения от значений 0.7-0.8 до
уровня 0.2-0.3.
После завершения процесса самообучения векторы wi , установятся в
центрах соответствующих кластеров. Если далее использовать обученный
слой нейронов в режиме его нормального функционирования, то при подаче на вход произвольного вектора x активизируется один нейрон. Выход
нейрона-победителя устанавливается равным 1, а всех других нейронов –
0. Это определяет активационную характеристику, которая в отличие от
стандартного нейрона устанавливается не на нейрон, а на слой:
1, i  i*,
.
si  
0, i  i *
(2.35)
Такая активационная характеристика называется соревновательной.
Номер активного нейрона указывает на кластер, к которому относится
77
входной вектор. В соответствии с принципом активизации нейронов слой
получил название “соревновательного”.
В описанной выше процедуре самообучения могут проявиться некоторые негативные эффекты:
 возникновение “мертвых” нейронов,
 нежелательное укрупнение кластеров за счет их объединения,
 чрезмерная детализация кластеров,
 колебательность настраиваемых параметров за счет скачкообразного
перехода периферийных примеров от одного кластера к соседнему.
Эффект возникновения "мертвых" нейронов имеет место, когда неудачная инициализация векторов wi, приводит к тому, что некоторые
нейроны не "срабатывают" ни на одном выборочном примере. Этот эффект
устраняется, например, при инициализации wi , примерами обучающей выборки. Могут быть применены и другие способы, в частности, разработаны
более сложные алгоритмы самообучения, в которых векторы синаптических коэффициентов не могут удаляться от кластеров данных.
Две другие проблемы, связанные с чрезмерным укрупнением/измельчением кластеров, решаются разумным выбором числа нейронов
соревновательного слоя.
Сходимость процесса самообучения и отсутствие колебательных
эффектов достигается плавным уменьшением параметра скорости обучения.
Кохоненом показано, что для оптимально обученного соревновательного слоя вероятность активизации любого из нейронов при возбуждении вектором, случайно выбранным из той же генеральной совокупности, что и выборочные примеры, равна 1/N. Это соответствует максимальной энтропии системы. Такой результат обучения дает оптимальное представление данных соответствующими прототипами, то есть минимизирует
потерю информации при сжатии данных.
78
Самообучающиеся карты Кохонена.
В соревновательном слое после завершения процесса самообучения
нейроны не упорядочены. Близким по номерам нейронам могут соответствовать выборочные примеры, расстояние между которыми велико. Кохонен предложил ввести определенный порядок расположения нейронов
соревновательного слоя, например, разместить их на плоскости в узлах
прямоугольной решетки размера N1*N2, так что N1*N2 = N (рис. 2.7). Тогда
каждый нейрон характеризуется координатами q  (a, b) , где a и b - номера
строки и столбца узла решетки. Расстояние  (q1 , q2 ) между нейронами с
координатами q1 и q2 определяется как расстояние между соответствующими узлами решетки. Расстояние может оцениваться разными способами.
Например, евклидово расстояние рассчитывается по формуле:
 E (q1 , q2 )  (a1  a2 ) 2  (b1  b2 ) 2 ,
расстояние максимального координатного смещения -
 K (q1 , q2 )  max( a1  a2 , b1  b2 ) ,
расстояние суммарного координатного смещения -
 S (q1 , q2 )  a1  a2  b1  b2 .
Рисунок 2.7– Прямоугольная сетка размещения нейронов топографической карты
На рис. 2.7 отмечены нейроны, находящиеся от нейрона A на одинаковом расстоянии, если оно рассчитывается по способу максимального координатного смещения.
79
В отличие от простого соревновательного слоя, в котором каждый
нейрон обучается независимо от других в соответствии с формулой (2.34),
в упорядоченной сетке обучению подвергается не только "победивший"
нейрон, но и его ближайшие "соседи". Введем функцию (), которая мак-
2
симальна и равна 1 при  = 0, например  (  )  exp( 2 ) , где 2 - управ
ляющий параметр процедуры самообучения. Определим приращение синаптических коэффициентов следующим выражением:
wi (t  1)wi (t )    (  (qi , qi )) ( x( k ) wi (t )) , i  1, N .
*
(2.36)
В практических приложениях наиболее часто используют следующие функции  (  ) :
2
  2 

 (  )  exp  2 1  2  2  , (“мексиканская шляпа”),

   
  a,
 1,
 1
 (  )   , a    3a,
 3
  3a,
 0,
(“французская шляпа”).
Таким образом, к вектору x (k ) "притягивается" не только вектор wi
*
нейрона-победителя, но и его ближайших соседей. Если функция  (  )
выбрана так, что при некоторых значениях  она отрицательна, то происходит "отталкивание" соответствующего вектора синаптических коэффициентов wi от предъявленного для самообучения примера x (k ) . В результате
применения правила (2.10) происходит упорядочение нейронов на решетке
в соответствии со значениями wi , i  1, N , таким образом, что близкие
нейроны являются прототипами близких кластеров в многомерном пространстве признаков. Можно сказать, что полученная решетка является
отображением многомерных данных в плоскость. Она отражает структуру
многомерных выборочных данных и потому может быть названа топографической картой.
80
Самообучающейся карте Кохонена может быть дана и другая геометрическая интерпретация. Построим в M-мерном пространстве признаков векторы синаптических коэффициентов нейронов – прототипов сформированных в результате обучения кластеров. Соединим их линиями в соответствии с тем, как соответствующие нейроны соединены в плоской
прямоугольной решетке. Таким образом, в M-мерное пространство признаков погружена двумерная сетка. В процессе обучения она деформируется пока, наконец, не будет “натянута” на прототипы кластеров данных.
Нейронная сеть Кохонена может обучаться и на искаженных версиях
входных векторов, в процессе обучения искажения, если они не носят систематический характер, сглаживаются.
2.6 Нейронная сеть Хопфилда
Сформулируем математическую задачу, связанную с функционированием автоассоциативной памяти. Предположим, что память предназначена для хранения K образов (patterns). Каждый образ представлен вектором признаков x k  ( x1k , x2k ,  , xNk ) , k  1, K . На вход автоассоциативной
памяти предъявляется некоторый входной образ с набором признаков
n  (n1 , n2 ,  , n N ) . Требуется найти среди хранящихся в памяти такой об-
раз x  , который наиболее близок к n с точки зрения евклидовой меры, т. е.
для которого достигается
N
min H k  min  (ni  xik ) 2 .
k 1, K
k 1, K
(2.37)
i 1
Если признаки являются бинарными (возможные значения 0 и 1), то
показатель H k близости образов n и xk характеризуется расстоянием Хэмминга между двумя N-разрядными бинарными последовательностями, т. е.
числом несовпадающих бинарных разрядов.
В некоторых приложениях может оказаться более удобным
применение бинарных нейронов с допустимыми значениями ~si , равными 0
81
и 1. Переход от биполярных нейронов к бинарным осуществляется с
помощью линейного преобразования s  2 ~
s  1.
i
i
Сеть Хопфилда (Hopfield Network) является одним из наиболее известных типов ассоциативной памяти. Область применения: ассоциативная
память, адресуемая по содержанию; распознавание образов; задачи оптимизации (в том числе, комбинаторной оптимизации).
Рассмотрим нейронную сеть из n формальных нейронов (рис. 2.8), в
которой степень возбуждения каждого из нейронов yi, i  1, n , может принимать только два значения  1,  1. Каждый нейрон связан со всеми
остальными нейронами, которые в свою очередь связаны с ним весовыми
коэффициентами wij . В модели Хопфилда предполагается условие симметричности связей wij  w ji , с нулевыми диагональными элементами
wii  0 [3, 6].
Рисунок 2.8 – Структурная схема нейронной сети Хопфилда
Нейронная сеть Хопфилда состоит из одного слоя нейронов, число
которых определяет число входов и выходов сети. Выход каждого нейрона
соединен с входами всех остальных нейронов. Ввод входных векторов
осуществляется через отдельные входы нейронов.
Сеть должна уметь из произвольного неидеального сигнала, поданного на вход, выделить соответствующий образец или “дать заключение” о
82
том, что входные данные не соответствуют ни одному из образцов. Когда
сеть распознает какой-либо образец на основе предъявленных ей данных,
ее выходы будут содержать именно его, т.е. Y  X k , где Y  yi  – вектор
выходных значений сети. В противном случае, выходной вектор не совпадет ни с одним образцовым.
На стадии инициализации сети весовые коэффициенты синапсов
устанавливаются следующим образом [3, 6]:
K x x , i j
 ik jk
wij   k 1
0,
i j
(2.38)
Выражение (2.38) может стать более ясным, если заметить, что весовой массив W может быть найден вычислением внешнего произведения
каждого запоминаемого вектора с самим собой и суммированием матриц,
полученных таким образом. Это может быть записано в виде
K
W   X kT X k .
(2.39)
k 1
Алгоритм функционирования нейронной сети Хопфилда следующий.
Поступающие на входы сигналы x j в момент времени t взвешиваются с
весами матрицы связей W и суммируются:
N
s j   wij x j , i  j .
(2.40)
i 1
Далее в момент времени t  1 нейрон изменяет состояние своего возбуждения в зависимости от суммы si и порога нейрона Tj:
 y i (t  1)  1, s j (t )  T j

 y i (t  1)  1, s j (t )  T j
 y (t  1)  y (t ), s (t )  T
i
j
j
 i
(2.41)
Текущее состояние динамической нейронной сети характеризуется
следующим энергетическим функционалом:
E (t )  
1
Tj y j .
 wij yi y j  
2 i 1 j 1
j 1
83
(2.42)
Вычислим изменение функции энергии E , вызванное изменением
состоянием j нейрона y j :
E  ( wij yi  T j )  y j  ( s j  T j )  y j
(2.43)
i j
(здесь мы воспользовались симметричностью связей и тем, что wij =0). Допустим, что величина sj >Tj . Тогда выражение в скобках будет положительным, а из вида активационной функции следует, что новый выход
нейрона j должен быть 1, то есть измениться в положительную сторону
(или остаться без изменения). Это означает, что y j  0 и тогда E  0 .
Следовательно, энергия сети либо уменьшится, либо стабилизируется.
Далее допустим, что sj <Tj . Тогда новое значение y j  1 и величина
y j может быть только отрицательной или нулем. Следовательно, опять
энергия сети либо уменьшится, либо стабилизируется.
Если sj =Tj , y j  0 и энергия останется без изменения. Т.е. любое
изменение состояния нейрона либо уменьшит функцию энергии, либо
оставит ее без изменения. Таким образом, любое изменение состояний сети уменьшает энергию системы, и сеть Хопфилда является устойчивой.
Поверхность функции энергии E в пространстве состояний имеет
сложную форму с большим количеством локальных минимумов (аттракторов). Стационарные состояния, отвечающие минимумам, могут интерпретироваться, как образы памяти нейронной сети. Сходимость к такому образу соответствует процессу извлечения из памяти.
Функционирование сети легко визуализируется геометрически. На
рисунке 2.9 а) показан случай трех нейронов, причем каждой вершине куба соответствует одно из восьми состояний системы. В общем случае система с n нейронами имеет 2 n различных состояний и представляется nмерным гиперкубом.
На рис. 2.9 б для признаков допустимыми значениями являются -1 и
+1, любой вектор состояния нейронной сети направлен в вершину гипер84
куба, имеющего центр в начале координат и ребра длины 2, параллельные
осям координат. При асинхронной динамике сети вектор состояния за один
такт дискретности может переместиться в одну из вершин гиперкуба,
непосредственно прилегающих к текущей вершине (расстояние равно
длине ребра).
а)
б)
Рис. 2.9 – Геометрическая модель состояний нейронной сети Хопфилда
Когда подается новый входной вектор, сеть переходит из вершины в
вершину, пока не стабилизируется. Устойчивая вершина определяется сетевыми весами, текущими входами и величиной порога. Если входной вектор частично неправилен или неполон, то сеть стабилизируется в вершине,
ближайшей к желаемой.
Пример 2.1: Пусть необходимо, чтобы сеть Хопфилда хранила бинарный образ X  1,  1, 1, 1.
Тогда в соответствии с выражением (2.39) можно записать
1
1
 0 1 1
 1
 1 0  1  1


 .
1  1 1 1  
W
1
 1 1 0
1
 


0
1
 1 1 1
Диагональные элементы были обнулены.
~
Пусть на вход сети поступает зашумленный образ X   1,  1, 1, 1.
Рассмотрим асинхронный режим функционирования сети. Элементы об85
новляются в случайном порядке, но мы для определенности проверки обновления элементов примем естественный порядок, т.е. 1, 2, 3, 4. Тогда в
соответствии с выражением (2.40) получим
0
s1   1  1 1 1  1  3 , y1  sing (3)  1 .
1
 1 
 1
s 2   1  1 1 1  0   3 , y2  sing (3)  1 .
 1
 1
1
s3   1  1 1 1  1  1 , y3  sing(1)  1 .
0
 1 
1
s 4   1  1 1 1  1  1 , y4  sing (1)  1 .
1
 0 
Элемент 1 изменил свое состояние с -1 на 1. Элементы 2, 3, 4 остаются в том же состоянии. При дальнейшем функционировании сеть перестает изменять свое состояние. Мы видим, что выявился ранее сохраненный вектор, характеризующий устойчивое состояние сети.
Несмотря на интересные качества, нейронная сеть в классической
модели Хопфилда далека от совершенства. Она обладает относительно
скромным объемом памяти, число запоминаемых образов K не должно
превышать значения равного 0,16  K . Кроме того, нейронные сети Хопфилда не могут решать задачу распознавания, если изображение смещено
или повернуто относительно его исходного запомненного состояния. Эти и
другие недостатки сегодня определяют общее отношение к модели Хопфилда, скорее как к теоретическому построению, удобному для исследований, чем как повседневно используемому практическому средству [6].
86
2.7 Нейронная сеть Хэмминга
Нейронная сеть Хэмминга (Hamming Network) была предложена в
1987 г. Р. Липпманом [32]. Сеть Хэмминга применяется в качестве гетероассоциативного запоминающего устройства, выдающего номер эталона,
ближайший к предъявленному входному вектору. Преимуществами этой
сети по сравнению с сетью Хопфилда являются меньшие затраты на память и объем вычислений. Область применения: распознавание образов,
классификация, ассоциативная память, надежная передача сигналов в
условиях помех.
Нейронная сеть Хемминга (рис. 2.10) состоит из входного, скрытого
и выходного слоев нейронов. Скрытый и выходной слой содержат по K
нейронов, где K – число эталонов. Нейроны скрытого слоя n синапсами соединены с выходами нейронов входного слоя сети. Выходы нейронов выходного слоя связаны с входами остальных нейронов этого слоя отрицательными обратными связями. Единственная положительная обратная
связь подается с выхода каждого нейрона выходного слоя на его же вход.
Рис. 2.10 – Структура нейронной сети Хэмминга
Сеть выбирает эталон с минимальным хэмминговым расстоянием от
предъявленного входного вектора путем активизации только одного выхода сети, соответствующего этому эталону.
87
Расстояние Хэмминга между двумя бинарными векторами одинаковой длины – это число несовпадающих бит в этих векторах. Оно применимо для сравнения любых упорядоченных наборов, принимающих дискретные значения и, вероятно, является наилучшей из известных мер сходства
между
цифровыми
кодами.
Для
бинарных
последовательностей
x  ( x1 , x2 , ..., xn ) и x  ( x1 , x2 , ..., xn ) Хэммингово расстояние можно опре-
делить:
 ( x, x)  bc( xi  xi )  ( xi  xi ) | i  1, 2, ..., n .
(2.44)
Здесь функция bc определяется как число элементов набора ,
принимающих значение логической “1”.
– расстояние 0
– расстояние 2
– расстояние 5
На этапе настройки сети Хемминга устанавливаются следующие
значения весов нейронов скрытого слоя и порога их активационной функции:
wik 
xik
n
, bk  ,
2
2
(2.45)
где xik – i-й компонент k-го эталона, bk – смещение, i  1, 2, ..., n ,
k  1, 2, ..., K .
Коэффициенты отрицательных обратных связей нейронов выходного
слоя задают равными некоторой величине из интервала 0    1 K , а коэффициенты положительной обратной связи – “  1 ”.
Рассмотрим алгоритм функционирования сети Хэмминга [2].
1. На нейроны входного слоя подается вектор X  xi . На их выходах формируются следующие значения (верхний индекс указывает номер
слоя):
n
yk(1)  sk(1)   wik xi  bk .
i 1
88
В соответствии с этим устанавливаются значения на выходах нейронов выходного слоя:
yk( 2)  yk(1) .
2. В результате новой (t  1) -й итерации определяются новые состояния нейронов выходного слоя:
n
s22 (t  1)  yk( 2) (t )    y (j2) (t ) ,
j 1
j k
yk( 2) (t  1)  f [sk( 2) (t  1)] .
3. Проверка изменения состояний нейронов выходного слоя за последнюю итерацию. И переход к шагу 2 в случае, если наблюдались изменения. Иначе – окончание процедуры.
На практике нейронные сети Хемминга используются для восстановления зашумленного исходного сигнала, задачах оптимизации и во
многих других случаях. Рассмотрим один из таких частных случаев – нечеткий поиск.
Итак, у нас на входе словарь, необходимо найти искомое слово в
этом словаре, даже если оно было набрано с ошибкой. Для этого нужно
сначала придумать систему кодирования символьной информации в вектора. Зададим для каждого символа его битовую маску.
А – 00001
Б – 10001
В – 10010
…
Хотелось бы обратить внимание, что при кодировании желательно
учитывать источник получения информации. Например, если для ввода
информации используется клавиатура, то лучше всего было бы задавать
коды символов таким образом, чтобы у символов, расположенных рядом
на клавиатуре, были бы и близкие по Хеммингу коды. Если же источником
89
является OCR программа, то близкие коды должны быть у схожих по
написанию символов. После кодирования таким образом подаем полученные вектора на вход нейросети.
Тут необходимо учитывать одну особенность сетей Хемминга. Если
при написании была опечатка или даже две, то алгоритм работает хорошо,
но если был пропущен символ или добавлен лишний, то Хемингово расстояние может оказаться слишком большим. Для того, чтобы сгладить этот
недостаток, мы будем подавать на вход как само искомое слово, так и это
же слово, исключая по очереди по одному символу в каждой позиции и
добавляя по одной букве в каждую позицию. Такой подход позволит найти
практически все случаи ошибок – опечатка, пропуск символа, лишний
символ [32, 33].
Нейронная сеть Хэмминга способна правильно распознать только
слабо зашумленные входные сигналы. Возможность использования только
бинарных входных сигналов существенно ограничивает область ее применения. Вместе с тем, сеть работает предельно просто и быстро. Выходной
сигнал формируется в результате прохода сигналов всего лишь через один
слой нейронов. В модели использован один из самых простых алгоритмов
формирования синаптических весов и смещений сети.
Легкость построения программных и аппаратных моделей делает
нейронную сеть Хэмминга привлекательной для многих применений.
2.8 Сети адаптивной резонансной теории
Нейронные сети адаптивного резонанса были предложены С. Гроссбергом в 1979 г. [34]. Они основываются на теории адаптивного резонанса (Adaptive Resonance Theory). В соответствии с ней такие нейронные сети
называются ART-сетями. Резонанс в них происходит при идентификации
какого-либо события или образа. В процессе функционирования ARTсетей в них происходит циркуляция информации до тех пор, пока не
90
наступит состояние резонанса. Нейронные сети адаптивного резонанса
обучаются без учителя и характеризуются самоорганизацией в процессе
работы. Они могут использоваться для распознавания образов, обработки
речевых сигналов, в задачах управления и кластерного анализа [4].
На рисунке 2.11 показана структура сети ART, состоящая из блока
сравнения, блока распознавания, схемы определения сходства векторов, а
также из двух вспомогательных схем ИЛИ 1 и ИЛИ 2.
Нейроны слоя сравнения блока сравнения осуществляют функцию
мажоритарного срабатывания по правилу “2 из 3” (выход нейрона равен
единице только в том случае, если, как минимум, два из трех его входов
равны единице). В блоке распознавания осуществляется классификация
входных векторов.
Рисунок 2.11 – Структура нейронной сети, реализующей ART
91
Слой нейронов распознавания этого блока состоит из нейронов с весовыми векторами Wk  {wik } , взаимодействующих по латеральнотормозящей схеме: в каждый момент времени возбуждается только один
нейрон с наибольшим уровнем активации. Это правило (“победитель забирает все”) реализуется за счет введения связей с отрицательными весами с
выхода нейрона на входы остальных нейронов слоя. Для простоты на рисунке не показаны латерально-тормозящие связи. Кроме того, каждый
нейрон имеет положительную обратную связь с выхода на собственный
вход, усиливающую и поддерживающую единичный выходной уровень.
Число нейронов этого слоя соответствует числу запомненных образов К
(категорий классификации).
Схема определения сходства векторов определяет степень сходства
между векторами X и Y. В случае если степень отличия в соответствии с
выбранным критерием сходства превышает некоторый заданный порог,
этой схемой вырабатывается сигнал сброса возбужденного нейрона в слое
распознавания.
Рассмотрим основные этапы функционирования сети ART.
Инициализация. До начала обучения случайным образом устанавливаются значения весовых векторов Wk нейронов слоя распознавания. Они
должны удовлетворять следующему условию [2, 28]:
wik 
H
, i  1, n , k  1, K ,
H 1 n
(2.46)
где n – число компонентов входного вектора (число нейронов слоя сравнения); Р – число нейронов слоя распознавания; Н – константа со значением
в диапазоне от 1 до 2.
Такая установка этих весов гарантирует, что несвязанные нейроны
не будут возбуждены более, нежели обученные нейроны в слое распознавания.
Значения всех компонентов весовых векторов Vk , устанавливаются
92
равными единице.
Значение параметра сходства  устанавливается в диапазоне от 0 до
1 в зависимости от заданной степени сходства входного и запомненных
образов.
Обучение. Процесс обучения ART-сетей является обучением без учителя. Различают два вида обучения ART-сетей: медленное и быстрое. При
медленном обучении входной вектор предъявляется на вход сети кратковременно, и весовые коэффициенты не достигают своих асимптотических
значений в результате одного предъявления. В этом случае значения весов
определяются статистическими характеристиками всех входных векторов,
а не характеристиками отдельного входного вектора. Динамика процесса
медленного обучения описывается дифференциальными уравнениями.
В случае рассматриваемого ниже быстрого обучения входной вектор
устанавливается на входе сети на достаточно длительный интервал времени, что позволяет весовым коэффициентам wik приблизиться к своим окончательным значениям. Процесс быстрого обучения описывается алгебраическими уравнениями. Другим отличием быстрого обучения от медленного является то, что компоненты весовых коэффициентов Vk принимают бинарные значения, в отличие от непрерывного диапазона значений.
В ходе обучения входные векторы последовательно подаются на
входы сети, и весовые векторы Wk изменяются таким образом, чтобы сходные векторы активизировали соответствующие нейроны слоя распознавания. Веса вычисляются по следующему правилу:
wik 
Hyi
n
H  1   yi
,
(2.47)
j 1
где yi – i-й компонент вектора Y; k – номер возбудившегося нейрона в слое
распознавания.
Компоненты вектора весов Vk, связанные с новым запоминаемым об93
разом, изменяются таким образом, что vik  yi для всех i.
Распознавание. В исходном положении на выходе схемы ИЛИ 2
установлен уровень нуля, обнуляющий выходы всех нейронов распознающего слоя.
Затем на вход сети подается ненулевой вектор X, устанавливающий
уровень единицы на выходе схемы ИЛИ 2. Таким образом, обеспечивается
прохождение входного вектора X на выходы нейронов слоя сравнения без
изменений, т. е. Y  X .
Далее для каждого k-гo нейрона слоя распознавания вычисляется
свертка его весового вектора Wk с вектором Y. Выход нейрона с максимальным значением свертки, т.е. наиболее “близкого” к входному вектору,
переходит в активное (единичное) состояние, т.е. “резонирует”, тормозя
остальные нейроны этого слоя, которые установятся в нуль.
Сравнение. Единица с выхода k-гo возбужденного нейрона распознающего слоя подается на каждый i-й нейрон в слое сравнения со своим
весом, устанавливая на входах z i нейронов слоя сравнения уровень либо
нуля, либо единицы.
Обратная связь от ненулевого вектора R устанавливает выход схемы
ИЛИ 1 в нуль. И теперь в слое сравнения могут возбудиться лишь те
нейроны, на входах которых соответствующие компоненты xi , и z i , одновременно равны единице.
Другими словами, целью обратной связи от нейронов слоя распознавания является установка компонентов выходного вектора Y в нуль в случае, если входной вектор X не соответствует хранимому образу, т. е. если
векторы X и Z не имеют совпадающих компонентов.
Процедура определения сходства, осуществляемая схемой определения сходства векторов, заключается в определении отношения (S) числа
единиц в векторах Y и X, где вектор Y на этапе распознавания представляет
собой логическое произведение входного вектора X и вектора Z, который
94
равен весовому вектору Wk выигравшего нейрона.
При существенном отличии векторов X и Z выходной вектор Y будет
содержать много нулей в компонентах, где вектор X содержит единицы.
Это означает, что установленный вектор Z не является искомым, и возбужденный нейрон в слое распознавания должен быть заторможен схемой
определения сходства векторов. Процедура торможения заключается в
установке в нуль выхода возбужденного нейрона в процессе текущей классификации.
Поиск. В случае совпадения или удовлетворения условий близости
векторов X и Y процесс классификации завершается. Признаком этого является отсутствие на выходе схемы определения сходства векторов сигнала торможения (сброса) возбужденного в текущем цикле классификации
нейрона слоя распознавания. В противном случае осуществляется поиск
среди других запомненных образов для определения наиболее близкого к
входному. При торможении возбужденного нейрона вектор R обнуляется,
на выходе схемы ИЛИ 1 устанавливается уровень единицы, и вновь подготавливается прохождение входного вектора X на выходы нейронов слоя
сравнения без изменений Y  X . В результате этой установки в слое распознавания возбуждается другой нейрон, и другой запомненный образ Z
поступает на нейроны слоя сравнения. В случае несоответствия Z и X, возбужденный нейрон в слое распознавания опять тормозится.
Процесс повторяется до тех пор, пока не будет найден запомненный
образ, степень близости с которым у вектора X не меньше заданной. В этом
случае осуществляется цикл дополнительного обучения с целью модификации весовых векторов k-гo возбужденного нейрона слоя распознавания:
Wk и Vk .
Если определено, что ни один из запомненных векторов не соответствует входному, то вводится новый ( K  1) -й нейрон в распознающем
слое и его весовые векторы Wk и Vk , устанавливаются в соответствии с но95
вым входным вектором. Так как изначально все веса этого нейрона установлены в единичное значение, то выработанный в слое сравнения вектор
Y будет идентичен входному вектору X, и отношение S будет равно единице, удовлетворяя заданной степени сходства.
С целью ускорения процесса поиска вычисление сверток входного
вектора с весовыми векторами Wk и определение сходства с запомненными образами может быть осуществлено параллельно.
Характеристики ART-сетей [2]:
• быстрый доступ к предварительно запомненным образам, обусловленный тем, что после стабилизации процесса обучения предъявление одного из обучающих векторов (или вектора с существенными характеристиками категории) будет активизировать требуемый нейрон слоя распознавания без поиска;
• устойчивость процесса поиска, так как после возбуждения одного
нейрона не будет возбуждений других нейронов в распознающем слое без
сигнала с выхода схемы определения сходства векторов;
• конечность процесса обучения, обусловленная стабильным набором весов; повторяющиеся последовательности обучающих векторов не
будут приводить к циклическому изменению весов.
В заключение отметим, что ART-сети организованы по принципу
подобия с биологическими прототипами, а процессы, происходящие в них,
подобно механизмам мозга, позволяют решить проблему стабильностипластичности.
Недостатком ART-сетей является недостаточная надежность сохранения информации. Так, в случае “потери” одного образа разрушается вся
память.
96
2.9 Нейронная сеть СМАС
CMAC (Cerebellar Model Articulation Controller – мозжечковая модель
суставного регулятора) – нейронная сеть, в основу которой положена
нейрофизиологическая модель мозжечка, была разработана американским
ученым Альбусом [34-35, 38]. Первоначально нейронная сеть CMAC была
предназначена для управления роботом-манипулятором. В последующих
работах Толле и его соавторов (в частности, в работах [36, 37, 39, 51-53])
было показано, что эта нейронная сеть может быть успешно применена для
идентификации и управления нелинейными динамическими объектами.
Подчеркивая новую область применения нейронной сети, авторы назвали
ее AMS (Associative Memory System). Это название более точно отражает
природу нейронной сети CMAC, поскольку она может выступать не только в роли регулятора системы управления или робота-манипулятора, но и в
роли модели сложной нелинейной динамической системы. Тем не менее,
первоначальное английское название CMAC прочно закрепилось за этой
нейронной сетью.
CMAC предназначена для запоминания, восстановления и интерполяции функций многих переменных. Как и в любой нейронной сети, в
CMAC существуют два основных принципиально различных процесса:
 процесс обучения, который осуществляется по измерениям значений
функции и ее векторного аргумента с помощью соответствующего
алгоритма;
 процесс восстановления, когда по входному вектору восстанавливается или оценивается значение этой функции.
Два отличительных момента характеризуют нейронную сеть СМАС:
 значения аргументов функции принимают только дискретные
значения;
97
 нелинейное преобразование аргументов функции осуществляется
неявно с помощью алгоритма вычисления адресов ячеек ассоциативной
памяти, в которых хранятся числа, определяющие значение функции.
На рисунке 2.12 показана структура нейронной сети СМАС, которая
осуществляет преобразование непрерывной функции многих переменных
g ( x)  [ g1 ( x), g 2 ( x), ..., g m ( x)]T , где x  R n и g : R n  R m .
Рисунок 2.12 – Структура нейронной сети СМАС
Нелинейная функция g(x) представляется в СМАС двумя функциями
одной переменной:
R : X  A;
(2.48)
P : A Y,
(2.49)
где X  [ x1 , x2 , ..., xn ] – входное n-мерное пространство, A – NA-мерное ассоциативное пространство, Y – m-мерное выходное пространство.
Функция R(х) обычно фиксирует и преобразовывает каждую точку x
входного пространства X в ассоциативный вектор   А , всегда имеющий
NL ненулевых элементов. Формально можно записать
  R( x)  (1 ,  2 , ..., j , ..., N A ) ,
98
где  j – производная от составной нечеткой функции области принадлежности и сенсоров входа, и 0   j  1 для всех компонентов  .
Функция P( ) определяет выход g  Y посредством проектирования
определенного ассоциативного вектора R(x) в вектор корректируемых весов w таких что
g  P( )  wT  .
(2.50)
R(x) в формуле (2.48) многомерная функция ограничения области, в
которой определен уровень активации каждой точки входного пространства X.
Определение 1: (Многомерная функция ограничения области). Пусть
k , j k ( xk ) уровень активации jk-й функции, ограничивающей область по kму входу. Тогда многомерная функция ограничения области может быть
определена как
R j1 , j 2 , ..., j n ( x) 
1, j1 ( x1 )  2, j 2 ( x2 )   n, j n ( xn )
Nn
N2
j n 1
j 2 1 j1 1 i 1
N1
n
.
 ...    i, j ( xi )
i
Функции ограничения области обладает свойством нормализации
Nn
N2
j n 1
j 2 1 j1 1
N1
 ...   R j , j , ..., j
1
2
n
( x) 
Nn
N2
j n 1
j 2 1 j1 1 i 1
N1
n
 ...    i, j ( xi )  1.
i
(2.51)
Для построения функции ограничения области традиционно использовались различные типы сплайн функций. Однако для общих нейронных
сетей СМАС не возможно проверить аппроксимацию, если функции ограничения области распределяются на входах пространства U и обладают
свойствами нормализации (2.51). Это может быть достигнуто соответственно разделением входного пространства U и выбором треугольной
функции с коэффициентом перекрытия “2” функциями ограничения области.
99
Первым шагом построения таких функций является создание функций ограничения области по каждому входу.
Область интереса для данных x  [ x1 , x2 , ..., xn ] U  R n представляют [ ximin , ximax ]  R 1  i  n . Для этой области выбирают целое Ni и строго
возрастающие разделы  i  {xi ,1 , xi , 2 , ..., xi , N i }. Для каждого компонента
входного пространства определяют треугольные функции ограничения области как показано на рисунке 2.13. Многомерные функции ограничения
области определяют как в определении 1. Можно увидеть, что многомерные функции ограничения области обладают свойством нормализации и
имеют упрощенную форму
R j1 , j 2 , ..., j n ( x)  1, j1 ( x1 )2, j 2 ( x2 ) n, j n ( xn ) .
(2.52)
Рисунок 2.13 – Одномерная функция ограничения области: Ni = 6
Чтобы запомнить функцию многих переменных с помощью нейронной сети CMAC, сначала задается область определения этой функции на
гипеpпараллелепипеде, вершинами которого являются минимальные и
максимальные значения аргументов этой функции; далее ребра гипеpпараллелепипеда квантуются с постоянным шагом по каждому ребру, и
дискpетизованным значениям аргументов присваиваются целочисленные
номера. Эти номера однозначно связаны со значениями аргументов функции. Так, для функции одной переменной y(x) аргумент xi связан со своим
номером i следующим соотношением
xi  xmin  (i  1) x ,
где  x 
(2.53)
xmax  xmin
– шаг квантования; xmin, xmax – минимальное и максиimax  1
мальное значения аргумента x из области определения; i  1, imax , где imax –
число точек, на которых задана функция y(x). Номер i можно рассматри100
вать как относительный аргумент функции, поскольку соотношение (2.53)
описывает процедуру сдвига и масштабирования исходной области определения функции. Поэтому в дальнейшем, будем считать, что значения аргументов запоминаемой в CMAC функции принимают только целочисленные значения, т.е. функция y(x) от N переменных x  ( x1 , x2 , ..., x N )T определена на целочисленной N-мерной сетке y(x):
(1)
( 2)
(N)
X  {x1  1, xmax
; x2  1, xmax
; ...; x N  1, xmax
}.
(2.54)
Рассмотренная модель нейронной сети СМАС идентична структуре
геометрической модели избыточного кода системы остаточных классов
(СОК) [7, 55], которая основана на совокупности единичных n-мерных кубов. В этой модели каждому представлению числа в СОК ставятся в соответствие вершины единичных n-мерных кубов, кодовые точки которых
A1 (11 , 21 ,..., n1 ), A2 (12 , 22 ,..., n2 ),...,Ap (1p , 2p ,..., np ) образуют P = p1  p1 
…  pn вершин. Количество n-мерных кубов определяется выражением n =
(p1 – 1)( p2 – 1) … (pn – 1). Любые две вершины поверхности единичных nмерных кубов, могут быть соединены на ней прямыми, имеющими конечную длину.
Для наглядности рассмотрим геометрическую модель кода СОК с
тремя основаниями p1, p2, p3. Пусть p1 = 2, p2 = 3, p3 = 5, где p1 и p2 – информационные основания, а p3 – контрольное основание. При этом P = p1 
p2 = 6 – рабочий диапазон, а P = p1  p2  p3 = 30 – общий диапазон. В этом
случае число А однозначно определяется представлением (1, 2), поэтому
разряд 3 можно считать избыточным. При этом входной алфавит состоит
из P букв (0, 1, 2,…, 29). Тогда значность кода СОК, обеспечивающего
представление
и передачу всех букв этого алфавита, будет равна
A  1 ,  2 ,  3  , при этом 1 = 0, 1; 2 = 0, 1, 2; 3 = 0, 1, 2, 3, 4.
Предположим, что для передачи информации используется бинарный канал, тогда значность двоичного кода, обеспечивающего представле101
ние и передачу каждого разряда СОК, будет равна mi  [log 2 pi ] , где квадратные скобки показывают, что в качестве значения берется наименьшее
целое число, большее числа, в них заключенного.
В приведенном конкретном примере m1 = 1, m2 = 2, m3 = 3.
Рисунок 2.14 – Геометрическая модель избыточного кода СОК
Итак, для представления и передачи первого разряда СОК используется один двоичный разряд, второго разряда – два двоичных разряда и третьего – три двоичных разряда. При использовании бинарного канала каждая буква представляется шестью двоичными разрядами. При этом каждая
из передаваемых букв может быть отождествлена с вершиной единичного
трехмерного куба, построенного в пространстве, точки которого определяются координатами Х, У, Z. Ось Х имеет единичный отрезок, соответствующий модулю p1, ось У имеет два единичных отрезка, соответствующих модулю p2 и ось Z имеет четыре единичных отрезка соответствующих
модулю p3 (рисунок 2.14). Величина расстояния между различными кодовыми комбинациями множества P изменяется от 1 до n, где n – количество
модулей (в нашем примере n = 3). Так, например, расстояние между точ102
ками  A0 A10  1,  A0 A25  2,  A0 A1  3 . Соседние числа, отличающиеся на
единицу, имеют расстояние, равное n.
Одним из основных достоинств кода СОК является возможность построения табличной арифметики ввиду малого количества возможных кодовых комбинаций. При этом большинство операций превращаются в однотактовые, осуществляемые простой выборкой из таблиц. Просмотровые
таблицы могут быть эффективно реализованы нейронной сетью СМАС.
Алгоритм нелинейного преобразования аргументов, или алгоритм
вычисления адресов ассоциативной памяти.
При построении алгоритма вычисления адресов ассоциативной памяти и алгоритма обучения CMAC ее автор [34] исходил из нейрофизиологического подхода. Согласно этому подходу, каждый входной сигнал возбуждает определенную область мозжечка, суммарная энергия которой соответствует значению запоминаемой функции. В нейронной сети CMAC
предполагается, что каждый входной сигнал (аргумент функции) возбуждает, или делает активными, ровно  * ячеек памяти, суммарное содержание которых равно значению запоминаемой функции. Следовательно, даже
в случае скалярного аргумента x  x1 ему соответствует  * -мерный вектор
номеров активных ячеек памяти. Параметр  * играет очень важную роль.
В литературе он известен как обобщающий параметр (generalization
parameter), его значение определяет разрешающую способность CMAC и
требуемый объем памяти.
Одномерный случай.
(1)
Каждому значению скалярного аргумента x1  1, xmax
соответствует
ровно  * активных ячеек памяти с номерами
x1 , x1  1 , x1  2 , …, x1   *  1 ,
103
(2.55)
(1)
так что максимальному значению аргумента x1  xmax
соответствуют ячей(1)
(1)
(1)
(1)
ки памяти с номерами xmax
, xmax
  *  1 , откуда
 1, xmax
 2 , …, xmax
следует, что число ячеек памяти, необходимых для хранения функции одной переменной в CMAC, равно
(1)
M (1)  xmax
  *  1,
(2.56)
что на  *  1 больше числа значений функции, запоминаемых нейронной
сетью. Таким образом, в одномерном случае нейронная сеть CMAC, с точки зрения требуемого объема памяти, неэффективна, однако ее эффективность появляется при достаточно точном запоминании гладких функций по
небольшому числу обучающей последовательности n  M (1) .
Очевидно, что номера активных ячеек памяти, соответствующие
(1)
скалярной переменной x1  1, xmax
, можно представить  * -мерным векто-
ром m (1) , значения компонент которого равны номерам активных ячеек. Из
последующего изложения следует, что последовательность значений компонент mk(1) , k  1,  * вектора m (1) в одномерном случае не существенна. В
многомерном случае она, однако, приобретает принципиальное значение.
Далее приводится алгоритм формирования вектора номеров активных ячеек для одномерного случая, поскольку он служит основой построения вектора номеров активных ячеек в многомерном случае. Этот алгоритм обеспечивает (в соответствии с приведенным в работе [34] требованием) однозначное соответствие номера компоненты k вектора m(1) и ее
значения mk(1) .
Введем функцию
a mod b  0;
b,
a mod b  
a mod b, a mod b  0,
где a mod b – остаток от деления a на b, где a и b – целые числа.
104
(2.57)
Тогда значения всех  * компонент mk(l ) , l  1, N , k  1,  * , вектора
m(l) вычисляются согласно выражению
m[((lx) mod * i ) mod * ]  xl  i , i  0,  *  1.
(2.58)
1
Для вычисления компонент вектора m(1) согласно выражению (2.58)
достаточно определить номер x1 mod * той компоненты, значение которой
равно x1, т.е. вычислить (2.58) при i  0 . Значения следующих компонент
равны x1  1 , x1  2 и т.д., при этом полагается, что номера компонент замкнуты в кольцо, т.е. после компоненты с номером  * следует компонента
с номером 1. В качестве поясняющего примера в таблице приведены выражения для вектора m(1) размерности  *  8 для ряда значений аргумента
x1  22, 23, 24, 25, 26, 27, 28, 29, 30 .
Из таблицы следует, что если двум различным значениям аргумента
x1 соответствуют одинаковые номера активных ячеек, то эти номера всегда
являются одними и теми же компонентами вектора m(1); при этом первой
компонентой вектора m(1) оказываются такие номера ячеек, остаток от деления которых на  * равен единице; второй компонентой вектора m(1) оказываются такие номера ячеек, остаток от деления которых на  * равен
двум, и т.д.
Из последовательности (2.55) и соотношения (2.58) следует, что если
для двух значений аргумента x1, равных x1  c и x1  d , выполняется условие
c  d    p* ,
(2.59)
то число общих ячеек памяти j, соответствующее этим значениям аргумента, равно
   *   ,
105
т.е., чем меньше расстояние между двумя значениями аргумента, тем
больше общее число ячеек памяти, соответствующих этим значениям аргумента.
Многомерный случай.
В многомерном случае, когда нейронная сеть CMAC запоминает
функцию y(x) N переменных x  ( x1 , x2 , ..., x N )T , заданных на целочислен(1)
( 2)
(N)
; x2  1, xmax
; ...; x N  1, xmax
} , входному N-мерному
ной сетке X  {x1  1, xmax
вектору x также ставится в соответствие  * -мерный вектор m активных
ячеек памяти. Вычисление номеров активных ячеек памяти выполняется с
помощью описываемого далее алгоритма.
Каждой компоненте xl , l  1, N , вектора x соответствует  * -мерный
вектор m(l) активных ячеек памяти. Значения всех  * – компонент вектора
m(l) – вычисляются, как это было описано выше в одномерном случае, согласно выражению (2.58). В результате этих вычислений вектору x ставится в соответствие промежуточная матрица M активных ячеек памяти с элементами mk(l ) , l  1, N , k  1,  * :
m1(1)
m2(1)
m3(1)

m (1*)
x1
m1( 2)
x2
m1(3)
x  x3 
m2( 2)
m3( 2)

m ( 2*)
m2(3)
m3(3)

m (3*)

xN






m1( N )
m2( N )
m3( N )

m ( N* )
.
(2.60)
На следующем шаге матрице M размера N   * ставится в соответствие  * -мерный вектор активных ячеек памяти вектора x. Для этого выполняется последовательное слияние (concatenation) элементов каждого kго столбца матрицы M в один k-й элемент вектора активных ячеек памяти
m, так что этот вектор приобретает следующий вид:
106
m  (m1(1) m1( 2) m1(3) ...m1( N ) ; m2(1) m2( 2) m2(3) ...m2( N ) ; ...; m(1*) m( 2*) m(3*) ...m( N* ) )T ,
каждый элемент которого
mk  mk(1) mk( 2) mk(3) ...mk( N ) , k  1,  * ,
(2.61)
однозначно определяет номер активной ячейки памяти CMAC. Выражение
(2.61) можно трактовать как позиционную запись числа mk, старший разряд
которого равен m1(1) , а младший разряд – m1( N ) . К особенностям чисел, образующих символьную запись числа mk (2.61), относится отмеченный выше факт, заключающийся в том, что остаток от деления каждого из них на
 * равен k. Алгоритм вычисления числа mk по значениям mk(l ) , l  1, N ,
принимает наиболее простую форму, когда максимально возможные значения компонент вектора x удовлетворяют следующему соотношению:
(l )
xmax
 (  (l )  1)  *  1, l  1, N .
(2.62)
Согласно (2.56), число ячеек памяти, необходимых для хранения
функций одной переменной в CMAC, оказывается равным
M (l )   (l )  * , l  1, N .
(2.63)
В этом случае алгоритм вычисления mk, который приводится без доказательства, имеет вид
N
N
l 2
l 3
mk  (mk(1)  1)  (l )  int(( m2( k )  1) /  * )  (l )  ...
...  int(( mk( N 1)  1) /  * ) ( N )  int(( mk( N )  1)  * )  1 , k  1,  * ,
(2.64)
где int( a / b) – функция целочисленного деления a на b.
Пример. В качестве иллюстративного примера рассмотрим сеть со
следующими параметрами: размерность N входного вектора равна 2, пара(1)
( 2)
метр  *  4 ,  (1)   ( 2)  3 , так что согласно (2.62) xmax
 xmax
 9 и, следо-
вательно, X  {1, 9; 1, 9} .
Найдем номера ячеек памяти CMAC согласно выражениям (2.612.64), которые соответствуют входному вектору x[1]  (6; 8)T :
107
9 6 7 8
6
x M 
 m[1]  (9, 9; 6, 10; 7, 11; 8, 8)T .
9 10 11 8
8 
Пересчитывая символические номера 9, 9; 6, 10; 7, 11; 8, 8 активных
ячеек в соответствии с алгоритмом (2.12), получим
9, 9  8 * 3  2  1  27 ,
6, 10  5 * 3  2  1  18 ,
7, 11  6 * 3  2  1  21 ,
8, 8  7 * 3  2  1  23 ,
так что вектор номеров активных ячеек, соответствующий вектору
х[1]  (6; 8)T , равен
m[1]  (27, 18, 21, 23)T .
Не приводя промежуточных результатов, заметим, что вектор
х[2]  (7; 6)T соответствует вектору номеров активных ячеек в символиче-
ском m[2]  (9, 9; 10, 6; 7, 7; 8, 8)T и в десятичном m[2]  (27, 29, 20, 23)T
представлениях, и, следовательно, ячейки памяти с номерами 23 и 27 активируются как вектором x[1], так и вектором x[2].
Отметим здесь, что общее число ячеек памяти для рассматриваемой
сети M=36, тогда как возможное число точек запоминаемой функции равно
M  81 .
Объем памяти.
Необходимое число ячеек памяти М нейронной сети СМАС следует
из формулы (2.64), когда все числа mk(l )  М (l )   (l )  * , l  1, N принимают
свои максимально возможные значения, т.е. когда mk(l )  M (l )   (l )  * ,
l  1, N . При этом сомножители int(( mk( l )  1) /  * ) , l  1, N , входящие в
формулу (2.64), оказываются равными
int(( mk( l )  1) /  * )  mk(l )  1, l  1, N ,
а величина М задается выражением
108
(2.65)
N
M  (    1)   ( 
(1)
*
(l )
N
( 2)
l 2
 1)  ( l )  ...
l 3
...  ( 
( N 1)
 1) 
(N)
 (
 1)  1  
(N)
N
*

(l )
.
(2.66)
l 1
Соотношения (2.64) и (2.66) позволяют выразить объем памяти
(l )
(l )
СМАС в функции xmax
, l  1, N , где xmax
-наибольшее значение, которое
принимает аргумент xl :
M 
N
*

(l )
l 1

N
*

l 1

*
N
(( ( l )  *   *  1)   *  1) 
l 1
*

(l )
( xmax
  *  1)
*

N
*
M (l )
 
l 1
*
,
(2.67)
где M (l ) определено соотношением (2.63).
Если бы функция многих переменных y  f (x) хранилась в памяти
обычным способом, когда значение функции записывается в одну ячейку
памяти, то для этого, очевидно, понадобилось бы
N
(l )
М   xmax
(2.68)
l 1
 * ячеек памяти, что следует также из формулы (2.67) при  * = 1, когда в
СМАС каждый входной сигнал возбуждает только одну ячейку памяти. Из
сравнения выражений (2.67) и (2.68) следует, что СМАС уменьшает объем
памяти по сравнению с обычным способом хранения приблизительно в
(  * ) N 1 раз, так что эффективность его с точки зрения требуемого объема
памяти растет с увеличением размерности входного вектора.
Пользуясь выражением (2.66), можно исследовать влияние параметра  * на объем памяти СМАС при фиксированных характеристиках входного вектора x . Наиболее удобно сделать это, когда функция y  f (x) за(l )
дана на гиперкубе, т.е. когда все значения xmax
, l  1, N , одинаковы и равны
0
xmax
 2 D  1.
Полагая
109
(2.69)
 * (r )  2r , r  0, D .
(2.70)
Найдем  0   (l ) (2.62) и M 0  M (l ) (2.63):
 0  2 Dr  1 , M 0   0   * (r )  2 D  2r .
(2.71)
Объем памяти СМАС согласно (2.66) в этом случае равен
M
(2 D  2 r ) N
.
2 r ( N 1)
(2.72)
Нетрудно показать, что объем памяти М (2.72) с ростом параметра
 * убывает и достигает минимально возможного значения при  * (r )  2 D :
M
(2 D  2 D ) N
 2N  2D .
D ( N 1)
2
(2.73)
Таким образом, коэффициент выигрыша объема памяти  , определяемый как отношение объема памяти М (2.68) при обычном способе хранения информации к объему памяти СМАС Mmin, принимает наибольшее
значение при  * (r )  2 D и оказывается равным

M
(2 D  1) N
 N D .
M min
2 2
При D  5 выражение для коэффициента  с большой точностью
можно принять равным   2DN D N . В частности, если хранить изображение, заданное на двумерной сетке (210+1)(210+1) обычным способом, то
понадобится один мегабайт памяти, тогда как если это изображение запомнить в СМАС при максимально возможном значении коэффициента
 * (r )  210 , то можно ограничиться только четырьмя килобайтами памяти.
Выход нейронной сети СМАС.
Как уже ранее отмечалось, значение запомненной в СМАС функции
y  f (x) равно сумме содержимого активных ячеек памяти. Для формали-
зации понятия "выход сети" введем следующие переменные:
110
w[n] - М-мерный вектор памяти сети, вычисленный на п-м шаге обу-
чения, каждая j-я компонента которого w j [n] , j  1, M соответствует содержимому j-й ячейки памяти СМАС;
a[x] - М-мерный ассоциативный вектор, однозначно связанный с
вектором аргументов x посредством вектора т (2.61) номеров активных
ячеек памяти по следующему правилу: элементы вектора a j , j  1, M номера которых совпадают с номерами активных ячеек памяти, равны единице, все остальные элементы вектора а равны нулю. Следовательно, в
векторе а всегда  * элементов равны единице. Тогда в соответствии с правилом функционирования нейронной сети СМАС ее выход y ( x, n) при заданном входном векторе x равен
y( x, n)  aT ( x)w[n] ,
(2.74)
т.е. выход равен сумме содержимого активных ячеек памяти сети. Такое
представление выхода сети было введено в работе Милитцера и Паркса
[40]; оно позволило понять природу этой нейронной сети, исследовать
процесс обучения в ней и найти пути повышения ее эффективности.
Обучение в нейронной сети СМАС.
Процесс формирования М-мерного вектора памяти w , направленный
на запоминание функции y(x) N переменных x  ( x1 , x2 ,...,xN ) , iзаданных
(1)
( 2)
(N)
на целочисленной сетке X  {x1  1, xmax
, x2  1, xmax
,...,xN  1, xmax
} , называет-
ся обучением. Алгоритм обучения нейронной сети СМАС был предложен
Альбусом в работе [34]. Этот алгоритм, имеющий рекуррентную природу,
функционирует следующим образом.
Пусть после (п - 1)-го измерения значений запоминаемой функции
y(x) и соответствующих значений вектора аргументов х (y[i], x[i],
i  1, n  1) был вычислен вектор памяти w[n - 1]. Тогда на следующем п-м
шаге после измерения значения функции у[п] при известном значении аргумента х[п] сначала с помощью "алгоритма нелинейного преобразования
111
аргументов" вычисляются номера активных ячеек памяти, т.е. вычисляется
соответствующий вектору х[п] вектор т[k] (2.61), (2.64), далее вычисляется
предсказываемое нейронной сетью в соответствии с (2.72) значение функции y (k ) , равное сумме содержимого активных ячеек памяти. Вычисляются
ошибка
 (n)  y[n]  y[n] и
предсказания
величина
коррекции
w[k ]   [n] /  * , которая прибавляется к содержимому активных ячеек памяти. Неактивные ячейки коррекции не подвергаются.
Если воспользоваться ассоциативным вектором а, однозначно связанным с вектором т (2.61) номеров активных ячеек памяти по следующему правилу: элементы вектора a j , j  1, M , номера которых совпадают с
номерами активных ячеек памяти, равны единице, все остальные элементы
вектора а равны нулю, то алгоритм обучения СМАС можно записать в
следующей форме:
wi [n]  wi [n  1]  ( y[n]   w j [n  1]) /  * , i ai [n]  1; j a j [n]  1; (2.75)
j
wi [n]  wi [n  1] , i ai [n]  0 .
(2.76)
Последовательность w[n] (2.75), (2.76) построена так, что после коррекции вектора памяти w[n - 1] оценка функции у[п], которая является
суммой содержимого активных ячеек, совпадает с ее значением, т.е.
y[n]   w j [n] , j a j [n]  1 .
(2.77)
j
Это утверждение следует непосредственно из суммирования правой
и левой частей уравнения (2.75) по активным номерам ячеек памяти.
Альбус исследовал сходимость алгоритма только экспериментально.
Теоретическое обоснование сходимости последовательности (2.75), (2.76)
впервые было дано в работе Милитцера и Паркса [40], [41], которые показали, что алгоритм обучения СМАС есть итеративный процесс решения
системы линейных уравнений относительно неизвестных значений компонент вектора памяти w. Вопросы сходимости процедуры (2.75), (2.76) об112
суждались также в работе [42]. В работе [40] было показано, что в зависимости от вида запоминаемой функции и параметров СМАС последовательность w[n] (2.75), (2.76) сходится либо в точку, либо в некоторую область, которую авторы назвали зоной притяжения. Основой доказательства сходимости последовательности w[n] послужило представление алгоритма (2.75), (2.76) в эквивалентной векторной форме:
y[n]  a T ( x[n])w[n  1]
w[n]  w[n  1] 
a( x[n]) , w[0]=0, n=1, 2, … . (2.78)
a T ( x[n])a( x[n])
В работе [43] было отмечено, что предложенный Альбусом алгоритм
обучения в форме (2.76) является известным алгоритмом Качмажа [44],
[45] для итеративного решения системы линейных уравнений вида
aT ( x[n])w  y[n] , п = 1, 2, … .
(2.79)
и поэтому в дальнейшем алгоритм (2.73), (2.74) обучения нейронной сети
СМАС будем называть алгоритмом Альбуса-Качмажа. Представление алгоритма обучения в форме (2.78) позволило в работе [43] предложить и исследовать алгоритм обучения, обладающий повышенной скоростью сходимости. С помощью такого представления также удалось повысить точность восстановления запоминаемых функций [46].
Система уравнений (2.79) обладает рядом особенностей:
 в каждом уравнении системы ровно  * коэффициентов равны единице, все остальные коэффициенты равны нулю;
 как правило, размерность М вектора w существенно больше числа
ненулевых элементов вектора, число которых равно  * , так что матрица системы (2.79) является сильно разреженной матрицей;
 поскольку максимально возможное число линейно независимых
уравнений системы (2.79) равно числу неизвестных, равному размерности М вектора w, а максимальное число уравнений равно числу
N
(l )
точек М   xmax
целочисленной сетки
l 1
113
(1)
( 2)
(N)
X  {x1  1, xmax
; x2  1, xmax
; ...; x N  1, xmax
}
N
(l )
и, как правило, M  M (где, M   ( xmax
  *  1) /(  * ) N 1 (2.67)), то эта
система уравнений обычно несовместна;
•
система уравнений (2.79) всегда имеет единственное решение в слу-
чае, когда параметр  * =1; при этом матрица системы равна единичной
матрице или легко преобразуется к ней путем перенумерования последовательности у[п]. Этот случай соответствует обычному способу хранения
информации, когда в каждой ячейке памяти хранится значение функции, а
номер ячейки памяти однозначно связан с аргументом функции.
Несовместность системы уравнений (2.79) приводит к тому, что последовательность w[n] (2.78) сходится в зону решения ("зону притяжения"
[40]) и совершает там движения в соответствии с алгоритмом обучения сети (2.78) и законом формирования входного вектора х[п]. За решение принимается одно из значений вектора w[n], которое принадлежит зоне притяжения.
"Машинная реализация" выхода нейронной сети СМАС.
Уравнение (2.74), будучи простой и удобной вычислительной процедурой нахождения выхода сети, скрывает, однако, систему функций, по
которой происходит разложение аппроксимируемой функции. Для нахождения этой системы функций воспользуемся представлением алгоритма
обучения в виде функционального уравнения так, как это сделано в работе
Цыпкина [47]. С этой целью умножим обе части уравнения (2.78) на вектор
аТ(х) и получим следующее рекуррентное функциональное уравнение:
y[n]  a T ( x[n])w[n  1] T
a ( x) w[n]  a ( x) w[n  1] 
a ( x)a( x[n]) , (2.80)
a T ( x[n])a( x[n])
T
T
Из выражения (2.74), определяющего выход сети при заданном
входном векторе х[п] и фиксированном векторе памяти w, следует, что выражения y( x, n)  aT ( x)w[n] и y( x, n  1)  aT ( x)w[n  1] , входящие в правую
114
и левую части уравнения (2.80), определяют функции, которые аппроксимирует ее выход на п-м и на ( п -1)-м шагах обучения. Поскольку выражение aT ( x[n])w[n  1]  y( x[n], n  1) определяет выход сети после (п-1)-го шага обучения при входном векторе х[п] и aT ( x[n])a( x[n])   * , уравнение
(2.80) можно переписать в следующей эквивалентной форме:
y ( x, n)  y ( x, n  1) 
y[n]  y ( x[n], n  1)

*
Обозначим коэффициент  [n] 
a T ( x)a( x[n]) , n=1, 2, … . (2.81)
( y[n]  y ( x[n], n  1))
*
и функцию
pyr ( x, x[n])  aT ( x)a( x[n]) .
(2.82)
Тогда решение уравнения (2.81) принимает вид:
n
y( x, n)    [m] pyr ( x, x[m]) .
(2.83)
m 1
При решении уравнения (2.81) предполагалось, что до начала процесса обучения вектор памяти сети w[0] равен нулю. В противном случае
решение уравнения (2.81) равно
n
y( x, n)  y( x,0)    [m] pyr ( x, x[m]) ,
(2.84)
m 1
где y (x,0) - функция, которая соответствует ненулевому значению вектора
памяти и w[0]  0 до начала процесса обучения.
Представление выхода сети выражениями (2.83) и (2.84) соответствует “машинной реализации” аппроксимационной процедуры метода потенциальных функций [48], тогда как представление выхода выражением
(2.82) соответствует “персептронной реализации” этого метода. Машинная
реализация позволяет выяснить многие свойства нейронной сети СМАС, в
то время как персептронная реализация является основной вычислительной схемой построения аппроксимационной функции.
Базисные функции нейронных сетей.
115
Под базисными функциями нейронных сетей обычно понимаются
функции, линейная комбинация которых аппроксимирует функцию, которую запоминает нейронная сеть. Такими функциями, например для
нейронной сети RBF [49, 50], являются функции, структура которых имеет
вид y( x)  f (r ) , где r  x  ci 2 - евклидова норма вектора x  ci , а ci - некоторый заданный вектор, называемый центром функции. Частным случаем таких функций являются гауссовые функции вида y( x)  exp(r 2 / 2 2 ) ,
которым соответствуют гауссовые нейронные сети. Отметим здесь, что
центры ci обычно выбираются из входной последовательности x[i].
Поскольку выход y ( x, n) нейронной сети СМАС также представляется линейной комбинацией функций pyr ( x, x[m]) , m  1, n , (2.83), (2.84),
то далее будем называть функции pyr ( x, x[m]) , m  1, n базисными функциями нейронной сети СМАС. Заметим, что если исходить из представления
выхода сети в виде выражения (2.82), то в роли базисных функций выступает бинарная функция, принимающая два значения: ноль и единица, так
как компонентами вектора а являются 0 и 1. Поэтому в литературе
нейронная сеть СМАС и ее система базисных функций иногда называется
бинарной [49].
Свойства базисных функций нейронной сети СМАС.
Рассмотрим теперь базисные функции, которые образуют ряд (2.83).
Отметим сначала, что из принципа построения ассоциативного вектора а
следует, что значение функции pyr ( x, x[n]) в любой точке х равно числу
общих ячеек памяти, которые соответствуют векторам х и х[п].
Поскольку вектор а(х) - М-мерный бинарный вектор,  * компонент
которого равны единице, а остальные равны нулю, то очевидны первые два
свойства функций pyr ( x, x[n]) :
1 . pyr ( x, x[n])  0 ;
116
2. max pyr ( x, x[n])  pyr ( x[n], x[n])   * так что точку х[п] уместно
xX
назвать центром функции pyr ( x, x[n]) .
Следующие свойства не столь очевидны, как первые два. Они принципиально обусловлены алгоритмом построения вектора номеров активных ячеек т и ассоциативного вектора а по входному вектору х:
3. pyr ( x, x[n])  0 , если   max xi  x[n]   * ;
i
4.
pyr ( x, x[n])  Pyr( x, x[n]) , где функция Pyr( x, x[n]) задает пра-
вильную N+1 –мерную пирамиду:
*
xi  x[n]   * ;

   ,   max
i
Pyr ( x, x[n])  
0
,


max
xi  x[n]   * ,


i
основанием которой является N-мерный гиперкуб, каждое ребро которого
имеет 2  *  1 точек и центром которого является точка х[п].
Таким образом, функция pyr ( x, x[n]) представляет собою вписанную
в правильную (N+ 1)-мерную пирамиду Pyr( x, x[n]) фигуру.
5.
Вид
функции,
как
правило,
зависит
от
координат
ее центра х[п]. При этом число различных по форме функций
N
(l )
pyr ( x, x[n]) значительно меньше числа точек М   xmax
на которых задана
l 1
аппроксимируемая функция у(х). В частности, в двумерном случае число
различных по форме функций равно  * , более того, каждой из этих функций можно присвоить отдельный номер, который легко вычисляется по
координатам вектора х[п]: номер функции pyr ( x, x[n]) может быть задан
выражением N pyr ( x1[n]  x2 [n])mod * .
6. В одномерном случае (N=1) базисные функции pyr ( x, x[n]) представляют собой равнобедренные треугольники, которые задаются выражением
117
*
xi  x[n]   * ;

   ,   max
i
(2.85)
pyr ( x, x[n])  Pyr ( x, x[n])  
0
,


max
xi  x[n]   * .


i
Построение базисных функций нейронной сети СМАС.
В одномерном случае построение базисных функций не составляет
труда, поскольку существует аналитическое выражение (2.85) для этой
функции.
В многомерном случае аналитического выражения для базисных
функций не существует. Для построения или вычисления этих функций
проще всего воспользоваться нейронной сетью СМАС, пользуясь следующим определением.
Определение 2. Базисной функцией нейронной сети СМАС является
функция pyr ( x, x[n]) которую воспроизводит сеть с нулевой памятью при
запоминании значений функции y( x[n])   * .
Это определение следует из выражения (2.83) для базисной функции.
Перейдем теперь к двумерному случаю, когда множество аргументов
(1)
( 2)
задано на сетке X  {x1  1, xmax
, x2  1, xmax
) . Этот случай представляет осо-
бый интерес, поскольку с ним связана задача обработки изображений.
Удобно ввести понятие нормированная базисная функция. Эта функция
pyrN ( x, x[n])
связана
с
базисной
функцией
соотношением
pyrN ( x, x[n])  pyr ( x, x[n]) /  * . Очевидно, что pyrN ( x[n], x[n])  1 .
На рисунках 2.15- 2.19 показаны нормированные базисные функции
сети при двух значениях параметра  * :  * =2 и  * =8. Эти функции показаны как функции непрерывного аргумента, что делает рисунки наглядными,
хотя, на самом деле, функции определены только на дискретной сетке.
Нормированные базисные функции представляют собой неправильные пирамиды pyrN ( x, x[n]) . Аргументы и, следовательно, центры х[п] функций
pyrN ( x, x[n]) выбраны так, чтобы нормированная базисная функция полно-
118
стью находилась в области определения функции у(х), что позволяет получить полное изображение функции.
На рис. 2.15 показаны две нормированные базисные функции двумерной нейронной сети СМАС при
 * = 2: с центром в точ-
ке x[1]  (27, 26)T , N pyr (27  26)mod *  1 и с центром в точке x[2]  (9, 13)T ,
N pyr (9  13)mod *  2 . В соответствии со свойством 5 число различных по
форме таких функций также равно двум. Функции повернуты вокруг своих
вертикальных осей симметрии относительно друг друга на 90°.
С увеличением числа активных ячеек  * усложняется структура базисных функций pyr ( x, x[n]) .
На рис. 2.16-2.19 показаны все восемь нормированных базисных
функций нейронной сети СМАС при  * =8. На рис. 2.16 построены нормированные базисные функции №=8 и №=1 с центрами соответственно в
точках x[1]  (9, 9)T и x[2]  (25, 24)T . Рис. 2.17 представляет нормированные базисные функции №=2 и №=3 с центрами соответственно в точках
x[3]  (11, 9)T и x[4]  (25, 22)T . Нормированные базисные функции №=4 и
№=5 с центрами соответственно в точках x[5]  (13, 9)T и x[6]  (22, 25)T
показаны на рис. 2.18. На рис. 2.19 построены нормированные базисные
функции №=6 и №=7 с центрами соответственно в точках x[7]  (15, 9)T и
x[2]  (24, 25)T .
119
Рисунок 2.15 – Базисные функции СМАС при  * = 2: с центром в точке x[1]  (27, 26) T , №=1 и с центром в точке x[2]  (9, 13) T , №=2
Рисунок 2.16 – Базисные функции СМАС при  * = 8: с центром в точке
x[1]  (9, 9)T , №=8 и с центром в точке x[2]  (25, 24)T , №=1
Рисунок 2.17 – Базисные функции СМАС при  * = 8: с центром в точке
x[3]  (11, 9)T , №=2 и с центром в точке x[4]  (25, 22) T , №=3
120
Рисунок 2.18 – Базисные функции СМАС при  * = 8: с центром в точке
x[5]  (13, 9) T , №=4 и с центром в точке x[6]  (22, 25)T , №=5
Рисунок 2.19 – Базисные функции СМАС при  * = 8: с центром в точке
x[7]  (15, 9)T , №=6 и с центром в точке x[2]  (24, 25) T , №=7
В работе [39] приведены результаты обучения сети по запоминанию
ряда функций двух аргументов. Описаны алгоритмы обучения сети, которые имеют более высокую скорость сходимости по сравнению со стандартным алгоритмов обучения Альбуса-Качмажа. Исследовано влияние
помех на процесс обучения сети и описана двухслойная нейронная сеть
CMAC, в которой устранено влияние помех и которая воспроизводит
функции точнее по сравнению с обычной сетью СМАС, даже при отсутствии помех измерений.
121
i
122
Download