vault backup: 2026-05-14 19:41:51

This commit is contained in:
Dmitry
2026-05-14 19:41:51 +03:00
parent 4742fcddc7
commit cd3523f0b3
6 changed files with 221 additions and 10 deletions
@@ -6,6 +6,7 @@ tags:
- neural-networks
created: 2025-12-17
updated: 2026-05-14
source: "[[МИАД_Л5_нейронки.pdf]]"
title: Нейронные сети
---
@@ -182,6 +183,66 @@ $$
Обе сети относятся к моделям ассоциативной памяти, но решают задачу на разном уровне: сеть Хопфилда восстанавливает состояние, а сеть Хэмминга выбирает ближайший сохранённый образ.
## Переобучение и обобщение
**Обобщение** — способность сети делать точный прогноз на данных, не входивших в обучающую выборку.
**Переобучение** возникает, если алгоритм обучения работает слишком долго или сеть слишком сложна для объёма данных: сеть "запоминает" обучающие примеры вместо того, чтобы выявить общую зависимость. Симптом: ошибка на обучающей выборке продолжает убывать, а ошибка на тестовой — перестаёт убывать или растёт.
Сети с большим числом весов моделируют более сложные функции и сильнее склонны к переобучению. Сети с малым числом весов могут оказаться недостаточно гибкими.
**Способы борьбы**:
- **Кросс-проверка** — часть обучающей выборки резервируется как тестовая и не участвует в обучении. Если тестовая ошибка перестаёт убывать, обучение останавливают.
- Уменьшение числа скрытых нейронов и/или слоёв.
- Ограничение числа эпох обучения.
**Эмпирическое правило** для выбора размера сети и объёма данных:
$$
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$ выходами. Сеть обучается на известных значениях функции.
## Обучение с учителем
Процесс обучения с учителем:
@@ -217,4 +278,7 @@ $$
- [[Персептрон]]
- [[Сеть Хопфилда]]
- [[Сеть Хэмминга]]
- [[Нейронная сеть Кохонена]]
- [[Предобработка данных для нейронных сетей]]
- [[Обучение без учителя. Алгоритм Хебба]]
- [[Линейные модели]]