강화학습
밴디트 문제 bandit problem
정지홍
2024. 11. 25. 11:07
밴디트=슬롯 머신
여러대의 슬롯머신이 줄줄이 있다.
multi-armed bandit problem
- agent : player
- slot machine : environment
- player would be interaction with slot machine.
- this is basic frame of reinforcement learning.
- action : play가 여러대의 slot machine중에서 하나를 선택한다.
- reward : coin ( 플레이어가 선택한 slot machine으로부터 coin을 얻음)
위의 문제에서 목표는?
- coin을 최대한 많이 얻어야하며, 그러기 위해서는 승률이 좋은 slot machine을 선택해야함.
let, define 슬롯머신 a,b의 확률 분포표
| 얻을 수 있는 동전 수 | 0. | 1 | 5 | 10 |
| 확률( machine A) | 0.70 | 0.15 | 0.12 | 0.03 |
| 얻을 수 있는 동전 수 | 0. | 1 | 5 | 10 |
| 확률( machine B) | 0.50 | 0.40 | 0.09 | 0.01 |
- slot machine a의 기대값 ( expectation value )
- (0 x 0.70) + (1 x 0.15 ) + (5 x 0.12 ) + (10 x 0.03 ) = 1.05
- slot machine a의 기대값 ( expectation value )
- (0 x 0.50) + (1 x 0.40 ) + (5 x 0.09 ) + (10 x 0.01 ) = 0.95
- 위의 두 값은 슬롯머신 a,b의 가치 or a,b의 행동 가치라고 함.
q(A) = E [ R | A ]
- R ( reward ) -> 보상 -> 코인 갯수
- A ( action ) -> agent가 하는 행동 -> a,b중에 하나를 고르는 행동
- E ( expectation ) -> 기대값 -> 행동 A를 하였을때 얻는 보상 기대값
- q ( quality ) -> 행동가치
- 소문자 q를 사용하는 경우에는 '실제 행동 가치'를 의미한다.
- 대문자 Q를 사용하는 경우는 '실제 행동 가치의 추정치'이다.
- ex) A슬롯머신...
- 총 3번을 수행하였고 얻은 코인은 0,1,5이다..
그러면 Q(a) = 2이다.
- 총 3번을 수행하였고 얻은 코인은 0,1,5이다..
- ex) B슬롯머신..
- 총 3번을 수행하고, 얻은 코인은 1,0,0이다.
그러면 Q(b)= 1/3 = 0.33333이다.
- 총 3번을 수행하고, 얻은 코인은 1,0,0이다.
- 위의 2 예제를 통해서 슬롯머신 a가 실제 가치가 좀 더 높음을 추정한다.

하지만 위의 과정은 비효율적이다....
=> 왜냐하면 n이 커질수록, rewards의 합을 매번 구해야하기 때문이다. 즉, 이로 인해 계산 비용이 증가한다.
==> 아래는 좀 더 효율적으로 하기 위한 전개이다.

- 위에서 보면 Q의 n-1에서 n으로 생신될때, Rn - Qn-1의 길이에 1/n을 곱한 값만큼 이동한다.
( 왜냐하면 Qn-1은 R1부터 Rn-1의 합의 n-1을 나눈거다. 그래서 Qn-1에서 다음 Reward를 얻으면 앞으로 나아가는거고...)
( Qn은 그로 인해서 당연 Rn의 뒤에 있어야한다. ) - 위의 그래프를 보면 Qn이 Rn방향으로 진행되기 위해서는 1/n이 결정한다.
즉 ,1/n이 갱신되는 양을 조절하니 학습률learning rate의 역할을 한다. - 시도 횟수 n이 늘어날수록 1/n의 값은 작아지며, 이는 Qn의 생신되는 양이 작아짐을 의미.

슬롯 머신에서의 탐욕 정책
- agent가 각각의 머신을 해보고, 가치 추정치가 가장 높은 슬롯 머신을 선택하는것
- 단점
- 만약, 한번씩한 플레이 한 경우 불확실하다.
- 활용 exploitation
- 현재까지 agent가 play한 결과를 가지고, 가치 추정치가 가장 높은 것을 선택하는것
- 탐색 exploration
- 슬롯 머신의 가치를 정확히 추정하기 위해서 여러 머신을 시도
- 위의 활용과 탐색은 서로 상충되니, 하나를 선택하면 하나는 못한다.
- 한 번의 시도만으로 좋은 결과를 얻고 싶으면 활용을 선택하나, 장기적으로 좋은 결과를 위해서는 탐색을 해야한다.
===> 강화학습은 '활용과 탐색'의 균형이 중요
- 한 번의 시도만으로 좋은 결과를 얻고 싶으면 활용을 선택하나, 장기적으로 좋은 결과를 위해서는 탐색을 해야한다.
ε -greedy 정책
- 활용과 탐색의 균형을 맞추기 위한 알고리즘
- ε = 0.x 의 확률로 탐색을 하고, 나머지는 활용( ε -0.x)하는 방식.
- 현재까지 얻은 경험을 '활용'하며, 가끔식 greedy하지 못한 행동을 함으로써 더 좋은 행동이 있는지 '탐색'한다.
- 탐색할때는 다음의 행동을 무작위로 수행한다. 이렇게 하여 가능한 모든 행동의 가치 추정치의 신뢰도를 높힌다.