2

Я пытаюсь понять 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)

Но все они, кажется, получают аналогичные, разочаровывающие, результаты ,

enter image description here

+0

Запуск моделирования, когда я печатаю это, плохо обновляю главный пост с изображением некоторых результатов на мгновение. – Samalot

ответ

1

Есть порядка 10²⁰ различных состояний в шашках, и вы должны играть всю игру для каждого обновления, так что это будет очень, очень долгое время, пока вы не получите значение значимого действий этого путь. Как правило, вам нужно упрощенное представление состояния, например нейронную сеть, для решения этой проблемы с использованием обучения усилению.

Кроме того, несколько предостережений:

  • В идеале, вы должны обновить значение 1 за игру, потому что движется в одной игре сильно коррелируют.
  • Нужно инициализировать значения действия небольшими случайными значениями, чтобы избежать больших изменений политики от небольших обновлений Q.
+0

Спасибо!И просто уточнить, вы говорите, что TD (0) вряд ли покажет какое-либо улучшение для Checkers, скажем, 1000 игр, – Samalot

+1

@Samalot, я бы не удивился, если бы он не улучшился после миллиона. –