4.학습 기반 알고리즘
9장 강화학습과 게임지능
9.4 학습기반 알고리즘
- 앞선 동적 프로그래밍은 상태 전이 확률 분포(모델)를 완벽하게 알아야함
- 모델을 모르는 경우에 학습에 필요한 에피소드가 필요함
- 에피소드를 얻는 방법
- 환경 및 이론을 시뮬레이션
- 프로그램 대 프로그램의 대결 방법 등
- 학습 기반 algorithm : episode를 tarining data로 활용
9.4.1 몬테카를로 방법
- 과정
- agent가 환경과 상호작용하면서 episode를 진행
- 초기 상태에서 시작하여 종료 상태(실패,성공)에 이르기 까지 상태, 행동, 보상을 저장
- episode가 종료되면 수집된 보상을 바탕으로 각 상태의 가치함수를 업데이트함. (평균을 이용)
- episode로 부터 훈련에 사용할 데이터를 추출할 때 상태 중심으로 에피소드를 잘라 추출함
- episode : {[상태,보상]행동[상태,보상]행동[상태,보상]행동[상태,보상]행동 …}
- training data Z 추출 : {[상태,보상]행동[상태,보상]} -> 어떤 상태에서 시작했는지 별로 모으기
- 가치함수 업데이트 방법
-
상태가치 함수 $v_\pi (S) = \frac{1}{Z(S)} \sum_{z \in Z(S)} r(z), \forall s \in S$
-
행동가치 함수 $q_\pi (s, a) = \frac{1}{Z(s, a)} \sum_{z \in Z(s, a)} r(z), \forall s \in S, \forall a \in A$
-
- 단순하게 설명
- 난수를 이용해 episode 발생시켜 훈련 데이터를 수집하고 식을 이용해 가치함수를 계산함
- agent가 환경과 상호작용하면서 episode를 진행
- 특징
- 모델 의존 x
- epdisode에서 얻은 모든 경험을 활용하여 정책을 개선함
- 이웃 상태의 정보를 전혀 고려하지 안힉 때문에 bootstrap 방법이 아님
- 장점
- 단순, episode에서 얻은 경험을 효율적으로 활용
- 단점
- episode가 길거나 종료되지 않는 환경에서는 사용하기 어려움
- 변동성이 크고 데이터가 많이 필요함
9.2.4 시간차 학습 알고리즘 (Sarsa, Q learning)
학습 기반 알고리즘 + bootstrap
- 종료 순간 까지 가보지 않고 이웃 상태로 변경했을 때 가치함수를 개선하고싶음
- time difference(TD) learning
- TD learning을 위한 공식 유도
- 현재 상태 $s$에서 행동 $a$을 취했을 때 다음 상태 $s’$와 다음 상태의 보상$r’$에 접근할 수 있어야함
- 기존 몬테카를로 식에서 $s’$, r’$에 관련된 식으로 유도함
-
episode + bootstrap
- 상태가치 함수 $v(s_t) = v(s_t) + \rho (r_{t+1} + \gamma v(s_{t+1}) - v(s_t))$
- 행동가치 함수 $q(s_t, a_t) = q(s_t, a_t) + \rho (r_{t+1} + \gamma q(s_{t+1}, a_{t+1}) - q(s_t, a_t))$
- Sarsa
- on policy
- agent가 현재 학습하고 있는 정책에 따라 행동을 선택함
- $s$-$a$-$r$-$s’$-$a’$
- 현재상태 $s$에서 행동 $a$를 결정 -> 결과로 보상 $r$과 다음 상태 $s’$를 얻음 -> 다음 행동 $a’$를 결정
- 과정
- Q-value $q(s,a)$ 초기화
- episode 시작
- $a = \arg\max_a q(s,a)$에 따라 행동 $a$를 선택 / 필요시 e-greedy 적용
- 선택한 행동 $a$를 실행하여 보상 $r$과 다음 상태 $s’$를 얻음
- $q(s, a) \leftarrow q(s, a) + \rho [r + \gamma q(s’, a’) - q(s, a)]$
- $s$와 $a$를 업데이트하고 3번으로 돌아가 반복
- Q learning
- off policy
- agent가 현재 정책을 따르지 않고, 최적의 행동을 선택하는 것을 의미
- 과정
- Q-value $q(s,a)$ 초기화
- episode 시작
- $a = \arg\max_a q(s,a)$에 따라 행동 $a$를 선택 / 필요시 e-greedy 적용
- 선택한 행동 $a$를 실행하여 보상 $r$과 다음 상태 $s’$를 얻음
- $q(s, a) \leftarrow q(s, a) + \rho \left[ r + \gamma \max_a q(s’, a) - q(s, a) \right]$
- $\max_a q(s’, a)$ : 다음 상태에서 가능한 모든 행동 중 최대 q-vqlue를 의미
- $s$를 업데이트하고 3번으로 돌아가 반복
- 각각의 특징
- Sarsa
- 정책에 따라 행동을 선택하므로 안정적
- Q-learning
- 최적의 행동을 추구하므로 더 빠르게 최적의 해를 찾음
- 불안정할 수 있음
- Sarsa