Функции нейронной активации - разница между Logistic/Tanh/etc

Я пишу некоторые базовые нейронные сетевые методы - в частности, функции активации - и попал в пределы моего знания мусора по математике. Я понимаю соответствующие диапазоны (-1/1) (0/1) и т.д., Но различные описания и реализации меня смущают.

В частности, сигмовидные, логистические, биполярные сигмоиды, таны и т.д.

Сигмоид просто описывает форму функции независимо от диапазона? Если это так, то tanh является "сигмоидной функцией"?

Я видел "биполярный сигмоид" по сравнению с "tanh" в документе, однако я видел обе реализованные функции (в разных библиотеках) с тем же кодом:

((2/(1 + Exp (-2 * n))) - 1). Это то же самое?

Аналогично, я видел логистические и сигмоидные активации, реализованные с одним и тем же кодом:

(1/(1 + Exp (-1 * n))). Являются ли они эквивалентными?

Наконец, действительно ли это имеет значение на практике? Я вижу на wiki a график очень похожих сигмоидных функций - можно ли использовать какой-либо из них? Некоторые выглядят так, как будто они могут значительно быстрее вычисляться, чем другие.

Ответ 1

Логистическая функция: e x/(e x + e c)

Специальный ( "стандартный" ) случай логистической функции: 1/(1 + e -x)

Биполярный сигмоид: никогда не слышал об этом.

Tanh: (e x -e -x)/(e x + e -x)

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

((2/(1 + Exp (-2 * x))) - 1) эквивалентно tanh (x).

Ответ 2

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

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

Как правило, рекомендуется указывать промежуточные уровни для баланса +/- и удовлетворять выходному слою задаче (логическое/дихотомическое решение класса с пороговыми, логистическими или конкурентными выходами (например, softmax, самонастраивающийся многокласник обобщение логистики), регрессионные задачи могут быть даже линейными). Выходной уровень не должен быть непрерывно дифференцируемым. Уровень ввода должен быть каким-то образом нормирован, либо [0,1], либо лучше стандартизация или нормализация с демонами [-1, + 1]. Если вы включаете фиктивный вход 1, тогда нормализуйте так: || x || p = 1, вы делите на сумму или длину, и эта информация о величине сохраняется в исходном вводе ложного искажения, а не теряется. Если вы нормализуете примеры, это технически мешает вашим тестовым данным, если вы посмотрите на них, или они могут оказаться вне пределов досягаемости, если вы этого не сделаете. Но при нормализации || 2 такие вариации или ошибки должны приближаться к нормальному распределению, если они являются эффектами естественного распределения или ошибки. Это означает, что они с большой вероятностью не превысят первоначальный диапазон (вероятно, около 2 стандартных отклонений) более чем на малый коэффициент (т.е. Такие значения перераспределения считаются выбросами и несущественными).

Поэтому я рекомендую стандартную стандартную стандартную стандартную стандартную стандартную стандартизацию или как на уровне ввода (возможно, с сокращением данных с помощью SVD), tanh на скрытых слоях, так и функцию порога, логистическую функцию или конкурентную функцию на выходе для классификации, но линейный с ненормализованными целями или, возможно, logsig с нормализованными целями для регрессии.

Ответ 3

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

  • Выводит около Y = 0 в логистике, когда вес w дает значение около 0, которое не оказывает большого влияния на верхние слои, на которые он влияет (хотя отсутствие также влияет), однако значение около Y = -1 на tahn, когда вес w может дать большое число, которое имеет более числовой эффект.
  • Производная от tanh (1 - y^2) дает значения, превышающие логистика (y (1 -y) = y - y^2). Например, при z = 0 функция логистическая дает y = 0.5 и y' = 0.25 для tanh Y = 0, но y' = 1 (вы можете видеть это вообще просто посмотрев на график). ЗНАЧЕНИЕ, что уровень tanh может быть быстрее, чем логистический, из-за величины градиента.

Ответ 4

Биполярный сигмоид = (1-e ^ (- x))/(1 + e ^ (- x))

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