Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИИ.docx
Скачиваний:
57
Добавлен:
06.06.2018
Размер:
9.56 Mб
Скачать

1.2 Активационные функции

Выходной сигнал преобразуется с помощью активационной функции, за счет этого получается выходной сигнал нейронной сети [14]. Активационная функция может быть задана линейной функцией:

(2)

где К – постоянная, пороговой функции, OUT = 1, если NET > T, OUT = 0 в остальных случаях, Т – некоторая постоянная пороговая величина.

Еще один способ представления активационной функции – модель нелинейной передаточной характеристики биологического нейрона (рисунок 1.4).

Рисунок 1.4 – Искусственный нейрон с активационной функцией

На рисунке 1.4, блок F, получает сигнал NET, затем передает сигнал OUT. Если F уменьшает диапазон изменения величины выходного сигнала, то F называется «сжимающей» функцией. «Сжимающая» функция как правило, представлена логистической или «сигмоидальной» (S-образная) функцией.

Пример сигмоидальной логистической функции приведен на рисунке 1.5.

Рисунок 1.5 – Сигмоидальная логистическая функция

Указанная на рисунке 1.5 функция математически выражается как:

(3)

Следовательно,

(4)

Активационная функция представляет собой усиление искусственного нейрона. Величина, на которую происходит увеличение, вычисляется как отношение приращения величины OUT к приращению NET [15].

Ели сигнал является достаточно слабым, необходимо усилить его для того, чтобы полученный выходной сигнал был пригоден для использования. Но, использование слишком больших усиливающих коэффициентов вызывает перенасыщение выхода шумами. Чрезмерное усиление входных сигналов также приводит к перенасыщению шумами и является причиной бесполезности получаемого выходного сигнала (рисунок 1.6).

Рисунок 1.6 – Передача сигналов

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

Еще один способ для задания активационной функции – гиперболический тангенс. Форма данной функции сходна с логистической, поэтому она часто применяется для активации искусственного нейрона. В качестве активационной функции искусственной нейронной сети она записывается следующим образом:

(5)

Внешний вид гиперболического тангенса представлен на рисунке 1.7.

Рисунок 1.7 – Гиперболический тангенс

Гиперболический тангенс, как и логистическая функция, представляет собой S-образную функцию. Отличие состоит в том, что тангенс является симметричным относительно начала координат (рисунок 4). То, что гиперболический тангенс имеет значения различных знаков, является удобным для множества сетей.

Представленная модель игнорирует часть свойств своего биологического прототипа, но, при этом является достаточно пригодной для решения множества задач.

1.3 Искусственные нейронные сети

Нейронная сеть [16] включает в себя группу нейронов, образующих слой. Вершины-круги (рисунок 1.8) слева используются для распределения входных сигналов.

Рисунок 1.8 – Однослойная нейронная сеть

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

Элементы множества входов Х соединяются с каждым нейроном первого вычислительного слоя, эти нейроны в свою очередь, выдают взвешенный результат обработки входа в сеть. Также могут присутствовать соединения между выходами и входами элементов в слое [17].

Весовые коэффициенты матричных элементов обозначены как W. Матрица состоит из m строк и n столбцов, где m – число входов, а n – число нейронов. Таким образом, получение значения выходного вектора N получается через матричное умножение N = XW, N и Х – векторы-строки.

Сеть, обладающая более сильной вычислительной мощностью, обладает и более сложной конфигурацией [18]. На данный момент существует множество различных конфигураций сетей. Но, любая многослойная сеть будет копировать многослойную структуру мозга. Такие сети являются более эффективными, чем однослойные. Выход одного слоя является входом для последующего слоя [19]. Многослойная сеть показана на рисунке 1.9.

Рисунок 1.9 – Многослойная сеть

Многослойные сети не приводят к увеличению вычислительной мощности по сравнению с однослойной сетью в случае, если активационная функция между слоями будет нелинейной [20]. Получение выходного значения слоя осуществляется через умножение входного вектора на первую весовую матрицу с последующим умножением результата на вторую весовую матрицу:

(6)

Умножение матриц является ассоциативным, следовательно, .

