Классическая нейронная сеть: почему и какие активации работают?
Сегодня я расскажу вам о различных возможных функциях активации и их назначении в классической нейронной сети.
Функции активации - это семейство функций, цель которых - ввести нелинейность после вычисления уровня.
Действительно, без функции активации, независимо от того, сколько аугментации или тренировки, хорошей подгонки не получится (модель недостаточно сложна):
что могло быть связано с этим решением (модель достаточно сложна):
Вышеупомянутая причина дает только эмпирическое понимание, более глубокие объяснения даны в статье для слоев нейронной сети, которую я написал, где я говорю о приближении непрерывной функции с одним скрытым слоем.
Надеясь, что вы убедились, давайте двигаться дальше!
Сигмовидная функция:
- Сигмоид - это первая интуитивно понятная непрерывная функция для приближения к ступенчатым функциям.
- Увеличение коэффициента позволяет получить более точные приближения за счет высокого значения градиента.
Функция Tanh:
- Tanh очень похож на сигмоид, но при использовании в качестве функции активации для выходного слоя допускает отрицательные значения.
- Он также имеет более резкий переход около 0 (т.е. более высокий градиент) без необходимости увеличения значения весов.
Функция выпрямленного линейного блока:
- В отличие от Tanh и Sigmoid, ReLU не имеет проблемы с исчезающим градиентом в положительных значениях весов.
- Также высоко ценится за простоту.
Дырявый выпрямленный линейный блок Функция:
- Подобно ReLU, но в случае, если значения веса сдвинуты на отрицательные, поэтому мы оставляем немного места, чтобы избежать исчезновения градиента.
- Могут существовать различные варианты определения отрицательных значений (например, экспоненциальная линейная единица, взмах → очень интересно)
Очевидно, что это общие функции, и список не является исчерпывающим, но вы редко увидите другие функции и очень редко найдете другие полезные функции.
Подводя итог по функциям активации в скрытых слоях:
- Сигмоидов и tanh-функций иногда избегают из-за проблемы исчезающего градиента, но они хороши, чтобы избежать взрыва значений веса.
- Опять же, чтобы избежать более сложного исчезающего градиента, иногда можно использовать дырявый ReLU вместо ReLU.
- Обычно обычно используют ReLU для всех скрытых слоев.
Для функций активации в выходном слое:
- Для классификации, например, логистической регрессии, вы должны явно использовать сигмоид, чтобы получить эффект ускоренной логистической регрессии.
- И ReLU можно использовать в качестве функции активации выходного слоя, если вы знаете функцию, к которой хотите приблизиться (имеете приблизительное представление), например, когда вы можете гарантировать положительность и можете просто оставить свою последнюю линейную комбинацию в качестве выхода.
Спасибо за чтение и следите за обновлениями, потому что впереди еще больше: и объяснения по классическим нейронным сетям, и очень хорошая ежедневная статья! Кроме того, мне действительно поможет хороший щелчок по этой ссылке (на партнерскую программу)! Вам просто нужно будет выполнить несколько быстрых задач (просто подождите и активируйте уведомления), и все это действительно поможет мне в будущем, когда я буду получать больше контента, связанного с оборудованием!