# Что такое нейронная сеть? Структура глубокого обучения простым языком

> Спикер: 3Blue1Brown | Длительность: 18:40

## Ключевые идеи

1. **Нейрон — это просто число** — контейнер для значения от 0 до 1 (активация). Входной слой: 784 нейрона = яркость каждого пикселя изображения 28×28.

2. **Послойная архитектура** — входной слой (784) → скрытые слои (16+16) → выходной слой (10 цифр). Активации передаются от слоя к слою последовательно.

3. **Иерархия абстракций** — первые слои распознают рёбра, средние — паттерны (петли, линии), последние — комбинации паттернов, соответствующие цифрам.

4. **Веса определяют паттерн** — каждая связь между нейронами имеет вес. Положительные веса усиливают нужные пиксели, отрицательные подавляют ненужные.

5. **Смещение задаёт порог** — число, добавляемое к взвешенной сумме. Определяет, насколько сильным должен быть сигнал для активации нейрона.

6. **Сигмоида сжимает в [0, 1]** — функция активации превращает любое число в значение от 0 до 1. Отрицательные → ~0, положительные → ~1.

7. **13 000 параметров** — даже простая сеть 784-16-16-10 содержит ~13 000 настраиваемых весов и смещений.

8. **Детекция рёбер через веса** — положительные веса для пикселей ребра + отрицательные для окружения = нейрон-детектор ребра.

9. **Линейная алгебра — язык нейросетей** — переход между слоями: a' = σ(W·a + b). Матричное умножение оптимизируется библиотеками.

10. **Понимание лучше чёрного ящика** — знание структуры даёт точку опоры для отладки и улучшения сети.

11. **Простейшая сеть — фундамент** — полносвязная сеть без усложнений — база для понимания CNN, трансформеров и других архитектур.

## Транскрипт

### Введение: почему распознавание цифр — сложная задача

Видео начинается с цифры «3», написанной от руки и отрендеренной в низком разрешении 28×28 пикселей. Мозг мгновенно распознаёт её, несмотря на то что конкретные пиксели разных троек совершенно различны. Светочувствительные клетки глаза активируются по-разному для каждого варианта, но зрительная кора сводит их к одной идее.

Однако если попросить написать программу, которая принимает сетку 28×28 и выдаёт цифру от 0 до 9 — задача из тривиальной становится пугающе сложной.

### Цель серии видео

Автор ставит цель показать, что такое нейросеть на самом деле — не как модное слово, а как математическая структура. Первое видео посвящено архитектуре, второе — обучению. Рассматривается простейшая полносвязная сеть (без свёрток и других усложнений) для распознавания рукописных цифр из датасета MNIST.

### Что такое нейрон

Нейрон — это просто число между 0 и 1, называемое активацией. Входной слой сети — 784 нейрона, каждый хранит яркость пикселя: 0 = чёрный, 1 = белый. Можно представить, что нейрон «горит», когда его активация высока.

### Структура слоёв

784 нейрона — входной слой. 10 нейронов — выходной слой, каждый соответствует цифре 0-9. Между ними — два скрытых слоя по 16 нейронов (выбор числа слоёв и нейронов — предмет экспериментов). Активации передаются последовательно от слоя к слою. Самый яркий нейрон выходного слоя — ответ сети.

### Зачем нужна послойная структура

При распознавании цифр мы разбиваем образ на компоненты: 9 — петля сверху + вертикальная линия, 8 — две петли, 4 — три линии. В идеале предпоследний слой распознаёт такие подкомпоненты, а последний слой определяет, какая комбинация соответствует какой цифре.

Ещё глубже: распознавание петли разбивается на обнаружение рёбер. Второй слой может отвечать за маленькие рёбра, третий — за их комбинации в петли и линии. Этот принцип иерархии абстракций работает не только для изображений, но и для распознавания речи (звуки → слоги → слова → фразы).

### Веса и взвешенная сумма

Каждая связь между нейронами имеет вес. Для обнаружения ребра в определённой области: положительные веса назначаются пикселям ребра, отрицательные — окружающим пикселям. Взвешенная сумма максимальна, когда паттерн совпадает.

Веса можно визуализировать как сетку: зелёные пиксели = положительные веса, красные = отрицательные, яркость = величина.

