読者です 読者をやめる 読者になる 読者になる

データサイエンスしてみる

新米エンジニアがデータサイエンスを勉強する。機械学習とかRとかPythonとか

バンディットアルゴリズム ε-Greedyモデル

強化学習 機械学習

前回バンディットアルゴリズムの全体について見てみました。
grahamian.hatenablog.com

今回はバンディットアルゴリズムの基本であるε-Greedyモデルを見ていきます。

前回、バンディットアルゴリズムでは探索と活用が重要だと言いました。
ε-Greedyモデルでは0から1の乱数を取り、それがεを超えるか否かで探索するか活用するか決めます。

例えば、3本の腕があり、報酬の期待値が最も高い状況を考えます。
活用ではこの腕を引きます。
探索であればこの腕以外を引きます。
探索時に他のどの腕を開くかはランダムです。

ここで乱数を取ります。
0から1の乱数です。
事前に設定したεより高ければ探索、低ければ活用します。
つまりεの確率で探索、1-εの確率で活用するわけですね。

これを繰り返し行うことで次第に高い値が得られた腕が活用されることになります。

このアルゴリズムは非常にシンプルで、バンディットアルゴリズムの考え方がわかりやすいです。
バンディットアルゴリズムは最大の利益を得ることが目的でした。
そのために高い報酬が得られる腕を選びつつ、効率的に他の腕を探索することが重要です。
ε-Greedyモデルでは、探索する閾値をεというパラメータを用いて表現していました。

さて、ε-Greedyモデルはシンプルですが、シンプルゆえに問題点がある手法です。
問題の1つとして、たまたま高い報酬を得られた腕をずっと評価し続けてしまいます。
これは腕について報酬の確率分布について評価しないことに起因します。

これは割りと大きな問題で、実行するたびに失敗する確率が存在することを示しています。
そこでこれを改善したsoftmax法があります。

次回はこのsoftmax法を見てみましょう。