본문 바로가기

RL/Practice

[Part 6] Partial Observability and Deep Recurrent Q-Networks 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 강화학습의 Partial observability 문제에 대해 다루겠습니다. 비교적 간단한 환경에서 구현된 agent라면 문제가 되지 않으나 현실 세계와 같은 문제에서는 Partial observability 문제가 발생합니다. 하지만 인간은 시각적으로나 논리적으로, 먼 미래의 현상을 정확하게 예견할 수 없는 환경에서 발생하는 문제를 비교적 정확하게 해결합니다. Partial observability 문제는 어떻게 해결했을까요? The Problem of Partial Observability앞의 Part 4와 Part 5에서의 gridworld 환경에서 구현했던 agent는 optimal policy..
[Part 5] Visualizing an Agent’s Thoughts and Actions 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 앞서 Part 4에서 다루었던 grid world agent의 학습 과정을 다룬 interface에 대해 다룰 것입니다. Deep learning에서 black box라고만 여겨졌던 학습 과정을 조금이나마 들여다보기위해 loss나 accuracy등의 수치를 찍어봅니다. Reinforcement learning에서도 action과, reward, 그리고 현재 state까지 볼 수 있으면, agent가 학습하는 것을 조금 더 잘 이해할 수 있겠다는 생각각이 듭니다. 이러한 흐름에서, agent의 learning information을 보여주는 웹 인터페이스, Reinforcement learning con..
[Part 4] Deep Q-Networks and Beyond 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 강화학습의 Q-networks에 Deep Learning을 적용한 Deep Q-networks를 다루겠습니다. Part 0의 FrozenLake 예제에서는 Q-net이 table을 이용한 방법보다 좋은 성능을 내지 못했습니다. 하지만 Google DeepMind의 Playing Atari with Deep Reinforcement Learning(2013) 논문에서 적용한 아래의 세 가지 사항을 반영한 DQN을 구성하여 FrozenLake와 비슷한 환경에서 agent를 구성해보겠습니다. 우리가 Q-net에 반영할 사항은 아래 세 가지 입니다. 1) CNN(Convolution Neural Network..
[Part 3] Model-based RL 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 강화학습 중에서도 model-based한 방법에 대해 알아보겠습니다. Part_2에서는 Cart-Pole problem에 대해 policy gradient agent를 설계했습니다. 우리는 지금까지 실제 env.과 상호작용을 하며 model을 받아와서 사용했습니다. 하지만, 현실의 문제는 이렇게 편리하게 env.이 갖춰져있지 않습니다. 따라서, 이를 modeling하는 방법이 필요하고 그 방법이 model-based RL입니다. Cart-pole 예제를 통해서 model-based RL은 env.의 model을 학습하면서 동시에 policy gradient 방법으로 최대 reward를 얻기 위해 어떤 ..
[Part 2] Policy-based Agents(Cart-Pole Problem) 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. Part 1과 Part 1.5에 이어 이번 포스팅에서는 제대로된(perfect) 강화학습에 대해 살펴보겠습니다. Part 1.5 포스팅에서는 Part 1과 1.5의 예제가 강화학습과 어떻게 다른지, 어떤 조건이 결여되어 있는지 설명했습니다. 이를 다시 짚고 Part 2로 넘어가는 것이 좋겠습니다. 원 포스팅의 글에서 이해를 돕기 위해 왼쪽에 간단한 그림을 추가했습니다. MAB(Part 1)의 문제에서는 State가 변하지 않고 오로지 하나의 bandit에서 arm을 선택하는 action을 통해 reward를 얻습니다. 그리고 이에 state의 개념을 더하여..
[Part 1.5] Contextual Bandits 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 본격적인 강화학습에 대한 실습에 들어가기 앞서, Part 1의 MAB algorithm에서 강화학습으로 가는 중간 과정을 다룰 겁니다. MAB의 경우, agent가 학습하는 것은 reward를 최대로 하는 machine을 적당한 Exploration을 통해 찾고 이를 Exploit하는 겁니다. 이 때, agent를 state의 개념이 없이 action과 reward를 통해서만 학습을 진행하게됩니다. 앞선 MAB algorithm을 온전한 강화학습으로 생각하기에는 부족한 요소가 있기때문에 강화학습의 입문 과정으로써, Contextual Bandits에..
[Part 1] Multi-armed Bandit 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서 다룰 예제는 강화학습의 Multi-armed bandit algorithm에 대해 다루겠습니다. 원문에서는 Two-armed bandit이라는 제목을 달았는데, 저는 Multi-armed bandit(이하 MAB)가 조금 더 알려진 이름이고 실제로 실습 code도 2개 이상의 arm이 존재하는 slot machine을 다루기 때문에 원문과 다른 제목으로 바꾸어 달았습니다. MAB algorithm은 A/B testing을 보완한 algorithm입니다. 앞부분에 MAB에 대한 배경설명으로, A/B testing에 대해 간단히 알아보고 그 이후에 MAB algorithm에 대한 설명과 code로 구현한 것..
[Part 0] Q-Learning with Tables and Neural Networks 포스팅에 앞서 Reference의 contents를 review하는 글임을 밝힙니다. 이번 포스팅에서는 강화학습의 Q-Learning 알고리즘을 알아보겠습니다. 강화학습의 방법론에서 policy gradient은 agent가 인식한(observe) state에 action을 직접적으로 연결하는 함수를 이용하는 반면, Q-Learning은 주어진 state에 대한 value를 학습해서 특정한 action을 선택하는 것으로 학습합니다. 먼저 Deep learning으로 학습하는 것에 앞서서 간단히 Table로 알고리즘을 구현하여 기초적인 원리를 이해하고, 이 후에 Neural Network를 이용하여 구현해보겠습니다. Tabular Approaches for Tabular Environments(Q-Tabl..