Искусственный нейрон
Несмотря на большое разнообразие вариантов нейронных сетей, все они имеют общие черты. Так, все они, так же, как и мозг человека, состоят из большого числа связанных между собой однотипных элементов – нейронов, которые имитируют нейроны головного мозга. На рис. 1 показана схема нейрона.
Из рисунка видно, что искусственный нейрон, так же, как и живой, состоит из синапсов, связывающих входы нейрона с ядром; ядра нейрона, которое осуществляет обработку входных сигналов и аксона, который связывает нейрон с нейронами следующего слоя. Каждый синапс имеет вес, который определяет, насколько соответствующий вход нейрона влияет на его состояние. Состояние нейрона определяется по формуле
S=n∑i=1xiwi S=n∑i=1xiwi S = n∑i=1 n∑ n∑ n n n ∑ ∑ i=1 i=1 i = 1 xi x i wi w i
, (1)
n – число входов нейрона xi – значение i-го входа нейрона wi – вес i-го синапса.
Где f – некоторая функция, которая называется активационной. Наиболее часто в качестве активационной функции используется так называемый сигмоид, который имеет следующий вид:
f(x)=11+e−ax f(x)=11+e−ax f (x) = 11+e−ax 1 1 1+e−ax 1+e−ax 1+e−ax 1+e−ax 1 + e−ax e e −ax − a x
, (3)
Основное достоинство этой функции в том, что она дифференцируема на всей оси абсцисс и имеет очень простую производную:
f′(x)=αf(x)(1−f(x)) f′(x)=αf(x)(1−f(x)) f′ f ′ (x) = α f (x) (((1 − f (x))))
, (4)
При уменьшении параметра a сигмоид становится более пологим, вырождаясь в горизонтальную линию на уровне 0,5 при a=0. При увеличении a сигмоид все больше приближается к функции единичного скачка.
Представление входных данных
Основное отличие НС в том, что в них все входные и выходные параметры представлены в виде чисел с плавающей точкой обычно в диапазоне [0..1]. В то же время данные предметной области часто имеют другое кодирование. Так, это могут быть числа в произвольном диапазоне, даты, символьные строки. Таким образом данные о проблеме могут быть как количественными, так и качественными. Рассмотрим сначала преобразование качественных данных в числовые, а затем рассмотрим способ преобразования входных данных в требуемый диапазон.
Качественные данные мы можем разделить на две группы: упорядоченные (ординальные) и неупорядоченные. Для рассмотрения способов кодирования этих данных мы рассмотрим задачу о прогнозировании успешности лечения какого-либо заболевания. Примером упорядоченных данных могут, например, являться данные, например, о дополнительных факторах риска при данном заболевании.
Таблица №1
|
нет
|
ожирение
|
алкоголь
|
курение
|
гипертония
|
|---|
Таблица №2
|
до 25 лет
|
25-39 лет
|
40-49 лет
|
50-59 лет
|
60 и старше
|
|---|
Опасность каждого фактора возрастает в таблицах при движении слева направо.
В первом случае мы видим, что у больного может быть несколько факторов риска одновременно. В таком случае нам необходимо использовать такое кодирование, при котором отсутствует ситуация, когда разным комбинациям факторов соответствует одно и то же значение. Наиболее распространен способ кодирования, когда каждому фактору ставится в соответствие разряд двоичного числа. 1 в этом разряде говорит о наличии фактора, а 0 о его отсутствии. Параметру нет можно поставить в соответствии число 0. Таким образом для представления всех факторов достаточно 4-х разрядного двоичного числа. Таким образом число 10102 = 1010 означает наличие у больного гипертонии и употребления алкоголя, а числу 00002 соответствует отсутствие у больного факторов риска. Таким образом факторы риска будут представлены числами в диапазоне [0..15].
Во втором случае мы также можем кодировать все значения двоичными весами, но это будет нецелесообразно, т.к. набор возможных значений будет слишком неравномерным. В этом случае более правильным будет установка в соответствие каждому значению своего веса, отличающегося на 1 от веса соседнего значения. Так, число 3 будет соответствовать возрасту 50-59 лет. Таким образом возраст будет закодирован числами в диапазоне [0..4].
В принципе аналогично можно поступать и для неупорядоченных данных, поставив в соответствие каждому значению какое-либо число. Однако это вводит нежелательную упорядоченность, которая может исказить данные, и сильно затруднить процесс обучения. В качестве одного из способов решения этой проблемы можно предложить поставить в соответствие каждому значению одного из входов НС. В этом случае при наличии этого значения соответствующий ему вход устанавливается в 1 или в 0 при противном случае. К сожалению, данный способ не является панацеей, ибо при большом количестве вариантов входного значения число входов НС разрастается до огромного количества. Это резко увеличит затраты времени на обучение. В качестве варианта обхода этой проблемы можно использовать несколько другое решение. В соответствие каждому значению входного параметра ставится бинарный вектор, каждый разряд которого соответствует отдельному входу НС.
- Dirk Emma Baestaens, Willem Max Van Den Bergh, Douglas Wood, «Neural Network Solution for Trading in Financial Markets», Pitman publishing
- R. M. Hristev, «Artifical Neural Networks»
- С. Короткий, «Нейронные сети: Алгоритм обратного распространения»
- С. Короткий, «Нейронные сети: Основные положения»
Нейронные сети обратного распространения
Нейронные сети обратного распространения – это мощнейший инструмент поиска закономерностей, прогнозирования, качественного анализа. Такое название – сети обратного распространения (back propagation) они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т. е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.
Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1, т. е. речь идет о полносвязной НС.
В общем случае задача обучения НС сводится к нахождению некой функциональной зависимости Y=F(X) где X – входной, а Y – выходной векторы. В общем случае такая задача, при ограниченном наборе входных данных, имеет бесконечное множество решений. Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов:
E(w)=12p∑j=1(yi−di)2 E(w)=12p∑j=1(yi−di)2 E (w) = 12 1 1 2 2 2 2 2 p∑j=1 p∑ p∑ p p p ∑ ∑ j=1 j=1 j = 1 (yi−di)2 (yi−di) (yi y i − di d i) 2
, (5)
Обучение нейросети производится методом градиентного спуска, т. е. на каждой итерации изменение веса производится по формуле:
Δwij=−η⋅∂E∂wij Δwij=−η⋅∂E∂wij Δ wij w ij i j = − η ⋅ ∂E∂wij ∂E ∂ E ∂wij ∂wij ∂wij ∂wij ∂ wij w ij i j
, (6)
∂E∂wij=∂E∂yi⋅dyidSj⋅∂Sj∂wij ∂E∂wij=∂E∂yi⋅dyidSj⋅∂Sj∂wij ∂E∂wij ∂E ∂ E ∂wij ∂wij ∂wij ∂wij ∂ wij w ij i j = ∂E∂yi ∂E ∂ E ∂yi ∂yi ∂yi ∂yi ∂ yi y i ⋅ dyidSj dyi d yi y i dSj dSj dSj dSj d Sj S j ⋅ ∂Sj∂wij ∂Sj ∂ Sj S j ∂wij ∂wij ∂wij ∂wij ∂ wij w ij i j
, (7)
∂Sj∂wij=xi ∂Sj∂wij=xi ∂Sj∂wij ∂Sj ∂ Sj S j ∂wij ∂wij ∂wij ∂wij ∂ wij w ij i j = xi x i
, (8)
∂E∂yj=∑k∂E∂yk⋅dykdSk⋅∂Sk∂yj=∑k∂E∂yk⋅dykdSk⋅w(n+1)jk ∂E∂yj=∑k∂E∂yk⋅dykdSk⋅∂Sk∂yj=∑k∂E∂yk⋅dykdSk⋅w(n+1)jk ∂E∂yj ∂E ∂ E ∂yj ∂yj ∂yj ∂yj ∂ yj y j = ∑k ∑ ∑ ∑ ∑ k k k ∂E∂yk ∂E ∂ E ∂yk ∂yk ∂yk ∂yk ∂ yk y k ⋅ dykdSk dyk d yk y k dSk dSk dSk dSk d Sk S k ⋅ ∂Sk∂yj ∂Sk ∂ Sk S k ∂yj ∂yj ∂yj ∂yj ∂ yj y j = ∑k ∑ ∑ ∑ ∑ k k k ∂E∂yk ∂E ∂ E ∂yk ∂yk ∂yk ∂yk ∂ yk y k ⋅ dykdSk dyk d yk y k dSk dSk dSk dSk d Sk S k ⋅ w(n+1)jk w (n+1)jk (n+1) (n+1) (n+1) (n+1) (n + 1) jk jk jk jk j k
, (9)
δ(n)j=∂E∂yj⋅dyjdSj δ(n)j=∂E∂yj⋅dyjdSj δ(n)j δ (n)j (n) (n) (n) (n) (n) j j j j = ∂E∂yj ∂E ∂ E ∂yj ∂yj ∂yj ∂yj ∂ yj y j ⋅ dyjdSj dyj d yj y j dSj dSj dSj dSj d Sj S j
, (10)
Тогда мы сможем определить рекурсивную формулу для определения n-ного слоя, если нам известно следующего (n+1)-го слоя.
δ(n)j=[∑kδ(n+1)k⋅w(n+1)jk]⋅dyjdSj δ(n)j=[∑kδ(n+1)k⋅w(n+1)jk]⋅dyjdSj δ(n)j δ (n)j (n) (n) (n) (n) (n) j j j j = [[[∑k ∑ ∑ ∑ ∑ k k k δ(n+1)k δ (n+1)k (n+1) (n+1) (n+1) (n+1) (n + 1) k k k k ⋅ w(n+1)jk w (n+1)jk (n+1) (n+1) (n+1) (n+1) (n + 1) jk jk jk jk j k]]] ⋅ dyjdSj dyj d yj y j dSj dSj dSj dSj d Sj S j
, (11)
Нахождение же для последнего слоя НС не представляет трудности, так как нам известен целевой вектор, т. е. вектор тех значений, которые должна выдавать НС при данном наборе входных значений.
δ(N)j=(y(N)i−di)⋅dyjdSj δ(N)j=(y(N)i−di)⋅dyjdSj δ(N)j δ (N)j (N) (N) (N) (N) (N) j j j j = (((y(N)i y (N)i (N) (N) (N) (N) (N) i i i i − di d i))) ⋅ dyjdSj dyj d yj y j dSj dSj dSj dSj d Sj S j
, (12)
Δw(n)ij=−η⋅δ(n)j⋅xni Δw(n)ij=−η⋅δ(n)j⋅xni Δ w(n)ij w (n)ij (n) (n) (n) (n) (n) ij ij ij ij i j = − η ⋅ δ(n)j δ (n)j (n) (n) (n) (n) (n) j j j j ⋅ xni x ni n n n n i i i i
, (13)
- подать на вход НС один из требуемых образов и определить значения выходов нейронов нейросети
- рассчитать для выходного слоя НС по формуле (12) и рассчитать изменения весов выходного слоя N по формуле (13)
- Рассчитать по формулам (11) и (13) соответственно и Δw(N)ij для остальных слоев НС, n = N-1..1
- Скорректировать все веса НС w(n)ij(t)=w(n)ij(t−1)+Δw(n)ij(t), (14)
- Если ошибка существенна, то перейти на шаг 1
w(n)ij(t)=w(n)ij(t−1)+Δw(n)ij(t) w(n)ij(t)=w(n)ij(t−1)+Δw(n)ij(t) w(n)ij w (n)ij (n) (n) (n) (n) (n) ij ij ij ij i j (t) = w(n)ij w (n)ij (n) (n) (n) (n) (n) ij ij ij ij i j (t − 1) + Δ w(n)ij w (n)ij (n) (n) (n) (n) (n) ij ij ij ij i j (t)
, (14)
На этапе 2 сети поочередно в случайном порядке предъявляются вектора из обучающей последовательности.
Часто задаваемые вопросы о математических моделях нейросетей
Вопрос: Что такое математическая модель нейросети?
Ответ: Это формальное описание структуры и алгоритмов работы нейронной сети с помощью математических понятий: функций, векторов, матриц и операций над ними.
Вопрос: Чем отличается искусственный нейрон от биологического?
Ответ: Искусственный нейрон — это сильно упрощенная математическая абстракция, которая имитирует лишь базовые принципы работы нервной клетки: суммирование взвешенных входов и применение активационной функции.
Вопрос: Зачем нужно представлять входные данные в нейросети?
Ответ: Чтобы нейросеть могла их обрабатывать, данные (изображения, текст, звук) преобразуются в числовую форму, обычно в векторы или тензоры, понятные математической модели.
Вопрос: Что такое обратное распространение в контексте нейросетей?
Ответ: Это ключевой алгоритм обучения, который вычисляет градиент функции ошибки по весам сети, позволяя корректировать их в направлении, уменьшающем общую ошибку.
Вопрос: Какие основные математические функции используются в нейроне?
Ответ: Линейная комбинация (взвешенная сумма входов) и нелинейная функция активации (например, сигмоида, ReLU), которая вносит нелинейность и позволяет сети изучать сложные зависимости.
Вопрос: Может ли нейросеть обучаться без обратного распространения?
Ответ: Да, существуют другие алгоритмы (например, обучение без учителя, генетические алгоритмы), но обратное распространение является наиболее распространенным и эффективным для сетей с учителем.
Вопрос: Почему в нейросетях важна нелинейность?
Ответ: Без нелинейных функций активации многослойная нейросеть вырождалась бы в один линейный слой, радикально ограничивая ее способность моделировать сложные реальные процессы.
Вопрос: Как выбор функции активации влияет на обучение?
Ответ: Разные функции (ReLU, tanh, Sigmoid) имеют разные свойства по скорости обучения, устойчивости к проблеме затухающих градиентов и диапазону выходных значений, что влияет на сходимость модели.
Вопрос: Что такое «вес» и «смещение» в математической модели нейрона?
Ответ: Вес определяет силу влияния конкретного входного сигнала, а смещение (bias) позволяет сдвигать функцию активации, настраивая порог срабатывания нейрона независимо от входов.
Вопрос: Все ли нейросети основаны на обратном распространении?
Ответ: Нет, это характерно для наиболее популярных архитектур с учителем (например, многослойные перцептроны, CNN). Другие модели, такие как сети Хопфилда или машины Больцмана, используют иные принципы.
Краткая памятка: ключевые элементы математической модели нейросети
- Искусственный нейрон — базовая вычислительная единица, имитирующая работу нервной клетки.
- Входные данные должны быть преобразованы в числовой вектор или тензор.
- Каждому входу нейрона присваивается числовой вес, определяющий его важность.
- Нейрон вычисляет взвешенную сумму всех своих входов.
- К полученной сумме добавляется параметр смещения (bias).
- На результат применяется нелинейная функция активации (например, ReLU).
- Множество нейронов, объединенных в слои, образует архитектуру нейронной сети.
- Связи между нейронами (веса) — это параметры, которые настраиваются в процессе обучения.
- Функция потерь (ошибки) количественно оценивает, насколько прогноз сети отличается от правильного ответа.
- Алгоритм обратного распространения вычисляет градиент функции ошибки по всем весам сети.
- Оптимизатор (например, SGD, Adam) использует градиенты для обновления весов и минимизации ошибки.
- Процесс обучения — это итеративная настройка весов на тренировочном наборе данных.
- Математическая модель позволяет формально анализировать свойства сети: емкость, сложность, сходимость.




























