Выбор нейронной сети скрытой функции активации

14

В другом месте я читал, что выбор функции активации скрытого слоя в NN должен основываться на потребности , то есть, если вам нужны значения в диапазоне от -1 до 1, используйте tanh и используйте сигмоид для диапазона от 0 до 1.

Мой вопрос: как узнать, что нужно ? Основано ли оно на диапазоне входного слоя, например, использовать функцию, которая может охватывать полный диапазон значений входного слоя, или как-то отражает распределение входного слоя (функция Гаусса)? Или проблема связана с конкретной областью, и чтобы сделать этот выбор, нужен собственный опыт / суждение? Или это просто «использовать то, что дает лучшую перекрестную проверку минимальной ошибки обучения?»

babelproofreader
источник
3
Этот аргумент - bs, потому что (tanh + 1) / 2 также находится в 0-1, не говоря уже о том, что «сигмоидальный» является настолько расплывчатым термином, что он довольно часто охватывает tanh.
Вероятно, стоит упомянуть, что любой набор данных можно нормализовать до 0-> 1 и использовать сигмовидную активацию 1 + (1 / exp(-sum)). Создание потребности очень трудно понять , не пытаясь как на каждом наборе данных. Нужно , как вы описали его здесь привязан к фактическому отношению будучи узнал, т.е. двоичного набор данных будет учиться быстрее или не на все заданные различные активации.
Адриан Сили

Ответы:

12

LeCun обсуждает это в разделе « Эффективный Backprop» 4.4. Мотивация аналогична мотивации для нормализации входного значения до нулевого среднего (раздел 4.3). Средние значения функции активации tanh с большей вероятностью будут близки к нулю, чем сигмовидная, средний выход которой должен быть положительным.

user1149913
источник
Очень информативное чтение!
babelproofreader
6

Необходимость, упомянутая в первом абзаце вопроса, относится к функции активации выходного уровня, а не к функции активации скрытого уровня. Наличие выходов в диапазоне от 0 до 1 удобно, поскольку это означает, что они могут непосредственно представлять вероятности. Тем не менее, IIRC, сеть с активированными функциями выходного уровня может быть легко преобразована в сеть с функцией активации логистического выходного уровня, так что на практике это не имеет большого значения.

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

Короче говоря, используйте tanh для функций активации скрытого слоя, выбрав функцию активации выходного уровня, чтобы обеспечить желаемые ограничения на вывод (общий выбор: линейный - без ограничений, логистический - выход находится в диапазоне от 0 до 1 и экспоненциальный - выход строго положительный).

Дикран Сумчатый
источник
Я не понимаю "... оба идут в ноль ...". Я вижу, что выходные данные могут быть равны нулю, но как можно сделать так, чтобы производная логистической функции стала равной нулю?
эрогол
он не идет точно в ноль, для логистической функции он просто становится очень маленьким. Для функции tanh производная максимальна, когда выходной сигнал равен нулю, а максимальная выходная, когда производная наименьшая. Оригинальный документ был написан в конце 80-х, я посмотрю, смогу ли я вспомнить детали.
Дикран Marsupial
2
Я не могу найти оригинальную статью, но некоторые статьи в книге «Нейронные сети - хитрости торговли» предполагают, что tanh лучше в скрытых слоях, так как сети работают лучше, если активация скрытого слоя центрирована (то есть нулевое среднее ).
Дикран Сумчатый
2

1.7159×tanh(x×(2/3))1+1[1.5,+1.5]

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

erogol
источник