티스토리 뷰
1. Model-Free Algorithm이란?
[ Model-Free Algorithm ]
기존의 Model-Based Algorithm에서 Model은 MDP에서의 Transition Model을 의미한다. 즉, 어떤 상태에서 어떤 행동을 한다고 했을 때, 다음의 상태가 될 확률을 의미한다. 예를 들어 격자 공간 속의 로봇이 상하좌우로 이동을 할 때, 우리는 로봇의 다음 상태에 대해 직관적으로 파악할 수 있다. 이렇게 환경에 대해 알고 있으며, 우리의 행동에 따른 환경의 변화를 아는 알고리즘을 Model-Based Algorithm이라고 한다.
Model-Free Algorithm은 Agent가 Action을 통해 Expected sum of future reward를 최대로 하는 Policy Function을 찾고자 한다. 이 알고리즘은 Environment에 대해 알지 못하고, Environment가 알려주는 Next State와 Next Reward를 '수동적으로' 얻게 된다. 예를 들어 지뢰찾기를 한다고 할 때, 우리는 더 이상 환경에대해 모르므로 특정 네모칸을 클릭하면 Environment가 주는 Next State와 Next Reward를 단순히 받는다. 이 알고리즘은 더 이상 환경이 어떻게 동작하는지 모르기 때문에 Exploration(탐사)를 해야한다. 이러한 탐사를 바탕으로 하는 Trail and Error를 통해 Policy Function을 점차 학습시켜야 한다.
[ Model-Free Algorithm 한장 요약]
[ Model-Based Algorithm ]
이와 반대로, Model-Based Algorithm은 세상에 대한 모든 설명(Description)을 알고 문제를 푸는 것과 같다. 즉, 직접 해보지 않아도 최적의 솔루션을 얻을 수 있다. 하지만 Model-Free Algorithm은 세상에 대해 전혀 모르는 상태이기 때문에 직접 Explore하여, Reward를 높여주는 Action을 통해 Policy Function을 학습시켜야 한다.
[ Model-Based Algorithm 한장 요약 ]
2. Q-Learning이란?
[ Q-Learning ]
Q-Learning은 Model이 없이(Model-Free) 학습하는 강화학습 알고리즘이다. Q-Learning의 목표는 유한한 마르코프 결정 과정(FMDP)에서 Agent가 특정 상황에서 특정 행동을 하라는 최적의 Policy를 배우는 것으로, 현재 상태로부터 시작하여 모든 연속적인 단계들을 거쳤을 때 전체 보상의 예측값을 극대화시킨다. 이것은 한 상태에서 다른 상태로의 전이가 확률적으로 일어나거나 보상이 확률적으로 주어지는 환경에서도 별다른 변형 없이 적용될 수 있다. 또한 "Q"라는 단어는 현재 상태에서 취한 행동의 보상에 대한 quality를 상징한다.
[ Q-Value ]
Q-Learning에서는 어떤 State S에서 어떤 Action A를 했을 때, 그 행동이 가지는 Value를 계산하는 Q-Value를 사용하는데, 이를 행동-가치 함수라고도 부른다. 이러한 행동 가치 함수는 Discounted Factor를 사용하여 특정 Action을 취했을 때, Episode가 종료되기까지 reward의 총합의 예측값을 계산한다.현재 상태로부터 $\Delta t$ 시간이 흐른 후에 얻는 보상$r$ 은 $\gamma^{\Delta t}$ 만큼 할인되어 $r * \gamma^{\Delta t}$로 계산된다. 여기서 $\gamma$ 는 0~1사이의 값을 갖는 Discount Factor로 현재 얻는 보상이 미래에 얻는 보상보다 얼마나 더 중요한지를 의미하는 값이다.
알고리즘은 각 상태-행동 쌍에 대해 $Q:S\times A\to {\mathbb {R}} .$같은 Q-Function을 갖고 상세 식은 아래의 이미지와 같다.
[ Q-Value 한장 요약]
[ Q-Learning Algorithm ]
알고리즘이 시작되기 전에 Q 함수는 고정된 임의의 값을 갖는다. 그리고 매 time-step($t$)마다 Agent는 행동$a_t$를 선택하게 되고, 보상$r_t$ 를 받으며 새로운 상태 $s_{t+1}$ 로 전이하고, Q 값이 갱신된다. 이 알고리즘의 핵심은 이전의 값과 새로운 정보의 가중합(weighted sum)을 이용하는 Value Iteration Update 기법이다.
$${\displaystyle Q(s_{t},a_{t})\leftarrow (1-\alpha )\cdot \underbrace {Q(s_{t},a_{t})} _{\rm {old~value}}+\underbrace {\alpha } _{\rm {learning~rate}}\cdot \left(\overbrace {\underbrace {r_{t}} _{\rm {reward}}+\underbrace {\gamma } _{\rm {discount~factor}}\cdot \underbrace {\max _{a}Q(s_{t+1},a)} _{\rm {estimate~of~optimal~future~value}}} ^{\rm {learned~value}}\right)}$$
[ Q-Learning Algorithm 한장 요약 ]
참고 자료
'인공지능' 카테고리의 다른 글
Experience Replay Memory란? (0) | 2020.02.09 |
---|---|
Stochastic Gradient Descent(SGD)란? (0) | 2020.02.09 |
CNN(Convolutional Neural Network)란? (0) | 2020.02.09 |
Deep Learning(딥러닝) vs Reinforcement Learning(강화학습) (2) | 2020.02.09 |
[Machine Learning] Machine Learning System Design (0) | 2018.01.18 |