300x250

강화학습에 대한 개괄적인 개념에 대해 (1) 글에 이어 정리해본다.

실습 내용은 아래 깃허브를 참조해보자.

https://github.com/JJukE/ReinforcementLearning

 

GitHub - JJukE/ReinforcementLearning: Reinforcement Learning Course

Reinforcement Learning Course. Contribute to JJukE/ReinforcementLearning development by creating an account on GitHub.

github.com

 

 

목차

     

     

     

     

    4. Types of RL Environment

     

    강화학습의 Environment는 다양한 기준에 따라 나뉠 수 있다.

    outcome에 따라, 관찰 가능성에 따라, state가 유한한지에 따라, episode가 있는가에 따라, agent의 개수에 따라 나뉜다.

    여기서 주의할 점은, 한 Environment는 항상 각 기준에 따른 여러 type을 동시에 충족시킨다는 것이다.

    예를 들어, 문제의 종류에 따라 Stochastic, Fully Observable, Continuous, Non-episodic, Single Environment일 수 있다.

    상세한 분류는 아래에서 살펴보자.

     

     

     

     

    1) Deterministic / Stochastic Environment

     

    Action의 결과인 outcome이 명확한지에 따라 Deterministic Environment와 Stochastic Environment로 나뉜다.

     

    Deterministic Environment는 현재 State에 근거했을 때, Action의 결과가 명확하게 주어져서 우리가 알 수 있는 Environment이다.

    예를 들어, 체스 게임을 한다고 가정했을 때, 우리는 어떤 플레이어가 말을 어떻게 움직이는지 그 결과를 명확하게 알 수 있다.

     

    Stochastic Environment는 반대로 Action의 결과를 알 수 없는 Environment이다.

    이에 따라 불확실성(uncertainty)이 크게 증가할 것이다.

    예를 들어, 주사위 게임을 할 때, 주사위가 무엇이 나올지 확률적으로는 계산할 수 있으나, 명확하게 알 수 없다.

     

     

     

     

    2) Fully Observable / Partially Observable Environment

     

    주어진 환경이 관찰 가능한지에 따라 Fully Observable Environment와 Partially Observable Environment로 나눌 수 있다.

     

    Fully Observable Environment란, 항상 Agent가 System의 State를 결정할 수 있는 것을 말한다.

    예를 들어, 체스 게임에서는 모든 플레이어의 위치, 즉 시스템의 State를 항상 알 수 있다.

    이는 곧 (혹시 어려울지 몰라도) Optimal Policy를 항상 찾을 수 있다는 결론을 얻는다.

     

    이에 반해 Partially Observable Environment는 Agent가 항상 State를 알지는 못할 때를 말한다.

    예를 들어, 포커 게임에서는 Agent가 상대방의 패를 볼 수는 없다.

     

     

     

     

    3) Discrete / Continuous Environment

     

    Action에 의한 State 개수가 유한한지, 무한한지에 따라 Discrete Environment, Continuous Environment로 나뉜다.

     

    Discrete Environment란 Action을 통해 한 State로부터 다른 State로 움직일 수 있는 가능한 State의 수가 유한한 경우이다.

    예를 들어, 체스 게임에서는 말을 움직이는 방법이 정해져 있으므로, 그 가능한 움직임이 유한하다.

     

    Continuous Environment에서는 Action을 통해 이동 가능한 State의 수가 무한하다.

    예를 들어, 자율주행 자동차에서 가속을 얼마나 할지, 조향을 얼마나 할지는 그 경우의 수가 무한하다.

    보통 Robotics 등 실제 하드웨어 시스템을 포함하는 경우가 이에 해당하는 경우가 많다.

     

     

     

     

    4) Episodic / Non-episodic Environment

     

    Episodic Environment는 Non-sequential Environment라고도 불리며, Agent의 Action이 미래의 Action에 영향을 주지 않는다. 다시말해 Action은 오직 State만 바꾼다.

    Non-episodic Environment는 Sequential Environment라고도 불리며, Agent의 Action이 미래의 Action에 영향을 끼친다. 따라서 Action은 State를 바꾸면서 미래 Action에 영향을 준다.

     

    Agent의 관점에서 Episodic Environment에서는 독립적인 task들을 수행하고, Non-episodic Environment에서는 Task끼리 서로 연관성이 존재하여 Action 또한 서로 연관이 있다.

     

     

     

     

    5) Single-agent / Multi-agent Environment

     

    Agent의 개수에 따라 환경을 나누기도 한다.

    Agent가 하나이면 Single-agent Environment, Agent가 여럿이면 Multi-agent Environment이다.

    보통 Agent가 많을수록 복잡한 task를 수행하는 경우가 많다.

     

     

     

     

     

    5. RL Platforms

     

    강화학습 관련 플랫폼들은 보통 특정 환경에서 강화학습 알고리즘으로 시뮬레이션, 빌드, 렌더링, 실험을 할 때 사용된다.

    대표적으로 OpenAI Gym & OpenAI Universe, DeepMind Lab, RL-Glue, Project Malmo, ViZDoom 등이 있다.

     

     

     

     

    1) OpenAI Gym & OpenAI Universe

     

    OpenAI Gym은 강화학습 알고리즘을 빌드하고, 평가하고, 비교하기 위한 툴킷이다. Tensorflow, Theano, Keras 등 여러 framework를 사용하여 만든 알고리즘들끼리 호환이 가능하다는 장점이 있다.

    OpenAI Universe는 OpenAI Gym의 확장 버전으로, 실시간으로 진행되는 복잡한 환경에서 Agent를 학습시키고, 평가할 수 있다. OpenAI Universe는 원격 데스크탑에서 가상 네트워크 컴퓨팅을 함으로써 기존의 프로그램을 그대로 사용하여 OpenAI Gym과 연결시켜주는 역할을 한다. 프로그램 내부나 소스코드 또는 API에 접근하지 않고도 연결이 가능하다.

    수업 내용에 대한 실습도 OpenAI Gym을 사용하여 진행할 것이다.

     

    OpenAI Gym 사용 예시 1 - CartPole

     

    OpenAI Gym 사용 예시 2 - SpaceInvaders (고전게임)

     

    OpenAI Gym 사용 예시 3 - 로봇 쓰러지지 않도록 학습시키기

     

     

     

     

    2) DeepMind Lab

     

    DeepMind Lab은 그 유명한 알파고를 만든 회사로, 구글에 인수된 유명한 회사인 구글 딥마인드에서 제공하는 플랫폼이다. 1인칭 3D 게임 플랫폼인데, 이를 통해 강화학습 연구개발을 진행할 수 있다.

    또한 커스터마이징과 확장성이 뛰어나다는 장점을 갖는다.

     

    DeepMin Lab의 예시는 아래와 같다.

     

    https://youtu.be/gC_e8AHzvOw

    Stairway to Melon Level

     

    https://youtu.be/M40rN7afngY 

    Navigate Maze Level1

     

    https://youtu.be/7syZ42HWhHE 

    Laser Tag Space Bounce Level (Hard)

     

     

     

     

    3) 그 외

     

    이외의 여러 강화학습 플랫폼들을 간단하게 살펴보자.

     

    RL-Glue

    • Agent, Environment, Program들을 연결시켜주는데, 서로 다른 프로그래밍 언어로 만들어져 있어도 연결을 가능하게 해준다.
    • 강화학습 모델 중 일부 요소를 다른 강화학습 모델의 일부에 사용하는 등, 재사용성과 공유가 가능하다.

     

    Project Malmo

    • Minecraft 기반으로 AI 실험을 가능하게 하는 Microsoft사의 플랫폼이다.
    • 일반적인 게임인 Minecraft에 비해 시간을 빠르게 흐르도록 조정할 수 있다. (overclocking)
    • 하지만, 마인크래프트 환경 내에서만 가능하다는 단점이 있다.

     

    ViZDoom

    • Doom이라는 옛날 좀비 슈팅게임 기반으로 가능하다.
    • 여러 Agent를 만들어 서로 경쟁하도록 구현할 수 있다. 
    • 하지만 역시 Doom 환경 내에서만 가능하다는 단점이 있다.

     

     

     

     

     

    6. Applications of RL

     

    강화학습이 어떤 분야에 어떻게 적용될 수 있는지 간단히 알아보자.

     

    먼저 교육에 이용될 수 있다.

    온라인 강의 학습, 프로젝트를 통한 학습, 책을 통한 학습 등 강의 방법에 따라 학생마다 잘 배우는 방법이 다르다.

    학생들 개개인의 행동(Reward)에 맞추어 컨텐츠를 만들어 제공하는 온라인 교육 플랫폼들이 생겨나고 있다.

     

    제조업에서도 많이 사용된다.

    제조업에서 공장 자동화를 위해 산업용 로봇을 많이 만들어 사용하고 있는데, 작업을 하기 위해 강화학습 알고리즘이 사용된다.

    예를 들면 로봇이라는 Agent가 한 물체를 올바른 위치로 옮기는데 성공했는지 실패했는지에 따라 그 물체와 과정을 기억하면서 더 좋은 정확도를 갖도록 학습하는 것이다.

     

    재고 관리 시스템에서도 사용될 수 있다.

    공급망 관리, 수요 예측, 창고 재고 관리 등에서 많이 사용된다.

    딥마인드의 연구자들이 강화학습 알고리즘을 통해 구글의 데이터센터의 에너지 소비량을 눈에 띄게 줄였다는 사례가 있다.

     

    금융권에서도 당연히 이용된다.

    금융 포트폴리오 관리, 예측 및 트레이딩 시스템으로 JP Morgan사에서는 강화학습 모델을 통해 사람들보다 더 뛰어난 수익을 거두었다고 발표한 적이 있다.

     

    AI 분야에서 가장 인기있는 두 분야인 Natural Language Processing과 Computer Vision에서도 강화학습이 이용된다.

    전통적으로 딥러닝 알고리즘을 사용하여 큰 성과를 거두었는데, 이에 강화학습을 더해 'Deep Reinforcement Learning (DRL)'을 통해 NLP와 CV 분야는 한 층 더 진화했다.

    DRL은 text summarization, information extraction, machine translation, image recognition 등 수많은 분야에 사용되고 있다.

    나 또한 이 분야에 관심을 두고 있는데, 빨리 더 공부해서 좋은 성과를 내고싶다.

     

     

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기