Сарса и Q Learning (обучение с подкреплением) не сходятся в оптимальной политике - PullRequest
0 голосов
/ 11 октября 2018

У меня есть вопрос о моем собственном проекте по тестированию техники подкрепления.Сначала позвольте мне объяснить вам цель.У меня есть агент, который может выполнить 4 действия в течение 8 шагов.В конце этих восьми шагов агент может оказаться в 5 возможных состояниях победы.Цель состоит в том, чтобы найти минимальную стоимость.Чтобы получить доступ к этим 5 победам (с разным значением стоимости: 50, 50, 0, 40, 60), агент не выбирает тот же путь (как график).Синие состояния - это состояния отказа (извините за качество), и эпизод остановлен.

введите описание изображения здесь

Действительно хороший путь: DCCBBAD

Теперь мой вопрос, я не понимаю, почему в SARSA & Q-Learning (главным образом, в Q learning) агент находит путь, но не оптимальный путь после 100 000 итераций (всегда: DACBBAD / DACBBCD).Иногда, когда я снова вычисляю, агент попадает в хороший путь (DCCBBAD).Поэтому я хотел бы понять, почему агент иногда находит его, а почему нет.И есть способ посмотреть, чтобы стабилизировать моего агента?

Большое спасибо,

Tanguy

1 Ответ

0 голосов
/ 11 октября 2018

TD; DR;

  1. Настройте свой эпсилон так, чтобы вы исследовали кучу для большого количества эпизодов.Например, линейное затухание от 1,0 до 0,1.
  2. Установите для своей скорости обучения небольшое постоянное значение, например 0,1.
  3. Не останавливайте свой алгоритм, основываясь на количестве эпизодов, но на изменениях вфункция-значение.

Более подробная версия:

Q-обучение может сходиться только при следующих условиях:

  1. Вы должны посещать все пары состояний и действий бесконечно часто.
  2. Сумма всех скоростей обучения для всех временных шагов должна быть бесконечной, поэтому sum
  3. Сумма квадрата всехскорость обучения для всех временных шагов должна быть конечной, то есть squares

Чтобы достичь 1, просто убедитесь, что ваш эпсилон не затухает до низкого значения слишком рано.Заставьте его распадаться очень-очень медленно и, возможно, никогда не доходя до нуля. Вы также можете попробовать epsilon.Чтобы попасть в 2 и 3, вы должны позаботиться о 1, чтобы вы собирали бесконечные скорости обучения, а также выбирали скорость обучения, чтобы ее квадрат был конечным.Это в основном означает = <1. Если ваша среда является детерминированной, вы должны попробовать 1. Детерминированная среда здесь означает, что при выполнении действия <code>a в состоянии s вы переходите в состояние s' для всех состояний и действий в вашей среде.,Если ваша среда стохастическая, вы можете попробовать меньшее число, например, 0,05-0,3.

Возможно, извлечение https://youtu.be/wZyJ66_u4TI?t=2790 для получения дополнительной информации.

...