20.4 밴딧·오프라인 RL·안전한 의사결정

실습 · 연습문제 2개

importance sampling으로 오프 정책 평가 importance-sampling-ope

행동 정책 πb\pi_b가 모은 궤적 NN개(각 HH step)로 다른 정책 πe\pi_e의 가치를 추정한다. 궤적 ii의 할인 이득과 importance weight는

Gi=∑t=0H−1γtri,t,wi=∏t=0H−1πe(ai,t∣si,t)πb(ai,t∣si,t)G_i = \sum_{t=0}^{H-1} \gamma^t r_{i,t}, \qquad w_i = \prod_{t=0}^{H-1} \frac{\pi_e(a_{i,t} \mid s_{i,t})}{\pi_b(a_{i,t} \mid s_{i,t})}

이고, 세 값을 계산한다.

J^OIS=1N∑iwiGi,J^WIS=∑iwiGi∑iwi,ESS=(∑iwi)2∑iwi2.\hat{J}_{\mathrm{OIS}} = \frac{1}{N}\sum_i w_i G_i, \qquad \hat{J}_{\mathrm{WIS}} = \frac{\sum_i w_i G_i}{\sum_i w_i}, \qquad \mathrm{ESS} = \frac{(\sum_i w_i)^2}{\sum_i w_i^2}.

함수 is_estimate(rewards, pb, pe, gamma=1.0)를 완성해 (OIS, WIS, ESS)를 반환한다.

인자 shape 뜻
rewards (N, H) 궤적 ii, 시각 tt의 보상
pb (N, H) 기록된 행동을 행동 정책이 고를 확률 πb(ai,t∣si,t)\pi_b(a_{i,t} \mid s_{i,t})
pe (N, H) 같은 행동을 평가 정책이 고를 확률 πe(ai,t∣si,t)\pi_e(a_{i,t} \mid s_{i,t})
gamma 스칼라 할인율

테스트는 두 정책이 같을 때(가중치 1), 손으로 계산한 예(평가 정책이 하지 않는 행동이 있는 궤적은 가중치 0), 할인, 그리고 표본이 많을 때 참값 근처인지를 확인한다.

생각해 볼 것: 같은 데이터에서 HH를 늘리면 ESS가 어떻게 변하는가? 본문 cell 4의 결과와 비교한다.

UCB로 팔 고르기 ucb-select

UCB 규칙은 팔마다 평균 보상에 불확실성 보너스를 더한 지표

UCBa(t)=Sana+cln⁡tna\mathrm{UCB}_a(t) = \frac{S_a}{n_a} + c\sqrt{\frac{\ln t}{n_a}}

가 가장 큰 팔을 고른다. nan_a는 팔 aa의 시행 수, SaS_a는 보상 합, tt는 지금까지의 총 시행 수다. c=2c = \sqrt{2}이면 본문의 UCB1이다.

함수 ucb_select(counts, sums, t, c=np.sqrt(2))를 완성해 팔 번호(정수)를 반환한다.

  • 한 번도 당기지 않은 팔(na=0n_a = 0)이 있으면 지표를 계산하지 말고 그중 번호가 가장 작은 팔을 반환한다.
  • 그 밖에는 지표가 가장 큰 팔을 반환한다.

테스트는 시도하지 않은 팔 처리, 퀴즈의 예(t=55t = 55에서 시행 5번인 팔 선택), 시행이 충분할 때의 활용, cc에 따른 변화, 그리고 실제 Bernoulli 밴딧 1500번에서 대부분 최선 팔을 고르면서도 나쁜 팔을 가끔 다시 시도하는지 확인한다.

생각해 볼 것: cc를 0으로 두면 어떤 알고리즘이 되고, 왜 최선 팔을 영영 놓칠 수 있는가?