Функция активации для многослойного персептрона

Я попытался обучить простую нейронную сеть обратного распространения с помощью функции xor. Когда я использую tanh(x) в качестве функции активации с производной 1-tanh(x)^2, я получаю правильный результат примерно после 1000 итераций. Однако, когда я использую g(x) = 1/(1+e^(-x)) в качестве функции активации с производной g(x)*(1-g(x)), мне нужно около 50000 итераций, чтобы получить правильный результат. Что может быть причиной?

Спасибо.


person user1767774    schedule 24.01.2013    source источник
comment
Возможно, слишком маленькая скорость обучения?: p Как вы закодировали свой набор данных XOR? 1 0 = 1 или -1 1 = 1?   -  person Thomas Jungblut    schedule 24.01.2013
comment
Но почему константа обучения должна быть хороша для tanh, но недостаточно хороша для логистической функции? Я считал 1 вывод верным, 0 ложным.   -  person user1767774    schedule 25.01.2013
comment
Что вы имеете в виду под результатом? Насколько хорош прогноз для обеих функций активации после 500 эпизодов?   -  person alfa    schedule 27.01.2013


Ответы (1)


Да, то, что вы наблюдаете, верно. У меня есть аналогичные наблюдения при обучении нейронных сетей с использованием обратного распространения. Для проблемы XOR я использовал для настройки сети 2x20x2, логистическая функция занимает более 3000 эпизодов, чтобы получить следующий результат:

[0, 0] -> [0.049170633762142486]
[0, 1] -> [0.947292007836417]
[1, 0] -> [0.9451808598939389]
[1, 1] -> [0.060643862846171494]

При использовании tanh в качестве функции активации вот результат после 800 эпизодов. tanh сходится последовательно быстрее, чем logistic.

[0, 0] -> [-0.0862215901296476]
[0, 1] -> [0.9777578145233919]
[1, 0] -> [0.9777632805205176]
[1, 1] -> [0.12637838259658932]

Форма двух функций выглядит следующим образом (кредит: эффективная обратная связь):

функции активации

  • Слева стандартная логистическая функция: 1/(1+e^(-x)).
  • Справа — функция tanh, также известная как гиперболический тангенс.

Легко видеть, что tanh антисимметрично относительно начала координат.

Согласно эффективному Backprop,

Симметричные сигмоиды, такие как tanh, часто сходятся быстрее, чем стандартная логистическая функция.

Также из вики Логистическая регрессия:

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

См. эффективный Backprop для более подробного объяснения интуиции здесь.

См. elliott для альтернативы tanh с более простыми вычислениями. Ниже она показана черной кривой (синяя — исходная tanh).

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

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

На приведенной выше диаграмме должны выделяться две вещи. Во-первых, TANH обычно требовало меньше итераций для обучения, чем Elliott. Таким образом, точность обучения не так хороша с Эллиоттом для кодировщика. Однако обратите внимание на время обучения. Elliott выполнил всю свою задачу, даже с дополнительными итерациями, которые он должен был сделать, в два раза быстрее, чем TANH. Это огромное улучшение, которое буквально означает, что в этом случае Эллиот сократит время обучения вдвое и добавит ту же последнюю ошибку обучения. Хотя для достижения этого требуется больше итераций обучения, скорость на итерацию настолько выше, что это все равно приводит к тому, что время обучения сокращается вдвое.

person greeness    schedule 30.01.2013