인공지능/Reinforce_Learning 19

강화학습 기초내용 contents

팡요랩의 노승연님이 Tacademy에서 강연한 강화학습 기초내용 다시 보면서 개념 정립하기 좋았다. MDP의 정의나, MC, TD방식의 차이점이나 등등 가치함수를 어떻게 학습할지에 대한 방법론임. MC : 에피소드가 끝날때까지 가봐야하기 때문에 샘플링이 어려움. (리턴을 여러개 모아서(에피소드 샘플링) 그것의 평균으로 할거다) TD : 스탭 크기에 따라 다르지만 에피소드 끝까지 가는것보다 샘플링이 쉬움. 스탭단위로 학습. Expectation ( 기댓값 ) 이 잘 와닿지 않는데, 샘플들의 평균이라고 이해하는게 편함.

[PART5] 심층강화학습 DQN

DQN 두가지 버전 1. 아카이브(리뷰잉 과정들을 통해서 타당성 검증 없음) 2. 개선된 Nature버전. Alexnet 기존에 컴퓨터 비전보다 나은성능이라고 실험적으로 확인 DQN이 해결한(혹은 해결의 실마리를 제공한) 3가지 문제 Sensory인풋을 RL 에이전트에 적용하는 방법. DQN이전에는 난제였음. Moving Q-target : 기존의 table setup에서 학습을 하는것과는 달리 function approximation을 사용하게 되면 학습에 불안정성이 생기게 된다. DQN 한눈에 보기 sensory input에서 함수근사(여기선 CNN)를 통해 action을 아웃풋으로 내는 Q값을 학습했고, 추가적으로 Target network라는 트릭과 Experience replay라는 트릭을 사용..

[PART 3] Ch 02. Pytorch로 선형회귀 모델 만들기

requires_grad= True로 줌으로써 이 변수는 나중에 편미분을 해야한다고 알려줌. 이게 뭐해준걸까 ? 1개의 연산을 한번에 진행한 것이다. torch.ones(3,10)으로 바꾸면 [[1,1,1,1,1,1,1,1,1,1]*3개]가 되는것이고, 각각의 row에 대해서 Wx+b를 수행해서 10+5가 3개 만들어진다. 즉, 각각의 row를 data라고 할 때, 3번의 연산을 한번에 수행한 것이다. 여기에서 view함수는 reshape함수와 비슷하다. 즉, view(-1,1)은 데이터가 얼마나 들어올진 모르겠지만 (1,100)이던 뭐던, 잘 모르겠고 벡터화 좀 시켜줘라 (1,15) => (15,1) float()을 해주는 이유는 numpy에서는 float64를 이용하는데, torch에서는 float3..

[PART 03] CH02. 심층 신경망을 활용한 함수근사(선형근사)

"선형" 가정이 타당한가 ? 가치함수 V나 행동가치함수 Q를 주어진 데이터로부터 함수근사를 이용해서 잘 추산할 수 있을까?가 목적인데 선형으로 가정하고 근사하는게 타당할까 ? 모델에 어떠한 가정도 하지 않고 순수하게 데이터로부터 함수를 배우는 방법이 존재하는가? 심층신경망 Tree, Random Forest모델도 데이터로부터 함수를 배울 수 있다. 그러나 함수근사기법에서 심층 신경망 만큼 잘 배우는 것은 없다고 봐도 무방하다. 심층 신경망 종류 다층 퍼셉트론 모델(Multilayer Perceptron : MLP) MLP의 "Forward" 계산과정 선형과 비선형 operator의 합성함수라고 생각 σ : identity 비선형 모델링도 할 수 있음. 활성함수(Activation function) ReL..

[PART3] CH01. 함수근사 소개

함수 근사란? 파라미터Θ를 조정해서 (x,y)페어를 잘 표현하는 함수를 찾고싶다. 왜 RL강의에서 "함수 근사" 를 배우는가 ? 크게 2가지로 함수근사를 사용하고 배우게 됨. 1. 파트4 정책 최적화에서 정책함수 π를 표현하기 위해서. 2. 파트5 심층강화학습에서 사용하기 위해서 함수근사 사용 효과가 굉장히 좋음. 데이터로부터 함수 근사를 수행할 수 있음. 선형회귀같은 경우에 데이터가 선형이라는 가정을 하고 시작하기 때문에(함수에 대한 구조 가정) 실제 데이터가 선형이 아니라면 정확도가 떨어진다. 그러나 딥러닝같은 경우에는 이런 가정 없이, 충분히 데이터가 많다면 함수를 근사할 수 있다. 데이터를 함축적으로 잘 표현하는 좋은 representation을 배울 수있음 (나중에 배워보자) 좋은 represe..

