# Эндрю Ын: «Я почти никогда больше не использую сигмоиду»

Источник: https://www.youtube.com/watch?v=Xvg00QnyaIY
Канал: DeepLearning.AI
Опубликовано: 25.08.2017

---

В процессе проектирования архитектуры нейронной сети перед разработчиком неизбежно встает вопрос выбора функций активации для скрытых и выходных слоев. В рамках обучающего курса от DeepLearning.AI **Эндрю Ын (Andrew Ng)** подробно разбирает, почему классическая сигмоида постепенно уходит в прошлое и какие альтернативы позволяют значительно ускорить обучение моделей.

## 🔄 От Сигмоиды к гиперболическому тангенсу
[[JUMP:00:00]]

Долгое время стандартным выбором в нейронных сетях была сигмоидальная функция активации (sigmoid), которая математически выражается как $a = 1 / (1 + e^{-z})$ [0:26]. Она переводит входные значения в диапазон от 0 до 1. Однако, по мнению Эндрю Ына, на сегодняшний день существуют варианты, которые почти всегда работают лучше [1:06].

Одним из таких вариантов является функция гиперболического тангенса (tanh). Математически она представляет собой смещенную и масштабированную версию сигмоиды, принимающую значения в диапазоне от -1 до +1 [1:36].

Ключевые преимущества tanh, выделяемые Эндрю Ыном:

*   **Центрирование данных:** Среднее значение активаций в скрытом слое оказывается ближе к нулю [2:08].
*   **Ускорение оптимизации:** Использование tanh дает эффект, схожий с центрированием данных при предобработке, что облегчает процесс обучения для последующих слоев [2:34].

Эндрю Ын утверждает, что tanh практически во всех случаях превосходит сигмоиду для скрытых слоев [2:49]. Единственным исключением остается выходной слой в задачах бинарной классификации: если целевая переменная $y$ принимает значения 0 или 1, логично использовать сигмоиду, чтобы получить предсказание в том же диапазоне [3:03].

## 📉 Проблема затухающих градиентов
[[JUMP:04:13]]

Несмотря на преимущества, и сигмоида, и tanh обладают общим серьезным недостатком. Когда значение $z$ становится очень большим или очень маленьким, наклон функции (производная) становится крайне малым, практически стремясь к нулю [4:27].

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

## ⚡ ReLU: современный стандарт индустрии
[[JUMP:04:41]]

Чтобы решить проблему замедления обучения, в машинном обучении стала крайне популярной функция ReLU (Rectified Linear Unit) — выпрямленная линейная единица [4:41]. Её формула предельно проста: $a = max(0, z)$.

Технические особенности ReLU:

*   **Производная:** Она равна 1, когда $z$ положительно, и 0, когда $z$ отрицательно [4:57].
*   **Скорость обучения:** По наблюдениям Эндрю Ына, нейросети с ReLU часто обучаются гораздо быстрее, чем с tanh или сигмоидой [7:07].
*   **Дифференцируемость:** В точке $z=0$ производная математически не определена, но при программной реализации это не создает проблем — можно назначить производную в этой точке равной 0 или 1 [5:23].

Эндрю Ын отмечает, что ReLU стала выбором по умолчанию для скрытых слоев в современных архитектурах [6:02]. Если разработчик не уверен, какую функцию использовать, лектор рекомендует начинать именно с ReLU.

## 🧪 Leaky ReLU и эмпирический подход
[[JUMP:06:28]]

Существует также модифицированная версия — Leaky ReLU («протекающая» ReLU). В отличие от стандартной ReLU, она не обнуляется при отрицательных значениях $z$, а имеет небольшой наклон (например, $0.01 \times z$) [6:42].

По словам Эндрю Ына, Leaky ReLU обычно показывает результаты не хуже, а иногда и лучше стандартной ReLU, хотя на практике используется реже [6:55]. Некоторые исследователи идут дальше и делают коэффициент наклона (0.01) обучаемым параметром, но, как утверждает автор, такая практика встречается довольно редко [8:47].

Основные рекомендации Эндрю Ына по выбору функций активации:

1.  **Выходной слой:** Сигмоида — для бинарной классификации [7:47].
2.  **Скрытые слои:** ReLU — как наиболее эффективный стандартный выбор [8:02].
3.  **Эксперименты:** Tanh и Leaky ReLU — если ReLU не дает желаемого результата [8:34].

В глубоком обучении часто отсутствуют универсальные правила, подходящие для любой задачи. Эндрю Ын подчеркивает, что из-за особенностей конкретных данных (идиосинкразии приложений) бывает трудно заранее предугадать идеальную архитектуру [9:40]. Единственный надежный способ — это итеративный процесс: попробовать разные функции активации и оценить их эффективность на валидационной выборке (hold-out validation set) [9:54].