Q-learning (несколько целей)

Я только начал изучать Q-learning и вижу возможности использования Q-learning для решения своей проблемы.

Проблема: я должен обнаружить определенную комбинацию данных, у меня есть четыре матрицы, которые действуют как вход в мою систему, я уже классифицировал входы (каждый вход может быть либо низким (L), либо высоким (H)). Мне нужно определить определенные типы ввода, например, LLLH, LLHH, HHHH и т. Д.

ПРИМЕЧАНИЕ: 1)LLLH означает первый вход в L, второй вход L, третий вход L и четвертый вход H! 2) Я обозначил каждый тип входного типа как состояние, например, LLLL - это состояние 1, LLLH - это состояние 2, и так далее.

Что я изучал в Q-learning, так это то, что большую часть времени у вас есть одна цель (только одно состояние в качестве цели), что облегчает агенту изучение и создание Q-матрицы из R-матрицы. Теперь в моей задаче много целей (многие государства выступают в качестве цели и должны быть обнаружены). Я не знаю, как спроектировать состояния, как создать матрицу вознаграждений, имея много целей и как агент будет учиться. Можете ли вы помочь мне, как я могу использовать Q-learning в такой ситуации. Учитывая, что у меня 16 голов в более чем 20 штатах!

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

Мне нужна помощь, по крайней мере, как я могу создать матрицу наград с множеством целей

2 ответа

Многочисленные цели исследуются, поскольку это решает некоторые критические проблемы RL.

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

Автор расскажет вам о логике и подходе в TensorFlow: https://www.oreilly.com/ideas/reinforcement-learning-for-complex-goals-using-tensorflow

Мне нужна помощь, по крайней мере, как я могу создать матрицу наград с множеством целей

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

Rtot = w1 * R1 + w2 * R2 + ... + wn * Rn

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

Есть более сложный способ, который называется "Многомерное вознаграждение RL" или "Многокритериальный RL". Вы можете погуглить их и найти соответствующие документы.