English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ゲスト
1 / ?

腕、引き、報酬

一列に並んだスロットマシン

K台のスロットマシンが一列に並んでいるのを想像してください。各マシンは異なる平均報酬を支払いますが、その平均はわかりません。毎ステップで1台のマシンを選び、レバーを引き、支払いを観察します。目標:多くの引きで総報酬を最大化することです。


この設定が多腕バンディット問題を定義します。K = 腕の数。引きは1つの腕を選択します。報酬はその腕の隠れた分布から得られます。腕kのmean_reward(k)はkの引きの走行平均を追跡します。


探索 vs 活用

2つの相反する圧力が働きます:


活用 は、観測された平均報酬が最も高いアームを引き抜きます。貪欲です。リスク:2回引いた後に優良に見えたアームが、真の低い平均に回帰する可能性があります。


探索 は、不確実性を減らすためにあまりテストされていないアームを引き抜きます。リスク:探索に費やした時間が、既知の優良アームから得られた報酬を失うことになります。


良いポリシーは両方を組み合わせます。純粋な活用は初期の勝者を永遠に固定します。純粋な探索は報酬を決して集めません。


ANDREAの腕 = データソース

ANDREAはトレーニングをbanditとしてフレームします。各データソース(hermes3-general, gutenberg, dictionary, synthetic-chat, smoltalkなど)が腕として機能します。各トレーニングステップで1つの腕を引き:そのソースからドキュメントをロードし、前方パスを実行し、損失減少を観測します。ソースごとの平均報酬は、そのソースが平均的に損失をどれだけ改善するかを追跡します。


これが適合する理由:トレーニング中にモデルのニーズは変化します。初期ステップは広範な露出(多くのソース)から利益を得ます。後期ステップは標的の洗練(少数の高報酬ソース)から利益を得ます。Banditは適応します;固定サンプリング比率はできません。

部品の命名

ANDREAには16のデータソースがあります。1,000回のトレーニングステップ後、hermes3-generalは250回引きられ平均損失減少1.8;gutenbergは600回引きられ平均損失減少1.2です。(a) K, (b) hermes3-generalの引き回数(n_kと呼ぶ), (c) 純粋活用ポリシーが次に選ぶソース, & (d) その純粋活用選択の1つのリスクを命名してください。

UCB1スコア

Auer, Cesa-Bianchi & Fischer, 2002

Peter Auerと同僚らは2002年にUCB1を公開した。これはO(log N)のregret boundを持つ有限時間banditポリシーである。UCB1はarmの現在の平均報酬に、armが引き取られるほど縮小するexplorationボーナスを組み合わせることでarmを選択する。


UCB1 Score Diagram


数式


UCB(k) = mean_reward(k) + C * sqrt(ln(N) / n_k)


項ごとに分解:


- mean_reward(k): アーム k の n_k 回の引きでの観測された平均報酬。搾取項。

- N: これまでのすべてのアームでの総引き回数。毎ステップで増加。

- n_k: アーム k 固有の引き回数。k が選択された場合にのみ増加。

- C: 探索定数。標準的な教科書の値: 1.4 (sqrt(2))。ANDREA は C=0.5 を使用。

- sqrt(ln(N) / n_k): 信頼半径。あまり引かれていないアームは n_k が小さく大きなボーナスを得る;十分に引かれたアームは n_k が大きく小さなボーナスを得る。


なぜこの式が機能するのか

ln(N) はゆっくり(対数的に)増加するため、分母は総経験とともに緩やかに上昇します。分母の n_k は特定の腕についての証拠が蓄積するにつれて項を縮小します。平方根は応答を緩やかにし、単一の未探索アームが永遠に支配するのを防ぎます。


各ステップで argmax_k UCB(k) を選ぶことで、両方の圧力を自動的にバランスさせます。εパラメータも、スケジュールも、温度も不要です。数学がそれを処理します。

UCBスコアを計算する

