Код: GitRepo
Используемые гиперпараметры:
- Скорость обучения
- Учетная ставка
- Скорость исследования
Скорость обучения [0, 1]:
Скорость обучения — это скорость обучения или количество информации, которую мы переносим из текущей итерации в Q-таблицу.
Ставка скидки [0, 1]:
Ставка дисконтирования — это сумма скидки, которую мы даем q’(s’, a’) во время правила обновления.
Скорость исследования [0, 1]:
Обычно мы должны предпринять максимально ценное действие в данном состоянии. Но чтобы избежать перехода к локальному максимуму вместо глобального максимума, мы делаем несколько случайных действий несколько раз, даже если это действие не является максимальным действием. Это помогает разнообразить и искать везде возможное. И объем разведки определяется скоростью разведки.
Q-обучение:
Q[s, a] += скорость_обучения * (вознаграждение + (скидка * q’) — Q[s, a)
Здесь мы поддерживаем q-таблицу, которая помогает нам решить, какое действие следует предпринять из определенного заданного состояния. Мы сохраняем q-значения в Q-таблице. Каждая ячейка обозначается q(s, a). где s — состояние, а — действие. Таблица q будет иметь размер (s x a)
Примечание.
- Все изменения гиперпараметров выполняются в одной среде для оценки изменений результатов.
- Глобальные максимумы - это кратчайшее возможное расстояние в лабиринте. Местные максимумы - это почти короткое расстояние, но не самое короткое.
Условие сходимости:
- Конвергенция предполагается, когда у нас есть одно и то же вознаграждение в течение 8 последовательных итераций.
Часть 3:
Окружающая среда: 5x5
Наблюдение:
- Поскольку скорость исследования высока, вместо наиболее подходящих действий предпринимаются случайные действия.
Наблюдение:
- При высокой скорости обучения и скорости исследования возникает та же проблема, что и выше. Модель обучается, но по-прежнему делает случайный выбор в 80% случаев.
Наблюдение:
- При меньшей скорости обучения и скорости исследования обучение требует времени, но не является постоянным, поскольку модель имеет тенденцию быть неуверенной.
Наблюдение:
- Без коэффициента дисконта модель просто не работает. И обновление значений q не имеет смысла
Наблюдение:
- С меньшей скоростью исследования и 80% скоростью обучения и общей ставкой дисконтирования обучение немного колеблется, но в конце концов становится постоянным.
Наблюдение:
- При полной скорости обучения и скидке 80% модель, как правило, идеально согласуется, но мало отличается на каждой итерации. Постоянный путь не поддерживается.
Наблюдение:
- При нулевой скорости исследования модель очень быстро достигает идеально короткого пути и постоянно проходит только этот путь.
- Это недостаток, так как путь может быть почти более коротким, а не кратчайшим доступным путем.
- Весьма возможна преждевременная конвергенция.
Лучшие гиперпараметры:
Скорость исследования: 0,1 | Скорость обучения: 0,3 | Скидка: 0,8
Лучший способ запуска с гиперпараметрами:
- На самом деле мы можем установить гиперпараметры вручную и проверить производительность, но лучший способ установить гиперпараметры — это постепенно изменять их в соответствии с количеством итераций.
- В начале скорость исследования должна быть немного выше, а затем должна снизиться до 0,01.
- Скорость обучения также должна уменьшиться с 0,9 до 0,4.
- Ставка дисконтирования может оставаться постоянной.
Примечание.
Затраченное время прямо пропорционально количеству итераций. Итак, не упомянул время, затраченное.
Часть 3c:
- Если в начальном состоянии есть равная вероятность, то обучение также не вызывает беспокойства, и сходимость почти одинакова с небольшим +- несколькими итерациями.
Часть 3e:
- При наблюдении за значениями двух отдельных промежуточных состояний значения q увеличиваются для состояний, в которых это состояние желательно, и уменьшаются для состояний, в которых оно нежелательно. По сути, здесь вступает в силу положительное и отрицательное вознаграждение.
Часть 4:
- Извлечены значения q из предыдущей обученной модели.
- Применение этих значений q к новой среде.
Код для применения значений q к новой модели:
Вывод:
Наблюдение:
- Это точно не сработает, так как модель обучается на другом лабиринте.
- Указатель в лабиринте попадает в разные положения. Поскольку значения q не предназначены для этого лабиринта.
САРСА:
a’ = get_second_action()
q’ = Q(s’, a’)
Q(s, a) += скорость обучения * (вознаграждение + (скидка * q’) — Q(s, a))
В SARSA мы выполняем еще одно действие из первого действия, а затем берем значение q этого нового действия с этим новым состоянием.
Нижний лабиринт решается как алгоритмом Q-обучения, так и алгоритмом SARSA для сравнения производительности.
Q-обучение:
Сошлись за 60 итераций
САРСА:
Сошлись за 33 итерации
Наблюдение:
- SARSA — это жадная политика, так как политика, на которую она опирается, исходит из другого действия.
- Q-обучение непосредственно изучает оптимальное значение. В то время как SARSA изучает почти оптимальную политику с небольшим исследованием.
- Q-Learning требует немного больше итераций для сходимости, чем SARSA.
- При большем анализе Q-обучение в несколько раз лучше, чем SARSA. Возможно, разница связана с изменением лабиринта.