トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

強化学習

「こうして、こうした方が、前よりも良かった」 というような経験の積み重ねによって、 ベターな方法を身につける(学習する)方法は、「強化学習」と呼ばれます。

強化学習は、人間の「学習」のイメージに一番近い 機械学習 かもしれません。

人工知能 がゲームで人間に勝った」、 「 人工知能 で自動制御」、といった話題がたくさんありますが、その中では、 ディープラーニング を使った強化学習の技術が使われています。

学習の仕方

強化学習では、その行動の点数付けをして、点数の高いものを探します。 最終的に勝てば「1」、負ければ「-1」のようにします。

点数があるので、 教師あり学習 と似ていますが、途中経過については、教師データがない点が違います。



統計的な意思決定

行動経済学

自閉症スペクトラム

参考文献

倒立振子の作り方 ゼロから学ぶ強化学習 物理シミュレーション×機械学習」 遠藤理平 著 カットシステム 2019
三目並べと倒立振子の強化学習。 倒立振子の話が多いです。


Pythonで学ぶ強化学習」 久保隆宏 著 講談社 2019
強化学習の弱点と、その対策の話が3分の1あります。
弱点とは、「学習の再現性が悪いので複数の学習が必要。 一方で、1回の学習に大量のデータが必要。」
基本的な対策としては、1回の学習結果をムダにしないために、モジュールに分けたテスト、ログを取る、学習の自動化がある。
大量のデータ必要なことへの対策としては、 遷移関数と報酬関数のモデルを作る形にすることで、学習する内容をシンプルにできる。 ただし、この方法は、モデルがうまく作れないと成功しない。
もうひとつは、表現学習 (このサイトでいうところの 特徴量エンジニアリング )で、特徴量を前処理の中で作るようにして、特徴量を学習されるようにする。


フリーソフトではじめる機械学習入門」 荒木雅弘 著 森北出版 2014
強化学習の考え方が、10ページでまとまっています。


やわらかい情報処理」 吉田紀彦 著 サイエンス社 2003
ニューラルネットワーク遺伝的アルゴリズム ・強化学習・分散人工知能・ ゲーム理論 について、 それぞれの関わりにも触れつつ、まとめられています。


ロボットインテリジェンス 進化計算と強化学習」 伊藤一之 著 オーム社 2007
人工知能 の専門家ではない技術者が、強化学習や 遺伝的アルゴリズム をロボットに実装するための参考書として書かれています。
ExcelのVBAのプログラムで簡単な例を示した後に、C言語の例も示しています。
Q学習でうまく学習できない例として、経路の取り方によって、報酬や経路が変化していく場合や、 経路のパターンが非常にたくさんある場合を挙げています。


DQN(ディープラーニングを使った強化学習)

つくりながら学ぶ! 深層強化学習 PyTorchによる実践プログラミング」 小川雄太郎 著 マイナビ出版 2018
強化学習で迷路や倒立振子を扱います。 深層強化学習は、PyTorch。 ブロック崩しは、AWSのGPUを利用。


実装ディープラーニング」 藤田一弥・高原歩 著 オーム社 2016
具体的な話が中心で、画像の話が多いです。 物体認識もあります。
DQNで三目並べを実装する話もあります。


はじめての深層学習プログラミング ディープラーニングの先にあるもの」 清水亮 著 技術評論社 2017
DQNの例として、AlphaGoとLISを紹介しています。
AlphaGoは CNN による白が勝つか黒が勝つかという、画像の分類問題を取り入れています。
LISはドワンゴ人工知能研究所が開発した人工生命。 人工生命が見た物をCNNで分析して、DQNで行動を決めます。


Chainerで学ぶディープラーニング入門」 島田直希・大浦健志 著 技術評論社 2017
多くの強化学習は、マルコフ決定過程を仮定する。 一つ前の行動のみで、現在の行動を決める過程。
TD学習:現在の予測値と、1ステップ先の予測値との差を利用。
DQNは入力に画像を使う事が多い。


Pythonプログラミングのツボとコツがゼッタイにわかる本」 Shannon Lab株式会社 著 秀和システム 2016
ブラックジャックゲームを作る、Webアプリの作り方、ブラックジャックゲームをWebアプリに、人工知能で動くゲームにする、という順で章になっています。
人工知能の章だけは、自分で作るのではなく、既存のプログラムを使います。 DQNの概説もあります。



順路 次は アンサンブル学習

Tweet データサイエンス教室