Глубокое обучение от A до Z · 3-2

Детали нейросети — от перцептрона до обратного распространения ошибки

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

1958Представлен перцептрон [R1]
1986Статья об обратном распространении ошибки [R3]
12функций активации, которые можно построить самому
0.25максимум производной сигмоиды = зерно затухания градиента
3оптимизатора в соревновании бок о бок
2 примеракода, которые сразу запускаются в Colab
1Перцептрон

Перцептрон — взвешивает входы и делит их одной прямой

y = ступенька(w₁x₁ + w₂x₂ + b)Rosenblatt, 1958

У дрозофилы

Когда одновременно пахнет фруктами и уксусом, нейрон получает оба сигнала с разной силой и складывает их. Если сумма превышает порог возбуждения, он посылает сигнал «приближайся». Сила синапса — это вес, порог возбуждения — смещение.

В нейросети

Каждый вход умножается на свой вес, всё складывается, добавляется смещение; если полученное z не меньше 0, на выходе 1, иначе 0. На плоскости одна прямая w₁x₁ + w₂x₂ + b = 0 отделяет «еду» от «не еды». Правило обучения перцептрона: каждый раз, встречая неверно классифицированную точку, немного сдвигать прямую в сторону этой точки.

Задача

Пояснение для начинающих

Правило обучения перцептрона умещается в одну строку. Выбираем одну ошибочную точку: w ← w + η·(ответ − прогноз)·x. Если правильный ответ 1, а сеть сказала 0, прямая подтягивается к этой точке, в обратном случае — отталкивается. Если задача делится прямой, одно это правило рано или поздно правильно классифицирует все точки.

Задачу вроде XOR — «еда, только когда есть ровно один из двух запахов» — нельзя разделить никакой прямой. После того как в 1969 году Минский и Пейперт математически показали это ограничение, исследования нейросетей на время затихли. Решение — добавить ещё один слой, то есть скрытый слой. Но сначала посмотрим на функции, которые изгибаются плавно, а не ступенькой.

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

Функции активации — как изогнуть сигнал

Функция активации получает взвешенную сумму z и определяет выход нейрона a. Только при наличии изгиба складывать слои имеет смысл, а форма градиента (производной) определяет скорость обучения.

функция f(z)производная f′(z)текущий вход z
Вход z

Затухание градиента — почему ReLU стала стандартом

При обратном распространении ошибки на каждом слое, через который мы проходим назад, градиент умножается на производную функции активации. Производная сигмоиды не превышает 0,25. Пройдя назад 10 слоёв, сигнал уменьшится как минимум в 0,25¹⁰ ≈ 0,00000095 раза. До первых слоёв сигнал «исправься» почти не доходит. Это и есть затухание градиента.

У ReLU производная на положительном участке ровно 1, поэтому сигнал не ослабевает, сколько бы слоёв мы ни прошли назад, а вычисление сводится к «сравнению с 0» и потому быстрое. Зато на отрицательном участке производная равна 0, и однажды выключившийся нейрон может уже не ожить. Варианты вроде Leaky ReLU, ELU и Swish — попытки закрыть эту брешь. Ни одна функция не лучшая всегда: выбор зависит от задачи и модели.

3Скрытые слои

Скрытые слои — складывать слои имеет смысл только с функцией активации

вход 2 → скрытый → скрытый → выход 1те же данные, та же структура, отличается только функция активации

Нейронов в каждом скрытом слое

линейное ∘ линейное = линейное

Если складывать слои без функции активации, W₂(W₁x) = (W₂W₁)x, то есть это то же самое, что одна матрица весов. Например, если W₁ = [[1, 2], [0, 1]], W₂ = [[2, 0], [1, 1]], то W₂W₁ = [[2, 4], [1, 3]]. Пройти два слоя или одну эту матрицу — результат одинаков. Даже сложив 100 слоёв, можно провести лишь одну прямую.

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

4Обучение представлений

Обучение представлений — с каждым слоем признаки становятся абстрактнее

Точки (пиксели) → направления → стыки → формы. Из признаков предыдущего слоя следующий слой строит признаки на ступень крупнее.

