トピックス プログラム、シミュレーション

泥臭く手作業で知ろう、アルゴリズム

投稿日:

Q学習Excelで実行します。Excelファイルの「Q学習」というシートとパワーポイントの資料を見ながら構成を追ってみてください。昨日のExcel関数が大活躍します。

説明資料 → Q学習その3

Excelファイル → Q学習

p.1 左上で割引率γ=0.7学習率α=0.5、各状態での報酬は−1に固定しています。 報酬があるとなかなか正解にたどり着かないので−1にしてあります。greedy率ε1−(エピソード数)/50のようにエピソードが増えると共に減少していきます。 エピソードは1から50まであり、1つのエピソードにステップ1~10まで繰り返します。エピソード1のステップ1のQ値(赤枠内)の値は適当な値が入っています。

p.2 どのエピソードもステップ1の最初は、1行1列のマス目(巣)の位置からスタートします。乱数を発生させてεより小さければ冒険多きればQ値が高い方向を選びます。ここでは、冒険を選んで下方向に移動します。このマス目の情報と新たにQ値を計算し直した表の値をステップ2にコピーします。このコピーに昨日の「配列数式」を用いています。

p.3 エピソード1のステップ10のQ値をエピソード2にコピーして、1行1列からステップ1としてスタートします。

p.4 エピソード50まで実施して得られるQ値をマス目に入れてあります。数値が多い方向に蟻が進んでゴールに到着します。

p.5 横軸エピソード数縦軸ゴールに到達したステップ数です。最短の場合がステップ5です。最初は9ステップでゴールに到達していましたが、徐々に到達確率が高くなっていくことがわかります。47くらい繰り返すと間違えなくなるようです。 蟻がたくさんいれば、あっという間にゴールしてしまうのでしょうね。

いかがでしたか? python等の言語を使えばもっと効率の良い計算やプログラムも簡略化されるのでしょうが、プログラムの中身アルゴリズムを知るためには、今回のように泥臭く手作業で実行してみることが良いと思います。

-トピックス, プログラム、シミュレーション

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.