見出し画像

強化学習×転移学習のパワフルさを体感しよう!――近刊『Pythonで実践する 強化学習と転移学習』まえがき公開

2022年8月下旬発行予定の新刊書籍、『Pythonで実践する 強化学習と転移学習』のご紹介です。同書の「まえがき」を、発行に先駆けて公開します。


***

まえがき
近年、AIや人工知能、知能ロボット、はたまた人工知能ロボットなど様々な知能化関連技術に対する関心が高まっている。そのきっかけとして、ディープラーニング(深層学習)やDQN(深層強化学習)などのAIの登場により将来なくなる職業が噂されていること、将棋の電王戦でAIがヒトに勝利したことや、自動車会社各社がこぞって自動運転を開発していることなどが考えられる。これらにより、人工知能やロボットなどの様々な技術や概念、用語が一層一般的な用語として普及したといえるだろう。
 
しかし本書は多くの知能化技術を紹介する内容ではなく「強化学習における転移学習」という機械学習のある分野にフォーカスしている。転移学習とは、ざっくりというと「知識の再利用」である。学習の高速化やロボットの適応性能向上が見込める技術であるが、本書でとりあげる強化学習だけでなく、ディープラーニングなどの他の機械学習技術でも転移学習が可能である。本書はあえてディープラーニングやDQNなどはとりあげず、強化学習に的を絞っているので注意されたい。

著者が本書を執筆するにいたった動機として、機械学習の転移学習に関する日本語の書籍がなく、専門書の数ページで紹介されるくらいの扱いであったことがある。とりわけ強化学習における転移学習は情報が少なかった。したがって、研究室の学生に転移学習を説明するとき、著者が直接説明するか、論文を読ませるしかなかったため、もうちょっときちんと解説がしてあり、しかも自身でプログラムを動かして動作を体感できる本があるとよいなぁ、という軽い気持ちで書き始めた。
 
本書は、第5章くらいまでの内容であればガッツのある高校生や情報系の素養のある大学生、第6、7、8章は研究室に所属する大学生や大学院生、社会人なども参考にできるように心掛けて執筆している。Pythonのプログラミング経験者であることも前提としているが、他の言語を習得している方なら、知っている言語に置き換えて読むことは可能であると思う
 
本書の第1章では強化学習や転移学習に関して概説し、第2章で強化学習の理論的な内容について述べる。理論的な内容が難しいと感じた場合は、第3章を読んでから第2章に戻ってもよいだろう。第3章では、強化学習の計算機シミュレーションを用意している。ここでは著者が作成したPythonプログラムを読者のパソコンに実際に導入し、プログラムを実行することで、概念や理論だけでなく、強化学習を動作イメージとして読者に理解してもらえるようにした。第4章では、本書の主題である「強化学習における転移学習」の理論や方法論を述べる。もちろん第2章と同様に、第5章のシミュレーションを読んでから第4章に戻ってもよい。第5章では、「強化学習における転移学習」のシミュレーションを用意し、転移学習とよばれる知識の再利用を実行することで、どのような現象が起こるのか、目で見てわかるようにした。第6章ではシミュレーションの結果を踏まえて課題などについて議論し、第7章では強化学習における転移学習にてどのような研究がなされているのか、著者らの研究も踏まえていくつか論文の内容を紹介している。
 
本書の内容は、すぐには読者諸賢の研究や業務などに役立たないかもしれないが、計算機シミュレーションなどを通じて、少しでも好奇心や知識欲の刺激になれば幸いである。
 
 
***

著:河野 仁(東京工芸大学)

Pythonによる実装で、強化学習×転移学習のパワフルさを体感しよう
 
《本書の特長》
●強化学習の理論の初歩から丁寧に解説。Pythonによるシミュレーションを実装しながら手法を体感できるので、簡単なプログラミング経験があれば、つまずくことなく読み進めることができます。
 
●後半では、学習した知識を再利用する技法である「転移学習」と強化学習とを組み合わせた「転移強化学習」について詳しく解説されています。強化学習と同様に、シミュレーションを通して、転移学習による学習の高速化、高精度化を試すことができます。
 
●理論と実装だけでなく、学習の自動化・省力化のための一段高度なチューニング技法や、コーディングの際に気を付けなければいけない落とし穴ももれなく解説。この1冊で、転移強化学習の基礎から応用までをすみずみまで学べます。
 
本書で紹介したソースコードは、こちらの「ダウンロード」で公開されています。


【目次】
第1章 強化学習と転移学習

 1.1 強化学習とは
 1.2 強化学習が得意なこと・苦手なこと
 1.3 機械学習と強化学習の関係
 1.4 転移学習とは
 1.5 強化学習における転移学習
 1.6 知識再利用の意義

第2章 強化学習の理論
 2.1 TD学習
 2.2 マルコフ決定過程
 2.3 強化学習における方策とQ関数
 2.4 Qテーブルと関数近似
 2.5 方策ON型と方策OFF型の強化学習
 2.6 行動選択関数

第3章 強化学習のシミュレーション
 3.1 強化学習プログラムの実行
 3.2 プログラムの解説
 第3章のまとめ

第4章 転移学習の理論
 4.1 転移学習の定義
 4.2 強化学習における転移学習の定義
 4.3 強化学習における転移学習の目的
 4.4 価値関数転移型の転移強化学習
 4.5 知識再利用度合いの調整

第5章 転移学習のシミュレーション
 5.1 準備
 5.2 転移学習プログラムの実行
 5.3 コード解説
 5.4 転移学習の失敗例
 第5章のまとめ

第6章 転移強化学習の実装上の注意点
 6.1 強化学習から転移学習に継承される課題
 6.2 転移強化学習ができているかわからない場合
 6.3 よい知識の再利用とは?正の転移と負の転移
 6.4 転移曲面

第7章 転移強化学習の応用
 7.1 並列転移学習
 7.2 タスク間マッピングの自動化
 7.3 ロボットの衝突回避問題への適用
 7.4 知識再利用度合いの自動調整
 7.5 知識選択を用いた転移学習

第8章 完全な自律的転移強化学習に向けて

付録A プログラム実行環境の準備
 A.1 環境セットアップ
 A.2 プロジェクトの作成
 A.3 プログラムファイルの作成
 A.4 ライブラリのダウンロード
 A.5 プログラムの準備

参考文献
索引

この記事が気に入ったらサポートをしてみませんか?