Входная фигура

Один нейрон в числах

4 признака предыдущего слоя (0.8, 0.1, 0.4, 0.0) взвешиваются весами (0.5, 0.3, 0.2, 0.1), и добавляется смещение 0.1.

z = 0.8×0.5 + 0.1×0.3 + 0.4×0.2 + 0.0×0.1 + 0.1
= 0.40 + 0.03 + 0.08 + 0.00 + 0.10 = 0.61
a = ReLU(0.61) = max(0, 0.61) = 0.61

Признаки, заданные человеком, и признаки, выученные самостоятельно

Детекторы направлений и стыков на рисунке выше — правила, заранее заданные человеком для наглядности. В классическом машинном обучении признаки действительно проектировал человек. Глубокое обучение само выучивает веса таких детекторов из данных. Поэтому оно находит и признаки, о которых человек не подумал.

Какие признаки на самом деле возникают на каждом слое при работе с изображениями, мы увидим в 3-3 (Изображения и CNN).

5Функция потерь

Функция потерь (функция стоимости) — степень ошибки одним числом

Обучение — это уменьшение потерь. От того, что выбрать в качестве потерь, зависит, «чего будет бояться» модель.

Среднеквадратичная ошибка (MSE)

(ответ − прогноз)². Основа для задач регрессии, где нужно угадать число. Применяется для прогноза непрерывных величин — цен на жильё, расходов домохозяйств, температуры. Эту функцию потерь использует панель обратного распространения ниже.

Перекрёстная энтропия (Cross-Entropy)

−log(вероятность, отданная правильному ответу). Основа для задач классификации. Если модель ошибается уверенно, штраф растёт неограниченно. Используется в паре с сигмоидой или софтмаксом на выходе.

Правильный ответ
Предсказанная моделью вероятность p

Почему для классификации — перекрёстная энтропия

Если на выходе сигмоида, градиент MSE равен 2(p − t)·p(1 − p). Если правильный ответ 1, а модель уверенно ошибается с p = 0.01, то p(1 − p) близко к 0, и градиент тоже почти 0. Ошибка большая, а сигнал «исправься» слабый. С перекрёстной энтропией производная сигмоиды аккуратно сокращается, и градиент равен просто p − t, то есть −0.99. Чем сильнее ошибка, тем сильнее исправление.

6Обратное распространение

Градиентный спуск и обратное распространение ошибки — угадать, измерить, распределить назад и исправить

вход 2 → скрытый 3 → выход 1цель 1.00 · потери = (цель − выход)² · скорость обучения 0.1

01 Прямой проход

Сначала угадываем

Вход проходит по связям, и вычисляется выход. Первый выход — 0.41.

02 Потери

Измеряем, насколько ошиблись

(1.00 − 0.41)² ≈ 0.35. Это MSE из раздела 5 выше.

03 Обратное распространение

Распределяем вину

Двигаясь от выхода назад, вычисляем ответственность (градиент) каждого веса.

04 Обновление

Исправляем понемногу

Новый вес = старый − скорость обучения × градиент. Это и есть градиентный спуск.

01 Прямой проход→ 02 Потери→ 03 Обратное распространение→ 04 Обновление↺ снова

Если нажать на ячейку веса, соответствующая связь выделится на рисунке, а блок «Шаг за шагом в числах» ниже покажет вычисление для этого веса.

Скорость
Скорость обучения η
Изменяемые связи

Шаг за шагом в числах — один цикл для одного веса

Обратное распространение ошибки — это «передача ответственности через умножение»

Сначала на выходе определяется величина ошибки −2 × (цель − выход). Ответственность веса «скрытый→выход» — это она, умноженная на сигнал, пришедший по этому весу (значение скрытого нейрона). Для веса «вход→скрытый» нужно пройти назад ещё на шаг: умножаем на выходной вес v, чтобы передать ответственность скрытому нейрону, умножаем на h(1 − h) — насколько чувствителен был скрытый нейрон, — и умножаем на пришедший вход x. Это «умножить и передать назад» и есть цепное правило. Затухание градиента из раздела 2 возникает именно из-за этого умножения.

