본문 바로가기

분류 전체보기

(10)
DDPG(Deep Deterministic Policy Gradient) DDPG(Deep Deterministic Policy Gradient) 개요DDPG는 DQN의 replay buffer와 target network를 활용한 학습 안정화 메커니즘과 Deterministic Policy Gradient(DPG)의 continuous action space 처리능력을 결합하여 DQN이 해결하지 못한 continuous action space 문제를 deep RL로 풀어낸 대표적인 알고리즘이다.DDPG의 핵심 철학 4가지1. deterministic policy일단 DQN과의 결정적 차이로 DQN은 \(argmax_aQ(s,a)\)를 연속 공간에서는 절대 죽어도 못 구한다. 이제 DDPG는 Actor가 \(argmax_aQ(s,a)\) 자체를 탐색하는게 아닌 신경망으로 추정..
Advantage Actor Critic (A2C) Actor-Critic행동을 결정하는 Policy Net을 Actor라 칭하며그 행위를 평가하는 Value Net을 Critic이라 칭함두 신경망 모두 advantage \(A_t = V_{target} - V_{pred}\)를 가지고 업데이트를 하면서 최적의 행동을 고르는 actor와 정확하게 가치를 추정하는 critic을 학습하는 방법을 actor-critic이라고 한다. 여기서 \(V_{target}\)은 한 스텝만 가보고 얻은 target이고 \(V_{pred}\)는 critic의 예측값이다. 정확한 식은 아래에서 푼다. 근데 여기까지만 따지면 REINFORCE에 baseline으로 업데이트 하는 것도 actor-critic이라고 부를수 있지 않은가? actor-critic이라고 부를려면 mont..
Policy based 강화학습: Policy Gradient with REINFORCE 1. Policy-based 강화학습지금까지 소개했던 Monte Carlo, Temporal Difference, DQN 등과 같은 알고리즘들은 모두 가치 함수 Q를 추정하고 그로부터 policy를 greedy하게 유도하는 Value-based 강화학습이었다.Policy-based RL은 \(V_\pi(s)\)나 \(Q_\pi(s|a)\)를 직접적으로 업데이트하며 학습하는 방식이 아닌 Policy \(\pi_\theta(a|s)\) 자체를 파라미터 \(\theta\)로 표현하고 해당 Policy가 받는 Expected Return값이 커지도록 학습한다.이때 policy를 업데이트하는 대표적인 방법으로 Policy gradient를 이번 챕터에서 정리해보려 한다. Expected Return을 파라미터 \..
DQN: Deep Q-Network DQN Architecture2013 NIPS 버전: Playing Atari with Deep Reinforcement Learning 2015 Nature 버전: Human-Level Control through Directly-Trained Deep Spiking Q-Networks 배경DQN은 Deep Q-Network의 약자로 Q-Learning에 신경망(Neural Network)이 결합된 형태이다.당시에 강화학습은 Vision이나 Speech 같은 고차원 데이터가 환경으로 주어졌을때 이를 해결할 수 없었다. 논문에 나온 Atari Game을 예시로 들자면 아래 사진에 있는 Breakout이란 게임은 210 x 168 픽셀을 가졌고 128가지의 색상을 지원한다. 이제 생각을 해보자 210 ..
Temporal-Difference(TD) Temporal-Difference(TD) 학습은 강화학습에서 최적 가치 함수를 찾을때 Monte Carlo와 자주 비교되는 Model-free 방법입니다. Monte Carlo는 에피소드가 종료되었을 때 비로서 실제 Return값을 받고 이를 평균내어 가치 함수를 추정하였습니다. 하지만 현실에서는 에피소드가 너무 길거나 혹은 아예 끝나지 않는 경우도 많습니다. 공장에서 24시간 돌아가는 로봇 팔 제어 문제 처럼 말이죠. 이런 상황에서 Monte Carlo를 대체할 수 있는 학습이 Temporal-Diffrence(TD)입니다. TD의 핵심은 간단합니다. "정답(실제 Return)을 끝까지 기다리지 말고, 한 스텝 뒤의 예측치를 임시 정답으로 쓰자"는 것입니다.Temporal-Diffrence의 기본 원..
Optimal Value Function을 찾기 위한 Monte Carlo 방법 지난 글에서는 강화학습의 목적은 최적의 정책을 찾는것이며 최적이란 것을 비교할 수치를 나타내기 위해 가치 함수에 대한 설명을 하였습니다. 그렇다면 가치 함수중 에서도 최적의 가치 함수는 어떻게 찾아낼 것인가요? 고전적인 방법론으로 Dynamic Programming과 Monte Carlo, Temporal-Diffrence 3가지 방법을 대표적으로 꼽을 수 있습니다. 이 세 가지를 비교하기 전에, 먼저 강화학습에서 말하는 모델(model) 이 무엇인지부터 짚고 넘어가겠습니다. 강화학습에서 모델이란, 환경이 어떻게 동작하는지를 수학적으로 기술한 것으로, 구체적으로는 어떤 상태 s에서 행동 a를 했을 때 다음 상태 s′와 보상 r이 어떤 확률로 나오는지를 알려주는 \(P(s', r \mid s, a)\)를 ..
[번외] 강화학습을 위한 기초 수학 - Expectation 이전 글에서 Value Function을 다루며 이런 말을 했습니다. "가치 함수는 현재 상태로부터 미래에 받을 수 있는 보상의 총합, 정확히는 총합의 기댓값입니다." 사실 저도 처음 공부할 때 '그냥 보상을 다 더하면 되지, 왜 굳이 기댓값이라는 표현을 쓸까?' 하는 의문이 들었습니다. 우리가 흔히 아는 '평균'과 뭐가 다른지 모호하게 느껴지기도 했고요. 근데 기댓값이라는 개념은 강화학습의 수식을 이해하는 데 있어 생각보다 중요한 역할을 하더라구요. 그래서 기댓값의 개념부터 조금 심화?까진 아닌거 같긴한데 무튼 응용된 개념까지 설명해보려 합니다.1. 기댓값(Expectation)기댓값은 어떤 확률적인 일을 무한히 반복했을 때 결과의 평균이 수렴하는 값이며 \(\mathbb{E}[X]\)로 표기합니다.예..
Value Function(가치 함수) 이해하기 강화학습의 목적은 최적의 정책을 찾는 것입니다. 그렇다면 ‘최적’이라는 것을 알기 위해서는 어떤 정책이 다른 정책보다 더 좋다는 것을 어떻게 수치로 비교할 수 있을까요?이 질문에 답하기 위해 필요한 것이 가치 함수입니다. 가치 함수는 “현재의 상태가 얼마나 좋은가?”를 표현하는 상태 가치 함수(State value function)와, “현재 상태에서 이런 행동을 하면 얼마나 좋은가?”를 표현하는 행동 가치 함수(Action value function)로 구분됩니다. 우리는 컴퓨터에게 “좋다”라는 것을 주입하기 위해, 그 좋음의 정량적인 수치가 필요합니다. 강화학습에서 정책의 좋고 나쁨을 판별하는 수치는 지금 상태에서 앞으로 받게 될 보상의 총합입니다. 좀 더 정확히 말하면, 그 총합의 기댓값이긴 합니다..