728x90
반응형

딥러닝 68

강화학습 - (26-2) REINFORCE 코드예제 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..

강화학습 - (26) 정책 경사

강화학습 정책 경사 보상 모델링 강화학습에서 보상을 모델링 하는 방법은 크게 세가지가 있다. 먼저 에피소드 태스크의 경우, 우리는 해당 에피소드의 모든 보상을 더하고, 에피소드마다 최종적으로 얻어지는 모든 보상의 합을 최대화 한다: $G_t = \sum^{T}_{t=0} R_t$ 연속적인 태스크의 경우, 우리는 바로 다음 보상에 초점을 맞추고, 미래의 보상에는 감가율을 더해준다: $G_t = \sum^{\infty}_{t=0} \gamma^t R_t$ 마지막으로, 전체 보상의 합에서 평균 보상을 빼주는 방식이다. 각 시점에 에이전트가 받는 보상에서 평균 보상을 빼줌으로서, 연속적인 태스크임에도 무한이 아닌 보상으로 학습할 수 있다: $G_t = \sum^{\infty}_{t=0} R_t - r(\pi)$..

강화학습 - (25) 정책 근사

강화학습 정책 근사 정책 학습 정책은 에이전트가 어떻게 행동하는지를 정의한다. TD기반 기법들이 행동가치를 예측하는 것은 간단한 확률 기반의 입실론 그리디를 사용했기 때문이다. 하지만 행동가치를 예측하기 전에, 정책 또한 함수로서 근사가 가능하다. 정책을 함수로서 표현한다면, 상태의 표현을 받아 행동을 할 확률을 내는것이라 말할 수 있다. 예제) 강화학습에서 유명한 게임중 하나인 Mountin Car라는 게임을 예로 들어본다. 자동차가 언덕 위의 깃발에 도달해야한다고 할 떄, 위와 같은 두가지의 행동을 하는 정책을 정의할 수 있다. 정책 함수 근사 정책 함수를 근사하는 파라미터는 위와 같이 $\theta$로 표현한다. 위 함수는 모든 상태에 대해 모든 행동들에 대한 확률을 반환해야 한다. 따라서 모든 행..

강화학습 - (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) 시간차 가치 근사

강화학습 시간차 가치 근사 시간차학습(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러닝 에이전트가 학습하는 코드 입니다. 에이전트가 최종 지점에 도달하면 보상을 받고, 에이전트가 취할 수 있는 행동은 다음 세가지 입니다. 왼쪽으로 회전 ..

728x90
반응형