Если нажать «Только выходные (способ дрозофилы)», веса «вход→скрытый» фиксируются, и обучающий сигнал, приходящий сверху (аналогия с дофамином у дрозофилы), исправляет только выходные связи. Это сильно упрощённая аналогия со структурой обучения в грибовидном теле дрозофилы; вычисляется ли дофаминовый сигнал подобно градиенту, пока исследуется.

7Оптимизаторы

Оптимизаторы — три походки для спуска в долину

Если изобразить потери как рельеф, обучение — это спуск к самой низкой точке. Видя один и тот же градиент, разные оптимизаторы по-разному делают шаг.

SGD: шаг размером с градиентМоментум: добавляет накопленную инерциюAdam: подбирает длину шага для каждого направления
Скорость обучения η
Шум мини-батча
SGD: w ← w − η·g
Моментум: v ← 0.9·v − η·g,  w ← w + v
Adam: m ← 0.9·m + 0.1·g,  s ← 0.999·s + 0.001·g²,  w ← w − η·m̂ / (√ŝ + ε)  (m̂, ŝ — значения с поправкой на начальное смещение)

Пояснение для начинающих

Эта долина длинная по горизонтали и крутая по вертикали. SGD движется ровно на величину градиента, поэтому в крутом вертикальном направлении скачет вверх-вниз большими шагами (зигзаг), а при малой скорости обучения в пологом горизонтальном направлении ползёт черепашьим шагом (проверьте на «0.1 малая»). Моментум запоминает накопленную скорость, ускоряется в устойчивом направлении (по горизонтали), а зигзаги взаимно гасятся. Adam отдельно измеряет величину градиента по каждому направлению и подбирает длину шага, поэтому спускается по горизонтали и вертикали примерно с одинаковой скоростью.

«Шум мини-батча» — это колебания, возникающие, когда градиент считается лишь по части данных, как при реальном обучении. Если выбрать скорость обучения «большая», SGD перелетает через стенку долины и вылетает наружу. Ни один оптимизатор не побеждает всегда. Adam широко используют как надёжный вариант по умолчанию для большинства задач, но есть исследования, где в ряде задач глубокого обучения хорошо настроенный SGD лучше работал на новых данных [R12].

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

Переобучение и регуляризация — выучить наизусть или понять

14 обучающих точек · 80 проверочных точеквход 1 → скрытый 48 (tanh) → выход 1, Adam

Дропаут
Затухание весов (L2)
Ранняя остановка

Три средства

  1. Ранняя остановка: берём модель в точке, где проверочные потери были минимальны. Самое простое средство, используется почти всегда.
  2. Дропаут: на каждом шаге обучения случайно отключаем часть скрытых нейронов. Это не даёт сети заучивать точки, опираясь на несколько определённых нейронов. При тестировании все нейроны включены.
  3. Затухание весов (L2): чем больше веса, тем больший штраф добавляется к потерям. Это не даёт кривой стать чрезмерно извилистой.

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

9Весь процесс

Весь процесс создания модели — от данных до развёртывания

Все детали, которые мы видели до сих пор, относятся к одному этапу — обучению. В реальной работе то, что до и после него, занимает больше. Пример — модель «поиска брака» на контрольном посту завода.

① Сбор→ ② Разделение→ ③ Предобработка→ ④ Обучение→ ⑤ Оценка→ ⑥ Сохранение и развёртывание→ ⑦ Мониторинг

⑤ Оценка — если смотреть только на долю верных ответов, легко обмануться

Из 200 проверенных изделий действительно бракованных — 20. Модель выдаёт для каждого изделия «вероятность брака». Попробуйте менять, начиная с какого значения изделие признаётся браком (порог).

Порог признания брака

