Классическая нейронная сеть: почему и какие активации работают?

Сегодня я расскажу вам о различных возможных функциях активации и их назначении в классической нейронной сети.

Функции активации - это семейство функций, цель которых - ввести нелинейность после вычисления уровня.

Действительно, без функции активации, независимо от того, сколько аугментации или тренировки, хорошей подгонки не получится (модель недостаточно сложна):

что могло быть связано с этим решением (модель достаточно сложна):

Вышеупомянутая причина дает только эмпирическое понимание, более глубокие объяснения даны в статье для слоев нейронной сети, которую я написал, где я говорю о приближении непрерывной функции с одним скрытым слоем.

Надеясь, что вы убедились, давайте двигаться дальше!

Сигмовидная функция:

  • Сигмоид - это первая интуитивно понятная непрерывная функция для приближения к ступенчатым функциям.
  • Увеличение коэффициента позволяет получить более точные приближения за счет высокого значения градиента.

Функция Tanh:

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

Функция выпрямленного линейного блока:

  • В отличие от Tanh и Sigmoid, ReLU не имеет проблемы с исчезающим градиентом в положительных значениях весов.
  • Также высоко ценится за простоту.

Дырявый выпрямленный линейный блок Функция:

  • Подобно ReLU, но в случае, если значения веса сдвинуты на отрицательные, поэтому мы оставляем немного места, чтобы избежать исчезновения градиента.
  • Могут существовать различные варианты определения отрицательных значений (например, экспоненциальная линейная единица, взмах → очень интересно)

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

Подводя итог по функциям активации в скрытых слоях:

  • Сигмоидов и tanh-функций иногда избегают из-за проблемы исчезающего градиента, но они хороши, чтобы избежать взрыва значений веса.
  • Опять же, чтобы избежать более сложного исчезающего градиента, иногда можно использовать дырявый ReLU вместо ReLU.
  • Обычно обычно используют ReLU для всех скрытых слоев.

Для функций активации в выходном слое:

  • Для классификации, например, логистической регрессии, вы должны явно использовать сигмоид, чтобы получить эффект ускоренной логистической регрессии.
  • И ReLU можно использовать в качестве функции активации выходного слоя, если вы знаете функцию, к которой хотите приблизиться (имеете приблизительное представление), например, когда вы можете гарантировать положительность и можете просто оставить свою последнюю линейную комбинацию в качестве выхода.

Спасибо за чтение и следите за обновлениями, потому что впереди еще больше: и объяснения по классическим нейронным сетям, и очень хорошая ежедневная статья! Кроме того, мне действительно поможет хороший щелчок по этой ссылке (на партнерскую программу)! Вам просто нужно будет выполнить несколько быстрых задач (просто подождите и активируйте уведомления), и все это действительно поможет мне в будущем, когда я буду получать больше контента, связанного с оборудованием!