728x90
반응형

강화학습 개념 40

강화학습 - (24-2) Deep SARSA 코드예제 2

강화학습 패키지 설치¶ 다음 코드는 세가지 패키지가 선행 되어야 합니다. sudo apt-get install ffmpeg pip install gym pip install gym_minigrid gym.render() 코드가 에러를 발생할 경우, 다음 패키지를 설치하고: sudo apt-get install xvfb 주피터 노트북을 다음 명령어를 통해 실행합니다: xvfb-run -s "-screen 0 1400x900x24" jupyter notebook In [1]: import warnings; warnings.filterwarnings('ignore') import numpy as np import pandas as pd import random import gym import matplotli..

카테고리 없음 2020.12.16

강화학습 - (24-1) Deep SARSA 코드예제

강화학습 패키지 설치¶ 다음 코드는 세가지 패키지가 선행 되어야 합니다. sudo apt-get install ffmpeg pip install gym pip install gym_minigrid gym.render() 코드가 에러를 발생할 경우, 다음 패키지를 설치하고: sudo apt-get install xvfb 주피터 노트북을 다음 명령어를 통해 실행합니다: xvfb-run -s "-screen 0 1400x900x24" jupyter notebook In [1]: import numpy as np import pandas as pd import random from collections import defaultdict import gym import torch import torch.nn as..

강화학습 - (24) 시간차 가치 근사

강화학습 시간차 가치 근사 시간차학습(TD)은 에이전트 자신의 가치함수를 사용해 예측값을 갱신하는 방법이다. 이를 함수 근사를 통해 구현하는 방법을 배워본다. 몬테카를로 경사 몬테카를로 경사 갱신 수식을 다시 살펴보자: $w \leftarrow w + \alpha [G_t - \hat{v}(S_t, w)] \nabla \hat{v}(S_t, w)$ 몬테카를로 경사에서는 반환값의 샘플 $G_t$를 사용해 가치를 갱신하였다. 하지만 반환값 $G_t$만이 갱신 수식에 사용될 수 있는 것만은 아니다. 편견이 없이 (unbiased) 가치를 표현할 수 있는 것이라면 무엇이든 사용될 수 있다. 편견이 없는 값을 사용하면, 에이전트는 local optimum에 도달할 수 있다. 시간차학습의 근사 시간차 학습에서는 $..

강화학습 - (23) 몬테카를로 가치 근사