Частые ошибки на каждом этапе

  1. Разделение: тестовые данные используются только один раз, в самом конце. По проверочным данным выбирают настройки, а по тестовым измеряют итоговое качество. Данные с временным порядком не перемешивают случайно: обучают на прошлом, оценивают на будущем (подробнее в 3-6).
  2. Предобработка: параметры масштабирования (стандартизации), такие как среднее и стандартное отклонение, вычисляются только по обучающим данным. Если считать их по всем данным, в обучение просочится информация из теста (утечка данных).
  3. Оценка: если брака всего 10%, то даже ответ «всё годное» даёт долю верных ответов (accuracy) 90%. Смотрите одновременно на то, что нельзя пропустить (полнота, recall), и на цену ложных тревог (точность, precision).
  4. Развёртывание и мониторинг: если на заводе сменилось освещение или поступили новые детали, данные меняются и качество падает. После развёртывания продолжайте измерять качество и при необходимости переобучайте модель заново.

Код для Colab — запустите эту страницу сами

Оба примера используют только библиотеки, предустановленные в Colab. Нажмите «Скачать блокнот (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового блокнота.

Код 1 · Маленькая нейросеть своими руками на NumPyсвязан с разделами 3·5·6·8 · numpy, matplotlib · CPU около 10 с

Четыре этапа — прямой проход → потери → обратное распространение → обновление — перенесены в код как есть, без библиотек. На одних и тех же данных-спиралях обучаем и сравниваем вариант «без функции активации» и «скрытые слои tanh». Чтобы подставить свои данные, замените только X и y в месте кода с пометкой [Чтобы подставить свои данные].

Результат выполнения (запуск 2026-10-03, numpy 2.4 · CPU). Генератор случайных чисел зафиксирован, поэтому результат воспроизводится.
Код 2 · Та же нейросеть на Keras + защита от переобучениясвязан с разделами 2·3·7·8·9 · tensorflow(Keras) · CPU около 1–2 мин

Так делают на практике. Сравниваем три модели — без функции активации / ReLU / ReLU + дропаут + ранняя остановка — и сохраняем последнюю модель в файл (⑥ сохранение из раздела 9).

Промпты для ИИ — этот код как отправная точка

Это промпты, которые можно вставить в ИИ-помощника вроде ChatGPT, Qwen или Claude. Если нажать «Копировать», после промпта будет добавлен выбранный код. Замените текст в 〔 〕 на свою ситуацию.

Код, который добавить

Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если для конкурса или статьи вы пользовались помощью ИИ, укажите факт и объём использования согласно правилам организаторов и журнала.

Глоссарий

Это тот же словарь, что и жёлтое пунктирное подчёркивание в тексте. Во всей серии используются одни и те же обозначения. Нажмите на название раздела, чтобы перейти к месту первого упоминания.

Собрание аналогий — и где аналогии ошибаются

Аналогия — первый шаг к пониманию, но и семя заблуждения. Для аналогий с дрозофилой и мозгом указана сила. Прямая есть данные, что это действительно делает то же самое · Частичная похожи лишь некоторые свойства · Нет соответствие неизвестно

ПонятиеБытовая аналогияАналогия с дрозофилой и мозгомГде аналогия ошибается
ВесСтепень доверия, разная для каждого мненияЧастично Сила синапсаРеальные синапсы меняют силу в зависимости от времени и состояния организма, а сигнал — не непрерывное число, а электрические импульсы (спайки)
Смещение · порогПланка, по которой принимается решениеЧастично Порог возбуждения нейронаПорог нейрона не фиксирован: он постоянно меняется из-за утомления и адаптации
Функция активацииРучка громкости, которую нельзя выкрутить выше пределаЧастично Кривая частоты разрядов в зависимости от силы стимулаНейросеть выдаёт одно число, а нейрон посылает импульсы во времени
Скрытый слойМенеджер среднего звена, который собирает и обобщает отчётыЧастично Клетки Кеньона грибовидного телаВходные связи грибовидного тела в основном не меняются при обучении. Скрытые слои в глубоком обучении обучают все связи
Функция потерьБланк проверки экзаменаЧастично Результат в виде сахара (награда) или удара током (наказание)Дрозофила не вычисляет «насколько она ошиблась» одним числом
Обратное распространение ошибкиРазбор после аварии: кто виноват, с конца к началуНет Дофаминовый сигнал не вычисляется в обратном направлении по слоямДелает ли мозг что-то похожее на обратное распространение ошибки другим способом, пока исследуется
Скорость обученияНасколько сильно исправляешься после одного замечанияЧастично Насколько меняется синапс после одного опытаВеличина изменений в мозге зависит от ситуации, внимания и повторения
ОптимизаторПоходка туриста, спускающегося с горы в туманеНетРеальный рельеф потерь имеет миллионы измерений, и его нельзя охватить взглядом, как на рисунке
ПереобучениеАбитуриент, заучивший только ответы на прошлогодние заданияНетЛюди тоже заучивают, но обобщают иначе, чем нейросети
ДропаутКоманда, которая работает, даже если несколько человек отсутствуютНет Есть толкование, что это похоже на случайные сбои синаптической передачи, но доказательства слабыеПри тестировании все нейроны включены. Члены команды отсутствуют не всегда

Об авторе и источники

E-1 Об авторе · E-2 Научные источники · E-3 Материалы к рисункам

E-1 Об авторе

Сансон Ан (генеральный директор M-Robo)

Работал в Корейской корпорации электробезопасности и газете «Мэиль Кёндже» (Maeil Business Newspaper), а затем основал M-Robo — внешнее венчурное предприятие «Мэиль Кёндже», где сейчас является генеральным директором. M-Robo — медиавенчур, начинавший как внутренний стартап СМИ: он предоставлял газете «Кукмин Ильбо» робота-журналиста (StockBot) и выполнил множество проектов для Корейского агентства интернета и безопасности (KISA), Корейского фонда прессы, Корейского агентства по продвижению радиовещания и связи и других организаций. Сейчас компания развивает собственное ИИ-новостное издание Money-Robo. За время руководства компанией выиграл Asia Open Data Hackathon и дважды получил награду министра внутренних дел и безопасности за вклад в сфере дата-стартапов; является изобретателем и правообладателем 5 патентов в области искусственного интеллекта и блокчейна. Автор книги «Преступления с ИИ и самозащита»; разрабатывал электронные учебные курсы по финтеху, статистике и искусственному интеллекту для Онлайн-института непрерывного образования Корейского технологического и образовательного университета (KOREATECH). Высшая учёная степень — доктор экономических наук (Университет Тонгук, микроэкономика с математическими методами). Преподаёт дисциплины, связанные с данными и искусственным интеллектом, в нескольких университетах, в том числе в Университете Кукмин и Университете Хосо. Подробный профиль

Лекции

  • Сансон Ан (2025). Конспект лекций «Наука о данных для бизнеса». Кафедра конвергенции искусственного интеллекта, Открытый кибер-университет Кореи.
  • Сансон Ан (2025). [K-Digital] Обработка естественного языка с помощью ИИ. STEP (Платформа интеллектуального профессионального обучения), Онлайн-институт непрерывного образования Корейского технологического и образовательного университета.
  • Сансон Ан (2024). [K-Digital] Основы анализа финтех-данных. STEP (Платформа интеллектуального профессионального обучения), Онлайн-институт непрерывного образования Корейского технологического и образовательного университета.

Курсы на STEP: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
Если из-за обновления сайта ссылки не открываются, заходите на www.step.or.kr.

Статьи и доклады

  • Сансон Ан (2025). Модель прогнозирования расходов домохозяйств на основе панельных данных о пенсионном обеспечении (KReIS): подход на основе моделей искусственного интеллекта. «Будущее общество» (Mirae Sahoe), 16(2). Полный текст
  • Сансон Ан (2025). Модель прогнозирования расходов домохозяйств на основе панельных данных о пенсионном обеспечении (KReIS): подход с использованием ИИ. Доклад на научной конференции по панельному исследованию пенсионного обеспечения (2025.05.13), Национальный институт пенсионных исследований, Национальная пенсионная служба Кореи. Материалы доклада
  • Сансон Ан (2025). Алгоритм обнаружения подозрительных сделок с наркотиками по текстам в соцсетях: анализ шаблонов и контекста. «Будущее общество» (Mirae Sahoe), 16(1). Полный текст
  • Сансон Ан (2024). Статистический подход к противодействию состязательным данным для защиты моделей обнаружения аномалий в финансовой сфере: эмпирический анализ и результаты моделирования. «Будущее общество» (Mirae Sahoe), 15(3). Полный текст
  • Сансон Ан (2024). Решение на основе ИИ для обнаружения публикаций в соцсетях по характеристикам виртуальных персонажей. Стендовый доклад на 2024 Summer Newmedia Party (2024.06.19), Сеульский университет медиа (аспирантура).
  • Сансон Ан (2024). Модель машинного обучения на панельных данных о производственном травматизме. Стендовый доклад на 10-й научной конференции по панели страхования от несчастных случаев на производстве (2024.05.17), Институт социального обеспечения работников, Корейская служба социального обеспечения работников.
  • Сансон Ан (2024). Анализ и прогнозирование временных рядов виртуальных активов: сравнение моделей временных рядов и моделей ИИ, предложения по улучшению. «Будущее общество» (Mirae Sahoe), 15(1). Полный текст

E-2 Научные источники

  1. [R1] Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408. doi:10.1037/h0042519 — раздел 1
  2. [R2] Minsky, M. L., & Papert, S. (1969). Perceptrons. MIT Press. — раздел 1 (ограничение XOR)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. doi:10.1038/323533a0 — разделы 4·6
  4. [R4] Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted Boltzmann machines. Proceedings of ICML 2010, 807–814. — раздел 2 (ReLU)
  5. [R5] Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013). Rectifier nonlinearities improve neural network acoustic models. ICML 2013 Workshop on Deep Learning for Audio, Speech and Language Processing. — раздел 2 (Leaky ReLU)
  6. [R6] He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. Proceedings of ICCV 2015, 1026–1034. doi:10.1109/ICCV.2015.123 — раздел 2 (PReLU)
  7. [R7] Clevert, D.-A., Unterthiner, T., & Hochreiter, S. (2016). Fast and accurate deep network learning by exponential linear units (ELUs). ICLR 2016. arXiv:1511.07289 — раздел 2 (ELU)
  8. [R8] Klambauer, G., Unterthiner, T., Mayr, A., & Hochreiter, S. (2017). Self-normalizing neural networks. Advances in Neural Information Processing Systems 30. arXiv:1706.02515 — раздел 2 (SELU)
  9. [R9] Ramachandran, P., Zoph, B., & Le, Q. V. (2017). Searching for activation functions. arXiv:1710.05941 — раздел 2 (Swish)
  10. [R10] Misra, D. (2020). Mish: A self regularized non-monotonic activation function. BMVC 2020. arXiv:1908.08681 — раздел 2 (Mish)
  11. [R11] Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. ICLR 2015. arXiv:1412.6980 — раздел 7
  12. [R12] Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in Neural Information Processing Systems 30. arXiv:1705.08292 — раздел 7 (сравнение обобщающей способности Adam и SGD)
  13. [R13] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(56), 1929–1958. jmlr.org — раздел 8
  14. [R14] LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444. doi:10.1038/nature14539 — разделы 3·4
  15. [R15] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — разделы 5·7·8·9 (функции потерь, оптимизация, регуляризация, ранняя остановка)

