Ошибка нейронной сети XOR перестает уменьшаться во время обучения - PullRequest
12 голосов
/ 08 ноября 2011

Я тренирую нейронную сеть XOR с помощью обратного распространения с использованием стохастического градиентного спуска.Веса нейронной сети инициализируются случайными значениями между -0,5 и 0,5.Нейронная сеть успешно тренируется около 80% времени.Однако иногда он застревает при обратном распространении.«Застрял», я имею в виду, что я вижу снижение скорости исправления ошибок.Например, во время успешного обучения общая ошибка уменьшается довольно быстро по мере обучения сети, например:

...
...
Total error for this training set: 0.0010008071327708653
Total error for this training set: 0.001000750550254843
Total error for this training set: 0.001000693973929822
Total error for this training set: 0.0010006374037948094
Total error for this training set: 0.0010005808398488103
Total error for this training set: 0.0010005242820908169
Total error for this training set: 0.0010004677305198344
Total error for this training set: 0.0010004111851348654
Total error for this training set: 0.0010003546459349181
Total error for this training set: 0.0010002981129189812
Total error for this training set: 0.0010002415860860656
Total error for this training set: 0.0010001850654351723
Total error for this training set: 0.001000128550965301
Total error for this training set: 0.0010000720426754587
Total error for this training set: 0.0010000155405646494
Total error for this training set: 9.99959044631871E-4

Testing trained XOR neural network
0 XOR 0: 0.023956746649767453
0 XOR 1: 0.9736079194769579
1 XOR 0: 0.9735670067093437
1 XOR 1: 0.045068688874314006

Однако, когда она застревает, общее количество ошибок уменьшается, но, похоже, оноскорость снижения:

...
...
Total error for this training set: 0.12325486644721295
Total error for this training set: 0.12325486642503929
Total error for this training set: 0.12325486640286581
Total error for this training set: 0.12325486638069229
Total error for this training set: 0.12325486635851894
Total error for this training set: 0.12325486633634561
Total error for this training set: 0.1232548663141723
Total error for this training set: 0.12325486629199914
Total error for this training set: 0.12325486626982587
Total error for this training set: 0.1232548662476525
Total error for this training set: 0.12325486622547954
Total error for this training set: 0.12325486620330656
Total error for this training set: 0.12325486618113349
Total error for this training set: 0.12325486615896045
Total error for this training set: 0.12325486613678775
Total error for this training set: 0.12325486611461482
Total error for this training set: 0.1232548660924418
Total error for this training set: 0.12325486607026936
Total error for this training set: 0.12325486604809655
Total error for this training set: 0.12325486602592373
Total error for this training set: 0.12325486600375107
Total error for this training set: 0.12325486598157878
Total error for this training set: 0.12325486595940628
Total error for this training set: 0.1232548659372337
Total error for this training set: 0.12325486591506139
Total error for this training set: 0.12325486589288918
Total error for this training set: 0.12325486587071677
Total error for this training set: 0.12325486584854453

Когда я читал о нейронных сетях, я натолкнулся на дискуссию о локальных минимумах и глобальных минимумах и о том, как нейронные сети на самом деле не «знают», к каким минимумам они должны идти.

Моя сеть застревает в локальных минимумах вместо глобальных минимумов?

Ответы [ 3 ]

6 голосов
/ 08 ноября 2011

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

Могут быть и другие факторы, приводящие к этой проблеме.Например, если вы спускаетесь очень быстро в какой-то крутой долине, если вы просто используете градиентный спуск первого порядка, вы можете добраться до противоположного склона и все время подпрыгивать назад и вперед.Вы также можете попробовать указать среднее изменение по всем весам на каждой итерации, чтобы проверить, действительно ли у вас есть «зависшая» сеть, или, точнее, та, которая только что натолкнулась на цикл ограничения.

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

2 голосов
/ 06 сентября 2012

Плохой градиентный спуск с чрезмерно большими шагами, как описано ЛиКао, является одной из возможных проблем.Другая причина состоит в том, что в ландшафте ошибок XOR имеются очень плоские области, что означает, что сходимость занимает очень много времени, и на самом деле градиент может быть настолько слабым, что алгоритм снижения не тянет вас в правильном направлении.

В этих двух статьях рассматриваются ландшафты XOR 2-1-1 и 2-2-1.Каждый использует функцию ошибки "перекрестной энтропии", которую я не знаю.В первом они заявляют, что нет локальных минимумов, но во втором они говорят, что существуют локальные минимумы на бесконечности - в основном, когда веса сбрасываются до очень больших значений.Так что во втором случае их результаты показывают, что если вы не начнете с «достаточно» истинных минимумов, вы можете оказаться в ловушке в бесконечных точках.Они также говорят, что другие анализы сетей 2-2-1 XOR, которые не показывают локальных минимумов, не противоречат их результатам из-за определенных определений.

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.4770

http://www.ncbi.nlm.nih.gov/pubmed/12662806

1 голос
/ 05 сентября 2015

Я столкнулся с той же проблемой и обнаружил, что при использовании функции активации 1.7159 * tanh (2/3 * x), описанной в Помогает документ LeCun «Efficient Backprop» . Вероятно, это связано с тем, что эта функция не насыщает целевые значения {-1, 1}, в то время как обычная tanh делает это.

...