Таким образом, можно сделать вывод о том, что двухслойная линейная сеть представляет собой эквивалент одного слоя с весовой матрицей. Элементы матрицы получаются путем произведения двух весовых матриц [21]. Следовательно, многослойную линейную сеть можно заменить на однослойную сеть. Но, следует помнить, что однослойные сети значительно ограничены в плане вычислительных возможностей. Расширить вычислительные возможности многослойной сети (в отличие от однослойной) можно за счет использования нелинейной активационной функции.

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

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

Еще один вариант обучения – динамический подбор весов, в ходе которого наиболее слабые связи изменяются на малую величину. Сохраняются те изменения, которые повлекли уменьшение ошибки на выходе всей сети.

Третий вариант – распространение сигналов ошибки от выходов сети к ее входам. Распространение происходит в обратном направлении распространения сигналов. Этот алгоритм называется процедурой обратного распространения. Согласно методу наименьших квадратов [22], минимизируемой целевой функцией ошибки сети является величина:

(7)

где – реальное выходное состояние нейрона j выходного слоя N нейронной сети при подаче на ее входы p-го образа;– идеальное (желаемое) выходное состояние этого нейрона. Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:

(8)

Здесь – весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя n-1 с j-ым нейроном слоя n, η – коэффициент скорости обучения, 0<η<1.

(9)

Здесь под yj, подразумевается выход нейрона j, а под – взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множительявляется производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых ИНС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой [23]. В случае гиперболического тангенса:

(10)

Третий множитель , очевидно, равен выходу нейрона предыдущего слоя. Первый множитель легко раскладывается следующим образом:

(11)

Здесь суммирование по k выполняется среди нейронов слоя n+1. Введя новую переменную:

(12)

получим рекурсивную формулу для расчетов величинслоя n из величинболее старшего слоя n+1.

(13)

Выходной слой:

(14)

Следовательно, формулу (8) можно переписать в следующем виде:

(15)

Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (15) дополняется значением изменения веса на предыдущей итерации [24]:

(16)

где µ – коэффициент инерционности, t – номер текущей итерации. Таким образом, полный алгоритм обучения ИНС с помощью процедуры обратного распространения строится так [25]:

  1. Подать на входы сети один из возможных образов и в режиме обычного функционирования ИНС, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Известно, что

(17)

где M – число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; ) – i-ый вход нейрона j слоя n.

, (18)

где – сигмоид.

, (19)

где – q-ая компонента вектора входного образа.

  1. Рассчитать для выходного слоя по формуле (14). Рассчитать по формуле (15) или (16) изменения весовслоя N.

  2. Рассчитать по формулам (13) и (15) (или (13) и (16)) соответственно δ (n) и ∆w(n) для всех остальных слоев, n=N-1,...1.

  3. Скорректировать все веса в ИНС:

(20)

  1. Если ошибка сети существенна, перейти на шаг 1. В противном случае – конец.

Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы [26], чтобы сеть, не забывала одни образы по мере запоминания других. Алгоритм схематически представлен на рисунке 1.10.

Рисунок 1.10 – Диаграмма сигналов в сети при обучении по алгоритму обратного распространения

Из выражения (15) следует, что когда выходное значение стремится к нулю, эффективность обучения заметно снижается.

При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться, поэтому область возможных значений выходов нейронов [0,1] желательно сдвинуть в пределы [-0.5,+0.5], что достигается простыми модификациями логистических функций. Например, сигмоид с экспонентой преобразуется к виду:

(21)

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

Чтобы избежать данной ситуации, необходимо, чтобы скорость обучения стремилась к бесконечно малой величине, но это может сделать обучение сети неприемлемо медленным.

С другой стороны, слишком частая коррекция весов может привести к нестабильности процесса обучения [27]. Еще один способ исключения локального минимума, а, следовательно, и остановки процесса обучения, приведен в [28].

Не стоит забывать, что в процессе обучения человек взаимодействует с множеством учителей. Следовательно, для обучения биологического мозга данный способ является оптимальным.

Основное достоинство метода обучения без учителя – его «самостоятельность». Существуют алгоритмы обучения, способные изменять структуру сети. Но, подстройка синапсов может происходить только на основе информации, заложенной в самом нейроне.