C=0.5、総引き回数N=100、腕kの引き回数n_k=5、平均報酬mean_reward(k)=2.3 のとき、UCB(k)をステップバイステップで計算せよ。(a) ln(100)、(b) ln(N)/n_k、(c) (b)の平方根、(d) C×(c)、(e) 最終UCB(k)を示せ。ln(100)≈4.605を使用。

C=0.5を使う理由(1.4ではなく)

教科書の値

Auer, Cesa-Bianchi & Fischer は、報酬が [0, 1] の範囲にあることを仮定して regret bound を導出しています。その bound は C = sqrt(2) ≈ 1.414 で成り立ちます。ほとんどの教科書では C=1.4 を安全なデフォルトとして教えています。


ANDREAの報酬の大きさ

ANDREA はステップごとの損失改善を報酬として報告します。生の改善値は約 0.001(損失が 4.521 から 4.520 に低下)です。1000倍のスケーリング係数(アクティビティ 78 の報酬帰属で説明)を適用した後、スケーリングされた報酬の大きさは約 1.0 になります。アームの履歴全体での平均報酬は 0.5 から 3.0 の範囲に収まります。


今、C=1.4、N=10000、n_k=100 での探索ボーナスを考えてみてください:


1.4 sqrt(ln(10000) / 100) = 1.4 sqrt(9.21 / 100) = 1.4 * 0.303 = 0.425


0.425 は報酬帯内に収まっています。許容範囲です。今 n_k=10(稀なアーム):


1.4 sqrt(9.21 / 10) = 1.4 0.960 = 1.344


1.344 はほとんどの観測された平均報酬を上回っています。探索が支配的:稀なアームが実際の平均に関係なく勝ちます。多くのソースと長いトレーニング実行では、これによりスケジュールが低平均アームで溢れます。


修正方法: C=0.5

0.5 sqrt(9.21 / 10) = 0.5 0.960 = 0.480


0.480 はほとんどの報酬の平均より低い位置にあります。探索はまだ行われます(希少な腕にもボーナスが与えられます)が、mean_reward が主導します。ANDREA はより多く搾取し、少なく探索し、探索の支配を避けます。


チューニングを工学として、理論としてではなく

教科書の境界は報酬が [0, 1] にあることを前提としています。ANDREA の報酬は大体 [0, 5] にあります。定数をスケーリングすることで、定数を報酬の大きさに合わせます。同じアルゴリズム、キャリブレーションされた環境です。

探索支配の診断

あなたのバンディットは、同じほとんど引かれていない腕を8フェーズ連続で選び続けていますが、そのmean_reward (0.3)は他の腕(平均1.5〜2.0)の下に位置しています。N=5000 & n_k=4でC=1.4のこの腕の探索ボーナスを計算せよ(ln(5000)≈8.52を使用)。次に、ANDREAがC=0.5を選択した理由とその結果の変化を1文で説明せよ。計算過程を示せ。

次に続く内容

あなたが学んだこと

UCB1は最高の上限信頼区間を持つ腕を選択します。この区間はmean_reward(搾取)とsqrt(ln(N) / n_k)をC(探索)でスケーリングしたものを組み合わせます。ANDREAはC=0.5に調整します。なぜならステップごとの報酬が0.5〜3.0の範囲にあり、教科書の1.4では低平均腕がスケジュールを埋め尽くすからです。


残るもの

Vanilla UCB1は一度に1つの腕を選択します。ANDREAは各フェーズで複数の焦点腕を選択し、最初にランダムな腕を混ぜ、& 各フェーズを7から42ステップ保持します。その構造(アクティビティ77: ダイスフェーズ)は、UCBが早期の勝者に過度にコミットするのを防ぎつつ、努力を集中させることを可能にします。


報酬帰属(アクティビティ78)は、mean_reward(k)が実際どこから来ているかを示します。フロアとエポックペナルティ(アクティビティ79)は、UCB出力の上に保護ルールを追加します。


参考文献

- Auer, Cesa-Bianchi, Fischer (2002). "Finite-time Analysis of the Multiarmed Bandit Problem." Machine Learning, 47, 235-256.

- ANDREA whitepaper、セクション 3.1 & 3.4。