Справочная информация:
я использую приближение Q-значения нейронной сети в моей задаче обучения подкрепления. Подход точно такой же, как описанный в этом вопросе , однако сам вопрос другой.
В этом подходе количество выходов - это количество действий, которые мы можем предпринять. Иными словами, алгоритм следующий: выполните действие A, изучите награду, попросите NN предсказать значения Q для всех возможных действий, выберите максимальное значение Q, рассчитайте Q для конкретного действия A как R + max(new_state_Q)
. Подгоните модель к предсказанным значениям Q, заменив только одно из них R + max(new_state_Q)
.
Вопрос: Насколько эффективен этот подход, если количество выходов велико?
Попытка: допустим, мы можем предпринять 10 действий. На каждом шаге мы просим модель предсказать 10 значений, в раннем возрасте модели это полное беспорядок. Затем мы модифицируем 1 значение вывода и подгоняем модель к этим значениям.
У меня две противоположные мысли о том, насколько хорош \ плох этот подход, и я не могу решить, какой из них правильный:
- С одной точки зрения, мы тренируем каждый нейрон 9 раз на случайных данных и только один раз на данных, близких к реальному значению. Если NN предсказал 5 для действия A в состоянии S, но реальное значение равно -100, мы подгоним NN 9 раз со значением 5, а затем один раз со значением -100. Звучит безумно
- С другой точки зрения, обучение нейронной сети реализовано как обратное распространение ошибки , поэтому, когда модель предсказала 5, а мы обучаем ее 5, она не узнает ничего нового, так как ошибка равна 0. Веса не затрагиваются. , И только когда мы вычислим -100 и подгоним его к модели, он произведет пересчет веса.
Какой вариант подходит? Может быть, что-то еще я не принимаю во внимание?
ОБНОВЛЕНИЕ: под «насколько эффективно» я подразумеваю сравнение с подходом с одним выходом - прогнозируемой наградой. Конечно, действие будет частью ввода в этом случае. Таким образом, подход № 1 делает прогнозы для всех действий на основе некоторого состояния, подход № 2 делает прогноз для конкретных действий, предпринимаемых в каком-то состоянии.
Ответы:
Итак, два варианта, которые мы хотим сравнить:
Исходя из собственной интуиции, я сомневаюсь, что между этими двумя вариантами есть существенная разница с точки зрения мощности представления или скорости обучения (с точки зрения итераций).
Для мощности представления первый вариант дает немного «меньшую» сеть около входов, а «более широкую» сеть около выходов. Если по какой-либо причине было бы выгодно иметь больше весов, например, ближе к входным узлам, этого можно было бы в значительной степени сделать, сделав первый скрытый слой (близкий к входам) немного большим.
Что касается скорости обучения, то, по-видимому, вас беспокоит, в основном, то, что, как правило, имеется только точный обучающий сигнал для одного из выходов, а не для других. Со вторым вариантом, то же самое можно сказать и о весах, подключенных к входным узлам, поэтому я сомневаюсь, что там есть существенная разница.
Как я уже говорил, все вышеизложенное основано только на моей интуиции, хотя было бы интересно увидеть более достоверные ссылки на это.
источник