Нейронные функции активации-разница между 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 с нормализованными целями для регрессии.


Слово (и я проверил), что в некоторых случаях это может быть лучше использовать Танха чем логистические С

  1. выходы возле Y = 0 на логистические умножить на вес w дает значение около 0, который не имеет большого эффекта на верхних слоях, на которые он влияет (хотя отсутствие также влияет), однако значение рядом Y = -1 on чем умножить на вес w might дайте большое число, которое имеет более числовой эффект.
  2. производное Танха (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))

подробное объяснение можно найти в здесь