Значительный вклад в теорию коннективизма внесли советские и российские ученые [[45], [46], [47], [48]], доказавшие возможность решения классических вычислительных задач в нейросетевом базисе, тем самым заложив фундаментальную основу построения нейрокомпьютеров.
Примечание. Коннективизм или коннекционизм это подход к изучению человеческого познания, который использует математические модели, известные как коннекционистские сети или искусственные нейронные сети. Часто они бывают в виде тесно связанных между собой нейронных процессоров [[49]].
Наиболее популярная архитектура ANN сеть прямого распространения, в которой нелинейные элементы (нейроны) представлены последовательными слоями, а информация распространяется в одном направлении (Feed Forward Neural Networks) [[50]]. В 1989 году в работах G. Gybenco [[51]], K. Hornik [[52]] и др. показано, что такая сеть способна аппроксимировать функции практически любого вида. Однако в тот период теоретическая возможность была существенно ограничена вычислительными мощностями. Преодолеть этот разрыв удалось в 90-х годах, когда были предложены сети новой архитектуры, получившие впоследствие название глубоких нейронных сетей. В результате в последние годы получены впечатляющие результаты в разработке и применении новых классов сетей и так называемого глубокого обучения [[53]], которые состоят из множества слоев разного типа, обеспечивающих не просто классификацию, но, по существу, выявление скрытых свойств объектов, делающих такую классификацию высокоточной. Общее количество различных классов нейронных сетей превысило 27 [[54]]. Введение в новые архитектуры сетей приведено в разделе «Глубокое обучение».
Применение аппарата ANN направлено на решение широкого круга вычислительно сложных задач, таких как оптимизация, управление, обработка сигналов, распознавание образов, предсказание, классификация.
2.6.2. Математическое описание искусственной нейронной сети
Рассмотрим ANN с прямым распространением сигнала. В такой сети отдельный нейрон представляет собой логистический элемент, состоящий из входных элементов, сумматора, активационного элемента и единственного выхода (рисунок 2.7).
Рисунок 2.7. Схема классического нейрона
Выход нейрона определяется формулами:
где g(z) сигмоидальная функция.
Выражение функции гипотезы классического нейрона идентично выражению функции гипотезы логистической регрессии (Eq. 2.9).
Часто в качестве активационной функции применяется сигмоидальная функция, описанная в разделе «Логистическая регрессия».
В последнее время в литературе веса θ нейронной сети чаще обозначают символом w, подчеркивая тем самым преемственность естественных нейронных сетей и искусственных нейронных сетей, где широко используется понятие синаптического коэффициента или веса (weight). Кроме того, такое обозначение показывает разницу между множеством параметров или весов (W) и гиперпараметрами модели. Гиперпараметры определяют общие свойства модели, и к ним относят коэффициент обучения, алгоритм оптимизации, число эпох обучения, количество скрытых слоев сети, количество нейронов в слоях и т.п.
Для упрощения схемы сумматор и активационный элемент объединяют, тогда многослойная сеть может выглядеть так, как показано на рисунке 1.5. Сеть содержит четыре входных нейрона, четыре нейрона в скрытом слое и один выходной нейрон.
На рисунке входные нейроны обозначены символом х, нейроны скрытого слоя символами a
1
[1
a1
[1
a2
[1
a3
[1
a0
[1
a1
[2
a[0
xНа входе следующего или первого скрытого слоя имеем
Выход первого слоя:
Для любого нейрона j, находящегося в скрытом слое i:
В этом выражении значение bias и его вес упомянуты отдельно как произведение ,
где wj[i] вектор весов нейрона j.
Для выходного слоя:
Например, для сети на рисунке 2.8 выход каждого нейрона скрытого слоя можно рассчитать так же, как и для одиночного нейрона:
Выход нейронной сети определяется выражением:
Рисунок 2.8. Схема многослойной сети с одним скрытым слоем
Для настройки весов w нейронной сети (обучения сети) используют функцию стоимости, напоминающую функцию стоимости для логистической регрессии (Eq. 2.12).
где L количество слоев нейронной сети; sl количество нейронов в слое l; K количество классов (равно количеству нейронов в выходном слое); W матрица весов.
Достоинством нейронной сети является возможность классификации c несколькими классами. В случае классификации объектов одного класса, то есть тогда, когда мы должны отделить условно «положительные» объекты от всех остальных, количество нейронов в выходном слое может быть равным и 1 (рисунок 1.5). В этом случае принадлежность объекта к классу «положительных» определяется значением функции гипотезы, то есть если hΘ(x(i)) > 0.5, то объект принадлежит к искомому классу. Однако чаще, в том числе с целью унификации, используется метод голосования («победитель забирает все»), когда сеть имеет в выходном слое 2 нейрона для двух классов объектов (рисунок 1.6), три для трех и т.д.
Рисунок 2.9. Схема многослойной сети с двумя выходами
Для обучения, то есть минимизации функции ошибки многослойной ИНС, используют алгоритм обратного распространения ошибки (Backpropagation of errors BPE) [[55]] и его модификации, направленные на ускорение процесса обучения.
2.6.3. Алгоритм обратного распространения ошибки
Суть алгоритма BPE заключается в следующем. Для тренировочного набора примеров
устанавливаем выход первого слоя нейронов:
Шаг 1. Выполняем этап прямого распространения сигнала по слоям сети, то есть вычисляем сигнал на выходе сети, выполняя расчет для каждого нейрона в каждом слое, как показано в выражениях 1.4, 1.5. Результаты в виде выходных значений нейронов сети a
[0
a[1
a[L
Шаг 2. Используя полученный результат на выходе сети a[L] = hw
(
i)
xy(i)где L номер выходного слоя нейронной сети.
Шаг 3. «Возвращаем» ошибку, распространяя ее обратно по сети с учетом значения производной:
где знак * символ поэлементного умножения; g' производная.
Производная сигмоидальной активационной функции:
Для любого скрытого слоя сети:
В случае сигмоидальной активационной функции:
Рассчитанное значение градиентов ошибки dz
[1
dz[2
dz[L]Шаг 4. Модифицируем веса сети с учетом значения ошибки для всех слоев I L:
где i номер слоя сети; ρ параметр обучения (learning rate) (0 < ρ < 1); Θ(i) матрица весов слоя i; dz[i] рассчитанное значение ошибки i-го слоя (точнее говоря, градиент ошибки).
Получив измененные значения весов, повторяем шаги 14 до достижения некоторого минимального значения ошибки либо заданное количество раз.
Процесс обучения искусственной нейронной сети можно представить в виде следующей схемы (рисунок 2.10):
Рисунок 2.10. Итеративный процесс обучения искусственной нейронной сети
Рассмотрим пошаговый пример расчета прямого распространения сигнала, обратного распространения ошибки и коррекции весов.
Пошаговый пример расчета алгоритма обратного распространения ошибки
В этом примере (рисунок 2.11) веса нейронной сети будем обозначать символом w, смещения b. Номер слоя, как и ранее, указываем верхним индексом в квадратных скобках для того, чтобы не путать с индексом обучающего примера, номер нейрона в слое нижним индексом. Выход нейрона по-прежнему обозначаем символом а.
Рисунок 2.11. Пример нейронной сети с одним скрытым слоем
Входной слой с его входами x для единообразия последующих матричных операций обозначаем как нулевой слой a