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[]
- Init (Инициализация):
- for each s and a do Q[s,a] = RND // 0..1
- Observe (Наблюдение):
- s' = s // Запомнить предыдущие состояние
- a' = a // Запомнить предыдущие действие
- s = FROM_SENSOR // Получить текущие состояние с сенсора
- r = FROM_SENSOR // Получить вознаграждение за предыдущие действие
- Update (Обновление ценности):
- Q[s',a'] = Q[s',a'] + LF * ( r + DF * MAX(Q,s) - Q[s',a'] )
- Decision (Выбор действия):
- a = ARGMAX(Q, s)
- TO_ACTIVATOR = a
- GO TO 2
Функция MAX(Q,s)[]
- max = minValue
- for each a of ACTIONS(s) do
- if Q[s,a] > max then max = Q[s,a]
- return max
Функция ARGMAX(Q,s)[]
- amax = First of ACTION(s)
- for each a of ACTION(s) do
- if Q[s,a] > Q[s,amax] then amax = a
- return amax
См. также[]
Это основополагающая версия, написанная участниками этого проекта. Но содержимое этой страницы очень близкое по содержанию предоставлено для раздела Википедии на русском языке. Так же, как и в этом проекте, текст этой статьи, размещённый в Википедии, доступен на условиях CC-BY-SA . Статью, размещенную в Википедии можно найти по адресу: Q - learning.