Что такое нейронная сеть? Структура глубокого обучения простым языком
Наглядное объяснение структуры нейронной сети: нейроны, слои, веса, смещения и сигмоида на примере распознавания рукописных цифр
Для AI-агентов и LLM
Экстракт доступен в структурированном Markdown. Скачать .md · JSON API · Site index
💡 Ключевые тезисы (11)
1 Нейрон — это просто число #
2 Послойная архитектура — основа нейросети #
3 Слои строят абстракции от простого к сложному #
4 Веса определяют, на какой паттерн реагирует нейрон #
5 Смещение (bias) задаёт порог срабатывания нейрона #
6 Сигмоида сжимает любое число в диапазон от 0 до 1 #
7 13 000 параметров — масштаб даже простой сети #
8 Распознавание ребра — конкретный пример работы нейрона #
9 Линейная алгебра — язык нейросетей #
10 Понимание структуры важнее чёрного ящика #
11 Простейшая сеть — фундамент для всех современных вариантов #
Что такое нейронная сеть? Структура глубокого обучения простым языком
Спикер: 3Blue1Brown | Длительность: 18:40
Транскрипт
Введение: почему распознавание цифр — сложная задача
Видео начинается с цифры «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
🏋️ Практикум
Нарисуйте архитектуру сети на бумаге
Возьмите лист бумаги и нарисуйте четыре слоя: входной (784 нейрона, обозначьте как сетку 28×28), два скрытых (по 16 нейронов каждый) и выходной (10 нейронов, подпишите цифры 0-9). Соедините линиями нейроны соседних слоёв. Подпишите на нескольких связях «вес» и у нескольких нейронов «смещение». Цель — визуализировать масштаб: сколько связей между первым и вторым слоем (784×16 = 12 544).
Разложите цифру на подкомпоненты
Выберите три цифры (например, 4, 8, 9). Для каждой запишите, из каких визуальных элементов она состоит: петли, вертикальные линии, горизонтальные линии, диагонали. Найдите общие элементы между цифрами. Это упражнение моделирует то, что в идеале делают скрытые слои сети — разбивают сложные образы на простые компоненты.
Смоделируйте работу одного нейрона вручную
Представьте сетку 4×4 пикселей (упрощение). Задайте веса для обнаружения вертикальной линии в левом столбце: +1 для левого столбца, −1 для остального. Нарисуйте два изображения — с вертикальной линией слева и без неё. Посчитайте взвешенную сумму для каждого. Добавьте смещение −2 и примените сигмоиду (приблизительно). Убедитесь, что нейрон «горит» только для нужного паттерна.
Запишите формулу перехода между слоями
Запишите математическую формулу: a' = σ(W·a + b), где a — вектор активаций текущего слоя, W — матрица весов, b — вектор смещений, σ — сигмоида. Определите размерности для каждого перехода в сети 784-16-16-10. Например, для первого перехода: W имеет размер 16×784, a — 784×1, b — 16×1, результат — 16×1.
Посчитайте общее число параметров
Для сети 784-16-16-10 самостоятельно посчитайте количество параметров: веса между слоями (784×16 + 16×16 + 16×10) плюс смещения (16 + 16 + 10). Сверьте с числом ~13 000 из видео. Затем посчитайте параметры для другой архитектуры, например 784-32-32-10, чтобы понять, как число нейронов влияет на сложность.
Визуализируйте веса как изображение
Нарисуйте сетку 7×7 (упрощение 28×28). Раскрасьте клетки зелёным (положительный вес) и красным (отрицательный вес) так, чтобы получился детектор горизонтальной линии в верхней части. Яркость клетки — величина веса. Это моделирует визуализацию весов из видео, где веса можно представить как «шаблон» пикселей, на который реагирует нейрон.
💬 Цитаты (8)
«Когда я говорю нейрон, я хочу, чтобы вы думали просто о контейнере для числа — числа между нулём и единицей. Это действительно не более того. (When I say neuron, all I want you to think about is a thing that holds a number, specifically a number between zero and one. It's really not more than that.)» #
«Суть работы сети как механизма обработки информации сводится к тому, как именно активации одного слоя порождают активации следующего. (The heart of the network as an information processing mechanism comes down to exactly how those activations from one layer bring about activations in the next layer.)» #
«Моя надежда в том, что вы уйдёте с ощущением, что сама структура мотивирована, и будете понимать, что значит, когда нейросеть обучается. (My hope is just that you come away feeling like the structure itself is motivated and to feel like you know what it means when you read or you hear about a neural network learning.)» #
«Веса говорят вам, на какой пиксельный паттерн реагирует нейрон, а смещение говорит, насколько большой должна быть взвешенная сумма, чтобы нейрон начал значимо активироваться. (The weights tell you what pixel pattern this neuron is picking up on and the bias tells you how high the weighted sum needs to be before the neuron starts getting meaningfully active.)» #
«Всего в этой сети почти ровно 13 000 весов и смещений. 13 000 ручек и переключателей, которые можно крутить, чтобы сеть вела себя по-разному. (This network has almost exactly 13,000 total weights and biases. 13,000 knobs and dials that can be tweaked and turned to make this network behave in different ways.)» #
«Задача превращается из комически тривиальной в пугающе сложную. (The task goes from comically trivial to dauntingly difficult.)» #
«Я лично считаю это более удовлетворительным, чем просто воспринимать сеть как чёрный ящик. (I personally find this satisfying rather than just treating the network as a total black box.)» #
«Огромная часть машинного обучения сводится к хорошему владению линейной алгеброй. (So much of machine learning just comes down to having a good grasp of linear algebra.)» #
Популярное в категории
Читать далее
3Blue1Brown
Мастерство визуальной математики: как создавать бесконечные циклы в стиле Эшера
Грант Сандерсон (3Blue1Brown)
Поделитесь с коллегами