2021年5月1日土曜日

小学校で習う「平均」されど「平均」(基本編)

【what is this】日常生活にも多く出現する「平均」は、小学校高学年の算数で習います。それは、AIの重要分野である強化学習(Reinforcement Learning)においても不可欠です。実際、強化学習の書籍[1][2]でもそのように扱われています。そこで、本記事では書籍[1]を参考にさせていただき、改めて「平均」をプログラミングしながら再考したいと思います。
(→続編はこちらです)

簡略化した多腕バンディット問題
 ここでは、簡略化したバンディット問題を扱います。具体的には、6個のボタンがあり、それを押すと、それぞれ乱数で得点が得られます。各ボタンBnが発する乱数(符号付き実数)は、平均Mnで標準偏差1の正規分布になっています。ただし、操作者は、それらの平均値Mnを知りません。この条件下で、ある与えられた回数だけ、いずれかのボタンを押して、それらからの合計点をできるだけ高くしたい、という問題です。
 図1には、合計で2,000回、全くランダムにボタンを選んで押した場合の乱数の分布を一例として示しました。(どのボタンでも、設定平均値と実際に発生した乱数の平均値はぼぼ合致しています。)


ε-greedyポリシーに基づくボタンの選択
 この問題に対する戦略として、「ε-greedyポリシー」があります。与えられた回数の範囲で、各ボタンの平均値Mnを推定しながら進めます。とにかく、ボタンが選択される毎に、そのボタンの乱数の推定平均値は正確な値に近づくはずです。しかし、いつまでも広く異なるボタンを選択し続けると、(回数の制約上)高い推定平均値のボタンを選択する機会が減り、総合得点が高くなりません。逆に、ある時点での推定平均値の高いボタンを固定的に押し続けると、他により好ましいボタンがあってもそれを活用できません。そのバランスを取るために、パラメータεを導入します。ボタン選択にあたって、乱数p(0.0 < p <1.0)を発生させて、

(1) p < εならば、ランダムにボタンを選択する。
(2) p >= εならば、この時点での推定平均値が最大のボタンを選択する。

 この戦略で、ε = 1.0, 0.5, 0.1について、それぞれ200回(=1エピソード)ボタンを選択した場合の総得点の比較を、図2に示します。乱数を使っているため、常にこのとおりとはなりませんが、多くの場合、図2のように、ε = 0.1の場合が最適になります。すなわち、その時点の推定平均値が最大のボタンを選ぶことを基本とするが、10回に1回程度は、ランダムにボタンを選ぶのが最適だということです。



グリッドサーチで、パラメータε の最適値を求める
 上に述べた「ε = 0.1が最適」というのは、各ボタンの元々の設定平均値が変わった場合でも成り立つでしょうか。それを確認するため、ε = 0.0〜1.0の範囲の11刻みで、設定平均値を変えてそれぞれ1,000エピソード(=1,000 x 200回)実行させた(グリッドサーチ)結果を図3に示します。ここでは、中央値を「箱ひげ図」で比較しましたが、統計学的に予想どおりの結果となりました。




 この図によれば、ε = 0.0、すなわち、常にその時点での推定平均値が最大のボタンを選択するのもかなり良い。しかし、とくに初期段階では最大値を与えるボタンが変動しやすいので、その最大値はあまりあてにならない。そのため、一定の間隔で、それをご破算にして、あらたに最大値を求めた方がよいということでしょう。

ボタンの選択状況をさらに詳しく分析する
 ここまでで、本記事は一応終わりなのですが、上記のパラメータε= 1.0, 0.5, 0.1の場合それぞれで、どのようにボタンが選択されたのかを、さらに詳しく確認したいと思います。以下は、図2の実行時の分析です。プログラミングの観点からも、下図のような作図は有用と考えました。

 ε= 1.0の場合は、推定平均値のより高いボタンがないかを探索しすぎたため、好ましいボタン1を選択(活用)する機会を失ったと言える。これに対して、ε= 0.1の場合は、開始直後は他のボタンの推定平均値の方が高かったが、途中からボタン1の方が有利になり、ほぼその選択を維持できたのが勝因と言えます。


   

感想
 本記事は、ほとんど「平均値を推定する」という話題につきますが、状況を徹底的に調べることで理解が深まると感じました。その際のプログラミングは、言語はどれでも良いのですが、今回は、PythonのListやDictionary、それとPandasのplot機能を有効に活用できたと思います。

[参考文献]
[1] 中井悦司:ITエンジニアのための強化学習理論入門、技術評論社、2020年7月
[2] 曽我部東馬:強化学習アルゴリズム入門、オーム社、2019年5月

0 件のコメント:

コメントを投稿