強化学習、さらにディープラーニングを組み合わせた深層強化学習DQN(Deep Q-Network)という用語を目にする機会が増えています。本書は関連の概念を分かりやすく解説しつつ、Python+PyTorchで「倒立振子課題」「迷路を解くプログラム」「ブロック崩しの攻略」を実装していきます。
第1章「強化学習の概要」では機械学習とその3分類(教師あり学習、教師なし学習、強化学習)について紹介します。
第2章「迷路課題に強化学習を実装しよう」では、簡単な強化学習(方策勾配法、Sarsa、Q学習)のコードをひとつずつ実装しながら、強化学習のアルゴリズムと実装方法を理解します。迷路を最短ルートでゴールするよう強化学習させます。
第3章「倒立振子課題に強化学習を実装しよう」では、2章で学んだ強化学習の基本をより複雑な課題への適用します。倒立振子とは、“ほうきを手のひらの上に立てる”遊びと同じ内容でその制御ルールを強化学習させます。Anacondaを用いたセットアップ方法も解説します。
第4章「Pytorchでディープラーニングを実装しよう」では、ディープラーニングの内容を理解し、PyTorchで実装します。ニューラルネットワークとディープラーニング発展の歴史、学習フェイズと推論フェイズについて解説。最後に手書き数字の画像を分類するMNIST課題を実装解説します。
第5章「深層強化学習DQNを実装しよう」では、強化学習にディープラーニングを組み合わせた“深層強化学習”を理解し、DQNを実装できるようにします。第3章の倒立振子課題に対してDQNを実装します。
第6章「深層強化学習の発展版を実装しよう」では、新しい深層強化学習の手法、Double-DQN、Dueling Network、Prioritized Experience Replay、そしてA3C、A2Cを理解し、実装できるようにします。
第7章「AWSのGPU環境でブロック崩しを実装しよう」では、ブロック崩しゲームを対象に深層強化学習のA2Cを実装します。実行環境としてAmazonのクラウドサービスAWSのGPU環境を使用する方法も解説します。
深層強化学習はまだまだ解決すべき課題の多い分野です。本書が深層強化学習に興味を持つ皆様の一助となれば幸いです。
Pythonで実装しながら学ぶ 強化学習・深層強化学習(DQN)
・ドラクエ風バトルでQ学習してみる【強化学習入門】[2020-02-10に投稿]
・Sierに新卒入社して4か月の研修期間中に読んだ・読んでいる本のまとめ[2019-08-02に投稿]
・強化学習Python実践入門!!Q学習で迷路を解く [2019-06-01に投稿]
・強化学習の勉強 (3) Double DQN と Dueling Network[2019-02-03に投稿]
・強化学習の勉強 (1)[2019-02-01に投稿]
・深層強化学習のビジネス応用と、AIに自然言語を理解させる方法について[2018-07-16に投稿]
・これから強化学習を勉強する人のための「強化学習アルゴリズム・マップ」と、実装例まとめ[2017-10-30に投稿]
・【強化学習】実装しながら学ぶA3C【CartPoleで棒立て:1ファイルで完結】[2017-10-23に投稿]
・【強化学習中級者向け】実装例から学ぶ優先順位付き経験再生 prioritized experience replay DQN 【CartPoleで棒立て:1ファイルで完結】[2017-10-10に投稿]
・【強化学習中級者向け】実装例から学ぶDueling Network DQN 【CartPoleで棒立て:1ファイルで完結】[2017-10-09に投稿]
・【強化学習初心者向け】シンプルな実装例で学ぶSARSA法およびモンテカルロ法【CartPoleで棒立て:1ファイルで完結】[2017-10-03に投稿]
・【強化学習初心者向け】シンプルな実装例で学ぶQ学習、DQN、DDQN【CartPoleで棒立て:1ファイルで完結、Kearas使用】[2017-09-27に投稿]