[Part2] CH05. Off-policy TD contorl과 Q-Learning

복습 TD로도 Off-policy를 할 수 있겠구나. TD(0) (복습) TD(0) 현재 보상인 Rt+1과 한번 감가한 다음state의 value fucntion Off-policy MC(복습) Off-policy를 하는데 Correction term이 존재했다. Importance sampling for Off-Policy TD Importance sampling의 단점 Q-Learning : An Off-Policy TD Control Q-Learning이 TD의 유일한 Off-Policy 방법은 아니다. TD의 다양한 Off-Policy 방법이 존재하나 Q-Learning이 가장 구현이 쉽다. 어떤 정책을 사용하든 행동 a를 구했다고 생각하고 행동 a를 환경에 가한 후 , 환경으로부터 보상과 다음상..

[PART2] CH05. Off-policy MC control

복습 강화학습 문제는 MDP로 정의된다. 마르코프 결정과정에서 최적 가치함수, 최적 정책을 구하는것이 목적. 최적 가치, 정책을 얻기 위해서 DP / MC,TD (환경을 알 때 / 모를 때) 정책 평가 : 주어진 정책의 가치함수를 계산하는 과정 정책 개선 : 우리가 알고있는 정책을 조금 더 나아지게 만드는 과정. 위 그림을 통해서 전반적인 교육과정 및 세부사항과 각 내용의 장단점, 특징을 이해하기. 지금까지 배운 강화학습 기법의 템플릿 정책 개선마다 새롭게 Q^pi_k를 추산하기 위해서 또 새롭게 샘플들을 모음. 좋은 특성은 아님. 새롭게 정책을 개선할 때 마다 환경과 interaction이 있어야하고 샘플링이 되야한다. 특히 시뮬레이션환경이 아니라 현실 환경이라면 그만큼 학습이 느려질 것임. 사람은 타..

[PART2] CH04. SARSA TD 기법을 활용한 최적정책 찾기

TD 복습 TD(n) : n-step까지의 Return + 이후의 가치 추산치 활용 SARSA : TD(0)를 활용한 행동 가치 함수 Q파이 추산 SARSA 의사 코드 임의의 policy에 대해서 가치를 추산하는 코드... sampling된 에피소드에 대해서 terminal state가 될때까지 반복한다. SARSA control : SARSA policy evaluation + e-탐욕적 정책 개선 GLIE조건을 만족시키면서 학습시키는건 어렵다. 현실적으로 좋은 성능을 보이지도 않음. n-step TD복습 n-step SARSA SARSA(람다) 람다는 파라미터고 람다가 1에 가까워질수록 분산이 커지고 편향이 낮아지고 람다가 0에 가까워질수록 분산이 작아지고 편향이 커진다.

[PART2] CH04. Monte Carlo 기법을 활용한 최적 정책 찾기

Generalized Policy Iteration(복습) 우리가 모델을 알고있다면 action을 당연히 고를 수 있겠지만 모델을 모르는 상황이라면 행동을 결정하기 힘들다. Exploitation : Greedy 한 선택 Exploration : 더 좋은 보상을 알아보기 위해서 비효율적일 수 있는 선택을 하는 탐험. e-Greedy policy 아래 그림 보는게 더 이해 잘된다. e-Greedy로 만들어지는 정책이 개선되는게 맞는가 ? 위 식은 증명 되어 있는건데, 그럼 아래에서 파란색을 임의의 Wi라고 했을 때 위 조건을 만속하면 부등호가 성립할 것. 자연스러우니 넘어가자. e-탐욕적 정책 개선을 하면 최적 정책으로 수렴할까 ? 아니다. e의 확률로 원하지 않는 행동을 해야하기 떄문. 1/k(에피소드 ..

[PART2] CH03. Temporal Difference (TD) 정책추정.

모델이 없는 상황에서 정책 추정하는 방법 2가지 몬테 카를로 : 어떤 함수의 평균값을 샘플을 통해서 추산할 수 있다. -> 가치함수 추정하는데 사용했음(샘플을 통해서 추정했음) DP와 MC 기법의 장단점 Temporal -difference는 둘을 섞은 알고리즘 Q-learning의 기초가 되는 알고리즘. Gt를 직접적으로 샘플을 통해서 얻어진 보상들을 감가하고 합하여 리턴의 추산치로 사용했음 TD에서는 return을 추산할 때 현재상태의 보상인 Rt+1과 감마만큼 감소한 다음상태의 가치함수를 사용하게 된다. MDP를 십분 활용한 것. MC기법 현재의 보상 ~ terminal MDP라고 가정하면 현재 이후는 V(St+1)로 대체 된다. V(s) 를 조정해서 TD target과 가까워 지게 만드는게 목적...