Глубокое обучение

Activation functions

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

актуальноТекущий рабочий стандарт

Направления: Глубокое обучение · Нейросети

Нелинейности между слоями, без которых сеть не сложнее линейной модели.

Ключевые тезисы

  • — дефолт: дёшева и не насыщается, но может «умирать» на отрицательных входах.
  • и SiLU — стандарт в , дают более гладкий .
  • Sigmoid и tanh оставляют для выходов и вентилей рекуррентных ячеек.

Какую задачу решает

— единственный источник нелинейности в сети. Без неё любая глубина сворачивается в одно линейное преобразование, поэтому вопрос не «нужна ли активация», а «какая».

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

Как поймать мёртвые нейроны

Прогоните валидационный и посчитайте для каждого нейрона скрытого слоя долю примеров, на которых его выход равен нулю. Здоровая картина — 30–60%. Если у трети нейронов эта доля равна 100%, они мертвы: их вклад в предсказание нулевой, и до них не доходит. Обычные причины — слишком большая на старте или большой отрицательный bias. Лечится снижением learning rate, тёплым разогревом или заменой на Leaky с наклоном 0.01.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

ФункцияФормулаПлюсыМинусы
быстрая, не насыщается справа«мёртвые» нейроны
LeakyReLUнет мёртвых нейроновлишний
гладкая, стандарт в дороже считать
Sigmoidвыход — вероятностьнасыщение, ≈ 0
tanhцентрирована в нуленасыщение
-4-2024-10123xf(x)производная
f(-2)0.000
f(2)2.000
f′(-4)0.0000
f′(4)1.0000
Функция активации
Посмотрите на производную у краёв: именно она определяет, дойдёт ли градиент до ранних слоёв

  • Регрессия — без (линейный выход).
  • Бинарная классификация — sigmoid (или логиты + BCEWithLogits).
  • Многоклассовая — по классам.
  • Multilabel — sigmoid независимо по каждому классу, не .
Обозначения
  • суммирование по всем перечисленным элементам
  • экспонента
превращает логиты в распределение: значения положительны и суммируются в единицу

Где применяется

  • Скрытые слои по умолчанию; GELU или SiLU в и современных свёрточных сетях; Leaky ReLU, если мёртвые нейроны реально мешают.
  • Выход бинарной классификации плюс бинарная . В коде обычно объединяют в один устойчивый оператор.
  • Выход многоклассовой задачи плюс . Если классы не взаимоисключающие — сигмоида на каждый класс отдельно.
  • Выход регрессииНикакой , если значение любое; ReLU или softplus, если оно обязано быть положительным; tanh, если ограничено отрезком.

Плюсы, минусы и альтернативы

Плюсы

  • считается за одно сравнение — дешевле любой альтернативы.
  • Отсутствие насыщения на положительной части сняло проблему затухающего и открыло глубокие сети.
  • Разреженность: часть нейронов выключается, что работает как мягкая .
  • Гладкие варианты (, SiLU) дают небольшой, но стабильный выигрыш почти без дополнительной стоимости.

Минусы

  • Мёртвые нейроны у — часть сети может замолчать навсегда.
  • Выход не центрирован в нуле, что чуть замедляет сходимость.
  • и tanh насыщаются и почти не годятся для скрытых слоёв глубокой сети.
  • и Swish дороже по вычислениям — на больших моделях разница заметна.
  • Неверная на выходе (например, softmax при многометочной задаче) молча ломает обучение — ошибка выглядит как «модель не учится».

Брать, если

  • Скрытые слои свёрточной сети или MLP — , без раздумий.
  • — или SiLU, это де-факто стандарт.
  • Есть подозрение на мёртвые нейроны (доля нулевых активаций выше 60–70%) — Leaky .

Не брать, если

  • и tanh в глубоких скрытых слоях — почти гарантированное затухание .
  • там, где объект может принадлежать нескольким классам сразу.
  • Любая ограничивающая на выходе регрессии с неограниченной целевой переменной.

Чем заменяют

Видеолекции

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

Связанные темы

Нейросеть по кирпичикам

Perceptron80%

Перцептрон · Глубокое обучение

Простейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.

MLP80%

Многослойный перцептрон · Глубокое обучение

Несколько полносвязных слоёв с нелинейностями — универсальный аппроксиматор функций.

Loss functions80%

Функции потерь · Глубокое обучение

Формализуют цель обучения. Выбор потерь важнее выбора архитектуры чаще, чем кажется.

Backpropagation80%

Обратное распространение ошибки · Глубокое обучение

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Optimizers80%

Оптимизаторы · Глубокое обучение

Правила обновления весов по градиенту: от чистого SGD до адаптивных методов.

Logistic Regression80%

Логистическая регрессия · Классическое машинное обучение

Линейная модель классификации: сигмоида переводит линейную комбинацию признаков в вероятность класса.

Кому эта тема нужна

Профильная компетенция для ролей: ML Engineer, NLP-инженер, CV-инженер, Исследователь, Инженер речи.

Усиливает профиль: Data Scientist, Инженер рекомендаций.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Глубокое обучениеТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.