平均・分散が未知の正規分布のベイズ推定に引き続き,報酬が平均・分散が未知の正規分布に従うと仮定したThompson Samplingの解説第3回目です.
第3回目となる今回は,多腕バンディット問題に対する腕選択アルゴリズムの1つである,Thompson Samplingについて,具体的な式を交えて解説したいと思います.
TL;DR
- Thompson Samplingは,腕選択におけるexplorationとexploitationのバランスを取ることができる多腕バンディット問題に対する方策の1つ
- Thompson Samplingは,各腕が最適である事後確率に従って腕を選択
- そのためには,報酬の期待値に対する事後分布からの乱数が必要になる
- 報酬が平均・分散が未知の正規分布に従っていると仮定し,事後分布を導出
- 平均に対する事前分布は正規分布,分散に対する事前分布はscaled inverse chi-squared分布をチョイス
- これによって事前分布が共役事前分布になってくれる
- 結局は,Thompson Samplingのアルゴリズムでは平均に対する事後分布のパラメータと,分散に対する事後分布のパラメータを更新するだけでよくなる
Thompson Samplingとは
Thompson Samplingは,多腕バンディット問題に対する方策(どの腕をプレイするかを選択するアルゴリズム)の1つです(スロットマシンの台のことを腕とも呼びます).
多腕バンディット問題の解説記事で触れましたが,多腕バンディット問題では,探索(exploration)と活用(exploitation)のバランスを取りながら腕を選択できるか,ということが重要になります.
Thompson Samplingは,比較的簡単なアルゴリズムでありながら,問題に合わせて探索と活用のバランスを取ってくれる,という強力なアルゴリズムです. UCB戦略と同様に,多腕バンディット問題の方策の代表例として挙げられることが多いです.
さて,以降では,本の腕があるとし,各腕からの報酬が平均(期待値)と分散が未知の正規分布に従って生成されると仮定します. この仮定の元で,Thompson Samplingのアルゴリズムについて数式を交えて解説していきます.
Thompson Samplingの腕選択方法
Thompson Samplingは,各腕が最適である事後確率に従って腕を選択します. すなわち,次の式のように,「ある腕の報酬の期待値が他のどの腕の報酬の期待値よりも高い」確率に従って,その腕を選択します.
ここで,は腕の報酬の期待値,は腕をプレイしたことによって観測した個の報酬の履歴です.
上の式は積分計算が入っているため,計算を行うことは一般的には困難です. しかし,各腕から乱数を事後分布に従って生成し,が最大となった腕をプレイすれば,上の式に従って腕を選択したことと同等の動作となります.
つまり,事後分布からの乱数を生成することができれば,「ある腕の報酬の期待値が他のどの腕の報酬の期待値よりも高い確率に従って腕を選択する」ということが実現できるのです.
以上をまとめると,Thompson Samplingでは,以下のような流れを繰り返すことで,各ステップごとに腕を選択します.
- 各腕の報酬の期待値に関する事後分布から乱数を生成
- 最大の乱数を生成した腕をプレイし,報酬を観測
- 観測した報酬の履歴にを追加
事後分布からの乱数生成
これまでに記述したように,Thompson Samplingのアルゴリズムを実現するためには,事後分布からの乱数を生成することが必要になります.
報酬の分布である正規分布の分散が既知であるならば,単純にに対する事後分布を導出し,その分布から乱数を生成すれば乱数を得ることができます.
しかし,今回の場合,平均だけでなく分散も未知としているため,のみに対する事後分布を導出するのは困難です.
そこで,平均と分散の組に対する事後分布を導出し,この分布から乱数を以下のようにして生成するようにします.
- に従って,乱数を生成
- に従って,乱数を生成
事後分布の計算
乱数を生成するのに事後分布を用いるため,とを導出する必要があります.
これは,平均・分散が未知の正規分布のベイズ推定をしていることにほかなりません.
こちらの記事で記述しているように,平均に対する事前分布を正規分布とし,分散に対する事前分布をscaled inverse chi-squared分布とすると,事後分布とは以下のように導出することができます.
ここで,
です. また,は事前分布のパラメータとします.
導出方法の詳細は,記事を参照してください.
アルゴリズム
これまでの解説をまとめると,Thompson Samplingのアルゴリズムは以下のような流れになります.
これまでの解説で長ったらしい数式が出てきていたわりには,スッキリとしたアルゴリズムになっているのではないでしょうか.
これがThompson Samplingの良いところで,事後分布の導出は面倒ですが,最終的なアルゴリズムはシンプルになり,かつそこそこのリグレットで抑えられることが多いです.
報酬の分布には,今回は正規分布を仮定しましたが,それ以外にもいろいろな分布を仮定したThompson Samplingが存在します. 特に,ベルヌーイ分布を仮定したThompson Samplingは有名でコードも様々な方が公開しているため,初めて試すにはちょうどいいかも知れません.