← All Articles

Sutton RL - Ch1. Multi-armed Bandits (4)

Posted on

Gradient Bandit Algorithms

앞의 방법들처럼 action value estimates를 이용하여 이를 토대로 action selection을 진행하는 방법 대신, 별도의 또다른 metric을 이용하는 방법들도 있습니다.

action aa를 선호하는 Preference Ht(a)H_t(a)를 정의합니다. Ht(a)H_t(a)는 value로 표현한 함수가 아닌, 임의로 정의한 action에 대한 선호도 입니다.

action을 선택할 때, action별 Ht(a)H_t(a)을 비교하여 선호도가 높은 action위주로 시행하며, action을 선택할 확률 πt(a)\pi_t(a)를 Preference Ht(a)H_t(a)에 대한 softmax 함수의 형태로 정의합니다.

Pr{At=a}eHt(a)b=1keHt(b)πt(a)Pr\{A_t=a\} \doteq {{e^{H_t(a)}}\over{\sum^k_{b=1} e^{H_t(b)}}} \doteq \pi_t(a)

초기 선호도가 모두 동일한 상태(e.g., H1(a)=0, for all aH_1(a) = 0, \text{ for all a})에서 action selection을 진행해 가며 gradient ascent를 이용하여 전체 성능을 극대화하는 Ht(a)H_t(a)를 찾을 수 있습니다. 전체 성능에 대한 measure로는 expected reward E[Rt]=xπt(x)q(x)\mathbb{E}[R_t] = \underset{x}{\sum}\pi_t(x)q_*(x)를 이용하고, 이를 토대로 action preferences updating 알고리즘을 만들 수 있습니다.

Ht+1(a)Ht(a)+α(RtRtˉ)(1At=aπt(a)),aH_{t+1}(a) \doteq H_t(a) + \alpha (R_t - \bar{R_t})(\mathbf{1}_{A_t=a} - \pi_t(a)), \quad \forall{a}

α>0\alpha > 0은 step-size parameter(learning rate)이며, RtˉR\bar{R_t} \in \mathbb{R}은 time tt까지의(t를 포함한) reward 평균으로, baseline으로서 기능합니다. (지금까지의 성능과 비교하여 action 평가의 기준이 됩니다.)

Rtˉ1tti=1Ri\bar{R_t} \doteq {1\over{t}}\underset{i=1}{\overset{t}{\sum}}R_i

앞의 방법들과 혼동하지 말아야 할 부분은, Qt(a)Q_t(a)값이 action마다 할당된 값이었던 것과 비교하여, Rtˉ\bar{R_t}는 global한 값이라는 부분입니다. reward의 평균이라는 부분에서 동일한 metric으로 오해할 수 있는데, Qt(a)Q_t(a)는 “action aa의 reward 총합을 a가 선택한 횟수로 나눈 값”이고, Rtˉ\bar{R_t}는 “모든 action들에 대한 전체 reward 총합을 time step으로 나눈 값” 입니다. 때문에, 당연히 incremental update를 진행할 때에도 Qt(a)Q_t(a)와는 달리 action이 시행된 횟수가 아닌 time step을 기준으로 진행하여야 합니다.

10-armed testbed에서 학습한 결과는 아래 그래프와 같습니다.

gradient_suttonlec

이전과 같이 간략화한 문제에 대입하여 과정을 살펴보면 다음과 같습니다. α=0.5\alpha = 0.5로 계산합니다.

step 1: H1(a1)=0H_1(a_1) = 0, H1(a2)=0H_1(a_2) = 0, H1(a3)=0H_1(a_3) = 0

  • π1(a1)=1/3\pi_1(a_1) = 1/3, π1(a2)=1/3\pi_1(a_2) = 1/3, π1(a3)=1/3\pi_1(a_3) = 1/3
  • a1a_1 선택, R1(a1)=1R_1(a_1) = 1 리턴
  • R1ˉ=1\bar{R_1} = 1
  • H2(a1)=0+0.5(11)(11/3)=0H_2(a_1) = 0 + 0.5(1 - 1)(1 - 1/3) = 0
  • H2(a2)=0+0.5(11)(01/3)=0H_2(a_2) = 0 + 0.5(1 - 1)(0 - 1/3) = 0
  • H2(a3)=0+0.5(11)(01/3)=0H_2(a_3) = 0 + 0.5(1 - 1)(0 - 1/3) = 0

