Почему tanh почти всегда лучше сигмовидной как функция активации?


33

В курсе Эндрю Нг « Нейронные сети и глубокое обучение» на Coursera он говорит, что использование TaNчас почти всегда предпочтительнее использования sягмояd .

Причине он дает то , что выходные сигналы с помощью TaNчас центром , вокруг 0 , а не sягмояd «с 0.5, и это„делает обучение для следующего слоя немного легче“.

  1. Почему центрирование выходной скорости активации обучения? Я предполагаю, что он ссылается на предыдущий уровень, поскольку обучение происходит во время backprop?

  2. Есть ли другие особенности, которые делают предпочтительным? Будет ли более крутой градиент задерживать исчезающие градиенты?TaNчас

  3. Есть ли ситуации, когда был бы предпочтительнее?sягмояd

Математические, интуитивно понятные ответы предпочтительнее.


13
Сигмовидная функция имеет S-образную форму (отсюда и название). Предположительно вы говорите о логистической функции еИкс1+еИкс . Помимо масштаба и местоположения, эти два по существу одинаковы:логистический(Икс)знак равно12+12TANH(Икс2). Таким образом, реальный выбор - хотите ли вы выводить данные в интервале(-1,1)или в интервале(0,1)
Генри

Ответы:


21

Ян LeCun и другие утверждают , в эффективном BackProp , что

Сходимость обычно быстрее, если среднее значение каждой входной переменной по обучающему набору близко к нулю. Чтобы увидеть это, рассмотрим крайний случай, когда все входы положительны. Весовые коэффициенты для конкретного узла в первом весовом слое обновляются на величину, пропорциональную δx где δ - (скалярная) ошибка в этом узле, а x - входной вектор (см. Уравнения (5) и (10)). Когда все компоненты входного вектора являются положительными, все обновления весов, которые поступают в узел, будут иметь один и тот же знак (т.е. знак ( δ )). В результате эти веса могут только все уменьшаться или увеличиваться вместедля данного шаблона ввода. Таким образом, если вектор веса должен изменить направление, он может сделать это только зигзагообразно, что неэффективно и, следовательно, очень медленно.

Вот почему вы должны нормализовать свои входные данные, чтобы среднее значение было равно нулю.

Та же логика применима к средним слоям:

Эту эвристику следует применять на всех уровнях, что означает, что мы хотим, чтобы среднее значение выходных данных узла было близко к нулю, поскольку эти выходные данные являются входными данными для следующего уровня.

Postscript @craq подчеркивает, что эта цитата не имеет смысла для ReLU (x) = max (0, x), который стал широко популярной функцией активации. Хотя ReLU действительно избегает первой проблемы зигзага, упомянутой LeCun, он не решает эту вторую проблему со стороны LeCun, который говорит, что важно довести среднее значение до нуля. Я хотел бы знать, что LeCun должен сказать по этому поводу. В любом случае, есть документ под названием Batch Normalization , который основывается на работе LeCun и предлагает способ решения этой проблемы:

Давно известно (LeCun et al., 1998b; Wiesler & Ney, 2011), что обучение сети сходится быстрее, если его входы отбелены - то есть линейно преобразованы, чтобы иметь нулевые средние и единичные отклонения, и декоррелированы. Поскольку каждый слой наблюдает входные данные, создаваемые нижележащими слоями, было бы выгодно добиться одинакового отбеливания входных данных каждого слоя.


Кстати, это видео от Сираджа многое объясняет о функциях активации за 10 веселых минут.


@elkout говорит: «Реальная причина того, что tanh является предпочтительным по сравнению с сигмоидом (...), заключается в том, что производные tanh больше, чем производные сигмоида».

Я думаю, что это не проблема. Я никогда не видел, чтобы это было проблемой в литературе. Если вас беспокоит, что одна производная меньше другой, вы можете просто масштабировать ее.

Логистическая функция имеет форму σ(Икс)знак равно11+е-КИкс . Обычно мы используемКзнак равно1, но ничто не запрещает вам использовать другое значение дляКчтобы сделать ваши производные более широкими, если это было вашей проблемой.


