機械学習スタートアップシリーズ Python で学ぶ強化学習 [改訂第 2 版] 入門から実践まで
キカイガクシュウスタートアップシリーズ パイソンデマナブキョウカガクシュウ カイテイダイニハン ニュウモンカラジッセンマデ
- 著者:
- 久保 隆宏(クボ タカヒロ)
- 出版社:
- 講談社
- 出版日:
- 2019年09月22日頃
- ISBN:
- 9784065172513
- シリーズ:
- KS 情報科学専門書
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
「Python で強化学習が実装できる!」と好評を得た入門書の改訂版。読者からの要望・指摘を反映させた。主に、Policy Gradient と A2C の記述・実装を見直した。
・Python プログラミングとともに、ゼロからていねいに解説。
・コードが公開されているから、すぐ実践できる。
・実用でのネックとなる強化学習の弱点と、その克服方法まで紹介。
【おもな内容】
Day1 強化学習の位置づけを知る
強化学習とさまざまなキーワードの関係
強化学習のメリット・デメリット
強化学習における問題設定: Markov Decision Process
Day2 強化学習の解法 (1): 環境から計画を立てる
価値の定義と算出: Bellman Equation
動的計画法による状態評価の学習: Value Iteration
動的計画法による戦略の学習: Policy Iteration
モデルベースとモデルフリーとの違い
Day3 強化学習の解法 (2): 経験から計画を立てる
経験の蓄積と活用のバランス: Epsilon-Greedy 法
計画の修正を実績から行うか、予測で行うか: Monte Carlo vs Temporal Difference
経験を価値評価、戦略どちらの更新に利用するか: Value ベース vs Policy ベース
Day4 強化学習に対するニューラルネットワークの適用
強化学習にニューラルネットワークを適用する
価値評価を、パラメーターを持った関数で実装する: Value Function Approximation
価値評価に深層学習を適用する: Deep Q-Network
戦略を、パラメーターを持った関数で実装する: Policy Gradient
戦略に深層学習を適用する: Advantage Actor Critic (A2C)
価値評価か、戦略か
Day5 強化学習の弱点
サンプル効率が悪い
局所最適な行動に陥る、過学習をすることが多い
再現性が低い
弱点を前提とした対応策
Day6 強化学習の弱点を克服するための手法
サンプル効率の悪さへの対応: モデルベースとの併用/表現学習
再現性の低さへの対応: 進化戦略
局所最適な行動/過学習への対応: 模倣学習/逆強化学習
Day7 強化学習の活用領域
行動の最適化
学習の最適化
技書の森解説
強化学習は、正解データを与えるのではなく、環境との試行錯誤で得た報酬から行動の良し悪しを学ぶ機械学習の一分野です。『Python で学ぶ強化学習 改訂第 2 版』 (久保隆宏 著、講談社、2019 年 9 月刊) は、講談社サイエンティフィクの「機械学習スタートアップシリーズ」の一冊で、副題に「入門から実践まで」、英題に Reinforcement Learning by Python を掲げ、Python プログラミングとともに強化学習をゼロから解説する入門書です。版元の紹介文によれば、「Python で強化学習が実装できる!」と好評を得た初版に読者からの要望 / 指摘を反映した改訂版で、主に Policy Gradient と A2C の記述 / 実装を見直したとされています。
Day1 から Day7 の構成、MDP から弱点の克服まで
構成は Day1 から Day7 までの 7 日分に区切られています。Day1「強化学習の位置づけを知る」で強化学習とさまざまなキーワードの関係、メリット・デメリット、問題設定としての Markov Decision Process (MDP) を押さえ、Day2「強化学習の解法 (1): 環境から計画を立てる」で Bellman Equation による価値の定義と算出、Value Iteration と Policy Iteration、モデルベースとモデルフリーの違いを扱います。Day3「強化学習の解法 (2): 経験から計画を立てる」は、Epsilon-Greedy 法による経験の蓄積と活用のバランス、Monte Carlo と Temporal Difference の対比、Value ベースと Policy ベースの対比という、経験から学ぶ手法の分岐点を整理する章です。Day4「強化学習に対するニューラルネットワークの適用」で Value Function Approximation、Deep Q-Network、Policy Gradient、Advantage Actor Critic (A2C) へと進み、Day5「強化学習の弱点」、Day6「強化学習の弱点を克服するための手法」、Day7「強化学習の活用領域」で、サンプル効率の悪さ、局所最適な行動や過学習、再現性の低さという弱点と、モデルベースとの併用や表現学習、進化戦略、模倣学習や逆強化学習という対応策、行動の最適化と学習の最適化という活用領域に至ります。
Bellman 方程式と動的計画法から深層強化学習へ、理論を実装で追う設計
強化学習の学習で難しいのは、扇状に広がる用語の関係を見失うことです。Value Iteration や Policy Iteration は、Bellman 方程式を 動的計画法 で解く手法で、環境の遷移確率が分かっている前提、すなわちモデルベースの立場に立ちます。現実の多くの問題では遷移が分からないため、経験からサンプルを集めて価値や方策を更新するモデルフリーの手法 (Monte Carlo 法や TD 学習) が必要になり、状態や行動の数が膨大になると表形式では扱えず、価値関数や方策をパラメータ付きの関数、とくにニューラルネットワークで近似する深層強化学習に至ります。本書の Day2 から Day4 の並びは、「環境から計画を立てる」「経験から計画を立てる」、そして関数近似へという理論の系譜をそのまま章立てにしたものです。版元が掲げるように、Python プログラミングとともにゼロから丁寧に解説し、コードが公開されているため、数式で導かれた更新則がコードのどの部分に対応するかを対照しながら読み進められる点が、理論書と実装本の橋渡しになっています。深層学習 を組み合わせた Deep Q-Network や A2C も、この延長線上で理解できる位置に置かれています。
弱点と克服法まで扱う Day5 から Day7 の実践的な価値
本書の特徴は、手法の紹介で終わらず、Day5 から Day7 で強化学習の弱点と克服法、活用領域にまで踏み込む点です。版元は「実用でのネックとなる強化学習の弱点と、その克服方法まで紹介」と説明しています。学習に膨大な試行を要するサンプル効率の悪さ、局所最適な行動や過学習、再現性の低さは、研究成果を業務に持ち込もうとした人が最初にぶつかる壁です。これらを前提に、モデルベースとの併用や表現学習、進化戦略、模倣学習や逆強化学習という対応策と、行動の最適化と学習の最適化という活用領域の整理まで示されていることは、自分の課題に強化学習を使うべきかどうかを判断する材料になります。
初版との違いと、Python で実装しながら学びたい人への向き不向き
改訂第 2 版と初版の違いは、版元記載の範囲では、読者からの要望 / 指摘の反映と、主に Policy Gradient と A2C の記述 / 実装の見直しです。それ以外の差分は版元資料に無いため本稿では扱いません。著者の久保隆宏氏は、刊行時の版元プロフィールによれば TIS 株式会社戦略技術センターに所属し、論文のまとめを共有する arXivTimes の運営や『直感 Deep Learning』 (オライリージャパン、2018 年) の翻訳など、技術の普及活動を行ってきた人物です。前提について、版元は Python プログラミングとともにゼロから解説すると掲げていますが、Day4 以降でニューラルネットワークを扱うため、深層学習の基本的な考え方を別途知っておくと理解が速くなります。一方、数学的な厳密さや証明を求める人、あるいは Sutton と Barto の教科書のような理論の全体像を体系的に得たい人にとって、本書は入口であって到達点ではありません。また刊行が 2019 年 9 月であるため、コードを動かす際には依存ライブラリの刊行時点との差異を吸収する必要が生じ得ます。より広い学習ルートは 機械学習 / ディープラーニング本ガイド にまとめています。
強化学習を、用語の暗記ではなく Python のコードで動かしながら一段ずつ理解したい人、Value ベースと Policy ベースの違いや深層強化学習の位置づけを自分の言葉で説明できるようになりたい人、そして業務への適用可否を弱点まで踏まえて判断したい人には、本書は投じた時間に見合う一冊です。Day1 から Day7 までを実装込みで走り切れば、論文や他の専門書を読むときに、その手法が系譜のどこに位置するのかを見失わずに読めるようになります。日本語で読める強化学習の入門書として、まず手に取る候補に据えられる本です。
言及した記事 (7 件)
【データ分析の必読10冊+差をつける10冊+100冊超】データサイエンス、データ分析、機械学習関連の本
♡ 1631本, 機械学習, 数学, データ分析, データサイエンス2023年版データ分析の100冊
♡ 652本, 機械学習, データ分析, データサイエンスヤバいデータ分析(書籍・記事であまり扱われてないが重要なこと)
♡ 505機械学習, 数学, データ分析, 統計学, データサイエンスエンジニアのインターンが技術書を30冊くらい読んでみたので、ゆるくまとめてみた
♡ 469本, 技術書, 書籍, 新卒エンジニア, 新卒応援データサイエンスにオススメの本80冊!
♡ 255Python, SQL, 機械学習, 統計学, データサイエンスあるデータサイエンティストの勉強履歴(守備範囲が浅く広い系のために)
♡ 13機械学習, データ分析, データサイエンス, データサイエンティストドラクエ風バトルでQ学習してみる【強化学習入門】
♡ 2Python, 強化学習