프로젝트로 배우는 심층 강화학습의 이론과 실제!

심층 강화학습 시스템은 새로운 환경에 빠르게 적응한다. 이러한 능력은 기존의 표준적인 신경망에 비해 커다란 진보에 해당한다. 사람이 뭔가를 배우는 과정과 비슷하게, 심층 강화학습 에이전트는 감각 정보에 해당하는 원본 데이터를 입력받고 시행착오를 거쳐서 자신의 반응과 예측을 정련해 나간다.

이 책 《심층 강화학습 인 액션》은 환경이 제공하는 직접적인 피드백에 기반해서 환경에 적응하고 자신을 개선해 나가는 에이전트의 구현 방법을 설명한다. 흐름이 있는 하나의 강좌 형태로 구성된 이 책에서 여러분은 심층 강화학습의 기본 기법과 고급 기법을 미로 탈출이나 비디오 게임 플레이 같은 흥미로운 예제를 통해서 배우게 된다. 그 과정에서 심층 Q 신경망과 정책 기울기 방법을 포함한 여러 핵심 알고리즘을 익힐 수 있고, PyTorch와 OpenAI Gym 같은 업계 표준에 해당하는 라이브러리에도 익숙해질 것이다.

“DRL의 기초에 숙달하고자 하는, 그리고 이 흥미로운 분야에서 연구자나 개발자로 일하고자 하는 모든 이에게 이 책을 강력히 추천한다.”

━ 아마존의 알 라히미

책 속으로

이 책을 출간하는 시점에서 본문에 수록된 모든 예제 코드는 잘 작동함이 확인된 것이다. 그러나 심층학습 분야와 관련 라이브러리들이 빠르게 발전하는 만큼, 언제까지라도 예제 코드가 의도대로 작동하리라는 보장은 없다. 본문의 예제 코드는 또한 프로젝트가 돌아가는 데 필요한 최소한의 형태로만 작성된 것일 뿐이므로, 원서 깃허브 저장소 http://mng.bz/JzKp에 있는 좀 더 완전한(그리고 갱신된) 소스 코드를 참고하길 강력히 권한다. _xvi쪽

이 책은 독자가 심층학습에 관한 기본 지식을 어느 정도 갖추고 있다고 가정하지만, 재미있고 유익한 강화학습 기법들을 배우는 과정에서 여러분의 심층학습 관련 기술도 더욱 제련될 것이다. 좀 더 어려운 프로젝트들을 해결하기 위해서는 심층학습의 최신 성과 몇 가지도 동원할 필요가 있다. 이를테면 GAN(생성 대립 신경망 또는 생성적 적대 신경망), 진화적 방법들, 메타 학습, 전이학습이 그런 예이다. 물론 이들은 모두 독자의 추후 학습 능력을 증진한다는 기본적인 목적하에서 언급되는 것일 뿐, 그런 최신 성과의 기술적인 세부 사항에 초점들을 두지는 않는다. _23쪽

실망스럽지만 흥미로운 결과이다. 신경망이 선택한 이동 동작들을 자세히 살펴보기 바란다. 플레이어는 목표에서 오른 쪽으로 몇 타일 떨어진 곳에서 출발한다. 플레이어가 게임 플레이 방법을 정말로 알고 있다면 그냥 왼쪽으로 직진해서 목표에 도달했을 것이다. 그러나 플레이어는 정적 모드에서처럼 아래로 내려가기 시작한다. 이 결과를 보면 신경망이 훈련에 사용한 정적 모드의 게임 플레이를 그냥 암기했을 뿐, 배운 것을 일반화하지는 못했다고 봐야 할 것이다. _84쪽

그림 5.10은 행위자-비평자 알고리즘의 개요이다. 행위자-비평자 모형은 상태 가치와 동작 확률분포를 산출해야 한다. 동작 확률분포로 동작을 선택해서 보상을 받고, 그것을 상태 가치와 비교해서 이익을 계산한다. 궁극적으로 동작을 강화하고 모형을 훈련하는 데 사용하는 것은 바로 그 이익이다. _143쪽

그림 7.14에서 보듯이 균등분포가 분산이 훨씬 작은, 5를 중심으로 한 정규분포 비슷한 분포로 바뀌었다. 이상의 실험으로 볼 때 update_dist 함수는 의도한 대로 잘 작동하는 것으로 보인다. 이번 예제에서 이 함수는 분포 DQN이 근사하고자 하는 목표 분포를 생성하는 데 쓰인다. 그럼 프리웨이 게임을 위한 분포 DQN을 구현해 보자. _215쪽

1차원 이징 모형은 아주 간단하기 때문에, PyTorch의 내장 신경망 층들을 사용하는 대신 관련된 모든 행렬 곱셈 연산을 직접 지정해서 신경망을 작성해도 별로 어렵지 않다. 목록 9.5는 Q 신경망(Q 함수)을 구현하는 파이썬 함수이다. 이 함수는 상태 벡터 하나와 매개변수 벡터를 받고, 매개변수 벡터에 담긴 매개변수들을 여러 개의 행렬로 만들어서 각각의 신경망 층으로 사용한다. _292쪽

*지은이

알렉스 짜이(Alex Zai)

심화 코딩 부트캠프인 Codesmith의 CTO를 역임했고, 현재는 기술 자문으로 일한다. 또한 그는 우버의 소프트웨어 기술자이자 Banjo와 아마존의 기계학습 공학자이며, 오픈소스 심층 강화학습 프레임워크인 아파치 MXNet에도 기여한다. 그리고 두 개의 기업을 공동 창업하기도 했는데, 그중 한 회사는 Y Combinator에 참여했다.

브랜던 브라운(Brandon Brown)

어려서부터 프로그래밍을 해왔고 대학 시절에는 파트타임으로 소프트웨어 개발 일도 했지만, 결국은 의학으로 진로를 잡았다. 보건 기술 분야의 소프트웨어 기술자로 일한 적도 있는 그는 현재 의사이며, 심층 강화학습에 영감을 얻은 계산 정신 의학(computational psychiatry)의 연구에 관심이 있다.

*옮긴이

류광

커누스 교수의 《컴퓨터 프로그래밍의 예술》 시리즈(한빛미디어)를 포함하여 60여 종의 다양한 IT 전문서를 번역한 전문 번역가다. 인공지능 관련 번역서로는 이 책 외에도 《인공지능: 현대적 접근방식(제3판)》(제이펍, 2016)과 《심층 학습》(제이펍, 2018), 《신경망과 심층 학습》(제이펍, 2019), 《파이썬으로 배우는 자연어 처리 인 액션》(제이펍, 2020)이 있으며, 《인공지능: 현대적 접근방식(제4판)》을 준비 중이다.