Nitpick: tanh - это тоже сигмовидная функция. Любая функция с S-образной формой является сигмоидальной. То, что вы, ребята, называете сигмоидом, является логистической функцией. Причиной, почему логистическая функция более популярна, являются исторические причины. Он использовался статистиками в течение более длительного времени. Кроме того, некоторые считают, что это более правдоподобно.


1
Вам не нужна цитата, чтобы показать, что , только исчисление средней школы. σ ( x ) = σ ( x ) ( 1 - σ ( x ) ) 0,25 Мы знаем, что это так, потому что 0 < σ ( x ) < 1 , поэтому вам просто нужно максимизировать вогнутый квадратик. TANH 'МаксимумИксσ'(Икс)<МаксимумИксTANH'(Икс)
σ'(Икс)знак равноσ(Икс)(1-σ(Икс))0,25
0<σ(x)<1что можно проверить осмотром.
tanh(x)=sech2(x)=2exp(x)+exp(x))1.0
Sycorax сообщает восстановить Monica

Кроме того, я сказал, что в большинстве случаев производные tanh больше, чем производные сигмоида. В основном это происходит, когда нас около 0. Вы можете просмотреть эту ссылку и ответить на четкие ответы на поставленный здесь вопрос, в котором также говорится, что производные обычно больше, чем производные сигмовидной кишки . tanhсигмоид
ekoulier

подождите ... это звучит правдоподобно, но если средние слои должны иметь средний выходной сигнал ноль, почему же ReLU работает так хорошо? Разве это не противоречие?
craq

@ekoulier, производная являющаяся больше чем сигмовидная, не проблема. Вы можете просто масштабировать его, если это вас беспокоит. tanhsigmoid
Рикардо Крус

@craq, хорошая мысль, я думаю, что это действительно ошибка в аргументе ЛеКуна. Я добавил ссылку на документ по нормализации партии, где он более подробно обсуждает эту проблему и способы ее улучшения. К сожалению, эта статья не сравнивает relu с tanh, она сравнивает только relu с логистикой (сигмоид).
Рикардо Крус

14

sigmoidtanhsigmoid

tanhsigmoidtanhsigmoidtanh

Но почему у гиперболического тангенса есть большие производные? Просто чтобы дать вам очень простую интуицию, вы можете наблюдать следующий график:

Сигмоид против Гиперболического Касательного

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

tanhx=2σ(2x)1

|tanh(x)x|>|σ(x)x|


0

2
tanhsigmoidtanh

2xsigmoid(x) - 0.52xtanh

2x

3

Отвечая на часть вопроса до сих пор без ответа:

Эндрю Нг говорит, что использование логистической функции (обычно называемой сигмоидальной) действительно имеет смысл только на последнем уровне бинарной сети классификации.

01(0,1)tanh


Для вывода логистическая функция имеет смысл, если вы хотите получить вероятности, мы все можем согласиться с этим. Обсуждается, почему tanh предпочтительнее логистической функции в качестве активации для средних слоев.
Рикардо Крус

Откуда ты знаешь, что это было целью ОП? Кажется, он задавал общий вопрос.
Том Хейл

2

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

Функция tanh, с другой стороны, имеет производную до 1,0, что значительно увеличивает обновления W и b.

Это делает функцию tanh почти всегда лучше как функцию активации (для скрытых слоев), а не как сигмовидную функцию.

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

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

Полный блокнот, который я написал, находится здесь https://www.kaggle.com/moriano/a-showcase-of-how-relus-can-speed-up-the-learning

Если это помогает, вот графики производных функции tanh и сигмовидной (обратите внимание на вертикальную ось!)

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

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


α

Разве вы не рискуете не иметь стабильной кривой обучения с более высокой скоростью обучения?
Хуан Антонио Гомес Мориано

Что ж, если производные более стабильны, то увеличение скорости обучения с меньшей вероятностью приведет к дестабилизации оценки.
Клифф AB

Это справедливо, у вас есть ссылка, где я мог бы узнать больше об этом?
Хуан Антонио Гомес Мориано
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.