Обновление старой системы до Q-learning с использованием нейронных сетей

#python #machine-learning #tensorflow #artificial-intelligence #reinforcement-learning

#python #машинное обучение #tensorflow #искусственный интеллект #подкрепление-обучение

Вопрос:

Недавно я много читал о Q-learning с использованием нейронных сетей и подумал об обновлении существующей старой системы оптимизации в котле электростанции, состоящей из простой нейронной сети с прямой связью, аппроксимирующей выходные данные многих сенсорных входов. Затем выходные данные связываются с контроллером на основе линейной модели, который каким-то образом снова выводит оптимальное действие, чтобы вся модель могла сходиться к желаемой цели.

Идентификация линейных моделей — трудоемкая задача. Я думал о том, чтобы переделать все это до Q-learning без моделирования с использованием аппроксимации Q-функции нейронной сетью. Я нарисовал диаграмму, чтобы спросить вас, на правильном ли я пути или нет.

Модель

Мой вопрос: если вы думаете, что я хорошо понял концепцию, должен ли мой обучающий набор состоять из State Features vectors с одной стороны и Q_target - Q_current (здесь я предполагаю, что вознаграждение увеличивается), чтобы привести всю модель к цели, или я что-то упускаю?

Примечание: На диаграмме показано сравнение между старой системой в верхней части и предлагаемым мной изменением в нижней части.

РЕДАКТИРОВАТЬ: гарантирует ли государственная нейронная сеть воспроизведение опыта?

Ответ №1:

Вы могли бы просто использовать все значения Q всех действий в текущем состоянии в качестве выходного уровня в вашей сети. Здесь плохо нарисованная диаграмма

Таким образом, вы можете воспользоваться возможностью NN выводить несколько значений Q одновременно. Затем просто верните поддержку, используя потери, полученные с помощью Q(s, a) <- Q(s, a) alpha * (reward discount * max(Q(s', a')) - Q(s, a) , где max(Q(s', a')) можно легко вычислить из выходного уровня.

Пожалуйста, дайте мне знать, если у вас возникнут дополнительные вопросы.