Я пытаюсь понять Q-Learning,Является ли это правильной реализацией Q-Learning для Checkers?
Мой текущий алгоритм работает следующим образом:
1. таблица поиска поддерживается, который отображает состояние информации о его немедленной награды и полезность для каждого доступного действия.
2. В каждом состоянии проверьте, содержится ли он в таблице поиска и инициализирует его, если нет (с утилитой по умолчанию 0).
3. Выберите действие, выполняемое с вероятностью:
(*ϵ* = 0>ϵ>1 - probability of taking a random action)
1-ϵ = Choosing the state-action pair with the highest utility.
ϵ = Choosing a random move.
ϵ decreases over time.
4. утилита обновления текущего состояния, основанный на:
Q(st, at) += a[rt+1, + d.max(Q(st+1, a)) - Q(st,at)]
Я в настоящее время играя с моим агентом против простого эвристического игрока, который всегда ta kes the move, который даст лучший результат немедленная награда.
Результаты - Результаты очень беден, даже после того, как пару сотен игр, Q-Learning агент теряет намного больше, чем выигрывает. Кроме того, изменение выигрышной ставки почти не существует, особенно после достижения пары сотен игр.
Я что-то упустил? Я реализовал пару агентов:
(Rote-Learning, TD (0), TD (Lambda), Q-Learning)
Но все они, кажется, получают аналогичные, разочаровывающие, результаты ,
Запуск моделирования, когда я печатаю это, плохо обновляю главный пост с изображением некоторых результатов на мгновение. – Samalot