1

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

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

[0,5 0,5 0,5] -> [0,5 0,5 0,5] 
[1 1 1] -> [1 1 1] 
[2 2 2] -> [-1 -1 -1] 

Так что мне интересно, как я могу использовать сеть с 3 выходами и вместо проверки активации, использовать все выходы, как мой выходной шаблон?

ответ

3

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

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

  • Поезд a real multi-output нейронная сеть. В этом случае для ANS с двумя скрытыми слоями весы нейронов входного слоя одинаковы для каждого выхода, тогда как весовые уровни выходного уровня являются специфическими для каждого выхода. В этом случае вам необходимо объединить процедуру обратного прогона трех выходов. В простом подходе вы можете сделать это, последовательно применяя одну итерацию обратного распространения к каждому результату, пока вы, надеюсь, не получите конвергенцию. Чтобы сделать это разумным способом, вам, вероятно, придется соответствующим образом масштабировать свои ответы (в противном случае один выход может доминировать над другими).

Так опять же, вот основная процедура для трех выходов:

  1. Раздельное обучение устанавливается на три группы в каждом из которых один ответ. Стандартизируйте каждый набор.

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

  3. Repeat 2. до сходимости (--Однако вы определили его. Должно быть аналогична процедуре одномерного вывода.)

Однако, как уже упоминалось, это не только одна возможность из большое разнообразие методов оптимизации.


РЕДАКТИРОВАТЬ: выше является продолжением той простой одномерной процедуры обратного распространения. Степени свободы здесь:

(i) порядок, с которым обрабатываются входы и рассчитываются условия ошибки, и
(ii) когда производится обновление скрытых нейронов.

Вариант, описанный выше, пересылает данные как [x_1, ..., x_N, y_1, ..., y_N, z_1, ..., z_N] и обновляется после каждого шага (эта схема обновления часто называется Gauss-Seidel).Другой крайностью является сохранение условий ошибки и обновление только один раз после обработки полного набора. (Версия Гаусса-Зейделя обычно сходится немного быстрее).

Другой вариант, который, вероятно, наиболее похож на стандартное обратное распространение, состоит в обработке трех измерений каждого набора данных, то есть [x_1, y_1, z_1, ..., x_N, y_N, z_N], и обновления после каждого набора данных (то есть после каждой третьей итерации). Фактически, выполняется одно трехмерное градиентное обновление (которое можно сделать как трехмерную одномерную оценку ошибки из-за линейного характера градиента).

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


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

+0

Можете ли вы указать на любые документы/сообщение в коде/блоге и т. Д. Это объясняет второй подход? Или Что именно это называется? техника для обучения. –

+0

Нет, у меня нет ссылки на вышеизложенное (хотя, вероятно, не так сложно найти его), но это простое расширение алгоритма Backpropagation. Однако обратите внимание, что при прямом расширении * real * вы не должны последовательно обучать каждый размер, но для каждого процесса обработки данных все три измерения. Из-за линейного характера градиента обратного распространения три одномерных обновления равны одному трехмерному обновлению. – davidhigh

Смежные вопросы