Q-обучение (англ.Q-learning) — метод машинного обучения, применяемый при разработке искусственного интеллекта в рамках агентного подхода. Относится к экспериментам вида обучение с подкреплением. На основе получаемого от среды вознаграждения агент формирует функцию полезности Q, что впоследствии дает ему возможность уже не случайно выбирать стратегию поведения, а учитывать опыт предыдущего взаимодействия со средой. Одно из преимуществ Q-обучения — то, что оно в состоянии сравнить ожидаемую полезность доступных действий, не формируя модели окружающей среды. Применяется для ситуаций, которые можно представить в виде марковского процесса принятия решений.
Повторять до сходимости или конечного состояния:
# Наблюдение:
s_пред = s
a_пред = a
s = Получить текущее состояние сенсора
r = Получить вознаграждение за предыдущее действие
# Обновление полезности:
Q[s_пред, a_пред] = Q[s_пред, a_пред] + LF * (r + DF * MAX(Q, s) - Q[s_пред, a_пред])
# Выбор действия:
a = ARGMAX(Q, s)
Передать действие a активатору
Функция MAX(Q, s):
max = minValue
Для каждого a из возможных действий для состояния s:
Если Q[s, a] > max, то max = Q[s, a]
Вернуть max
Функция ARGMAX(Q, s):
amax = Первое возможное действие для состояния s
Для каждого a из возможных действий для состояния s:
Если Q[s, a] > Q[s, amax], то amax = a
Вернуть amax
где:
LF — это коэффициент обучения α. Чем он выше, тем сильнее агент доверяет новой информации.
DF — это коэффициент обесценивания (дисконтирования) γ. Чем он меньше, тем меньше агент предпочитает выгоду от своих будущих действий в пользу настоящего.
Machine Learning Proceedings 1991: Proceedings of the Eighth International Workshop (ML91). — Elsevier Science, 2014. — P. 364. — ISBN 978-1-4832-9817-7.