Files
SecondBrain/90 Library/Machine Learning/Нейронные сети.sync-conflict-20260603-110321-23DMR5O.md
T
2026-06-03 14:09:18 +03:00

16 KiB
Raw Blame History

status, type, tags, created, updated, source, title
status type tags created updated source title
processing concept
machine-learning
neural-networks
2025-12-17 2026-05-14 МИАД_Л5_нейронки.pdf Нейронные сети

Нейронные сети

Нейронные сети - модели машинного обучения, вдохновлённые принципами работы биологических нейронов. Их основа - набор связанных искусственных нейронов, которые преобразуют входной вектор X в выходной вектор Y.

Два направления в ИИ

В исследованиях искусственного интеллекта можно выделить два направления:

  1. Моделирование результатов естественного мышления

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

    Примеры: системы нечёткого вывода, экспертные системы, построенные по принципу баз знаний.

  2. Моделирование механизмов естественного мышления

    • важны нейрофизиологические и психологические механизмы;
    • цель - воспроизвести эти механизмы техническими средствами.

    Нейронные сети относятся ко второму направлению.

Биологический нейрон

!Pasted image 20260410103922.png

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

Типы нейронов:

  1. Рецепторные - вводят в мозг сенсорную информацию от органов чувств.
  2. Промежуточные - трансформируют сигналы от рецепторных нейронов и передают их дальше.
  3. Эффекторные - формируют необходимое действие.

В 1957 году Фрэнк Розенблатт предложил модель персептрона. С 1970-х годов нейросетевое направление начало активно развиваться.

Одна из классических задач нейронных сетей - распознавание образов: букв, лиц, объектов и т.д.

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

Искусственный нейрон состоит из трёх основных элементов:

  • умножители, или синапсы;
  • сумматор;
  • нелинейный преобразователь, или функция активации.

!Pasted image 20260410105854.png

Функцию активации часто называют блоком нелинейного преобразования.

!Pasted image 20260410110002.png

Взвешенная сумма входов:


S=\sum\limits_{i=1}^{n}\omega_i x_i+b

где:

  • x_i - входной сигнал;
  • \omega_i - вес входа;
  • b - смещение (bias).

Смещение можно интерпретировать как порог срабатывания нейрона.

Функции активации

Функция активации добавляет нелинейность. Без неё многослойная сеть сводилась бы к одному линейному преобразованию, а значит не могла бы эффективно моделировать сложные зависимости.

Сигмоида

Функцией активации нейрона часто является сигмоида.

!Pasted image 20260410110555.png

Для логистической функции:


f'(x)=a f(x)(1-f(x))

Если a=1, то:


y'=y(1-y)

То есть производную можно вычислить через уже полученное значение функции. Это удобно для Обратное распространение ошибки.

!Pasted image 20260413130714.png

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

В качестве функции активации также используется гиперболический тангенс:


\operatorname{th}(x)
=
\frac{\operatorname{sh}(x)}{\operatorname{ch}(x)}
=
\frac{e^x-e^{-x}}{e^x+e^{-x}}
=
\frac{e^{2x}-1}{e^{2x}+1}

Как и логистическая функция, гиперболический тангенс является S-образной функцией, но он симметричен относительно начала координат. В точке 0 его значение равно 0.

Бинарная функция

Для сети Хопфилда может использоваться бинарная функция активации:


y_i =
\begin{cases}
1, \\
-1
\end{cases}

!Pasted image 20260413131243.png

В другом варианте бинарная функция возвращает:


y =
\begin{cases}
1, & S \ge \theta \\
0, & S < \theta
\end{cases}

где \theta - порог.

Модели нейронных сетей

Любая нейронная сеть выполняет нелинейное преобразование:


Y=F(X)

Сеть преобразует входной вектор:


X=(x_1,x_2,\dots,x_n)

в выходной вектор:


Y=(y_1,y_2,\dots,y_m)

Конкретный вид преобразования зависит от архитектуры сети, весов и функций активации.

Преимущество нейронных сетей - обучаемость. Веса сети можно представить как набор матриц. Суть обучения сводится к настройке этих весов так, чтобы для входного объекта X сеть выдавала выход Y, близкий к правильному ответу D.

Ассоциативная память

Отдельный класс составляют сети ассоциативной памяти, например Сеть Хопфилда и Сеть Хэмминга. Они ориентированы на хранение эталонных образов и распознавание входного сигнала по близости к этим эталонам.