E-3 Материалы к рисункам

Следующие материалы использованы как ориентир для структуры и содержания.

  • DataCraft Hub, "Activation Functions — Adding Nonlinearity to Neural Networks" (Series 01 · 05), инфографика — разделы 2·3
  • DataCraft Hub, "Representation Learning — How Neural Networks Learn Useful Representations" (Series 01 · 06), инфографика — раздел 4
  • mltut, "Activation Functions", инфографика — раздел 2. Hard Sigmoid дана по определению с рисунка (0.2x + 0.5)
  • mltut, "A Quick Guide to Neural Networks", инфографика — разделы 1·3
  • "How AI Learns? From Data to Intelligence", инфографика (автор не указан) — раздел 9
  • "How a neural network actually learns", обучающая анимация (21 с, автор не указан) — начальные значения в разделе 6

Советы преподавателю

Практические рекомендации для преподавателей, наставников по OJT (обучению на рабочем месте) и тьюторов. Время указано ориентировочно — подстраивайте его под реальное занятие.

АудиторияСтуденты и работающие специалисты, впервые изучающие нейросети. С базовыми знаниями Python — вплоть до практики в Colab, без них — до анимаций в основном тексте
Предварительные знанияУмножение и сложение, чтение графиков функций. О производной достаточно знать «производная = насколько меняется результат при небольшом изменении входа»
Цели обучения① Объяснять, что делают перцептрон, функция активации и скрытый слой ② Пошагово в числах проходить прямой проход → потери → обратное распространение → обновление ③ Распознавать переобучение и бороться с ним с помощью проверочных данных, ранней остановки и дропаута
Ориентировочное времяЧтение 40–50 мин · демонстрация анимаций 25 мин · практика в Colab 30 мин (код 1 — 10 мин, код 2 — 20 мин)