### Сигмоида и смещение

Взвешенная сумма может быть любым числом, но нужно значение от 0 до 1. Сигмоида (логистическая кривая) сжимает число: отрицательные → ~0, положительные → ~1.

Смещение (bias) — число, добавляемое к взвешенной сумме перед сигмоидой. Например, смещение −10 означает: нейрон активируется, только если взвешенная сумма > 10.

### Масштаб параметров

16 нейронов второго слоя × 784 связи = 12 544 веса + 16 смещений — только для одного перехода. Всего в сети ~13 000 параметров. Обучение — поиск правильных значений для всех 13 000.

### Линейная алгебра

Активации слоя — вектор. Веса — матрица, строки которой соответствуют нейронам следующего слоя. Переход: a' = σ(W·a + b). Эта запись компактна, а библиотеки оптимизируют матричное умножение для скорости.

### Ценность понимания структуры

Понимание весов и смещений — не академическое упражнение. Когда сеть ошибается — вы знаете, где искать причину. Когда работает — можете проверить, по правильным ли причинам. Это лучше, чем воспринимать нейросеть как чёрный ящик.

## Практические задания

### Задание 1: Нарисуйте архитектуру сети на бумаге
Возьмите лист бумаги и нарисуйте четыре слоя: входной (784 нейрона, обозначьте как сетку 28×28), два скрытых (по 16 нейронов каждый) и выходной (10 нейронов, подпишите цифры 0-9). Соедините линиями нейроны соседних слоёв. Подпишите на нескольких связях «вес» и у нескольких нейронов «смещение». Цель — визуализировать масштаб: сколько связей между первым и вторым слоем (784×16 = 12 544).

### Задание 2: Разложите цифру на подкомпоненты
Выберите три цифры (например, 4, 8, 9). Для каждой запишите, из каких визуальных элементов она состоит: петли, вертикальные линии, горизонтальные линии, диагонали. Найдите общие элементы между цифрами. Это моделирует работу скрытых слоёв сети.

### Задание 3: Смоделируйте работу одного нейрона
Представьте сетку 4×4. Задайте веса для обнаружения вертикальной линии в левом столбце. Нарисуйте два изображения и посчитайте взвешенную сумму, смещение и сигмоиду для каждого.

### Задание 4: Запишите формулу и посчитайте размерности
Запишите a' = σ(W·a + b) и определите размерности матриц для каждого перехода в сети 784-16-16-10.

### Задание 5: Посчитайте общее число параметров
Вычислите: 784×16 + 16 + 16×16 + 16 + 16×10 + 10. Сверьте с ~13 000. Повторите для архитектуры 784-32-32-10.

### Задание 6: Визуализируйте веса как изображение
Нарисуйте сетку 7×7 и раскрасьте клетки зелёным/красным, чтобы получился детектор горизонтальной линии. Это моделирует визуализацию весов из видео.

## Лучшие цитаты

> «Когда я говорю нейрон, я хочу, чтобы вы думали просто о контейнере для числа — числа между нулём и единицей. Это действительно не более того.» — 3Blue1Brown

> «Суть работы сети как механизма обработки информации сводится к тому, как именно активации одного слоя порождают активации следующего.» — 3Blue1Brown

> «Задача превращается из комически тривиальной в пугающе сложную.» — 3Blue1Brown

> «Веса говорят вам, на какой пиксельный паттерн реагирует нейрон, а смещение говорит, насколько большой должна быть взвешенная сумма, чтобы нейрон начал значимо активироваться.» — 3Blue1Brown

> «Всего в этой сети почти ровно 13 000 весов и смещений. 13 000 ручек и переключателей, которые можно крутить, чтобы сеть вела себя по-разному.» — 3Blue1Brown

> «Я лично считаю это более удовлетворительным, чем просто воспринимать сеть как чёрный ящик.» — 3Blue1Brown

> «Огромная часть машинного обучения сводится к хорошему владению линейной алгеброй.» — 3Blue1Brown

> «Моя надежда в том, что вы уйдёте с ощущением, что сама структура мотивирована, и будете понимать, что значит, когда нейросеть обучается.» — 3Blue1Brown