step 2: H2(a1)=0H_2(a_1) = 0, H2(a2)=0H_2(a_2) = 0, H2(a3)=0H_2(a_3) = 0

  • π2(a1)=1/3\pi_2(a_1) = 1/3, π2(a2)=1/3\pi_2(a_2) = 1/3, π2(a3)=1/3\pi_2(a_3) = 1/3
  • a2a_2 선택, R2(a2)=2R_2(a_2) = 2 리턴
  • R2ˉ=1+(21)/2=1.5\bar{R_2} = 1 + (2 - 1) / 2 = 1.5 (incremental implementation)
  • H3(a1)=0+0.5(21.5)(01/3)=0.083H_3(a_1) = 0 + 0.5(2 - 1.5)(0 - 1/3) = -0.083
  • H3(a2)=0+0.5(21.5)(11/3)=0.167H_3(a_2) = 0 + 0.5(2 - 1.5)(1 - 1/3) = 0.167
  • H3(a3)=0+0.5(21.5)(01/3)=0.083H_3(a_3) = 0 + 0.5(2 - 1.5)(0 - 1/3) = -0.083

step 3: H3(a1)=0.083H_3(a_1) = -0.083, H3(a2)=0.167H_3(a_2) = 0.167, H3(a3)=0.083H_3(a_3) = -0.083

  • π3(a1)=0.304\pi_3(a_1) = 0.304, π3(a2)=0.391\pi_3(a_2) = 0.391, π3(a3)=0.304\pi_3(a_3) = 0.304
  • a2a_2 선택, R3(a2)=2R_3(a_2) = 2 리턴
  • R3ˉ=1.5+(21.5)/3=1.67\bar{R_3} = 1.5 + (2 - 1.5) / 3 = 1.67 (incremental implementation)
  • H4(a1)=0.083+0.5(21.67)(00.304)=0.133H_4(a_1) = -0.083 + 0.5(2 - 1.67)(0 - 0.304) = -0.133
  • H4(a2)=0.167+0.5(21.67)(10.391)=0.267H_4(a_2) = 0.167 + 0.5(2 - 1.67)(1 - 0.391) = 0.267
  • H4(a3)=0.083+0.5(21.67)(00.304)=0.133H_4(a_3) = -0.083 + 0.5(2 - 1.67)(0 - 0.304) = -0.133

step 4: H4(a1)=0.133H_4(a_1) = -0.133, H4(a2)=0.267H_4(a_2) = 0.267, H4(a3)=0.133H_4(a_3) = -0.133

  • π4(a1)=0.286\pi_4(a_1) = 0.286, π4(a2)=0.427\pi_4(a_2) = 0.427, π4(a3)=0.286\pi_4(a_3) = 0.286
  • a3a_3 선택, R4(a3)=3R_4(a_3) = 3 리턴
  • R4ˉ=1.67+(31.67)/4=2.00\bar{R_4} = 1.67 + (3 - 1.67) / 4 = 2.00 (incremental implementation)
  • H4(a1)=0.133+0.5(32)(00.286)=0.276H_4(a_1) = -0.133 + 0.5(3 - 2)(0 - 0.286) = -0.276
  • H4(a2)=0.267+0.5(32)(00.427)=0.054H_4(a_2) = 0.267 + 0.5(3 - 2)(0 - 0.427) = 0.054
  • H4(a3)=0.133+0.5(32)(10.286)=0.224H_4(a_3) = -0.133 + 0.5(3 - 2)(1 - 0.286) = 0.224

step 5: H5(a1)=0.276H_5(a_1) = -0.276, H5(a2)=0.054H_5(a_2) = 0.054, H5(a3)=0.224H_5(a_3) = 0.224

  • π5(a1)=0.248\pi_5(a_1) = 0.248, π5(a2)=0.344\pi_5(a_2) = 0.344, π5(a3)=0.408\pi_5(a_3) = 0.408

다음에 선택될 action이 deterministric하지 않고 stochastic하다는 부분에 있어 타 방법들과 큰 차이가 있습니다. 위의 방법들은 평가의 기준이 되는 메트릭이 가장 높은 action만 결정적으로 선택하여도 학습의 진행에 큰 문제가 없지만, 이 방법으로는 그런 식으로 진행할 경우 학습이 진행되지 않기에 불안정하다고 느껴질 수도 있습니다.

baseline Rtˉ\bar{R_t}에 대한 보다 깊은 이해를 위해서는 알고리즘의 유도과정을 살펴봐야 합니다. 어려운 내용은 아니나, 다소 길기에 차후 살펴보도록 하겠습니다.

Algorithms Comparison

각 학습방법들에 대한 비교 그래프를 그려보면 아래와 같습니다.

comparison-suttonlec

Reinforcement LearningRLBookSutton RL