🐋

Q学習に対するニューラルネットワーク適用の問題点

2023/09/10に公開

今回はニューラルネットワーク(NN)を用いるQ学習の問題点について説明します。

Q学習とは?

Q学習とは、有名な強化学習アルゴリズムの一つで、エージェントが行動した結果を元に、Q関数(行動価値関数)と呼ばれる関数を更新し、最適方策を求める手法です。

※Q関数:ある行動の持つ価値を返す。行動を入力するとその行動の価値(確率)を返してくれます。
※最適方策:エージェントが最大収益を得るための行動指針

前提

通常、ニューラルネットを使用しないQ学習では、問題に対してテーブルデータ(表形式)を用いてQ関数を保持し、更新を行います。
しかし、現実の問題は煩雑な場合が多く、このQ関数をテーブルデータで保持、計算することはメモリ容量の観点から現実的ではありません。
そこで「Q関数の近似としてニューラルネットワークを使用する」というのが一般的な手法です。

問題点

Q関数をニューラルネットで近似することで、メモリの問題は解決されます。
しかし、あくまでも近似なので、最適方策を必ず求められる訳ではないのです。

本来、Q学習ではテーブルデータで完全にデータを保持する場合、次の条件を満たすことで最適方策を得られることが証明されています。

- Q-lerningの収束定理

  1. すべての状態-行動ペアが無限回訪問される(探索が十分に行われる)
  2. 学習率(α)は適切に設定されている(合計が無限で、二乗和が有限になっている \sum\limits_{t=0}^{\infty}\alpha(t) → \inftyかつ\sum\limits_{t=0}^{\infty}\alpha(t)^2 < \infty
    ※ただし、環境はエルゴート性を有する離散有限MDPであることを仮定する。neuro-dynamic programming by bertsekas, Tsitsiklis 1996などを参照

---

このように、Q学習は最適方策に収束することが知られています。
しかし、NNによるQ関数近似を使用することで次の問題が生じます。

  • NNは非線形の計算を含むため、最適化対象となる損失関数が非凸になり、パラメータ更新が局所解に陥った場合、Q関数を近似しきれない。(NNの学習が完璧に終了せず、Q関数を近似しきれない)
  • 関数近似誤差が生じる

これがニューラルネットをQ学習に適用することの問題点です。

デーブルデータの場合

ちなみにテーブルデータのQ関数は

  • 状態と行動が離散的で、それぞれの状態-行動ペア(s,a)に対するQ関数Q(s,a)が独立に更新される

という特性を持ち、NNの学習とは異なりQ(s,a)が他のQ(s_n,a_n)に影響を与えません。
このような環境下では、理論的な最適性がよく保証されます。

対策

ニューラルネットによるQ関数が持つ、最適方策に収束しない可能性について、さまざまな対策が考えられています。
問題はQ関数を近似しているニューラルネットワークのパラメータ更新が局所解に陥ってしまい、Q関数を近似しきれないことに由来します。そのため、学習にランダム性を持たせたり、学習を安定させる手法が主に考案されています。

例えば

  • 経験再生(Experience Replay)
    ニューラルネットワークの更新に使用する経験のサンプリングにランダム性を持たせる
  • ターゲットネットワーク(Target Network)
    ニューラルネットワークの目標値(正解データ)の変動を減少させ、学習を安定させる
  • Dueling Network Architecture
    無駄な行動(行動しても最終的に得られる報酬が変化しない状況での行動)の学習を減らすことで、Q関数の学習が効率的に行われる

などがあります。

しかし、最適方策に収束する保証はないため、上記のような対策手法を、実際にモデリングで試しながら学習を進める事が求められるでしょう。

最後に

今回はQ学習にニューラルネットワークを適用する必要性と、その問題点について説明しました。
最後まで読んでいただきありがとうございました!

補遺

最後におまけとして、Q-lerningの収束定理の1.で記述されている「十分な探索」を行う手法を紹介します。

  • ε-greedy法
     最も基本的な手法です。0~1の確率をもつεを設定し、εの確率でランダムな行動をとることで探索を行います。それ以外はQ関数に従って、最大報酬を受け取れる行動を選びます。
  • ボルツマン法(ソフトマックス法)
     次に示す式で行動を選びます。p(a) = \dfrac{e^{Q(s,a)/τ}}{\sum\limits_{a'}e^{Q(s,a')/τ}}
     これはソフトマックス関数を理解しているとわかりやすいと思います。ボルツマン選択は、Q関数の大きさに正比例して行動を選択します。Q関数が大きい場所ほど選ばれやすくなりますが、小さい場所も低確率で選ばれるため、探索が可能です。(ただしあまりにQ関数が小さいと、ほとんど選ばれなくなります)
     またτは温度パラメータと呼ばれ、これが大きいと行動はほぼランダムに近くなり、小さいと最もQ関数が大きい行動がほぼ確実に選ばれます。
  • 楽観的初期値
     Q関数(行動の価値)の初期値を、十分大きな値に設定することで、未探索の場所の価値が大きく見えるため、未探索の場所を探索しやすくなります。探索するとその場所のQ関数の値は更新され、適切な値になるため、他の未探索の場所へ進む行動を取るようになります。

また、これらの手法を元にした拡張手法も存在します。例えばε-greedy法では、最初は探索を多くしたいのでεの値を大きくして、時間の経過に伴ってεを減少させるといった手法があります。
問題によって適切な手法は異なるので、上手くいく方法を考えると良いでしょう。

Discussion