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