
強化学習とは
強化学習とは、教師あり学習や教師なし学習に続く、機械学習の一種であり、収益(報酬の和)を最大化する方策を獲得することを目的とした手法です。株取引の予測や自然言語処理などに、強化学習は応用されることが多いです。
エージェントとエージェントが行動を加える対象である環境を考え、行動に応じて環境はエージェントに状態と報酬を返します。強化学習の課題では、マルチエージェント応用や学習時間などがあります。まずは強化学習の勉強において、抑えておきたい用語をご覧ください。
エージェント | ある環境で動くプレーヤー |
状態 | エージェントが置かれている環境 |
行動 | エージェントがとる行動 |
収益 | エージェントが行動することにより、得られる評価値 |
方策 | ある状態の時、どの行動を取るべきかを示す関数。決定的に行動を決めるものと確率的に決めるものがある。 |
価値関数 | 将来的に得られる収益の期待値を表す関数 |
強化学習アルゴリズム
強化学習の代表的なアルゴリズムはQ学習です。各状態sで最適な行動aを与える関数を求める代わりに、各状態sで各行動aでこの先どの程度の報酬がトータルでもらえるのかを求め、報酬が最大になるものを求めることで、各状態で最適な関数を求めようとする方法です。
また、方策勾配法という、方策をあるパラメタで表される関数とし、そのパラメタを学習することで、直接方策を学習していくアプローチもあります。方策勾配法の利点は、メモリを消費する手法が不必要なところと、連続空間における行動を扱いやすくなるところでしょう。確率的な方策を扱う場合と、確定的な方策を扱い場合と、両方あります。
実際に触ってみる方は、Open AI gymというAIプラットフォームで、自分が制作した強化学習アルゴリズムを試験できります。
深層強化学習とは
最後に、深層強化学習について少し紹介させて頂きます。行動価値観数をディープニューラルネットワークで近似計算して行う、強化学習の一種です。Q学習の行動価値関数をニューラルネットワークで置き換えたものである「DQN (Deep Q-Network)」がよく用いられます。
強化学習の参考書
強化学習について詳しく学びたい方には、以下の参考書をおすすめします。
強化学習 (機械学習プロフェッショナルシリーズ)
強化学習で必要な数理を幅広くカバーしています。ベルマン方程式の定式化、マルコフ決定過程・方策勾配法、分布強化学習、深層強化学習、など。
Pythonで学ぶ強化学習
Pythonプログラミングとともに、強化学習を初心者向けに解説しています。強化学習の弱点から克服方法まで詳しく紹介。
本記事を気に入って頂けた方は、併せてこちらもご一読ください。