카테고리 없음

[강화학습] Multi-armed Bandit 문제

yennle 2022. 10. 31. 15:15
728x90

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

728x90