Конвергенция Q-обучения на перевернутом маятнике

Здравствуйте, я работаю над полным контролем проблемы с тележкой (перевернутый маятник). Моя цель состоит в том, чтобы система достигла стабильности, что означает, что все состояния (x, xdot, theta и theta) должны сходиться к нулю. Я использую q-обучение с функцией вознаграждения, как определено ниже.

Q_table[pre_s + (a,)] += alpha * (R + gamma *(argmax(Q_table[s])) - Q_table[pre_s + (a,)])
R=1000*cos(theta)-1000*(theta_dot**2)-100*(x_dot**2)-100*(x**2)

к сожалению, сходимости нет. По графику q-таблицы я вижу, что он увеличивается и стабилизируется на максимальном значении, но состояния просто остаются в пределах определенной границы и не достигают нуля. Я чувствую, что мой агент недостаточно быстро учится, и в какой-то момент я больше не учусь. Может кто-нибудь помочь мне.


person Stevy KUIMI    schedule 05.11.2018    source источник
comment
Добро пожаловать в Stack Overflow! Я отредактировал заголовок вашего вопроса, чтобы сделать его более читаемым. Особенно необходимо правильно пометить образец кода, чтобы его части не интерпретировались как символы форматирования. Я также добавил несколько пробелов и статей.   -  person IvanH    schedule 05.11.2018
comment
Ваша награда довольно необычна для этого задания. Возможно, эти большие значения (*1000) вызывают нестабильность. Взгляните на функцию стоимости реализации спортзала OpenAI, который является наиболее распространенным для этой задачи. Кроме того, многое зависит от вашей скорости обучения alpha и вашей стратегии исследования (наверное, жадной).   -  person Simon    schedule 08.11.2018


Ответы (1)


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

Кроме того, можете ли вы объяснить логику вашей функции вознаграждения? Кажется непривычным умножать все на 1000.

person R.F. Nelson    schedule 10.11.2018