Нейронные функции активации-разница между Logistic / Tanh / etc
Я пишу некоторые основные методы нейронной сети-в частности, функции активации-и достиг пределов моих мусорных знаний математики. Я понимаю соответствующие диапазоны (-1 / 1) (0/1) и т. д., Но различные описания и реализации Меня смущают.
конкретно сигмовидной, логистические, биполярный сигмоид, Танха, etc.
тут сигмовидной просто опишите форму функция независимо от диапазона? Если да, то является ли танх "сигмовидной функцией"?
Я видел "биполярный сигмоид" по сравнению с "tanh" в статье, однако я видел обе функции, реализованные (в разных библиотеках) с одним и тем же кодом:
(( 2/ (1 + Exp (-2 * n))) - 1). Это одно и то же?
аналогично, я видел логистические и сигмовидной активация реализована с тем же кодом:
(1/ (1 + Exp(-1 * северный.))) Они также эквивалентны?
наконец, имеет ли это значение на практике? Я вижу на wiki a график очень похожих сигмовидных функций - можно ли использовать любой из них? Некоторые выглядят так, как будто они могут быть значительно быстрее вычислять, чем другие.
4 ответов
логистическая функция: ex/(ex + ec)
специальный ("стандартный") случай логистической функции: 1 / (1 + e - x)
биполярный сигмоид: никогда не слышал о нем.
Tanh: (ex - e - x)/(ex + e - x)
сигмовидной обычно относится к форме (и пределам), поэтому да, tanh является сигмовидной функцией. Но в некоторых контекстах это относится в частности, к стандартной логистической функции, поэтому вы должны быть осторожны. И да, вы можете использовать любую сигмовидную функцию и, вероятно, все в порядке.
(( 2/ (1 + Exp(-2 * x))) - 1) эквивалентно tanh (x).
Как правило, наиболее важные различия a. гладкая непрерывно дифференцируемая, как tanh и logistic vs step или усеченная b. конкурсный vs трансфер c. сигмовидная vs радиальная d. симметричный (-1,+1) vs асимметричный (0,1)
вообще дифференцируемое требование необходимо для спрятанных слоев и tanh часто порекомендовано как быть более сбалансировано. 0 для tanh находится в самой быстрой точке (самый высокий градиент или усиление), а не ловушка, в то время как для logistic 0-самая низкая точка и ловушка для всего, что продвигается глубже в отрицательную территорию. Радиальные (базисные) функции находятся на расстоянии от типичного прототипа и хороши для выпуклых круговых областей вокруг нейрона, в то время как сигмовидные функции о линейном разделении и хороши для полупространств - и это потребует многих для хорошего приближения к выпуклой области, с круговыми/сферическими областями, худшими для сигмоидов и лучшими для радиалов.
вообще, рекомендация для tanh на промежуточных слоях для + / - баланса и подходит выходной уровень для задачи (решение булевого/дихотомического класса с пороговыми, логистическими или конкурентными выходами (например, softmax, само нормализующееся многоклассовое обобщение логистики); регрессионные задачи могут быть даже линейными). Выходной слой не должен быть непрерывно дифференцируемым. Входной слой должен быть нормализован каким-то образом, либо до [0,1], либо еще лучше стандартизация или нормализация с понижением до [-1,+1]. Если включить манекен вход 1 тогда нормализуйте so||x / / p = 1 вы делите на сумму или длину, и эта информация о величине сохраняется в фиктивном входе смещения, а не теряется. Если вы нормализуете примеры, это технически мешает вашим тестовым данным, если вы смотрите на них, или они могут быть вне диапазона, если вы этого не делаете. Но при нормализации | / 2 такие вариации или ошибки должны приближаться к нормальному распределению, если они являются следствием естественного распределения или ошибки. Это означает, что они с большой вероятностью не превышать исходный диапазон (около 2 стандартных отклонения) более фактор (а именно. такие значения превышения рассматриваются как выбросы и не являются значимыми).
поэтому я рекомендую беспристрастную нормализацию экземпляра или смещенную стандартизацию шаблона или оба на входном слое (возможно, с уменьшением данных с помощью SVD), tanh на скрытых слоях и пороговую функцию, логистическую функцию или конкурентную функцию на выходе для классификации, но линейную с ненормализованные цели или, возможно, logsig с нормализованными целями для регрессии.
Слово (и я проверил), что в некоторых случаях это может быть лучше использовать Танха чем логистические С
- выходы возле
Y = 0
на логистические умножить на весw
дает значение около0
, который не имеет большого эффекта на верхних слоях, на которые он влияет (хотя отсутствие также влияет), однако значение рядомY = -1
on чем умножить на весw
might дайте большое число, которое имеет более числовой эффект. - производное Танха (
1 - y^2
) дает значения, превышающие логистические (y (1 -y) = y - y^2
). Например, когдаz = 0
на логистические дает функцияy = 0.5
иy' = 0.25
, for Танхаy = 0
ноy' = 1
(вы можете увидеть это в целом, просто посмотрев на график). смысл и Танха слой может учиться быстрее, чем логистические слой из-за величины градиента.
биполярный сигмоид = (1-e^(- x))/(1 + e^(- x))
подробное объяснение можно найти в здесь