Имеет ли выбор функции активации и начальных Весов какое-либо отношение к тому, застревает ли нейронная сеть в локальных минимумах?


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

Есть также другая статья[PDF] , в которой говорится, чтоне является локальным минимумом для простейшей сети XOR, но, похоже, речь не идет о сети 2-3-1.

Теперь к моему актуальному вопросу: я не смог найти ничего, что обсуждало бы выбор функции активации, начальные веса и то, как это влияет на то, застрянет ли нейронная сеть в локальных минимумах. Причина, по которой я задаю этот вопрос, заключается в том, что в моем коде я попытался использовать стандартную сигмовидную активацию функция и гиперболическая функция активации тангенса. Я заметил, что в первом случае я застреваю только около 20% времени, в то время как во втором я, как правило, застреваю гораздо чаще. Я также рандомизирую свои веса всякий раз, когда я впервые инициализирую сеть, и поэтому мне интересно, если определенный набор случайных весов более расположен к тому, чтобы моя нейронная сеть "застряла".

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

1 2

1 ответ:

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

Однако в случае XOR (с использованием топологии 3-3-1) не должно быть никаких локальных минимумов.

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

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

Что подводит меня к следующему пункту, вы уверены, что у вас есть равномерно распределенное количество обучающих примеров? Если вы предоставляете нейронной сети 900 положительных результатов классификации, но только 100 отрицательных результатов классификации, иногда сеть думает, что просто легче сказать, что все находится в пределах классификационной группы, потому что у нее только 10% ошибок, если это так. Многие алгоритмы обучения чрезвычайно хороши в поиске таких вещей.

Наконец, функция активации должна иметь мало-к-никакой разницы независимо от того, достигнет ли он локальных минимумов. Функция активации служит главным образом способом проецирования области реалов на гораздо меньший известный диапазон; (0,1) для сигмовидной и (-1,1) для гиперболической функции активации тангенса. Вы можете думать об этом как о способе обеспечения равенства между всеми изученными объектами на заданном нейронном уровне (так называемое масштабирование объектов). Поскольку входная область не известна заранее, это не так просто, как регулярное масштабирование объектов для линейной регрессии и, таким образом, функции активации должны использоваться, но это компенсируется в противном случае при вычислении ошибок во время обратного распространения.