У меня есть ощущение, что одноэтапная задача обучения с подкреплением по существу одинакова с некоторыми алгоритмами оптимизации.

Например, предположим, что есть только один параметр α, и мы пытаемся оптимизировать y, используя для оптимизации градиентный спуск, тогда на каждой итерации (или шаге) α фактически немного приближается к направление с помощью δy. Шаг точно такой же в обучении с подкреплением, где δy называется временной разницей, а y - значением этого состояния S(a).

Итак, мне интересно, для 1-шаговых задач обучения с подкреплением, это на самом деле метод оптимизации или его можно использовать для оптимизации параметров? (исходя из контекста выше)

У меня может быть некоторое недопонимание по этому поводу, добро пожаловать на исправление.

1
MJeremy 19 Дек 2019 в 13:55
1
Недавно я видел документ, который, вероятно, не отвечает на ваш вопрос, но может быть вам интересен: Обучение с подкреплением со скидкой — это не проблема оптимизации [arxiv.org/pdf/1910.02140.pdf]
 – 
Pablo EM
20 Дек 2019 в 14:30

1 ответ

Во-первых, обучение с подкреплением носит очень общий характер. Почти любую задачу оптимизации можно преобразовать в задачу RL. Обычно это того не стоит, потому что агент RL будет выбирать неоптимальные действия, делая пробы и ошибки только для того, чтобы подтвердить то, что вы уже знаете по замыслу.

На ваш вопрос: я думаю, что сходство, которое вы обнаружили, заключается в том, что оба алгоритма используют (зашумленный) шаг градиента. Временная разница — это всего лишь один из многих методов RL. Если я правильно помню, он вычисляет разницу между прогнозируемым значением и (зашумленной) оценкой значения, сделанной с наблюдаемым вознаграждением. Он не может просто установить правильное значение, потому что вообще существует сложная зависимость между значениями других состояний, поэтому вместо этого он делает всего один маленький шаг, чтобы уменьшить разницу.

Конечно, вы можете каким-то образом настроить задачу RL для оптимизации reward = y(α). Теперь α может быть либо «состоянием» агента, и в этом случае вам нужны действия, уменьшающие или увеличивающие его (вы изучаете значения состояния), либо α может быть действием, и в этом случае есть только один состояние (вы изучаете действия-ценности). При правильной стратегии исследования это может сработать даже при наличии терпения. Но в обоих случаях вы теряете свои знания о градиенте δy(α)/δα, потому что алгоритм RL не знает об этом. Да, это требует шагов градиента, но эти градиенты уменьшают разницу между изученным значением и фактическим значением. Если истинные значения — это именно награды (что верно, если агент умирает после одного шага и если при оценке y(α) нет случайности), то это напрасные усилия. Вместо того, чтобы сделать небольшой шаг, чтобы сгладить несуществующее влияние на другие состояния, вы могли бы просто установить его на истинное значение напрямую.

Вы упомянули «одношаговое обучение с подкреплением»: на ум приходит контекстный бандит установка. Это упрощение полномасштабной настройки RL, когда ваши действия не влияют на следующее состояние (=контекст). Следующее упрощение — это многорукий бандит, у которого есть только действия, но нет состояния/контекста.

2
maxy 19 Дек 2019 в 18:08
Привет, спасибо за ответ. Это решает большую часть моего замешательства. Ваше заявление If the true values are exactly the rewards, then this is wasted effort, могу я узнать почему? Предположим, MAB без случайности, это то же самое, что и градиентный спуск?
 – 
MJeremy
20 Дек 2019 в 05:55