Reinforce 알고리즘 이제 policy gradient를 이용해 어떻게 학습할 수 있는지 알아보겠습니다. reinforce알고리즘은 policy gradient에 속하는 간단한 알고리즘입니다. 이론적 배경 학습에 사용되는 수식입니다. policy gradient theorem에서 약간의 변경만 있습니다. $$ \nabla{\theta}J(\theta)=\mathbb{E{\pi{\theta}}}[\nabla{\theta}log\pi{\theta}(s, a)G{t}] $$ $Q{\pi{\theta}}(s, a)$자리에 리턴인 $G{t}$가 들어갔습니다. 리턴인 $G{t}$는 $Q{\pi{\theta}}(s, a)$의 정의 때문에 편향되지 않은 샘플입니다. $Q{\pi{\theta}}(s, a)=\mathbb{E}[G{t}|s{t}=s, a{t}=a]$입니다. $G{t}$ 샘플을 여러개 얻어 평균내면 그 값이 실제 state-action
가치 기반 에이전트는 가치 함수만 가지고 액션을 선택하기 때문에 명시적인 정책 함수가 존재하지 않았습니다. 이번에는 정책 함수를 가지고 액션을 선택하는 정책 기반 에이전트에 대해서 알아보겠습니다. Policy Gradient 가치 기반 에이전트가 액션을 선택하는 방식은 각 상태에 s에 따라 액션이 변하지 않기 때문에 결정론적입니다. 이 에이전트가 가위바위보를 한다면 전략이 정해져 있기 때문에 쉽게 간파당합니다. 반면 정책 기반 에이전트는 확률적 정책을 취할 수 있습니다. 정책 함수가 $\pi(s, a)=\mathbb{P}[a|s]$로 상태 s에서 할 수 있는 확률 분포를 나타내기 때문입니다. 요약하면 가치 기반 에이전트에 비해서 더 유연한 전략을 가질 수 있습니다. 또 액션공간이 연속적인 경우를 생각해보겠습니다. 어떤 액션값이 0에서 1사이의 값을 가진다고 하면 가치 기반 에이전트가 작동하려면 모든 a에 대해서 $Q(a, s)$값을 최대로 하는 인풋 a를 찾아야 합니다. 이
책에서 딥러닝 파트도 간결하게 정리가 정말 잘 되어있습니다. 딥러닝 관련 내용이므로 넘어가고 가치 기반 에이전트에 대해 알아보겠습니다. 여전히 model free상황이고 상태 공간과 액션 공간이 너무 커서 밸류를 일일이 테이블에 담지 못하는 상황에서의 해결책을 다룹니다. 이를 위해 딥러닝과 강화학습의 결합이 목표입니다. 강화학습과 neural network를 결합하는 방법은 크게 2가지가 있습니다. 하나는 가치함수 $v{\pi}(s)$나 $q{\pi}(s, a)$를 neural network으로 표현하는 방법이고 다른 하나는 정책 함수$\pi(a|s)$를 neural network로 표현하는 것입니다. RL Agent의 분류 가치 기반(value-based) 에이전트는 가치함수에 근거하여 액션을 선택합니다. model-free상황에서는 $v(s)$만 가지고 액션을 정할 수 없기 때문에 가치 기반 에이전트는 $q(s, a)$를 필요로 합니다. SARSA,
MC 컨트롤에 이어 TD를 사용하는 방법에 대해 알아볼 차례입니다. SARSA TD를 이용해 $q(s, a)$를 구하는 방법은 SRASA라는 이름으로 불립니다. 상태 s에서 액션 a를 하고 보상 r를 받고 상태 s'에 도착해 다음액션 a'을 합니다. 이 알파벳을 연결해 SRASA가 되기 때문에 알고리즘 이름이 SRASA가 되는 것이었습니다. 학습에 사용되는 식은 아래와 같습니다. 모두 벨만 기대 방정식으로 부터 나왔습니다. TD로 V학습 : $V(S) := V(S) + \alpha(R+\gamma V(S')-V(S))$ TD로 Q학습 : $Q(S, A) := Q(S, A) + \alpha(R+\gamma Q(S', A')-Q(S, A))$ SARSA 구현 이번에도 그리드 월드를 그래도 사용합니다. 환경은 그대로이고 업데이트 방식만 바뀌었습니다. 대부분 그대로이고 update_table만 변경되었습니다. MC에서는 전체 경로인 history를 인자로 받았지만
이전까지 MDP를 모를 때 value를 평가하는 방법(MC, TD)을 봤습니다(Prediction). 이제 정책을 찾는 방법을 알아볼 차례입니다.(Control) 몬테카를로 컨트롤 MDP를 알고있을 때에는 정책 이터레이션을 사용해 밸류를 계산하고 그 값에서 그리디하게 움직이는 정책을 만드는 과정을 반복했습니다. 정책 이터레이션을 사용할 수 없는 이유 MDP를 알 수 없는 상황에서 정책 평가시 반복적 정책 평가를 사용할 수 없습니다. 벨만 기대 방정식을 보면 $r{s}^{a}$와$P^{a}{ss'}$를 알아야 가치를 구할 수 있는데 Model free의 경우는 모르는 값이기 때문입니다. $$ v{\pi}(s)=\Sigma{a\in A}\pi (a|s)(r{s}^{a}+\gamma \Sigma{s'\in S}P{ss'}^{a}v{\pi}(s')) $$ 보상을 알기 위해서는 직접 액션을 통해 값을 확인해야하며 오직 도착했다는 정보만 알수있고 얼마의 확률로 이
앞서 배운 MC, TD중 어떤 것이 더 좋다라고 말하기는 어렵습니다. 각 방법에 대해 장점이 존재하기 때문에 여러 측면에서 살펴보겠습니다. MC vs TD 학습 시점 MC는 에피소드가 끝나고 리턴이 정해져야 되돌아가면서 학습을 진행하고 TD는 한 스텝마다 바로바로 값을 업데이트 합니다. Episodic MDP MDP의 상태들 중 종료 상태가 존재하여 에이전트의 경험이 에피소드 단위로 나눌 수 있음 Non-Dposodic MDP 종료 상태 없이 하나의 에피소드가 무한히 이어지는 MDP 바둑, 스타크래프트와 같음 게임처럼 종료 조건이 명확한 경우에는 episodic MDP 형태로 만들 수 있습니다. 그러나 주식시장이나 RPG게임 같은 경우는 하나의 에피소드가 너무 길어지는 문제가 있습니다. MC는 episodic MDP에만 적용가능하지만 TD는 어떤 MDP에서든 적용할 수 있습니다. 이런 측면에서는 TD의 장점을 볼 수 있습니다. 편향성(bia
Model Free(1)에서는 MC(Monte Carlo)학습을 알아보았는데 이번엔 TD(Temporal Difference)학습에 대해서 알아보겠습니다. MC의 경우에는 업데이트를 하기위해 에피소드가 끝나야 한다는 문제가 있습니다. 다시말해 반드시 종료하는 MDP이어야만 사용할 수 있다는 것이죠. 실제 환경에서는 종료 조건이 없는 MDP도 존재합니다. 반면 TD는 에피소드가 끝나기 전에 업데이트하는 방법으로 종료하지 않는 MDP에서도 학습을 할 수 있습니다. 책에서는 "추측을 추측으로 업데이트 하자"라고 말하네요 이론적 배경 MC에 대한 근거는 기댓값에 있습니다. 샘플을 모으면 모을수록 평균은 수렴하게 됩니다. $$ v{\pi}(s{t})=\mathbb{E{\pi}}[G{t}] $$ 통계학 용어로 $G{t}$는 $v{\pi}(s_{t})$의 불편추정량(unbiased estimate)라고 합니다 편향되지 않은 추정량이란 뜻이죠. MC는 대수의 법칙에 의해 수렴
이제 MDP를 모르는 상황에서의 value를 평가하는 방법을 배워볼 차례입니다. 보상함수$r^{a}{s}$와 전이 확률 $P^{a}{ss'}$을 모르는 상황을 model-free라고 부릅니다. 간단하게 하나만 보고 넘어가겠습니다. model은 강화학습에서 환경의 모델(model of environment)을 줄인 말로 에이전트의 액션에 대해 환경이 어떻게 응답할지 예측하기 위해 사용하는 모든 것을 가리킵니다. 결국 모델을 모른다는 말은 MDP를 모른다와 같은 의미입니다. 그리고 아직까지 작은 MDP를 다루기 때문에 테이블 룩업 방법을 통해 해결할 수 있습니다. 몬테 카를로 학습(Monte Carlo) 간단하게 동전을 던져서 앞면이 나올 확률의 기댓값을 구하고 싶을 때 어떻게 구할 수 있을까요? 간단하게 50퍼센트라고 할 수 있지만 동전의 무게중심에 따라 실제 값은 다를 수 있습니다. 그래서 실제로 던져보고 평균을 내어 기댓값을 구합니다. 앞면이 나온 횟수에서 전체
이번 챕터에서는 MDP를 알고 있을 때의 value를 평가하는 플래닝에 대해서 알아봅시다. 규모가 작은 문제, MDP를 알고있다라는 두 가지 조건을 만족해야하는 상황에서 사용하는 방법입니다. 보상 함수 $R$과 전이 확률 행렬 $P$를 알고있다는 가정입니다. MDP의 모든 정보를 알 때 정책을 개선하는 과정을 플래닝이라고 말합니다. 상상 속에서 시뮬레이션 하면서 좋은 계획을 세우는 과정이라고 생각하면 될 것 같습니다. 정책 $\pi$가 주어졌을 때 각 상태의 value를 평가하는 prediction과 최적 정책 함수를 찾는 control 문제를 푸는 방법에 대해 살펴보겠습니다. 내용은 주로 테이블 기반 방법론(tabular method)에 기반합니다. 테이블 기반 방법론은 상태나 액션의 개수가 많지 않아서 그에 해당하는 테이블을 만들어 그 값들을 업데이트 하는 방법입니다. 반복적 정책 평가 가장 쉬운 격자 모양의 길찾기 과정에서 예시를 보겠습니다. 4
이번 장에서는 value를 구하는 방법에 대해 나옵니다. 벨만 기대 방정식 수식을 차근차근 살펴보겠습니다. $$ \begin{matrix} v{\pi}(s{t})&=&\mathbb{E{\pi}}[G{t}] \\ &=&\mathbb{E{\pi}}[r{t+1}+\gamma r{t+2}+\gamma^{2}r{t+2}+...] \\ &=&\mathbb{E{\pi}}[r{t+1}+\gamma( r{t+2}+\gamma r{t+2}+...)] \\ &=&\mathbb{E{\pi}}[r{t+1}+\gamma G_{t+1}] \\ &=&\mathbb{E{\pi}}[r{t+1}+\gamma v{\pi}(s{t+1})] \end{matrix} $$ 다음으로 정책과 state-action value function을 이용해 $v_{\pi}$를 계산하는 방법입니다. $$ v{\pi}(s{t})=\Sigma{a\in A}\pi(a|s)q{\pi}(s, a
MDP(Markov Decision Process) 이제 필요한 내용은 모두 봤으니 MDP를 설명할 차례입니다. MP나 MRP로는 순차적 의사결정 문제를 모델링할 수 없지만 MDP에서 의사를 가지고 행동하는 주체인 Agent가 등장하면서 가능해집니다. 에피소드 sampling 시작 상태 $s{0}$에서 출발해 종료 상태 $s{r}$까지 가는 하나의 과정을 에피소드라고 부릅니다. 간단히 여러개의 상태를 거쳐가는 방법중 하나를 뽑는 것을 sampling이라고 합니다. 이런 샘플링을 통해 어떤 값을 유추하는 방법론을 Monte-Carlo 접근법이라고 합니다. MDP의 정의 MRP에서 Action이 추가되었습니다. $$ MDP\equiv(S, A, P, R, \gamma) $$ A가 추가되면 기존의 요소들이 정의가 약간씩 달라졌습니다. S MP, MRP와 동일합니다. 가능한 상태의 집합 A 에이전트가 취할 수 있는 행동을 모아놓은 것입니다. 에이
강화학습? 보상을 최대화 하기위한 행동을 시도하면서 보상을 최대로하는 행동을 찾는 과정이라고 생각할 수 있습니다. 책에서는 아래와 같이 소개하네요 > 순차적 의사결정 문제에서 누적 보상을 최대화 하기 위해 시행착오를 통해 행동을 교정하는 학습 과정 순차적 의사결정 간단하게 어떤 행동을 하기위한 과정이라고 볼 수 있습니다. 예시로는 주식 투자에서 포트폴리오 관리, 운전, 게임 등이 있습니다. 순차적 의사결정 문제는 MDP개념을 통해 정확하게 표현할 수 있습니다. MDP를 얘기하기전 MP, MRP를 보고 넘어가야합니다. Markov Property 마르코프 성질은 아래의 식과 같습니다. $$ \mathbb{P}[s{t+1}|s{t}]=\mathbb{P}[s{t+1}|s{1}, s{2}, ..., s{t}] $$ 글로 다시 말하자면 미래의 상태는 오로지 현재의 상태에 의해서 결정된다는 의미입니다. 좀 더 나아가서 RNN을 공부할 당시에도 등장했던 것 같은