Их особенность в том, что весовые коэффициенты рассчитываются один раз перед началом функционирования сети. После задания весов они обычно не корректируются: сеть не обучается итеративно в привычном смысле, а хранит набор эталонов и сопоставляет с ними входной образ.

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

По смыслу входной образ работает как ключ, по которому сеть "вспоминает" ближайший сохранённый образ.

Сеть Что выдаёт Когда удобна
Сеть Хопфилда восстановленный образ когда нужно получить полный эталон
Сеть Хэмминга номер ближайшего эталона когда достаточно классифицировать вход

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

Переобучение и обобщение

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

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

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

Способы борьбы:

  • Кросс-проверка — часть обучающей выборки резервируется как тестовая и не участвует в обучении. Если тестовая ошибка перестаёт убывать, обучение останавливают.
  • Уменьшение числа скрытых нейронов и/или слоёв.
  • Ограничение числа эпох обучения.

Эмпирическое правило для выбора размера сети и объёма данных:


2 \cdot (I + H + O) \le F \le 10 \cdot (I + H + O)

\frac{F}{10} - I - O \le H \le \frac{F}{2} - I - O

где I — число входов, H — число скрытых нейронов, O — число выходов, F — число обучающих примеров.

Этапы решения практических задач

  1. Формализация задачи — определить, какой смысл вкладывается в компоненты входного вектора X и выходного вектора Y.
  2. Подготовка данных — собрать или сгенерировать обучающую выборку.
  3. Предобработка данных — нормировка, кодирование нечисловых переменных, проверка коррелируемости, анализ периодичности. Подробнее: Предобработка данных для нейронных сетей.
  4. Задание структуры сети — выбор числа слоёв, числа нейронов в каждом слое и вида функций активации.
  5. Обучение сети — настройка весов, контроль переобучения, возможное включение шумов в обучающий процесс.
  6. Использование сети — применение обученной модели к новым данным.

Формализация задач

Многослойный перцептрон вычисляет отображение X \to Y. Поэтому любая задача для НС сводится к выбору смысла входного и выходного векторов. Жёстких рецептов нет — это экспертная задача.

Классификация

Вход X — вектор признаков объекта. Выход — вектор вероятностей принадлежности к M классам:


C = (c_1, c_2, \dots, c_M), \quad 0 \le c_m \le 1, \quad \sum_{m=1}^M c_m = 1

Кодировать номер класса одним выходом — некорректно: сеть интерполирует между числами классов и может относить объект к классу с промежуточным номером.

Прогнозирование временного ряда

Для прогнозирования функции f(t) используется метод окон: скользящее окно W_i размера n формирует входной вектор из исторических значений, а окно W_o размера m — целевой вектор (значения через интервал прогнозирования \delta_0).


X = \bigl(f(t_0),\, f(t_0 - \delta_1),\, \dots,\, f(t_0 - \delta_1 - \dots - \delta_n)\bigr) \to Y = f(t_0 + \delta_0)

Аппроксимация многомерной функции

Для функции Y = f(X) с N_I входами и N_O выходами строится сеть с N_I входами и N_O выходами. Сеть обучается на известных значениях функции.

Обучение с учителем

Процесс обучения с учителем:


X^{(1)} \rightarrow D^{(1)} \approx Y^{(1)}

X^{(2)} \rightarrow D^{(2)} \approx Y^{(2)}

\vdots

X^{(p)} \rightarrow D^{(p)} \approx Y^{(p)}

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

Для многослойных сетей основной алгоритм вычисления градиентов - Обратное распространение ошибки. Для сети с произвольным числом слоёв схема вынесена в Backpropagation для многослойной нейронной сети.

Персептрон

Базовая однослойная модель классификации вынесена в отдельную заметку Персептрон. Она показывает, как нейронная сеть может разделять пространство признаков гиперплоскостью и почему линейная разделимость является важным ограничением простых моделей.

Связанные заметки

  • Обратное распространение ошибки
  • Backpropagation для многослойной нейронной сети
  • Персептрон
  • Сеть Хопфилда
  • Сеть Хэмминга
  • Нейронная сеть Кохонена
  • Предобработка данных для нейронных сетей
  • Обучение без учителя. Алгоритм Хебба
  • Линейные модели