Q-обучение

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Q-обучение (Q-learning) — метод, применяемый в искусственном интеллекте при агентном подходе. Относится к экспериментам вида oбучение с подкреплением. На основе получаемого от среды вознаграждения агент формирует функцию полезности Q, что впоследствии дает ему возможность уже не случайно выбирать стратегию поведения, а учитывать опыт предыдущего взаимодействия со средой. Одно из преимуществ Q-обучения — то, что оно в состоянии сравнить ожидаемую полезность доступных действий, не формируя модели окружающей среды. Применяется для ситуаций, которые можно представить в виде марковского процесса принятия решений.

Aлгоритм Q-learning

Процесс Q-обучения
  1. Initialization (Инициализация):
    1. for each s and a do Q[s, a] = RND // инициализируем функцию полезности Q от действия а в ситуации s как случайную для любых входных данных
  2. Observe (Наблюдение):
    1. s' = s // Запомнить предыдущие состояния
    2. a' = a // Запомнить предыдущие действия
    3. s = FROM_SENSOR // Получить текущие состояния с сенсора
    4. r = FROM_SENSOR // Получить вознаграждение за предыдущее действие
  3. Update (Обновление полезности):
    1. Q[s',a'] = Q[s',a'] + LF * (r + DF * MAX(Q,s) — Q[s',a'])
  4. Decision (Выбор действия):
    1. a = ARGMAX(Q, s)
    2. TO_ACTIVATOR = a
  5. Repeat: GO TO 2

Обозначения

  • LF — это фактор обучения. Чем он выше, тем сильнее агент доверяет новой информации.
  • DF — это фактор дисконтирования. Чем он меньше, тем меньше агент задумывается о выгоде от будущих своих действий.

Функция MAX(Q,s)

  1. max = minValue
  2. for each a of ACTIONS(s) do
    1. if Q[s, a] > max then max = Q[s, a]
  3. return max

Функция ARGMAX(Q,s)

  1. amax = First of ACTION(s)
  2. for each a of ACTION(s) do
    1. if Q[s, a] > Q[s, amax] then amax = a
  3. return amax

Литература

См. также

Ссылки