Virtual Laboratory Wiki
Advertisement

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

Формализация постановки задачи[]

При формализации важно отделить агента и среду.

В распоряжении агента имеются некоторое множество действий A(a1, a2 ... an). Действия агента влияют на среду, и агент в состоянии определить в каком состоянии он находится в данный момент и получает то или иное вознаграждение от среды за свои действия R(a,s).

Для построения среды важно определить всё множество возможных состояний среды S(s1, s2 ... sn). А также матрицу переходов T(s, a, s' ), которая содержит вероятности достижения состояния s', если в состоянии s было выполнено действие а. Предполагается, что эти переходы являются марковскими в том смысле, что вероятность достижения состояния s' из s зависит только от s, а не от истории пребывания в предыдущих состояниях. На данный момент запись T(s, a, s' ) может рассматриваться как большая трехмерная таблица, содержащая вероятности.

Задачей агента является найти наилучшею стратегию. В данном случае она будет описываться Q-значениями, которые определяют полезность выполняемого действия в соответствующем состоянии. Для обозначения стоимости выполнения действия а в состоянии s будет использоваться запись Q(a,s).


Обозначения[]

  • l или LF -- это фактор обучения. Чем он выше, тем сильнее агент доверяет новой информации.
  • d или DF -- это дисконтирование. Чем он меньше, тем меньше агент задумывается о выгоде от будущих своих действий.
  • е или EF -- это exploration фактор. Есть два типа принятия решений: exploration и explotation. Первое, это случайный выбор решения, второй это выбор по правилам. Поэтому, чем фактор выше, тем агент чаще будет действовать случайно, а не по тем правилам которые он выучил.


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

Функция 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

См. также[]


Это основополагающая версия, написанная участниками этого проекта. Но содержимое этой страницы очень близкое по содержанию предоставлено для раздела Википедии на русском языке. Так же, как и в этом проекте, текст этой статьи, размещённый в Википедии, доступен на условиях CC-BY-SA . Статью, размещенную в Википедии можно найти по адресу: Q - learning.


Advertisement