티스토리 뷰
(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다)
이전 포스트 중에 Generalized Policy Iteration (GPI)에 대해서 다뤘던 내용이 있다.
GPI는 현재 policy \(\pi\)에 대한 state value function을 구하는 Policy Evaluation과 해당 state value function을 바탕으로 greedy action을 취함으로써 해당 policy를 개선시키는 Policy Improvement 과정으로 나뉘어져 있다. 그 포스트에서는 Monte Carlo를 사용한 GPI를 소개했었다. 그런데 이제 TD Learning을 살펴봤으니, Monte Carlo method가 Episode가 termination될 때까지는 state value function을 update하지 못하고, 만약 episode가 매우 길거나, termination이 없는 조건이라면 MC control 또한 GPI 내의 Policy Improvement를 수행할 수 없다는 것을 알았을 것이다. 대신 TD에서는 Dynamic Programming때 소개됬던 Bootstrapping이란 기법을 episode가 끝나지 않더라도 value function을 update할 수 있었다. Monte Carlo method에 비해 TD Learning이 가지는 장점을 정리하면 다음과 같다.
- Model-free approach : Environment에 대한 model을 갖고 있지 않더라도 policy를 학습시킬 수 있다.
- Online and Incremental : Bootstrapping 기법을 통해서 매 step마다 value function을 update할 수 있다.
- Converge faster than MC : 역시 Bootstrapping 기법을 통해서 Episode가 끝나지 않더라도 value function을 update시킬 수 있으므로 optimal policy를 더 빠르게 찾을 수 있다.
이런 특징을 활용해서 TD Learning을 GPI에 활용할 수 있다. 이때 target policy와 behavior policy간의 일치 여부에 따라 우리가 SARSA라고 부르는 On-policy TD Control과 Q-learning이라고 하는 Off-policy TD Control이 있는데, 이번 포스트에서는 SARSA에 대해서 간단하게 소개해보고자 한다.
SARSA prediction은 사실 이름안에 그 의미가 다 들어있다. SARSA가 하나의 단어 같지만 사실 한글자 한글자 씩 풀어보면,
$$ \color{red}{S_t, A_t, } \color{blue}{R_{t+1}, S_{t+1}, } \color{green}{A_{t+1}} $$
위와 같이 현재의 state \(S_t\)에서 action \(A_t\)를 취했을 때 얻는 reward \(R_{t+1}\)와 next state \(S_{t+1}\)을 바탕으로 next state에서의 action \(A_{t+1}\)을 prediction하는 것이다. 이때 next state에서의 action \(A_{t+1}\)은 이전 action \(A_{t}\)와 같은 policy \(\pi\)에서 파생되어 나온 것이 되겠다. 그래서 이로 인해 이전 TD Learning을 소개한 포스트에서는 value function을 update할 때 state value function ( \(V(s)\))을 사용했었지만, 여기서는 state-action value function (\(Q(s, a)\)) 를 활용한다. 이에 대한 Bellman Equation을 살펴보면 다음과 같이 된다.
$$ Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha (\color{red}{R_{t+1} + \gamma Q\big(S_{t+1}, A_{t+1}) - Q(S_t, A_t)}\big) $$
위에서 빨간색으로 표기된 부분이 바로 TD Error를 구하는 부분이다. 이전에 state value function을 활용한 TD Learning 과도 비교해보면 거의 동일한 구조임을 알 수 있다.
$$ V(S_t) \leftarrow V(S_t) + \alpha (R_{t+1} + \gamma V(S_{t+1}) - V(S_t)) $$
물론 위의 과정은 GPI내 Policy Evaluation에 해당하는 부분이고, Policy Improvement에서는 MC에서 했던 것과 동일한 기법, 예를 들어 \(\epsilon\)-greedy 같은 exploration이 반영된 전략을 취할 수 있다. 그래서 최종적으로는 다음과 같은 알고리즘이 나온다.
나같은 경우는 현업에서 강화학습을 실무에 적용하는 업무를 하고 있는데, 하던 일중 하나가 건물의 실내온도를 강화학습으로 제어하는 것이었다. 물론 학문적으로도 Deep RL을 쓰던지, 고전적인 강화학습 기법을 사용해서 제어함으로써 에너지 절감효과를 보여주는 연구들이 많이 있는데, 나는 EnergyPlus라는 simulator를 사용해서, 특정 건물을 모델링한 environment 상에서 이 SARSA 기법과 Q-learning 기법을 이용해서 건물 내부 온도를 제어하는 것을 해보았다. 그 결과 (simulator상에서였긴 하지만) 사용자가 원하는 온도도 잘 맞추고, 이에 따른 에너지 절감 효과가 약간 발생하는 것도 확인할 수 있었다. 이런 식으로 강화학습이 현업에서는 이렇게 활용할 수 있다.
'Study > AI' 카테고리의 다른 글
[RL] Model & Planning (0) | 2019.09.25 |
---|---|
[RL] Expected SARSA (0) | 2019.09.18 |
[RL] Q-learning: Off-policy TD Control (0) | 2019.09.11 |
[RL] Introduction to Temporal Difference Learning (2) | 2019.09.06 |
[RL] Off-policy Learning for Prediction (3) | 2019.09.05 |
[RL] Exploration Methods for Monte Carlo (0) | 2019.09.04 |
[RL] Monte Carlo for Control (0) | 2019.09.04 |
- Total
- Today
- Yesterday
- DepthStream
- TensorFlow Lite
- SketchFlow
- 파이썬
- windows 8
- PowerPoint
- reward
- Windows Phone 7
- Offline RL
- Distribution
- ColorStream
- dynamic programming
- processing
- 딥러닝
- ai
- Pipeline
- Kinect
- arduino
- 한빛미디어
- RL
- Gan
- End-To-End
- Off-policy
- 강화학습
- Kinect SDK
- Kinect for windows
- bias
- Policy Gradient
- Expression Blend 4
- Variance
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |