#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'))
можно легко вычислить из выходного уровня.
Пожалуйста, дайте мне знать, если у вас возникнут дополнительные вопросы.