「こうして、こうした方が、前よりも良かった」 というような経験の積み重ねによって、 ベターな方法を身につける(学習する)方法は、「強化学習」と呼ばれます。
強化学習は、人間の「学習」のイメージに一番近い 機械学習 かもしれません。
「 人工知能 がゲームで人間に勝った」、 「 人工知能 で自動制御」、といった話題がたくさんありますが、その中では、 ディープラーニング を使った強化学習の技術が使われています。
強化学習では、その行動の点数付けをして、点数の高いものを探します。 最終的に勝てば「1」、負ければ「-1」のようにします。
点数があるので、 教師あり学習 と似ていますが、途中経過については、教師データがない点が違います。
「倒立振子の作り方 ゼロから学ぶ強化学習 物理シミュレーション×機械学習」 遠藤理平 著 カットシステム 2019
三目並べと倒立振子の強化学習。
倒立振子の話が多いです。
「Pythonで学ぶ強化学習」 久保隆宏 著 講談社 2019
強化学習の弱点と、その対策の話が3分の1あります。
弱点とは、「学習の再現性が悪いので複数の学習が必要。
一方で、1回の学習に大量のデータが必要。」
基本的な対策としては、1回の学習結果をムダにしないために、モジュールに分けたテスト、ログを取る、学習の自動化がある。
大量のデータ必要なことへの対策としては、
遷移関数と報酬関数のモデルを作る形にすることで、学習する内容をシンプルにできる。
ただし、この方法は、モデルがうまく作れないと成功しない。
もうひとつは、表現学習
(このサイトでいうところの
特徴量エンジニアリング
)で、特徴量を前処理の中で作るようにして、特徴量を学習されるようにする。
「フリーソフトではじめる機械学習入門」 荒木雅弘 著 森北出版 2014
強化学習の考え方が、10ページでまとまっています。
「やわらかい情報処理」 吉田紀彦 著 サイエンス社 2003
ニューラルネットワーク
・
遺伝的アルゴリズム
・強化学習・分散人工知能・
ゲーム理論
について、
それぞれの関わりにも触れつつ、まとめられています。
「ロボットインテリジェンス 進化計算と強化学習」 伊藤一之 著 オーム社 2007
人工知能
の専門家ではない技術者が、強化学習や
遺伝的アルゴリズム
をロボットに実装するための参考書として書かれています。
ExcelのVBAのプログラムで簡単な例を示した後に、C言語の例も示しています。
Q学習でうまく学習できない例として、経路の取り方によって、報酬や経路が変化していく場合や、
経路のパターンが非常にたくさんある場合を挙げています。
「つくりながら学ぶ! 深層強化学習 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の概説もあります。
順路 次は アンサンブル学習