Должны ли нейронные сети всегда сходиться?

16

Вступление

Первый шаг

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

Это сеть 2-2-1 (с функцией активации tanh)

X1  M1
        O1
X2  M2

B1  B2

В целях тестирования я вручную установил верхний средний нейрон (M1) в качестве логического элемента И, а нижний нейрон (M2) в качестве логического элемента ИЛИ (оба выводят 1, если истина, и -1, если ложь).

Теперь я также вручную настроил соединение M1-O1 на -.5, M2-O1 на 1 и B2 на -.75

Таким образом, если M1 = 1 и M2 = 1, сумма равна (-0,5 +1 -0,75 = -.25) tanh (0,25) = -0,24

если M1 = -1 и M2 = 1, сумма равна ((-0,5) * (- 1) +1 -0,75 = 0,75) tanh (0,75) = 0,63

если M1 = -1 и M2 = -1, сумма равна ((-0,5) * (- 1) -1 -0,75 = -1,25) tanh (1,25) = -0,8

Это относительно хороший результат для «первой итерации».

Шаг второй

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

Для тестирования я установил веса равными и .5 .4 .3 (соответственно для M1, M2 и смещения)

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


Мой вопрос

Я установил скорость обучения на .2 и позволил программе выполнять итерации по тренировочным данным (ABA ^ B) в течение 10000 итераций или более.

Большую часть времени веса сходятся к хорошему результату. Однако иногда эти веса сходятся к (скажем) 1,5, 5,7 и 0,9, что приводит к выходу +1 (четному) к входу {1, 1} (когда результатом должно быть -1).

Возможно ли относительно простое ANN, решение которого вообще не сходится, или в моей реализации есть ошибка?

Xodarap
источник

Ответы:

13

(Я предполагаю , что на «распространения ошибок» вы имеете в виду то , что я называю «ошибка назад -propagation.»)

На странице 231 «Нейронных сетей» (автор Хайкин) он заявляет, что обратное распространение всегда сходится, хотя скорость может быть (по его словам) «мучительно медленной».

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

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

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

Xodarap
источник
Все веса увеличиваются (вес нейрона OR увеличивается быстрее), что минимизирует ошибку, когда ввод равен {1,0}, {0,1}, {0,0}, но максимизирует ошибку, когда {1,1}. Это проблема с онлайн-обучением, а не с групповым обучением?
@Shmuel: и онлайн, и пакетные будут идти в направлении градиента. Если этот градиент указывает в неправильном направлении, они оба пойдут в неправильном направлении. На странице Википедии по скалолазанию есть несколько способов обойти это, если вам интересно.
Xodarap
6

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

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

альт
источник