이미 소장하고 있다면 판매해 보세요.
옮긴이 머리말 xii
베타리더 후기 xiii 추천사 xv 시작하며 xvi 감사의 글 xxi CHAPTER 01 강화학습 소개 1 1.1 강화학습 1 1.2 MDP로서의 강화학습 7 1.3 강화학습에서 학습하는 함수 11 1.4 심층강화학습 알고리즘 13 1.4.1 정책 기반 알고리즘 14 1.4.2 가치 기반 알고리즘 15 1.4.3 모델 기반 알고리즘 16 1.4.4 결합된 방법 17 1.4.5 이 책에서 다루는 알고리즘 18 1.4.6 활성정책과 비활성정책 알고리즘 19 1.4.7 요약 19 1.5 강화학습을 위한 심층학습 20 1.6 강화학습과 지도학습 22 1.6.1 오라클의 부재 23 1.6.2 피드백의 희소성 24 1.6.3 데이터 생성 24 1.7 요약 25 PART I 정책 기반 알고리즘과 가치 기반 알고리즘 CHAPTER 02 REINFORCE 29 2.1 정책 30 2.2 목적 함수 31 2.3 정책 경사 31 2.3.1 정책 경사 계산 33 2.4 몬테카를로 표본추출 36 2.5 REINFORCE 알고리즘 37 2.5.1 향상된 REINFORCE 38 2.6 REINFORCE 구현 39 2.6.1 최소 형태의 REINFORCE 구현 39 2.6.2 파이토치로 정책 생성하기 42 2.6.3 행동 추출 44 2.6.4 정책 손실 계산 45 2.6.5 REINFORCE 훈련 루프 46 2.6.6 활성정책 재현 메모리 47 2.7 REINFORCE 에이전트의 훈련 50 2.8 실험 결과 53 2.8.1 실험: 할인율 ?? 의 효과 53 2.8.2 실험: 기준값의 효과 55 2.9 요약 57 2.10 더 읽을거리 57 2.11 역사 58 CHAPTER 03 살사(SARSA) 59 3.1 Q 함수와 V 함수 60 3.2 시간차 학습 63 3.2.1 시간차 학습에 대한 직관 66 3.3 살사의 행동 선택 73 3.3.1 탐험과 활용 74 3.4 살사 알고리즘 75 3.4.1 활성정책 알고리즘 76 3.5 살사의 적용 77 3.5.1 행동 함수: 엡실론 탐욕적 77 3.5.2 Q 손실의 계산 78 3.5.3 살사 훈련 루프 80 3.5.4 활성정책 배치 재현 메모리 81 3.6 살사 에이전트의 훈련 83 3.7 실험 결과 86 3.7.1 실험: 학습률의 효과 86 3.8 요약 87 3.9 더 읽을거리 88 3.10 역사 89 CHAPTER 04 심층 Q 네트워크(DQN) 91 4.1 DQN의 Q 함수 학습 92 4.2 DQN의 행동 선택 94 4.2.1 볼츠만 정책 97 4.3 경험 재현 100 4.4 DQN 알고리즘 101 4.5 DQN의 적용 103 4.5.1 Q 손실의 계산 103 4.5.2 DQN 훈련 루프 104 4.5.3 재현 메모리 105 4.6 DQN 에이전트의 훈련 108 4.7 실험 결과 111 4.7.1 실험: 신경망 아키텍처의 효과 111 4.8 요약 113 4.9 더 읽을거리 114 4.10 역사 114 CHAPTER 05 향상된 DQN 115 5.1 목표 네트워크 116 5.2 이중 DQN 119 5.3 우선순위가 있는 경험 재현(PER) 123 5.3.1 중요도 표본추출 125 5.4 수정된 DQN의 구현 126 5.4.1 네트워크 초기화 127 5.4.2 Q 손실의 계산 128 5.4.3 목표 네트워크의 업데이트 129 5.4.4 목표 네트워크를 갖는 DQN 130 5.4.5 이중 DQN 130 5.4.6 우선순위가 있는 경험 재현 131 5.5 아타리 게임을 위한 DQN 에이전트의 훈련 137 5.6 실험 결과 142 5.6.1 실험: 이중 DQN과 PER의 효과 142 5.7 요약 146 5.8 더 읽을거리 146 PART II 결합된 방법 CHAPTER 06 어드밴티지 행동자-비평자(A2C) 149 6.1 행동자 150 6.2 비평자 150 6.2.1 어드밴티지 함수 151 6.2.2 어드밴티지 함수에 대한 학습 155 6.3 A2C 알고리즘 156 6.4 A2C의 구현 159 6.4.1 어드밴티지 추정 160 6.4.2 가치 손실과 정책 손실의 계산 162 6.4.3 행동자-비평자 훈련 루프 163 6.5 네트워크 아키텍처 164 6.6 A2C 에이전트의 훈련 166 6.6.1 n단계 이득을 이용한 A2C를 퐁 게임에 적용 166 6.6.2 GAE를 이용한 A2C를 퐁 게임에 적용 169 6.6.3 두 발 보행자 문제에서 n단계 이득을 이용한 A2C 170 6.7 실험 결과 173 6.7.1 실험: n단계 이득의 효과 173 6.7.2 실험: GAE의 ??가 미치는 효과 175 6.8 요약 176 6.9 더 읽을거리 177 6.10 역사 177 CHAPTER 07 근위 정책 최적화(PPO) 179 7.1 대리목적 180 7.1.1 성능붕괴 180 7.1.2 목적 함수의 수정 182 7.2 근위 정책 최적화(PPO) 189 7.3 PPO 알고리즘 193 7.4 PPO의 구현 195 7.4.1 PPO 정책 손실의 계산 195 7.4.2 PPO 훈련 루프 196 7.5 PPO 에이전트의 훈련 198 7.5.1 퐁 게임을 위한 PPO 198 7.5.2 두 발 보행자를 위한 PPO 201 7.6 실험 결과 203 7.6.1 실험: GAE의 ??가 미치는 효과 204 7.6.2 실험: 클리핑 변수 ??의 효과 205 7.7 요약 207 7.8 더 읽을거리 208 CHAPTER 병렬화 방법 209 8.1 동기 병렬화 210 8.2 비동기 병렬화 212 8.2.1 호그와일드! 213 8.3 A3C 에이전트의 훈련 216 8.4 요약 219 8.5 더 읽을거리 219 CHAPTER 09 알고리즘 요약 221 PART III 실전을 위한 세부사항 CHAPTER 10 심층강화학습으로 작업하기 225 10.1 소프트웨어 공학적 기법 226 10.1.1 단위 테스트 226 10.1.2 코드 품질 232 10.1.3 깃 워크플로 233 10.2 디버깅 팁 236 10.2.1 생존 신호 236 10.2.2 정책 경사에 대한 진단 237 10.2.3 데이터에 대한 진단 238 10.2.4 전처리기 239 10.2.5 메모리 239 10.2.6 알고리즘 함수 240 10.2.7 신경망 240 10.2.8 알고리즘 간소화 243 10.2.9 문제 간소화 243 10.2.10 하이퍼파라미터 244 10.2.11 Lab 워크플로 244 10.3 아타리 트릭 245 10.4 심층강화학습 알마낵 249 10.4.1 하이퍼파라미터 표 249 10.4.2 알고리즘 성능 비교 252 10.5 요약 255 CHAPTER 11 SLM Lab 257 11.1 SLM Lab에 구현된 알고리즘 257 11.2 spec 파일 260 11.2.1 검색 스펙 구문 262 11.3 SLM Lab의 실행 265 11.3.1 SLM Lab의 명령어 265 11.4 실험 결과의 분석 266 11.4.1 실험 데이터의 개요 266 11.5 요약 268 CHAPTER 12 네트워크 아키텍처 269 12.1 신경망의 유형 269 12.1.1 다층 퍼셉트론(MLP) 270 12.1.2 합성곱신경망(CNN) 272 12.1.3 회귀신경망(RNN) 274 12.2 네트워크 그룹 선택을 위한 가이드 275 12.2.1 MDP와 POMDP 275 12.2.2 환경을 위한 네트워크 선정 279 12.3 Net API 282 12.3.1 입력과 출력 층위 모양의 추정 284 12.3.2 네트워크의 자동 생성 286 12.3.3 훈련 단계 289 12.3.4 기반 메소드의 노출 290 12.4 요약 291 12.5 더 읽을거리 292 CHAPTER 13 하드웨어 293 13.1 컴퓨터 294 13.2 데이터 유형 300 13.3 강화학습에서 데이터 유형 최적화 302 13.4 하드웨어의 선택 307 13.5 요약 308 CHAPTER 14 상태 311 14.1 상태의 예제 312 14.2 상태의 완결성 319 14.3 상태의 복잡성 320 14.4 상태 정보 손실 325 14.4.1 이미지 그레이스케일링 325 14.4.2 이산화 326 14.4.3 해시 출동 327 14.4.4 메타정보 손실 327 14.5 전처리 331 14.5.1 표준화 332 14.5.2 이미지 처리 333 14.5.3 시간적 전처리 335 14.6 요약 339 CHAPTER 15 행동 341 15.1 행동의 예제 341 15.2 행동의 완결성 345 15.3 행동의 복잡성 347 15.4 요약 352 15.5 더 읽을거리: 일상에서의 행동 설계 353 CHAPTER 16 보상 357 16.1 보상의 역할 357 16.2 보상 설계의 가이드라인 359 16.3 요약 364 CHAPTER 17 전이 함수 365 17.1 실현 가능성 확인 366 17.2 현실성 확인 368 17.3 요약 371 APPENDIX A 심층강화학습 타임라인 372 APPENDIX B 환경의 예제 374 B.1 이산적 환경 375 B.1.1 CartPole-v0 375 B.1.2 MountainCar-v0 376 B.1.3 LunarLander-v2 377 B.1.4 PongNoFrameskip-v4 378 B.1.5 BreakoutNoFrameskip-v4 378 B.2 연속 환경 379 B.2.1 Pendulum-v0 379 B.2.2 BipedalWalker-v2 380 에필로그 381 |
이 책은 심층강화학습의 전체 과정을 소개한다. 직관을 제시하는 것부터 시작해서 이론과 알고리즘을 설명하고 실제 구현 및 실용적 조언으로 마무리한다. 이 책에서 SLM Lab이라는 라이브러리를 함께 제공하는 것도 바로 이러한 이유에서다. SLM Lab은 이 책에서 다룬 모든 알고리즘의 구현 코드를 포함한다. 한마디로 말하면, 이 책은 우리가 심층강화학습을 처음 공부할 때 있었으면 좋았을 것으로 생각했던 바로 그 책이다.
--- p.18 2012년부터는 심층학습이 다양한 문제에 적용되어 성공을 거두기 시작했고 컴퓨터 비전(computer vision), 기계 번역, 자연어 이해, 음성 합성을 비롯한 광범위한 분야에서 최첨단 기술 개발에 기여했다. 이 책을 쓰고 있는 지금, 심층학습은 인간이 만들어낸 가장 강력한 함수 근사 기술이다. --- p.20 심층강화학습 알고리즘은 일반적으로 많은 하이퍼파라미터(hyperparameter)를 갖는다. 예를 들어 네트워크의 유형, 아키텍처(architecture), 활성화 함수(activation function), 최적화 기법 및 학습률이 정해져야 한다. 좀 더 발전된 신경망 함수에는 경사 클리핑(gradient clipping)과 학습률 감소 계획이 포함될 수 있는데, 이것은 심층강화학습에서 오직 ‘심층’ 부분에만 해당된다! --- p.50 ‘몬테카를로’라는 이름이 특별히 무언가를 의미하는 것은 아니다. 단순히 ‘확률적 추정’의 또 다른 표현으로 기억될 뿐이다. 그러나 그 이름의 기원은 재미있다. 물리학자이자 컴퓨터 디자이너였던 니콜라스 메트로폴리스(Nicholas Metropolis)가 그 이름을 제안했는데, 그는 마니악(MANIAC) 컴퓨터라는 이상한 이름도 만들었다. 메트로폴리스는 단지 ‘몬테카를로로 가야 한다’는 이유로 친척들로부터 돈을 빌린 울람의 삼촌 이야기를 전해 들었다. 그 후, 몬테카를로라는 이름은 확률적 추정을 나타내는 이름으로 너무 적합해 보였다. --- p.58 새로운 강화학습 알고리즘 또는 구성요소를 설계할 때, 설계한 알고리즘이 이론적으로 정확하다는 것을 구현 전에 입증할 필요가 있다. 이것은 연구를 수행하는 경우에 특별히 더 해당되는 이야기다. 이와 유사하게, 새로운 환경에 대한 문제를 풀려고 할 때는 알고리즘을 적용하기 전에 먼저 해당 문제가 강화학습으로 정말 풀 수 있는 문제인지를 확인할 필요가 있다. 특히 애플리케이션을 개발할 때 이러한 점을 더 고려해야 한다. 모든 것이 이론적으로 정확하고 강화학습으로 풀 수 있는 문제인데도 강화학습 알고리즘이 실패한다면 그것은 구현상의 오류 때문일 수 있다. 그렇다면 코드를 디버깅해야 한다. --- p.226 실질적으로, 더 높은 수준의 패턴을 형성하는 것은 원래의 제어를 이용하여 제어 전략을 만드는 것과 동일하다. 이것은 코드가 개개의 피아노 건반으로부터 구성된 더 간단한 제어 전략이 되는 것과 마찬가지다. 이러한 기법은 일종의 메타 제어(meta control)이며, 사람은 언제든 이것을 할 수 있다. 아직까지는 강화학습 에이전트가 스스로 자신의 제어 전략을 설계하게 할 방법은 없다. 따라서 에이전트를 위해 메타 제어를 해야 한다. 에이전트의 입장에서 사람의 시각으로 더 높은 수준의 패턴을 설계해야 한다. 때로는 행동을 하나의 복잡한 행동으로 표현하는 대신 다수의 하위 행동을 조합하여 더 간단히 표현할 수도 있다. --- p.348 |
“지금까지 심층강화학습을 배우는 유일한 방법은 다양한 곳에 있는 정보를 조금씩 모아서 짜 맞추는 것이었다. 마침내 모든 지식을 한곳에 모아놓은 책을 갖게 되었다.” - 매튜 라츠(Matthew Rahtz) (ETH 취리히의 기계학습 연구원)
|