Подтвердить что ты не робот

Зачем использовать tanh для активации функции MLP?

Я лично изучал теории нейронной сети и задавал некоторые вопросы.

Во многих книгах и ссылках для активации функции скрытого слоя использовались гиперкасательные функции.

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

Но возник вопрос.

  • Это реальная причина, по которой используется функция tanh?
  • Если тогда, это единственная причина, по которой используется функция tanh?
  • если тогда, является ли функция tanh единственной функцией, которая может это сделать?
  • если нет, что такое настоящая причина?..

Я имею в виду, продолжайте думать... пожалуйста, помогите мне из этой умственной (?...) ловушки!

4b9b3361

Ответ 1

По правде говоря, можно использовать как tanh, так и логистические функции. Идея состоит в том, что вы можете сопоставить любое реальное число ([-Inf, Inf]) с числом между [-1 1] или [0 1] для tanh и логистики соответственно. Таким образом, можно показать, что комбинация таких функций может аппроксимировать любую нелинейную функцию. Теперь относительно предпочтения tanh над логистической функцией состоит в том, что первая симметрична относительно 0, а вторая - нет. Это делает второй более склонным к насыщению более поздних слоев, что затрудняет обучение.

Ответ 2

Большая часть времени tanh быстро сходится, чем сигмоидная и логистическая функция, и обеспечивает лучшую точность [1]. Однако недавно выпрямленная линейная единица (ReLU) предлагается Hinton [2], которая показывает поезд ReLU в шесть раз быстрее, чем tanh [ 3], чтобы достичь такой же ошибки в обучении. И вы можете обратиться к [4], чтобы узнать, какие преимущества предоставляет ReLU.


Приблизительно 2 года опыта машинного обучения. Я хочу поделиться некоторыми стратиграфиями с самой используемой бумагой и опытом работы с компьютером.

Нормализующий вход очень важен

Нормализация скважины может повысить производительность и быстро сходиться. Большую часть времени мы вычитаем среднее значение, чтобы сделать среднее значение ввода равным нулю, чтобы предотвратить изменение веса с одинаковыми направлениями, чтобы сходиться медленно [5]. Недавно google также указывает на это явление как внутренние ковариационные сдвиги при обучении глубокому обучению, и они предложили нормализацию партии [6], чтобы нормализовать каждый вектор, имеющий нулевое среднее и единичную дисперсию.

Дополнительные данные с большей точностью

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

Выбор хорошей функции активации позволяет тренироваться лучше и эффективнее.

ReLU нелинейная ацитивация работала лучше и выполняла современные результаты в области глубокого обучения и MLP. Кроме того, он имеет некоторые преимущества, например. простой в реализации и более дешевом вычислении в обратном распространении, чтобы эффективно обучать более глубокую нейронную сеть. Тем не менее, ReLU получит нулевой градиент и не тренируется, когда единица равна нулю. Следовательно, некоторые модифицированные ReLU предлагаются, например. Leaky ReLU и Noise ReLU, а также наиболее популярным методом является PReLU [7], предложенная Microsoft, которая обобщила традиционный recitifed unit.

Другие

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

Ответ 3

Чтобы добавить уже существующий ответ, предпочтение симметрии вокруг 0 ​​не просто вопрос эстетики. Отличный текст LeCun и др. "" Эффективный обратный ход" показывает в деталях, почему это хорошая идея, что входные, выходные и скрытые слои имеют средние значения 0 и стандартное отклонение 1.

Ответ 4

Обновление в попытке успокоить комментаторов: основано исключительно на наблюдении, а не на теории, которая рассмотрена выше, функции активации Tanh и ReLU более эффективны, чем сигмовидные. Сигмоид также, по-видимому, более склонен к локальным оптимумам, или по меньшей мере с расширенными проблемами "плоской линии". Например, попробуйте ограничить количество функций для принудительной логики в сетевых узлах в XOR и сигмоид редко преуспевает, тогда как Tanh и ReLU имеют больший успех.

Tanh, кажется, медленнее, чем ReLU для многих из приведенных примеров, но при этом более естественный вид подходит для данных, используя только линейные входы, как вы описали. Для пример круга и квадратная/шестиугольная вещь.

http://playground.tensorflow.org/ < - этот сайт представляет собой фантастическую визуализацию функций активации и других параметров для нейронной сети. Не прямой ответ на ваш вопрос, но инструмент "обеспечивает интуицию", как сказал бы Эндрю Нг.

Ответ 5

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

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

Ответ 6

Многие из ответов здесь описывают, почему tanh (т.е. (1 - e ^ 2x)/(1 + e ^ 2x)) предпочтительнее сигмоидной/логистической функции (1/(1 + e ^ -x)), но следует отметить, что есть веская причина, почему эти две наиболее распространенные альтернативы должны быть поняты, а именно, что при обучении MLP с использованием алгоритма обратного распространения алгоритм требует значения производной функции активации при точка активации каждого node в сети. Хотя это обычно можно рассчитать для большинства правдоподобных функций активации (за исключением тех, которые с разрывами, что для них является проблемой), поэтому часто требуется дорогостоящие вычисления и/или хранение дополнительных данных (например, значение ввода функции активации, что иначе не требуется после того, как вычисляется выход каждого node). Тан и логистическая функция, однако, имеют очень простые и эффективные вычисления для их производных, которые могут быть рассчитаны на выходе функций; т.е. если взвешенная сумма входов node равна v, а ее выход - u, нам нужно знать du/dv, который можно вычислить по u, а не более традиционному v: для tanh это 1 - u ^ 2, а для логистическая функция u * (1 - u). Этот факт делает эти две функции более эффективными для использования в сети распространения спины, чем большинство альтернатив, поэтому для отклонения от них обычно требуется неотложная причина.