Q-обучение

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Aлгоритм Q — learning[править | править исходный текст]

  1. Init (Инициализация):
    1. for each s and a do Q[s, a] = RND // 0..1
  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. 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

Литература[править | править исходный текст]

Ссылки[править | править исходный текст]