Количество значений Q для сети глубокого обучения с подкреплением

В настоящее время я разрабатываю сеть глубокого обучения с подкреплением, однако у меня есть небольшие сомнения относительно количества q-значений, которые я получу на выходе NN. Всего у меня будет 150 q-значений, что лично мне кажется избыточным. Я читал в нескольких статьях и книгах, что это может быть проблемой. Я знаю, что это будет зависеть от того, какую НС я буду строить, но не думаете ли вы, ребята, что количество q-значений слишком велико? я должен уменьшить его?


person Michele    schedule 23.04.2018    source источник
comment
каково количество значений Q? Вы имеете в виду, что вам нужно выполнить 150 действий, и, таким образом, для каждого состояния s нужно оценить 150 Q(a, s)?   -  person lejlot    schedule 23.04.2018
comment
да именно так   -  person Michele    schedule 23.04.2018


Ответы (1)


Нет общего принципа, что такое «слишком много». Все зависит исключительно от проблемы и производительности, которую можно получить в обучении. В частности, количество действий не должно иметь значения, если внутренняя параметризация Q(a, s) эффективна. В качестве примера давайте предположим, что нейронная сеть на самом деле имеет форму NN(a, s) = Q(a, s), другими словами, она принимает действие как вход вместе с состоянием, и выводит значение Q. Если такую ​​архитектуру можно обучить решению рассматриваемой проблемы, она сможет масштабироваться до больших пространств действий; с другой стороны, если нейронная сеть в основном имеет независимый вывод для каждого действия, что-то в форме NN (s) [a] = Q (a, s), тогда многие действия могут привести к относительно разреженный обучающий сигнал для модели и, следовательно, привести к медленному конвергенция.

Поскольку вы спрашиваете об уменьшении пространства действия, похоже, что истинная проблема имеет сложный контроль (может быть, это непрерывная область управления?), и вы ищете некоторую дискретность, чтобы упростить изучение. В этом случае вам придется следовать типичному подходу проб и ошибок — пробовать с простым пространством действий, наблюдать за динамикой, а если результаты неудовлетворительны — усложнять задачу. Это позволяет вносить итеративные улучшения, в отличие от движения в противоположном направлении - начиная со слишком сложных настроек, чтобы получить какие-либо результаты, а затем уменьшая их, не зная, каковы «разумные значения».

person lejlot    schedule 23.04.2018