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

2026-03-27

Многорукие бандиты

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

Введение

Многорукий бандит — это простейшая постановка sequential decision making без состояний. У нас есть множество ручек A={a1,,an}\mathcal{A}=\{ a_{1}, \dots, a_{n} \} и неизвестное распределение награды для каждой из ручек: rtpar_{t} \sim p_{a}. На каждом шаге агент выбирает действие atAa_t \in \mathcal{A} и получает за него стохастическую награду. В стационарной постановке распределение каждой ручки не меняется со временем, а раунды независимы друг от друга.

Несмотря на простую постановку, здесь уже есть дилемма exploration vs exploitation, но ещё нет состояний, переходной динамики и отложенных последствий действий. Цель агента за горизонт TT — выбрать последовательность ручек a1,,aTAa_{1},\dots,a_{T}\in \mathcal{A}, которая бы максимизировала ожидаемую суммарную награду

E[tTrt]\mathbb{E}\left[ \sum_{t}^{T}r_{t} \right]

Чтобы это сделать, нужно как-то оценить качество выбранной ручки, для этого введем истинную ценность ручки q(a)q(a) следующим образом

q(a)=E[rtat=a],rtpatq(a)=\mathbb{E}[r_{t}\mid a_{t}=a],\quad r_{t}\sim p_{a_{t}}

Если бы истинные значения q(a)q(a) были известны (но мы их не знаем, так как распределение patp_{a_{t}} наград rtr_{t} не известны), мы бы всегда выбирали оптимальную ручку

aargmaxaAq(a).a^* \in \arg\max_{a \in \mathcal{A}} q(a).

И тем самым бы определили политику π:τtA\pi: \tau_{t}\to \mathcal{A}, где τt=(a1,r1,a2,)\tau_{t}=(a_{1},r_{1},a_{2},\dots) — траектория выборов агента и соотвествующих наград (просто история действий агента), на каждом шаге выбираея ручку с максимальной наградой.

Но все же можно строить эмпирические оценки фукнции ценности, будем называть ее эмпирической ценность ручки

q^t(a)=1Nt(a)st: as=ars=1Nt(a)s=1Trs1{at=a},\hat{q}_{t}(a)=\frac{1}{N_{t}(a)}\sum_{s\leq t:\ a_{s}=a} r_{s}=\frac{1}{N_{t}(a)} \sum_{s=1}^{T} r_{s}\cdot \mathbb{1}{\{ a_{t}=a \}},

где NT(a)N_{T}(a) — количество раз, когда агент выбрал действие aa за TT шагов.

Каждая такая оценка истинной фукнции ценности индуцирует какую-то политику π\pi и было бы не плохо понять, как можно оценивать и сравнивать успешность той или иной политики. В качестве метрики качества удобно смотреть на награду, потерянную по сравнению с такой всезнающей политикой (ее еще называют оракулом). Эта величина называется cumulative regret:

Regret(T)=t=1T(maxaAq(a)q^(at))\mathrm{Regret}(T)= \sum_{t=1}^T\left( \max_{a\in \mathcal{A}}q(a) - \hat{q}(a_{t}) \right)

Если обозначить разрыв субоптимальности как Δa=maxbAq(b)q^(a)\Delta_a = \max_{b \in \mathcal{A}} q(b) - \hat{q}(a) и число выборов действия aa как NT(a)N_T(a), то

E[Regret(T)]=aAΔaE[NT(a)].\mathbb{E}[\mathrm{Regret}(T)] = \sum_{a \in \mathcal{A}} \Delta_a \, \mathbb{E}[N_T(a)].

Это важное разложение: минимизировать regret означает как можно реже выбирать субоптимальные действия.

Вернемся к эмпирической оценке фукнции ценности ручки. Пусть на шаге t+1t+1 агент выбрал ручку aa, тогда

qt+1(a)=1Nt+1(a)s=1t+1rs1{as=a}=1Nt+1(a)(Nt(a)qt(a)+rt+1)=q_{t+1}(a)=\frac{1}{N_{t+1}(a)}\sum_{s=1}^{t+1}r_{s}\cdot \mathbb{1}\{ a_{s}=a \}=\frac{1}{N_{t+1}(a)}\left( N_{t}(a)q_{t}(a)+r_{t+1} \right) = Nt(a)+11Nt+1(a)qt(a)+rt+1Nt+1(a)=qt(a)+1Nt+1(a)(rt+1qt(a))\frac{N_{t}(a)+1-1}{N_{t+1}(a)} q_{t}(a) +\frac{r_{t+1}}{N_{t+1}(a)}=q_{t}(a)+\frac{1}{N_{t+1}(a)}\left( r_{t+1}-q_{t}(a) \right)

Мы получили инкрементальную формулу обновления фукнции ценности, то есть больше нет необходимости хранить всю историю действий, теперь для обновления достаточно одно только q(a)q(a). Можно записать эту формулу в более общем виде

qq+α(rq)q\leftarrow q+\alpha(r-q)

Если взять α=1/Nt(a)\alpha = 1 / N_t(a), получаем выборочное среднее. Если задача нестационарна и распределения награды со временем дрейфуют, часто лучше брать постоянный шаг α(0,1)\alpha \in (0,1): тогда старые наблюдения экспоненциально забываются.

в теории стохастической оптимизации сущесвуют условия, налагающие ограничения на α\alpha: чтобы процесс оценки среднего qt(a)q(a)q_{t}(a)\to q(a) сходился почти наверное, нужны условия:

