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

DeepLearning.AI 106 тыс. 10 мин 3 мин 25.08.2017
Главное

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

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

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

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

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

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

📉 Проблема затухающих градиентов 4:13

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

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

⚡ ReLU: современный стандарт индустрии 4:41

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

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

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

🧪 Leaky ReLU и эмпирический подход 6:28

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

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

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

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

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

💬 Цитаты

«Я почти никогда больше не использую сигмоидальную функцию активации. Гиперболический тангенс (tanh) почти всегда строго лучше.»

«Используя ReLU, ваша нейронная сеть часто будет обучаться намного быстрее, чем при использовании tanh или сигмоиды.»

👥 Спикер
📖 Термины
Сигмоида (Sigmoid)
Функция активации, сжимающая входные значения в диапазон от 0 до 1.
Tanh (Гиперболический тангенс)
Функция активации, принимающая значения от -1 до 1, что позволяет центрировать среднее значение активаций.
ReLU (Rectified Linear Unit)
Функция, которая возвращает 0 для отрицательных входов и само значение для положительных.
Leaky ReLU
Вариант ReLU, который имеет небольшой наклон для отрицательных значений вместо полного обнуления.
Градиентный спуск
Алгоритм оптимизации, используемый для обучения нейронных сетей путем минимизации функции потерь.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Эндрю Ын DeepLearning.AI ReLU функция активации градиентный спуск