강화학습을 처음 막상 공부하려고 하면 머신러닝이나 딥러닝과 비교하면 생각보다 책이나 자료가 많이 없습니다. 교보문고에서 검색해보면 체감할 수 있습니다. 2020년 11월 23일 기준으로 시중에 출판되고 있는 강화학습 책을 정리하면 다음과 같습니다.
- 바닥부터 배우는 강화학습 (노승은 / 영진닷컴)
- 파이썬과 케라스를 이용한 딥러닝/강화학습 주식투자 (퀀티랩 / 위키북스)
- 수학으로 풀어보는 강화학습 원리와 알고리즘 (박성수 / 위키북스)
- 단단한 강화학습 (리처드 서튼, 앤드류 바르토 / 제이펍)
- 파이썬과 케라스로 배우는 강화학습 (이웅원 외 4명 / 위키북스)
- PyTorch를 활용한 강화학습 / 심층강화학습 실전 입문 (오가와 유타로 / 위키북스)
- 강화학습 첫걸음 (아서 줄리아니, 한빛 미디어)
- 기초부터 시작하는 강화학습 신경망 알고리즘 (손민규, 위키북스)
- 텐서플로와 유니티 ML-Agents로 배우는 강화학습 (민규식 외 4명 / 위키북스)
강화학습을 메인 주제로 한 책은 기껏해야 대략 9권 밖에 안됩니다. 인공지능이나 머신러닝 그리고 딥러닝이란 키워드로 검색했을 때 나오는 수보다 현저하게 낮은 것은 사실이죠. 이런 상황에서 강화학습과 관련된 책이 추가적으로 출판됐단 소식은 너무 기쁩니다. 강화학습 인 액션에 대한 한번 리뷰를 간단하게 써보도록 하겠습니다.
결론적으로 말씀드리자면 책의 난이도는 앞서 말씀드린 책들과 달리 조금 어렵습니다. 때로는 내용을 설명해주는 부분들이 불친절하게 느껴질 정도입니다. 이는 감안하고 보셔야할 것이 책에서도
이 책은 프로그래밍 배경지식이 있으며 신경망(심층학습)을 기본적으로 이해하는 사람을 위한 책이다. 좀 더 구체적으로, 이 책은 독자가 파이썬을 능숙하게 다루며 간단한 신경망을 파이썬으로 구현해 본 적이 있다고 가정한다.
라고 언급합니다. 즉 다시 말하면, 강화학습 입문자를 위한 책은 아니란 이야기입니다. 그래서 대부분의 강화학습 책에서 따르는 구성인 데이비드 실버 강의 구성과 다르게 구성되어 있습니다. 즉 벨만 방정식을 배우고 MDP를 배운 다음 MC나 TD 방법으로 MDP를 푸는 걸 보여주고 점점 state가 많아지면 차후 Neural Net으로 근사시켜서 Deep RL로 갔던 데이비드 실버 강의 구성과는 조금 다릅니다.
MP → MRP → MDP → MC/TD 알고리즘 → Model-free Control/Prediction → ...
이 책은 2부 11개 장으로 구성되어 있습니다. 일단 1부는 심층 강화학습의 기초를 설명합니다. 마르코프 결정과정, 벨만 기대 방정식 그리고 벨만 최적 방정식부터 후분에는 심층 강화학습(Deep Reinforcement Learning, Deep RL)의 대표격인 DQN[Mnih, 2016] 논문 등을 설명해줍니다. 사실 다른 책에서는 이정도까지만 나가도 책의 전체 내용에 해당할 수 있습니다. 그래서인지 강화학습 입문자들에게는 다소 버거운 느낌이 드실 수 있습니다. 2부에서는 1부에서 배운 내용을 기반으로 최근 심층 강화학습 분야의 주요 성과를 소개합니다. 생물학적 진화의 원리들을 이용해서 신경망을 훈련하는 진화 알고리즘부터 다수의 에이전트가 상호작용하는 시스템에 대한 내용까지 정말 다채롭게 정리되어 있습니다.
모든 책이 완벽할 순 없듯이, 아쉬웠던 점을 몇가지 꼽자면, 간혹 가다가 어색했던 표현들이나 책에서 사용한 코드 정도라고 들 수 있었습니다. 가령 파국적 망각 방지(Catastrophic forgetting)과 같은 표현은 처음 접한 사람들은 당황할 것 같습니다.
하지만, 앞서 소개했던 9개의 책에서 한번도 다루지 않았던 분포 강화학습(Distributional Reinforcement Learning)는 이 책에서 소개해줬던 점이 너무 좋았습니다. 개인적으로 관심이 많았던 분야인데, 이번 기회를 통해서 조금 더 공부할 수 있었던 기회였던 것 같습니다.
책의 실습코드를 확인하고 싶다면 저자의 GitHub을 확인하시길 바랍니다.
본 리뷰는 서평 이벤트를 통해 제이펍 출판사에게 책을 제공받아 작성된 리뷰입니다.
'강화학습(Reinforcement Learning)' 카테고리의 다른 글
강화학습(Reinforcement Learning)이란 무엇일까? (0) | 2020.06.22 |
---|---|
[영상리뷰] 강화학습을 이용한 주문집행전략 (AI Order Execution Optimization) (0) | 2020.06.09 |