見出し画像

Gymで強化学習㉑Qネットワークの問題

前回は、Q学習の実装を線形近似を使って行いました。線形モデルの各パラメータ(傾きと切片)に対して損失関数の勾配を計算したものを使ってパラメータを調節することで徐々に安定した行動価値関数の近似が可能となりました。

ただし、線形モデルの入力値となる特徴量は、観測値や環境の知識などから人間が考えたものでありました。

そこで今回は、ニューラルネットワークを近似関数として使うことで特徴量を自動的に抽出することを試みます。その第一歩として、単純にQ関数をニューラルネットワークで置き換えます。そのため、パラメータの更新も損失関数やオプティマイザなどを使用します。なお、ライブラリとしてはメタPyTorchを使います。

PyTorchによるディープラーニングの実装に関しては、こちらで解説していますので、この記事ではあまり深掘りはしません。

なお、今回のエージェントでは、安定した成功を得られません。500ステップを達成することがあったりなかったりします。これについて幾つかの分析を行い問題点を列挙していきます。

それを踏まえて次回はエージェントをDQN(Deep Q-Network)の手法を取り入れたものに改造します。DQNはGoogleのDeepMindが2015年に開発した深層強化学習の手法です。詳しくは次回に解説します。

では、前回の記事で使用した線形モデルのエージェントにQネットワークを導入することから始めましょう。

Qネットワーク

Q値を計算するネットワーク

QネットワークはニューラルネットワークでQ関数を近似します。Q関数はQ学習やSARSAなどで使われる行動価値関数です。

前回とは違って、手探りで決めた特徴量を使いません。特徴量はネットワークが自動的に学習を通して決めてくれます。その代わりに、ネットワークの定義に関しては、人間が決めることになります

そこで、次のようなネットワークを定義しました。

ここから先は

16,705字 / 2画像

キカベン・読み放題

¥1,000 / 月
初月無料
このメンバーシップの詳細

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