728x90
반응형

sarsa 12

강화학습 - (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..

강화학습 - (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

강화학습 - (19) SARSA

강화학습 SARSA SARSA란 일반화된 정책반복 (Generalized Policy Iteration)과 시간차 학습(TD)가 접목된 알고리즘이다. 일반화된 정책반복 일반화된 정책반복이란, 정책향상을 하기 위해서 굳이 정책 평가를 끝까지 해보지 않고 적정양의 정책 평가만으로도 정책 향상을 할 수 있다는 개념이었다. 이 과정은 시간차 학습과 만나 더 강력해질 수 있다. 단 한 스텝의 정책 평가 만으로도 정책 향상을 이룰 수 있다. 상태가치에서 행동가치로 각 스템의 정책 평가에서 정책 향상을 이루기 위해서는, 상태가치 $V(s)$가 아닌 행동가치 $Q(s,a)$를 사용해야 한다. 이는 위 그림에서 처럼 각 상태 $s$의 가치가 아닌, 각 상태와 행동의 페어 $(s,a)$를 평가해야 함을 의미한다. SARS..

강화학습 - (18) 시간차 학습

강화학습 시간차 (Temporal Difference) 강화학습의 가장 특수한점, 강화학습만의 유일한 강점을 꼽으라고 한다면, 그것은 시간차학습(Temporal Difference Learning)일 것이다. 강화학습은 어떠한 상태의 가치를 판단함으로서 예측한다. $v_{\pi}(s) \dot{=} \mathbb{E}_{\pi}[G_t|S_t=s]$ 지금까지의 학습 기법은 에피소드가 끝나야만 학습이 가능했다. 하지만 배운 기법을 조금 수정하면 에피소드 중간에도 학습이 가능하게 해준다. 몬테카를로 학습기법에 점진적인 갱신을 반영하면 다음과 같다: $V(S_t) \leftarrow V(S_t) + \alpha [G_t - V(S_t)]$ 결과값 $G_t$는 에피소드가 끝나야만 얻어지는 반환갑이다. 따라서 이..

728x90
반응형