[강화학습] Multi-armed Bandit 문제
Multi-armed Bandit 문제
슬롯머신에 대한 정보(상태, State)가 없는 상황에서 행동(Action)을 해야 함.
여기서, 행동(Action)은 밴딩머신을 선택하는 것. Arm을 당기면 즉각적인 보상이 주어짐.
학습주체(Agent)가 k개의 행동(Action) 중 하나를 선택
선택한 행동에 따라 보상을 받는 일련의 과정을 거침
일정 기간동안 취득한 보상의 총합에 대한 기대값을 최대화하는 행동을 결정하는 문제
탐색(Exploration) : 아무것도 모르는 상태에서 탐색
활용(Exploitation) : 누적된 정보를 바탕으로 슬롯머신 선택 (가장 좋은 행동을 택하는 것)
예시 : 임상시험
행동가치
특정 시점에서 어떠한 행동을 취했을 때의 보상에 대한 기댓값
어떤 행동을 취했을 때 가장 좋은지를 평가하기 위해 사용
a라는 액션을 취했을 때 받을 수 있는 보상들의 기대값은
a라는 액션을 취했을 때 그 보상(r)이 일어날 확률에 보상을 곱하면 얻을 수 있다.
$$ q(a) = E[R_t|A_t=a] = \sum_{r}^{}p(r|a)r $$
여기서 문제는, 보상에 대한 분포를 알 수 없다는 것. (안다면 시행착오를 겪을 필요가 없음.)
행동가치를 통해 분포를 추정할 수 있다면 가장 좋은 선택을 할 수 있게 되는 것 !
반복된 실험을 통해 얻은 정보를 기반으로 행동가치를 추정
행동 가치 추정 방법
표본평균 방법(Sample-mean method)
$$Q_t(a)=\frac{t시점까지 \ 행동\ a를\ 선택\ 시\ 취득한\ 보상\ 합}{t시점까지\ 행동\ a를\ 선택한\ 횟수}$$
조금 더 효율적인 방법 !
=> 증분 업데이트 규칙(Incremetal update rule)
$Q_{n+1}$의 추정치를 구하기 위해 모든 보상 값을 다 저장하는 게 아니라
기존 정보와 새로운 정보의 차이를 반영해 정보를 업데이트하면 됨 !
$$Q_{n+1}=Q_n+\frac{1}{n}(R_n-Q_n)$$
이 식에서는 모든 단계에서 얻은 보상의 가중치가 동일하다는 가정하에 평균치를 계산함.
비정상성 문제(Nonstationary)
시간에 따라서 보상의 가치가 달라지는 상황에는 아래 식을 사용
\begin{align*}
Q_{n+1} &= Q_n+a_n(R_n-Q_n)\\
&= a_nR_n+(1-a_n)Q_n
\end{align*}
추정치 업데이트 방식
강화학습에서 정보를 업데이트 하는 방식
$$V \leftarrow V + \alpha(\hat{V}-V)$$
$$업데이트된\ 추정치 \leftarrow 기존\ 추정치 + \alpha(새로운\ 정보-기존\ 추정치)$$
$$혹은$$
$$V \leftarrow (1-\alpha)V + \alpha\hat{V}$$
[참고]
http://www.kmooc.kr/courses/course-v1:KoreaUnivK+ku_ai_002+2020_A44/about