분류 전체보기 68

PolicyGradient + REINFORCE + ActorCritic +A3C

다음 강의와 '파이썬과 케라스로 배우는 강화학습' 도서를 보고 정리한 내용입니다 : ) www.youtube.com/watch?v=gINks-YCTBs 'RLCode와 A3C 쉽고 깊게 이해하기' Asynchronous Advantage Actor-Critic, A3C가 강화학습의 새로운 베이스라인으로 자리잡았다. DQN의 장단점 + 게임 화면 이미지 자체를 input으로 받아 CNN을 통해 학습 + 샘플 간 높은 상관관계의 문제를 '리플레이 메모리'를 통해 해결 - 많은 메모리 사용 - 느린 학습속도 - 가치함수에 대한 Greedy Policy로 학습이 다소 불안정 A3C + 샘플 간 높은 상관관계의 문제를 '비동기 업데이트'로 해결 -> 리플레이 메모리 더이상 사용 X + Policy gradient..

LEC 07. DQN

LEC 07 앞선 강의에서 Qnetwork 방법만으로는 Cart Pole 문제가 잘 풀리지 않았다. 두가지 문제점이 있는데, 1) 샘플 간의 상관관계와 2)타겟값이 고정이 안된다는 것이다. (1) 다음과 같이 상관관계가 높은 샘플만으로 학습을 시키면 목표하는 값과 상당히 다른 결과를 가진다. (2) Yhat 이 Y 가 될 수 있도록 θ를 업데이트 한다. 하지만, 예측과 target 이 모두 같은 네트워크를 사용하기 때문에, 학습과정에서 씨타를 업데이트 하는 순간, 동시에 target Y도 영향을 받아 움직이게 된다. 강의에서는 과녁을 보고 화살을 쏜 순간, 과녁이 움직여버린다고 하였다. 이런 이유 떄문에 학습이 어렵다. Google Deep Mind팀은 다음 3가지 방법으로 문제를 해결하였다. 1) Go..

LEC 06. Q-Network

LEC 06 Q-table은 입력의 크기가 큰 실생활 예제에서는 적용이 어렵다. 퍼즐 80*80 pixel + 2color(black/white) => pow(2,80*80)만 해도 수가 엄청나게 크기에 table로 표현하기가 힘들다. 따라서, Q-Network, 신경망을 사용하여 Q 테이블을 근사한다. Q-network, 신경망 구축은 '상태'만 input으로 주고 모든 가능한 행동의 확률값을 output으로 받는다. 다음, Linear Regression 방식으로 문제를 해결한다. 1) 신경망 예측값 = 입력 s에 대해서 weights(W)를 적용한 출력값 -> W*s 2) 실제 목표 target, label = optimal Q => (reward + dis*max(Q(s',a')) 이제, loss..

LEC 05. Q-learning on Nondeterministic Worlds!

LEC 05 실제 미끄러운 Frozen Lake, Stochastic 환경에서는 어떻게 해야할까? - Deterministric [ is_slippery: False 환경 ] 특정 행동에 대해 항상 같은 결과(이동방향 및 reward)를 냄. vs - Stochastic(non-deterministic) [ is_slippery : True (혹은 env = gym.make('FrozenLake-v0') ) 환경] 미끄러지기도 하면서 내 의도(키보드 입력)와 다르게 움직일 수도 있음. Stochastic환경에서는 기존의 방식의 알고리즘이 잘 작동하지 않는다. Stochastic환경에서는 Q형님이 Frozen Lake에서 미끄려져 우연히 이동한 결과값 일 수도 있기에, Q형님 말만 믿고 따라가면 위험하다...

LEC 04. Q-learning (table)

LEC 04 1) Exploit&Exploration 2) Random Noise 3) Discounted Future Reward 1) Exploit & Exploration 알고리즘 Lec 03에서의 dumy Q-learning 방식으로는 한 가지 길로만 가게 된다. 따라서, E&E알고리즘(Exploit & Exploration)을 도입하여 여러 경우의 수를 만들어야 한다. Exploit는 이미 알고있는 확률값을 사용하여 액션을 선택하는 것이고, Exploration은 랜덤하게 새로운 도전으로 값을 선택하는 방식이다. Explot과 Exploration의 채택 비중은 E-greedy 방식을 사용하여 정할 수 있다. 슬라이드와 같이 e값을 0.1로 고정한다면, Exploit 90% VS Explorat..

LEC 03. Dummy Q-learning (table)

LEC 03 에이전트는 사전에 map을 모르는 채로 움직이며, 매 행동이 끝난 뒤에 상태 정보를 받는다. 따라서, 길을 알려주는 행동대장을 따라갈 필요가 있는데, 이때 등장하는 Q형님이 바로 행동대장이다. Frozen Lake 게임을 Q형님과 함께 수행해본다. Q형님에게 입력할 값은 2개 : (1) state 현재 위치 / (2) action 다음에 취할 행동(상하좌우 중 이동할 방향) 그러면, Q형님은 각 행동 별 확률(가능성)을 알려준다. 이제, Q형님의 가르침대로 4방향 중 최대값을 가지는 방향을 찾아 이동하면 된다. Max Q = maxQ(s1, a') : 최대 확률값 argmax Q(s1, a) : 그 최대 확률에 해당하는 행동 (ex. 오른쪽) => Optimal policy * 그렇다면, 이..

LEC 02. Playing OpenAI GYM Games

LEC 02 'Frozen Lake' OpenAI GYM 프레임워크를 사용하면 환경(게임)을 사용할 수 있다. Frozen Lake : {F : Frozen Lake H : 구멍 G : Goal} 로 이루어진 맵 위를 움직이는 게임 Agent 의 action(상하좌우 이동)에 따라서 state(좌표), reward(Goal 도착시, 보상)를 반환해준다. LAB 02 - Windows 10 'Frozen Lake' Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 import tensor..

Lec 01. RL Introduction

LEC 01 Intro - Concept 2가지로 구분 -> 환경(Environment) & 행동하는 주체(Agent) Agent가 행동할 수록, 환경 상태 및 정보(state, observation)가 업데이트 되고, 일련의 행동의 결과로 보상(reward)를 받을 수 있다. - History Machine Learning, Tom Mitchell, 1997 13장에 Reinforcement Learning이 이미 다루어졌었다. => Atari Breakout Game 2013, 2015 화려한 부활!! 벽돌깨기 게임을 방법을 습득하고 훌륭하게 수행한다. 그 뿐 아니라, 다른 게임에도 동일한 알고리즘을 적용할 수 있다. (Atari Games) - Use Figure courtesy of Mnih et..