Я выбираю функцию активации для выходного слоя в зависимости от того, какой вывод мне нужен, и от свойств функции активации, которые я знаю. Например, я выбираю сигмовидную функцию, когда я имею дело с вероятностями, ReLU, когда я имею дело с положительными значениями, и линейную функцию, когда я имею дело с общими значениями.
В скрытых слоях я использую вытекающий ReLU, чтобы избежать мертвых нейронов вместо ReLU и tanh вместо сигмовидной. Конечно, я не использую линейную функцию в скрытых единицах.
Тем не менее, выбор для них в скрытом слое в основном из-за проб и ошибок.
Есть ли эмпирическое правило, какая функция активации, вероятно, будет работать хорошо в некоторых ситуациях? Возьмите термин ситуации как можно более общий: он может относиться к глубине слоя, к глубине NN, к числу нейронов для этого слоя, к выбранному нами оптимизатору, к числу входных функций этот слой, к применению этого NN и т. д.
В своем ответе cantordust ссылается на другие функции активации, которые я не упомянул, такие как ELU и SELU. Эта информация более чем приветствуется. Однако чем больше функций активации я обнаруживаю, тем больше я запутался в выборе функции для использования в скрытых слоях. И я не думаю, что подбрасывание монеты является хорошим способом выбора функции активации.
Я не знаю, над какими нейронными сетями вы работаете. Но следует также учитывать функции активации Тан при работе с рекуррентной нейронной сетью. Причина в том, чтобы избежать проблем с градиентом, поскольку функция tanh ограничена, например, при разнице функции RELU.
источник