본문 바로가기

> Reinforcement Learning/> Basic

[강화학습 기초지식] Introduction

본 게시물을 시작으로 Machine learning의 큰 갈래 중 하나인 강화학습(Reinforcement learning, RL)의 기초 개념, 주요 논문, 그리고 최신 논문을 정리하여 학계의 트렌드를 파악하고, 하나의 자료로 아카이빙하고자 합니다. 대학원 전공과목 중 하나인 '스토캐스틱 제어 및 강화학습'을 수강하며 Markov decision process와 강화학습에 대한 개괄적인 지식을 얻게 되었고, 해당 분야에 큰 흥미가 생겨 블로그에 별도의 섹션을 마련하기에 이르렀습니다.

허나 Sutton교수의 <Reinforcement Learning: An Introduction> 교재를 제외하면, '강화학습의 정석'으로 불릴만한 적절한 교재가 딱히 없는 것이 사실입니다. 이에 OpenAI에서 공개한 강화학습 교육자료인 Spinning Up의 도움을 받고자 합니다.

What is Spinning-Up?

https://spinningup.openai.com/

Spinning-Up은 비영리 인공지능 연구기업 OpenAI에서 제공하는 deep RL 교육 리소스입니다. Github에서 관련 코드도 함께 제공됩니다. 강화학습을 이해하는데 있어 필수적인 termiology를 비롯하여, 기본 algorithims, basic theory 등 기초 지식 함양에 도움이 되는 내용들이 많이 수록되어 있습니다.

OpenAI는 향후 AI기술의 중심에 deep RL의 발전이 중요한 역할을 맡을 것이라 바라보고 있습니다. AI의 안전한 발전을 위해, 최신 패러다임에 알맞는 안전한 전략 및 알고리즘이 필요하다고 봅니다.

하지만 deep RL를 빠르게 익히기엔 너무 많은 제약이 존재합니다. 선형대수, 최적화이론 등을 비롯한 수학적 배경과 코딩실력, 기초 deep learning 지식을 전제로 하기 때문입니다. 더 나아가 어떠한 연구들이 진행되어왔는지 빠르게 catch-up하는 자세, 왜 그것이 중요하며 무엇을 연구할지에 대한 고차원적인 시야 역시 필요로 합니다. 더 나아가 알고리즘을 code화시켜 본인의 손으로 직접 compile해보는 경험 역시 필요합니다.

그러나 강화학습에 대한 대중적이고 접근성이 좋은 교재가 아직은 존재하지 않습니다. 현재 존재하는 대다수의 서적은 알고리즘과 배경지식에 대한 디테일한 설명이 부족합니다. 알고리즘의 설명이 상세한 서적의 경우, code line에 대한 상세한 설명이 부족합니다. Field에서 꾸준히 공부해온 기존 연구자들에게는 garage, Baselines, rllib 와 같은 repo들이 큰 도움이 되겠지만, 초심자에게는 이들 repo도 여전히 높은 진입장벽입니다. 때문에 Spinning-Up이라는 RL연구에 대한 디딤돌이 되기 위한 teaching tool를 제공하기에 이르렀습니다.

Code Design Philosophy

Spinning-Up에 구현된 알고리즘들은 최대한 간단하게 구현해놓았으며, 알고리즘간에 공통된 요소는 최대한 항상성있게 작성하여 각 알고리즘별끼리의 차이점을 부각시켜놓았습니다. Pseudocode를 구현하기 쉽도록 정해진 패턴이 있으며, 이론과 코드 사이의 괴리를 최소화하였습니다.

다음 포스트부터, 'Key Concepts in RL'의 주제로 아카이빙을 시작하도록 하겠습니다.

감사합니다!