理系リアルタイム

大学院生の情報ブログ

テクノロジー 人工知能・機械学習

【強化学習】Q-Learningの更新式から結果考察まで。ハイパーパラメータ依存性【Part2】

投稿日:8月 29, 2019 更新日:

前回の記事

で、Q-Learningの更新式の説明を行いました。

そして、今回は、実際にQ-Learningで学習した結果をまとめたいと思います。

設定

学習する環境は、以下の通りです。

この状況下で、できるだけ多くの点が取れるように学習します。

探索方法は、ε-greedy法で行います。

コード

コードは、こちらです。

pointgameQ8_4-4-4_3D.py

コードの書き方が悪かった(探索式が悪かった)ので、εが1以下になっておらず、しかも、むしろεが小さいほど貪欲となる探索式になっています。

コードの探索方法の部分は、以下のようになっています。

def get_action(next_state, episode):

      #徐々に最適行動のみをとる、ε-greedy法

        epsilon = 10. * (1 / (episode + 1))

        if epsilon <= np.random.uniform(0, 1):

            next_action = np.argmax(q_table[next_state])

        else:

            next_action = np.random.choice([0, 1, 2, 3, 4, 5])

        return next_action

結果

学習結果を示します。

割引率 \gamma = 0.95 、学習率 \alpha = 0.2\epsilon = 10 での結果です。

横軸は学習回数(エピソード)、縦軸が得点です。

150ステップくらいから、最高得点の20000点くらいになっていることが分ります。最後まで得点以下の値があるのは、まだ探索のランダム性が残っているからです。

ε依存性

割引率 \gamma = 0.95 、学習率 \alpha = 0.2 で、\epsilon を 10, 60, 110, 160, 210 と変化させたときの学習過程をは以下のようになりました。

εが小さいほど貪欲(大きいほどランダム)なので、εが大きくなると、いつまでも迷っている形になって、高スコアに落ち着くのが遅くなっています。

学習率依存性

割引率 \gamma = 0.95\epsilon = 10 で、学習率を \alpha = 0, 0.2, 0.4, 0.6, 0.8 と変化させたときの結果はこちらです。

\alpha = 0 以外は、ほとんど差がないようです。

前回の記事から、Q-Learningの更新式は

    \[Q(s,a) \leftarrow Q(s,a)+\alpha[r'+\gamma \max_{}Q(s′,a′)-Q(s,a)]\]

でした。

\alpha = 0 の時には、この更新式より、常に前の行動価値関数の値と同じになり、Qテーブルは更新されません。

なので、 \alpha = 0 の時には学習が進まないはずですが、最初だけ少し得点が上がっています。最初のエピソードでたまたま得点をとったと考えられますが、それ以降は得点0になっているので、少しおかしいですね。Qは更新されないので、最初の値を引きずるはずです。計算誤差かもしれません。

割引率依存性

学習率 \alpha = 0.2\epsilon = 10 で、割引率を \gamma = 0 \sim 0.9 と変化させたときの結果はこちらです。

\gamma = 0.4 \sim 0.9 では問題なく学習してますが、 \gamma = 0 \sim 0.3 では学習に失敗して、最終的にはスコアが減少しています。

これについては、以下で考察します。

εと学習率

学習率 \alpha = 0.2 、 割引率を \gamma = 0 \sim 0.9 と変化させたときの結果です。 \epsilon はそれぞれ 10, 20, 30, 50 です。

εは左上が 10, 右上が 20, 左下が 30, 左下が40

\gamma = 0 \sim 0.3 について述べます。

方策により、時間が経つにつれて(エピソードが進むにつれて)最も良いQを参照するはずなので、減少するのは奇妙です。

・εが増加するにつれてランダム行動選択の時間が長くなる

・ランダム行動選択のときには良いQテーブルのデータが蓄積されていく

を念頭に置いて、これを説明します。

更新式

    \[Q(s,a) \leftarrow Q(s,a)+\alpha[r'+\gamma \max_{}Q(s′,a′)-Q(s,a)]\]

を見ると、\gamma が小さいと \max_{}Q(s′,a′) の項の影響が小さいので、その行動を(実は良い行動なのに)悪い行動(Q値)として判断してしまいます。

その結果、Greedy行動をすればするほどQテーブルが悪くなり、よい更新が行われなくなり、スコアが減少していくことになります。

それでもランダム行動が選択されれば、Qテーブルがよくなります。εが大きいほどランダム時間が長いので、εが大きくなるとスコアの現象が緩やかです。また、スコアの現象は、ランダム行動で稼いだQ値を切り崩していると解釈できます。

-テクノロジー, 人工知能・機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【暗黒物質】ダークマター アクシオン(Dark Matter Axion)について詳しく解説!【上級編】

※この記事はある程度物理の知識がある方を対象に書かれています。物理にあまり精通していない方は、【初級編】ダークマター アクシオンをご覧ください。 今回は、ダークマターと呼ばれる未知の物質を構成する素粒 …

【ネット依存症】ブログを始めてわかった、ネットをあまり気にしない方がいい理由【情報時代の生き残り方】

こんにちは!ATSです!

【必見】ブロックチェーンって結局なに?ブロックチェーンについて簡単に解説!!【未来をつくる新技術】

皆さんこんにちは!! みなさんはブロックチェーンについてはご存知でしょうか? これから重要な役割を果たすだろうと予想されている技術には、5G、VR、AI、ブロックチェーンなどがありますが、この中のうち …

ホリエモンが出資する宇宙ベンチャーがロケット打ち上げに成功したぞ!民間単独で国内初。日本の宇宙事業の未来は…

みなさんこんにちは! ホリエモンが出資している、宇宙ベンチャー『 インターステラテクノロジズ(IST)』が小型ロケットMOMO(モモ)3号機の打ち上げに成功しました!! https://t.co/oJ …

【機械学習】機械学習のプログラミング実装だけなら誰でもすぐ出来るので理論を学びたいと思いました。

はい、どうも、おはようございます。

理系リアルタイム 管理人

理系大学院生。

名古屋大学大学院工学研究科。

いつか人工衛星を打ち上げたいと夢見ている。生息地は度々変わるので不明。興味があること→物理/laser/機械学習/backpacker/ドローン/海外移住

理系リアルタイムでは、大学生・大学院院生に知ってもらいたい情報、体験を発信しています!!気になることがあれば、お気軽にご連絡ください。

管理人のTwitter もよろしくお願いします!!