Проблемы с обратным распространением

У меня есть пара вопросов о том, как кодировать алгоритм обратного распространения нейронных сетей:

Топология моих сетей - это входной слой, скрытый слой и выходной слой. И скрытый слой, и выходной слой имеют сигмовидные функции.

  1. Прежде всего, следует ли использовать предвзятость? Куда мне подключить предвзятость в моей сети? Должен ли я помещать по одной единице смещения на слой как в скрытом, так и в выходном слое? А как насчет входного слоя?
  2. В этой ссылке последняя дельта определяется как ввод-вывод, и они распространяют дельты в обратном направлении, как видно на рисунке. Они содержат таблицу, в которой помещаются все дельты перед фактическим распространением ошибок в режиме прямой связи. Это отход от стандартного алгоритма обратного распространения ошибки? альтернативный текст
  3. Следует ли со временем снижать коэффициент обучения?
  4. На случай, если кто-нибудь знает, является ли Resilient Propagation онлайн-методом или методом пакетного обучения?

Спасибо

edit: Еще кое-что. На следующем рисунке d f1 (e) / de, если я использую сигмовидную функцию, равно f1 (e) * [1- f1 (e)], верно? альтернативный текст


person devoured elysium    schedule 12.12.2009    source источник


Ответы (2)


Ваш вопрос требует уточнения ... Что вам нужно? Обобщение или запоминание? Ожидаете ли вы сложный набор данных сопоставления с образцом или отношения ввода-вывода в непрерывной области? Вот мои 0,02 доллара:

  1. Я бы посоветовал вам оставить нейрон смещения на всякий случай, если он вам понадобится. Если НС сочтет это ненужным, тренировка должна довести веса до незначительных значений. Он будет подключаться к каждому нейрону в слое впереди, но не связан ни с одним нейроном в предыдущем слое.

  2. Насколько я могу судить, уравнение выглядит как стандартное обратное распространение.

  3. Трудно сделать обобщение, нужно ли со временем снижать скорость обучения. Поведение сильно зависит от данных. Чем меньше ваша скорость обучения, тем стабильнее будет ваше обучение. Однако это может быть болезненно медленным, особенно если вы запускаете его на языке сценариев, как я когда-то делал.

  4. Resilient backprop (или RProp в MATLAB) должен обрабатывать как интерактивный, так и пакетный режимы обучения.

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

person Zaid    schedule 13.12.2009
comment
Моя цель - обобщение. Я на самом деле сейчас использую tanh. Что бы вы посоветовали кроме этого? - person devoured elysium; 13.12.2009
comment
Комбинация tanh и линейных функций для скрытых и выходных нейронов соответственно хороша для отображения непрерывных функций. Пошаговые функции хороши для распознавания образов. Пожалуйста, добавьте подробности к вашему вопросу. - person Zaid; 14.12.2009

  1. Различается. Лично я не вижу особых причин для предвзятости, но я недостаточно изучил NN, чтобы на самом деле аргументировать их за или против. Я бы попробовал и результаты тестов.

  2. Это правильно. Обратное распространение включает сначала вычисление дельт, а затем их распространение по сети.

  3. да. Фактор обучения должен со временем уменьшаться. Однако с BP вы можете достичь локальных неправильных плато, поэтому иногда около 500-й итерации имеет смысл сбросить коэффициент обучения до начальной скорости.

  4. Я не могу ответить на этот вопрос ..... никогда ничего не слышал о РП.

person Reverend Gonzo    schedule 12.12.2009
comment
По поводу 4) Я думаю, что RP может быть онлайн или пакетной - person Richard H; 12.12.2009