강화학습 몬테카를로 가치 근사 가치 예측 (Value Estimation) 가치함수의 예측은 지도학습과 비슷한 점이 있다. 몬테카를로 예측에서는 상태 $S_i$를 받아 반환값 $G_i$를 예측하는 것을 지도학습과 비슷하다고 볼 수 있고, 시간차학습에서는 상태 $S_i$를 받아 보상과 미래가치 $R_{i+1} + \gamma v_{i+1}$를 예측하는 것을 비슷하다고 볼 수 있다. 여기서 $v$를 함수 근사로 표현하면 $\hat{v}(S_{i+1}, w)$로 표현할 수 있다. 하지만 강화학습에서는 지도학습과는 다른점이 존재한다. 지도학습은 어떠한 정답(ground truth label)이 존재한다. 하지만 강화학습은 에이전트의 자체적은 다음 상태에 대한 예측값이 사용된다. (몬테카를로에서는 $G_i$, T..

강화학습 - (22) 가치함수의 근사

강화학습 가치함수의 근사 지금까지는 행렬에 모든 상태전환을 고려하는 tabular 상황의 상화학습만을 고려했다. 하지만 현실의 문제에서는 모든 가능성을 행렬에 저장하는 것은 불가능하다. 예를 들어 로봇이 카메라를 통해 세상을 보는것은 너무나 많은 고려되지 않은 불확실성을 수반한다. 따라서 이를 해결하기 위한 방법을 알아보도록 한다. 매개변수를 가진 함수 (Parameterized Function) 상태를 통해 가치를 반환하는 것을 하나의 함수로서 생각해보자. 이 함수는 어떠한 상태 $s_i$를 받아, 이 상태의 가치 $v_i$를 반환하는 함수이다. $f(s) = v$ 만약 이 함수가 하나의 행렬로서 표현된다면, 지금까지 고려하던 tabular 설정이라고 말할 수 있다. 하지만 tabular만이 유일한 방..

강화학습 - (21) 모델

강화학습 모델 우리는 평소에 계획을 많이 세운 뒤 일을 실행하는 상황이 있고, 별 생각 없이 일을 진행하는 상황이 있다. 강화학습에서도 다이나믹 프로그래밍 처럼 수행하는 일에 대한 모든 지식을 수반하는 모델을 만들 수도 있고, 반대로 모델이 없이 샘플링 기반의 학습을 진행할 수도 있다. 강화학습에서는 이러한 계획을 모델이라고 한다. 모델은 환경의 유동성(dynamics)에 대한 정보를 저장한다. 이는 현재 상태에서 한 행동을 취했을 떄, 다음에 받는 상태와 보상에 대한 정보, 즉 전환(transition)과 보상(reward)의 유동성에 대한 정보이다. 계획 강화학습에서 모델은 에이전트에게 계획을 가능하게 한다. 다른말로 하면 모델은 에이전트가 환경에 대해 어떻게 사전 지식을 갖고 생각하는지에 대한 모델..

강화학습 - (20-2) Expected SARSA 코드예제

강화학습 패키지 설치¶ 다음 코드는 세가지 패키지가 선행 되어야 합니다. sudo apt-get install ffmpeg pip install gym pip install gym_minigrid In [1]: import numpy as np import pandas as pd import random from collections import defaultdict import gym import gym_minigrid import matplotlib.pyplot as plt %matplotlib inline 환경¶ 예제 코드는 그리드월드 예제에서 Expected SARSA 에이전트가 학습하는 코드 입니다. 에이전트가 최종 지점에 도달하면 보상을 받고, 에이전트가 취할 수 있는 행동은 다음 세가지 입니..

강화학습 - (20-1) Q러닝 코드예제

강화학습 패키지 설치¶ 다음 코드는 세가지 패키지가 선행 되어야 합니다. sudo apt-get install ffmpeg pip install gym pip install gym_minigrid In [1]: import numpy as np import pandas as pd import random from collections import defaultdict import gym import gym_minigrid import matplotlib.pyplot as plt %matplotlib inline 환경¶ 예제 코드는 그리드월드 예제에서 Q러닝 에이전트가 학습하는 코드 입니다. 에이전트가 최종 지점에 도달하면 보상을 받고, 에이전트가 취할 수 있는 행동은 다음 세가지 입니다. 왼쪽으로 회전 ..

강화학습 - (20) Q러닝

강화학습 Q러닝 Q러닝 알고리즘은 SARSA와 많이 유사하다. 위 알고리즘을 보면 SARSA와는 다르게, 행동가치함수를 갱신할 때 최댓값(maximum)을 취한다. 그렇다면 왜 Q러닝은 다음 상태-행동 페어 대신 최댓값을 취할까? 다시한번 행동가치함수 벨만방정식을 살펴보자. $q_{\pi}(s,a) = \sum_{s',r} p(s',r|s,a) \left (r + \gamma \sum_{a'} \pi(a'|s') q_{\pi} (s',a')\right)$ 아래는 이에 기반한 SARSA의 갱신 수식이다. $Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha (R_{t+1} + \gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t))$ 하지만 Q러닝은 기본적인 벨만방정식이 ..

강화학습 - (19-1) SARSA 코드예제

강화학습 SARSA 코드예제 패키지 설치¶ 다음 코드는 세가지 패키지의 설치가 선행 되어야 합니다. sudo apt-get install ffmpeg pip install gym pip install gym_minigrid In [1]: import numpy as np import pandas as pd import random from collections import defaultdict import gym import gym_minigrid import matplotlib.pyplot as plt %matplotlib inline 환경¶ 예제 코드는 그리드월드 예제에서 SARSA에이전트가 학습하는 코드 입니다. 에이전트가 최종 지점에 도달하면 보상을 받고, 에이전트가 취할 수 있는 행동은 다음 세..

카테고리 없음 2020.11.01
728x90
반응형