Три варианта занятия

Лекция, 50 мин

Упор на понятия

Введение 5 мин (демонстрация неудачи на XOR из раздела 1) → демонстрация разделов 2·3 15 мин → панель разделов 5·6 15 мин → переобучение из раздела 8 10 мин → проверочные вопросы 5 мин.

OJT на рабочем месте, 90 мин

Упор на применение в работе

Панель раздела 6 15 мин → разделы 8·9 25 мин (обсуждение ловушки точности на рабочих примерах) → практика с кодом 2 30 мин → «применение к данным нашей команды» по карточкам с промптами 20 мин.

Индивидуальные занятия

Темп по уровню

Новичкам — только разделы 1·2·3·6; слушатели среднего уровня один раз вручную считают «Шаг за шагом в числах» из раздела 6, а затем сверяют с частью кода 1, отвечающей за обратное распространение.

Ключевые моменты по разделам

РазделВопрос, на котором стоит остановитьсяСовет по управлению
1 Перцептрон«Почему на XOR, как ни двигай прямую, всё равно остаются ошибочные точки?»Сначала обучите на простой задаче и покажите успех, затем переключите на XOR
2 Функции активации«Где и чему равен максимум производной сигмоиды?»Остановите на сигмоиде, передвиньте ползунок к 0 и убедитесь, что получается 0.25
3 Скрытые слои«Мы сложили два слоя — почему слева всё ещё прямая?»Уменьшите число нейронов до 4 и покажите, что правая сеть тоже не справляется
4 Обучение представлений«Почему □ распознаётся по 4 углам? На что посмотрел бы человек?»Переключайте T и L по очереди и обратите внимание, что меняется только слой стыков
5 Функция потерь«Какая функция потерь сильнее требует исправиться, когда модель уверенно ошибается?»Поставьте p = 0.01 и сравните два значения градиента
6 Обратное распространение ошибки«У какого веса градиент больше — у близкого к выходу или у далёкого?»Медленно пройдите один цикл кнопкой «Следующий шаг», затем, меняя ячейки весов, читайте формулы
7 Оптимизаторы«Почему SGD идёт зигзагом?»Переключите скорость обучения на «большая» и покажите, как SGD вылетает наружу
8 Переобучение«Если обучающие потери продолжают снижаться, это хорошая модель?»Выключите всю регуляризацию и прогоните до конца, затем включайте по одной и сравнивайте
9 Весь процесс«Что дороже при контроле брака — пропуск или ложная тревога?»Передвиньте порог на 0.2 и 0.8 и посмотрите, как точность (precision) и полнота меняются в противоположные стороны

