Deep learning
March 27

Вопросы с собесов. Функции активации в DL

Функции активации пронизывают все нейронные сети. Зачем это нужно и какие именно активации использовать — обсудим в этом блоге.

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

Зачем нужны функции активации?

Они нужны для внесения нелинейности в модель, что позволяет нейронным сетям аппроксимировать сложные функции.

Без них сеть свелась бы к одной линейной трансформации, а использование нескольких слоёв в том же многослойном перцептроне не имело бы смысла.

Какие бывают функции активации, их плюсы и минусы?

Sigmoid

Плюсы:

  • хороша для вероятностей
  • ограниченная область значений

Минусы:

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

Tanh

Плюсы:

  • симметрична относительно 0, подходит для центровки данных.
  • ограниченная область значений

Минусы:

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

ReLU (Rectified Linear Unit)

Плюсы:

  • простая, быстрая в вычислении
  • не вызывает проблем с градиентами для положительных значений

Минусы:

  • Может вызывать проблему "dead neurons" из-за нулевой производной у отрицательных значений

Leaky ReLU

Плюсы:

  • решает проблему dead neurons, пропуская небольшое отрицательное значение

Минусы:

  • гиперпараметр наклона требует настройки

ELU (Exponential Linear Unit)

Плюсы:

  • сглаживает нулевую точку, помогает избежать dead neurons.

Минусы:

  • дороже в вычислениях, чем ReLU.

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

Заключение

Используйте функции активации.

Но используйте с умом, хотя бы для того, чтобы градиент не затухал.