Вопросы с собесов. Функции активации в DL
Функции активации пронизывают все нейронные сети. Зачем это нужно и какие именно активации использовать — обсудим в этом блоге.
Подобные вопросы не редкость на собеседованиях по глубокому обучению. Более того, неправильный ответ на них выдаёт вас за новичка, поскольку они уже стали базой собесов в DL.
Зачем нужны функции активации?
Они нужны для внесения нелинейности в модель, что позволяет нейронным сетям аппроксимировать сложные функции.
Без них сеть свелась бы к одной линейной трансформации, а использование нескольких слоёв в том же многослойном перцептроне не имело бы смысла.
Какие бывают функции активации, их плюсы и минусы?
Sigmoid
- на «хвостах» обладает практически нулевой производной, что может привести к затуханию градиента
- максимальное значение производной составляет 0.25, что также приводит к затуханию градиента
- нет симметричности относительно нуля
- вычислительно сложно считать экспоненту
Tanh
- всё ещё имеет проблему затухания градиента
- требует вычисления экспоненты, что является достаточно сложной вычислительной операцией
ReLU (Rectified Linear Unit)
Leaky ReLU
ELU (Exponential Linear Unit)
Конечно, кроме рассмотренных есть и другие функции активации, например, GELU (активно используемый в трансформерах), но на собеседованиях обычно спрашивают только про самые основные.
Заключение
Используйте функции активации.
Но используйте с умом, хотя бы для того, чтобы градиент не затухал.