Топ-5 частых заблуждений

ЗаблуждениеВерное объяснениеЧто показать
Чем больше слоёв, тем умнее сеть — всегдаБез функции активации любое число слоёв равносильно одной прямой. А даже с ней при малом объёме данных возникает переобучениеРаздел 3, левый рисунок; раздел 8
Нейросеть — точная копия мозгаЗаимствован лишь каркас: слои, сила связей, пороги. Обратное распространение ошибки в мозге не подтвержденоОтметка «Нет» в общем разделе D
Низкие обучающие потери — значит, модель хорошаяКритерий — качество на новых данных (проверочных и тестовых)Раздел 8, правый график
Высокая доля верных ответов — значит, модель хорошаяНа несбалансированных данных даже ответ «всё годное» даёт высокую долю верных ответов. Смотрите вместе с точностью (precision) и полнотойРаздел 9, порог 0.95
Adam всегда лучшийЭто лишь надёжный вариант по умолчанию. В некоторых задачах SGD + моментум бывает лучшеРаздел 7, скорость обучения «малая»

Проверочные вопросы (нажмите, чтобы раскрыть разбор)

Q1. Какую границу может провести нейросеть без функции активации, если сложить в ней 10 скрытых слоёв?

Только одну прямую (в многомерном случае — одну плоскость). Потому что композиция нескольких линейных преобразований — это одно линейное преобразование (W₂W₁x = Wx). Пример — левый рисунок в разделе 3.

