205 lines
8.6 KiB
Markdown
205 lines
8.6 KiB
Markdown
---
|
|
status: processing
|
|
type: concept
|
|
tags:
|
|
- machine-learning
|
|
- neural-networks
|
|
created: 2025-12-17
|
|
updated: 2026-05-07
|
|
title: Нейронные сети
|
|
---
|
|
|
|
# Нейронные сети
|
|
|
|
Нейронные сети - модели машинного обучения, вдохновлённые принципами работы биологических нейронов. Их основа - набор связанных искусственных нейронов, которые преобразуют входной вектор $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$.
|
|
|
|
## Обучение с учителем
|
|
|
|
Процесс обучения с учителем:
|
|
|
|
$$
|
|
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 для многослойной нейронной сети]].
|
|
|
|
## Персептрон
|
|
|
|
**Персептрон**, или **перцептрон**, - математическая модель восприятия информации, предложенная Фрэнком Розенблаттом в 1957 году и реализованная в машине «Марк-1» в 1960 году.
|
|
|
|
Персептрон - один слой искусственных нейронов. Он решает задачу линейной разделимости: разделяет пространство признаков гиперплоскостью.
|
|
|
|
По смыслу это близко к [[Линейные модели|линейным моделям]], потому что решение строится через линейную комбинацию входных признаков и весов.
|
|
|
|
## Связанные заметки
|
|
|
|
- [[Обратное распространение ошибки]]
|
|
- [[Backpropagation для многослойной нейронной сети]]
|
|
- [[Линейные модели]]
|