サマリー
強化学習は、機械学習の一分野であり、学習を行う主体であり、環境とやり取りをし、行動を選択するエージェント(Agent)と呼ばれる主体が、未知の環境や複雑な問題を持った環境(Enviroment)という状況の中で、選択することができる行動(Action)の中から、状態(State)と報酬(Reward)に基づいて最適なものを学習しながら最適な行動を選ぶ手法となる。それらを選択する代表的な手法としては、Q学習、SARSA、DDPG、DQN、PPOなどがあり、これらの手法を用いて、エージェントの行動価値や方策を評価し、最適な行動を選択するためのアルゴリズムを提供している。
強化学習は、ロボット制御、ゲームプレイ、自然言語処理、金融取引などの様々な分野で応用されており、人間の判断力を超える高度な判断を実現することができる。ここではこの強化学習に関して機械学習プロフェッショナルシリーズ「Pythonで学ぶ強化学習」をベースに述べる。
今回は読書メモを記載する。
「強化学習が実装できる! エンジニアのために、Pythonのサンプルコードとともに、ゼロからていねいに解説。実用でのネックとなる強化学習の弱点とその克服方法、さらに活用領域まで紹介した。コードも公開!」
Day1 強化学習の位置づけを知る
強化学習とさまざまなキーワードの関係
強化学習のメリット・デメリット
強化学習における問題設定: Markov Decision Process
Day2 強化学習の解法(1): 環境から計画を立てる
価値の定義と算出: Bellman Equation
動的計画法による状態評価の学習: Value Iteration
動的計画法による戦略の学習: Policy Iteration
モデルベースとモデルフリーとの違い
Day3 強化学習の解法(2): 経験から計画を立てる
経験の蓄積と活用のバランス: Epsilon-Greedy法
計画の修正を実績から行うか、予測で行うか: Monte Carlo vs Temporal Difference
経験を状態評価、戦略どちらの更新に利用するか
Day4 強化学習に対するニューラルネットワークの適用
強化学習にニューラルネットワークを適用する
状態評価を、パラメーターを持った関数で実装する: Value Function Approximation
状態評価に深層学習を適用する: Deep Q-Network
戦略を、パラメーターを持った関数で実装する: Policy Gradient
戦略に深層学習を適用する: Advantage Actor Critic(A2C)
状態評価か、戦略か
Day5 強化学習の弱点
サンプル効率が悪い
局所最適な行動に陥る、過学習をすることが多い
再現性が低い
弱点を前提とした対応策
Day6 強化学習の弱点を克服するための手法
サンプル効率の悪さへの対応: モデルベースとの併用/表現学習
再現性の低さへの対応: 進化戦略
局所最適な行動/過学習への対応: 模倣学習/”逆強化学習の概要とアルゴリズム及び実装例について“でも述べている逆強化学習
Day7 強化学習の活用領域
行動の最適化
学習の最適化
コメント
[…] 機械学習スタートアップシリーズ「Pythonで学ぶ強化学習」 […]
[…] 機械学習スタートアップシリーズ「Pythonで学ぶ強化学習」 […]