Q2. Почему при замене сигмоиды на ReLU затухание градиента уменьшается?

Производная сигмоиды не больше 0.25, поэтому, перемножаясь на каждом слое, градиент быстро уменьшается. У ReLU производная на положительном участке равна 1, и при проходе назад градиент не уменьшается. Однако на отрицательном участке она равна 0, поэтому могут появляться выключенные нейроны.

Q3. Чему равны потери MSE и ∂L/∂y, если правильный ответ 1, а прогноз 0.41?

L = (1 − 0.41)² = 0.3481 ≈ 0.35. ∂L/∂y = −2 × (1 − 0.41) = −1.18. Это совпадает со значениями первого цикла на панели раздела 6.

Q4. Обучающие потери продолжают снижаться, а проверочные с какого-то момента растут. Что это за состояние и что делать?

Это переобучение. Возьмите модель из момента, когда проверочные потери были минимальны (ранняя остановка), включите дропаут и затухание весов или увеличьте объём данных.

Q5. Какова доля верных ответов и полнота модели, которая при доле брака 10% всегда отвечает «всё годное»?

Доля верных ответов 90%, полнота 0%. Не найдено ни одного бракованного изделия. Поэтому на несбалансированных данных нельзя смотреть только на долю верных ответов.

Задания в Colab

Базовое

В коде 1 замените tanh на ReLU (две строки: функция активации и её производная). Меняя число скрытых нейронов на 4, 16, 64, сведите долю верных ответов на проверочных данных в таблицу и в трёх предложениях опишите лучшую настройку и причину.

Повышенной сложности

Замените данные в коде 2 на свои рабочие данные (2 и более признаков, ответ 0/1). Разделите их на обучающие/проверочные/тестовые в пропорции 6:2:2 и сообщите долю верных ответов, точность (precision) и полноту на тестовых данных. Обоснованно оцените, подходит ли порог 0.5 для вашей задачи.

Настройка сложности и что изучить дальше

НачинающимРазделы 4·7 можно пропустить без потери связности. Раздел 6 смотрите вместе только один цикл с помощью кнопки «Следующий шаг»
УглублённоПопросите вручную посчитать «Шаг за шагом в числах» из раздела 6, а затем сопоставить по одной со строками d1·d2·d3 кода 1. Обсудите, что будет, если добавить в раздел 7 уменьшение скорости обучения (расписание)
Что изучить дальшеСансон Ан, конспект лекций «Наука о данных для бизнеса» (наука о данных в целом) · STEP [K-Digital] Обработка естественного языка с помощью ИИ (связано с 3-5·3-8) · STEP [K-Digital] Основы анализа финтех-данных (связано с 3-6)
Материалы для преподавателяКритерии оценки проверочных вопросов и примеры ответов к заданиям — на странице ответов для преподавателей (3-2)

Отличная работа!

Вы дочитали часть «3-2 Детали нейросети» до конца. Обитатели лаборатории подведут итог — каждый по словечку.

Профессор
ПрофессорМы по одной собрали детали, из которых состоит нейросеть.
  • Один нейрон — это взвешенная сумма, пропущенная через функцию активации
  • Обратное распространение ошибки проходит назад по ошибке и понемногу исправляет веса
  • Переобучение проверяют на проверочных данных
Ассистентка
АссистенткаФормулы на доске меня больше не пугают.
Муха-исследователь
Муха-исследовательШаг за шагом по градиенту — записала.