단단한 심층강화학습 로라 그레서 pdf 다운로드를 무료로 제공합니다 이 책은 이론과 실무적 내용을 독특하게 결합한 심층강화학습 소개서입니다. 직관적인 설명에서 시작하여 심층강화학습 알고리즘에 대한 자세한 설명과 SLM Lab 라이브러리를 이용한 구현 방법으로 이어지고
관련 책 pdf 모음
책 소개
이 책은 심층강화학습의 전체 과정을 소개한다. 직관을 제시하는 것부터 시작해서 이론과 알고리즘을 설명하고 실제 구현 및 실용적 조언으로 마무리한다. 이 책에서 SLM Lab이라는 라이브러리를 함께 제공하는 것도 바로 이러한 이유에서다. SLM Lab은 이 책에서 다룬 모든 알고리즘의 구현 코드를 포함한다. 한마디로 말하면, 이 책은 우리가 심층강화학습을 처음 공부할 때 있었으면 좋았을 것으로 생각했던 바로 그 책이다. 2012년부터는 심층학습이 다양한 문제에 적용되어 성공을 거두기 시작했고 컴퓨터 비전(computer vision), 기계 번역, 자연어 이해, 음성 합성을 비롯한 광범위한 분야에서 최첨단 기술 개발에 기여했다. 이 책을 쓰고 있는 지금, 심층학습은 인간이 만들어낸 가장 강력한 함수 근사 기술이다. 심층강화학습 알고리즘은 일반적으로 많은 하이퍼파라미터(hyperparameter)를 갖는다. 예를 들어 네트워크의 유형, 아키텍처(architecture), 활성화 함수(activation function), 최적화 기법 및 학습률이 정해져야 한다. 좀 더 발전된 신경망 함수에는 경사 클리핑(gradient clipping)과 학습률 감소 계획이 포함될 수 있는데, 이것은 심층강화학습에서 오직 ‘심층’ 부분에만 해당된다! ‘몬테카를로’라는 이름이 특별히 무언가를 의미하는 것은 아니다. 단순히 ‘확률적 추정’의 또 다른 표현으로 기억될 뿐이다. 그러나 그 이름의 기원은 재미있다. 물리학자이자 컴퓨터 디자이너였던 니콜라스 메트로폴리스(Nicholas Metropolis)가 그 이름을 제안했는데, 그는 마니악(MANIAC) 컴퓨터라는 이상한 이름도 만들었다. 메트로폴리스는 단지 ‘몬테카를로로 가야 한다’는 이유로 친척들로부터 돈을 빌린 울람의 삼촌 이야기를 전해 들었다. 그 후, 몬테카를로라는 이름은 확률적 추정을 나타내는 이름으로 너무 적합해 보였다 새로운 강화학습 알고리즘 또는 구성요소를 설계할 때, 설계한 알고리즘이 이론적으로 정확하다는 것을 구현 전에 입증할 필요가 있다. 이것은 연구를 수행하는 경우에 특별히 더 해당되는 이야기다. 이와 유사하게, 새로운 환경에 대한 문제를 풀려고 할 때는 알고리즘을 적용하기 전에 먼저 해당 문제가 강화학습으로 정말 풀 수 있는 문제인지를 확인할 필요가 있다. 특히 애플리케이션을 개발할 때 이러한 점을 더 고려해야 한다. 모든 것이 이론적으로 정확하고 강화학습으로 풀 수 있는 문제인데도 강화학습 알고리즘이 실패한다면 그것은 구현상의 오류 때문일 수 있다. 그렇다면 코드를 디버깅해야 한다.
단단한 심층강화학습 로라 그레서
옮긴이 머리말 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