Изменения

Перейти к: навигация, поиск

Обучение с подкреплением

265 байт убрано, 22:30, 13 января 2019
м
Нет описания правки
For all final states <math>s_f</math>, <math>Q(s_f, a)</math> is never updated, but is set to the reward value <math>r</math> observed for state <math>s_f</math>. In most cases, <math>Q(s_f,a)</math> can be taken to equal zero.
# '''Initialization''' (Инициализация):## for each s and a do Q[s, a] = RND // инициализируем функцию полезности Q от действия а в ситуации s как случайную для любых входных данных# '''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# '''Repeat''': GO TO 2 === Обозначения ===
* LF — это фактор обучения. Чем он выше, тем сильнее агент доверяет новой информации.
* DF — это фактор дисконтирования. Чем он меньше, тем меньше агент задумывается о выгоде от будущих своих действий.
'''fun''' init(): '''for''' \forall s and a: Q[s, a] = rand()  '''fun''' observe(): s' = s // Запомнить предыдущие состояния a' =a // Запомнить предыдущие действия s = get_from_sensor() // Получить текущие состояния с сенсора r =get_from_sensor() // Получить вознаграждение за предыдущее действие  '''fun''' q-update(): Q[s', a'] = Функция Q[s', a'] + LF * (r + DF * MAX(Q,s)  — Q[s',a'])  '''fun''' decision(): a =ARGMAX(Q, s) TO_ACTIVATOR ==a# '''Repeat''': GO TO 2 ???  '''fun'' 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'''fun'' 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
77
правок

Навигация