tαt=,t=1αt2< \sum_{t}^{\infty}\alpha_{t}=\infty,\quad \sum_{t=1}^{\infty}\alpha_{t}^2<\infty

Теперь зададимся вопросом получения политики из сущесвующей фукнции ценности

ε-greedy политика

Если на каждом шаге выбирать действие, максимизируеющее награду, мы не будем исследовать новые стратегии. Так если на ранних шагах значения наград дали выброс, то мы получим неправильную оценку, и алгоритм зафиксируется на плохом действии. Поэтому можно добавить элемент случайности и ввести ε\varepsilon-жадную политику:

At={argmaxaAQt(a),p=1ε,Uniform(A),p=ε.A_{t}=\begin{cases} \arg \max _{a\in \mathcal{A}}Q_{t}(a), & p=1-\varepsilon, \\ \mathrm{Uniform}(\mathcal{A}), & p=\varepsilon. \end{cases}

При фиксированном ε>0\varepsilon > 0 такая стратегия продолжает случайно исследовать и на поздних шагах, поэтому её regret растёт линейно по TT

UCB

Вместо добавления вероятности выбора случайного действия можно добавить бонус за неопределённость:

at=argmaxaA(qt(a)+clntNt(a)).a_{t}=\arg\max_{a \in \mathcal{A}}\left( q_{t}(a)+\sqrt{ \frac{c\ln t}{N_{t}(a)} } \right).

Если действие мало пробовали, то за него будет большой бонус, что приводит к исследованию менее изученных действий. Баланс между exploration и exploitation сохраняется автоматически.

Эта стратегия называется Upper Confidence Bound. Идея в том, что мы выбираем не просто действие с наибольшей текущей средней наградой, а действие с наибольшей верхней доверительной границей. Если для некоторой ручки оценка неточная, то доверительный интервал широкий, и алгоритм будет чаще её исследовать.

Это пример принципа optimism in the face of uncertainty: если про действие мало известно, алгоритм временно предполагает для него более благоприятный сценарий и тем самым заставляет себя собрать информацию.

Для формального объяснения формулы нужно использовать неравенство Хёфдинга: Пусть X1,XnX_{1},\dots X_{n} — i.i.d. и i:P(Xi[ai,bi])\forall i:\mathbb{P}(X_{i}\in[a_{i},b_{i}]), тогда

P(XnE[Xn]ε)exp(2ε2n2i=1n(biai)2)\mathbb{P}(\overline{X}_{n}-\mathbb{E}[\overline{X}_{n}]\geq\varepsilon)\leq \exp \left( -\frac{2\varepsilon^2n^2}{\sum_{i=1}^n (b_{i}-a_{i})^2} \right)

В частности, если считать, что rt[0,1]r_{t}\in[0,1], то неравенство принимает вид

P(qt(a)q^t(a)ε)2exp(2nε2)    ε=ln(2/δ)2n\mathbb{P}(\mid q_{t}(a)- \hat{q}_{t}(a) \mid \geq \varepsilon ) \leq 2\exp(-2n\varepsilon^2) \implies\varepsilon=\sqrt{ \frac{\ln(2/\delta)}{2n} }

Тогда соотвествующая политика будет имеет вид

at=argmaxaA(Qt(a)+clntNt(a)).a_t = \arg\max_{a \in \mathcal{A}}\left( Q_t(a) + \sqrt{\frac{c \ln t}{N_t(a)}} \right).

Интуитивно:

  • первое слагаемое отвечает за exploitation, то есть выбор ручек с большой средней наградой;
  • второе слагаемое отвечает за exploration, то есть за интерес к ручкам, которые ещё мало исследовали.

Замечание:

  • в начале работы нужно хотя бы один раз попробовать каждое действие, иначе для Nt(a)=0N_t(a)=0 формула не определена;
  • в классической постановке UCB1 при ограниченных наградах достигается логарифмический regret O(logT)O(\log T), то есть существенно лучше, чем у ε\varepsilon-жадной стратегии с фиксированным ε\varepsilon;
  • UCB детерминирован после фиксации наблюдений: вся случайность связана только с наградами среды, а не с самой политикой.

Thompson Sampling

Ещё один популярный подход — Thompson Sampling. Его идея состоит в том, чтобы не подставлять в политику одну точечную оценку qt(a)q_t(a), а поддерживать распределение неопределённости на параметрах награды и сэмплировать из него.

Пусть у каждой ручки есть неизвестный параметр θa\theta_a. Тогда мы поддерживаем апостериорное распределение

p(θaDt),p(\theta_a \mid \mathcal{D}_t),

где Dt\mathcal{D}_t — все наблюдения к моменту tt. На шаге tt:

  1. для каждой ручки сэмплируем
θ~ap(θaDt);\tilde{\theta}_a \sim p(\theta_a \mid \mathcal{D}_t);
  1. выбираем действие
at=argmaxaAθ~a;a_t= \arg\max_{a \in \mathcal{A}} \tilde{\theta}_a;
  1. наблюдаем награду и обновляем posterior.

Интуитивно это тоже баланс exploration/exploitation:

  • если по ручке уже много данных, posterior узкий, и сэмплы почти одинаковые;
  • если данных мало, posterior широкий, и ручка иногда будет получать большие сэмплы, из-за чего её будут исследовать.

Удобная интерпретация: вероятность выбора действия примерно равна апостериорной вероятности того, что именно оно оптимально. Поэтому exploration здесь возникает не из внешнего шума и не из явного доверительного бонуса, а из самой байесовской неопределённости.