はじめに
前回は「探索(Explore)」と「活用(Exploit)」のトレードオフがある中で最大の報酬を得る考えとしてバンディットアルゴリズムを説明しました。また、そのトレードオフを気にせずに探索し続けた結果で近似線を求める古典的なシミュレーション法であるモンテカルロ法にも簡単に触れました。
今回は、同じくシミュレーション結果から報酬を最大に得る方法を見つけ出すQ-Learning(Q学習)について解説します。
Q-LearningのQとは
あっちの方から麻里ちゃんがやってきました。好きな子がこっちに向かって歩いてくる姿って、なんだかスローモーションを見ているようなキュっとした気持ちになりますね。でも、そんな気持ちも麻里ちゃんの素朴な質問でいっぺんに吹っ飛びます。
「Q-LearningのQってなんの略なの?」
う、いきなりです。無邪気でピュアな質問です。でも、答えがわかりません。統計学を学ばずにディープラーニングに入ってきたエンジニアに、「お前、統計勉強してないだろう!」と突き付けられた気分にさせられます。そうなんです。この質問に解答するには、まず統計におけるP値(P-Value)について知らなければならないのです。ということで、まずはP値の説明からスタートします。
P値(P-Value)とは
世の中には、”証明してみたい仮説”がたくさんあります。野球の「(野手が)変わったところに球が飛ぶ」や「洗車をすると雨が降る」などはたぶん気のせいです。でも、「IT業界にB型が多い」は思い当たることもあるので調べてみたい気がします(実は私もB型)。このような仮説を統計を使って証明する方法が仮説検定です。
[RELATED_POSTS]Wikiによれば日本人のB型の比率は21.9%です。ということはIT企業の健康組合でB型の人の統計を調べれば、「IT業界にB型が多い」という仮説が当たっているかわかりそうですね。このように証明したい仮説のことを対立仮説(Alternativehypothesis)と言い、対立仮説を否定する方は帰無仮説(Null hypothesis)と呼ばれています。この場合は、「IT業界でもB型の比率はそんなに変わらない」というものが帰無仮説ですね。そして、対立仮説を証明するために、帰無仮説が間違っていることを証明する背理法が統計ではよく用いられます。
図1:帰無仮説が間違っていれば、対立仮説が証明される。
帰無仮説「そんなに変わらない」を測る尺度がP値です。PはProbabilityのP、つまり”確率”を表す数値です。そして、”そんなに”を具体的に判断するためにP値の閾値が設定されます。例えば閾値が0.05だった場合は、”そんなに”は5%になります。具体例で説明しましょう。
健康組合の人が100,000人いたとしましょう。B型の比率が21.9%ということは、21,900人前後がB型だったら帰無仮説は正しいと証明されます。ピッタリ21,900人ということはありませんので、例えば誤差5%以内だったら21,900人前後とみなします。ここで言う5%の誤差とは、21,900×0.05=1,095人という単純な計算ではありません。あくまでも統計ですので、図2のように正規分布において両端2.5%ずつの範囲に含まれるどうかで判定します。
図2:P値0.05の両側検定
正規分布(ガウス分布とも言います)とは、確率の分布です。つまり、図2において両端2.5%より内側(信頼区間)であれば、”まあ、確率的に偶然あり得るだろう”と判断し、その外側は”さすがに偶然にしてはおかしい”とするわけです。この判断の閾値を決める値がP値であり、例えばP値が0.03なら両端1.5%となります。
P値は、この外側だともはや偶然とは言えず、なにか意味があるはずだということで、有意水準とも言われています。そして、その外側は、帰無仮説が正しいにも関わらず、5%の確率で誤って対立仮説を採用してしまうエリアなので危険域と呼ばれてます(最近は帰無仮説を棄却するエリアなので棄却域とも呼ばれています)。一方、内側の範囲は信頼区間と呼ばれています。
誤った判定をする可能性は2つあります。1つは「本当はB型の比率もそんなに変わらないのに、IT業界にB型が多いと判定」するFalesPositive(FP)、もう1つは「本当はIT業界にB型が多いのに、B型の比率はそんなに変わらないと判定」するFalesNegative(FN)です(図3)。
図3:統計的確率検定の正誤パターン
さて、IT企業の健康組合で調査した結果、B型の人が22,166人いたとしましょう。図2で照合すると、この値は優位水準より10人多いので、帰無仮説が正しいとならず、対立仮説「IT業界にB型が多い」が誤っていると証明することができません。
もし、B型の人が22,150人だったらどうでしょうか。今度は有意水準を超えていないので、帰無仮説が正しいとされ、対立仮説「IT業界にB型が多い」は誤っていると判定されることになります。
有意水準を超えていない場合は、対立仮説は否定されます。一方、優位水準を超えた場合は、対立仮説を正しいと判定するわけではなく、”否定はできない”というお役所のような答弁になります。とはいえ、有意水準を超えていない場合でも、本当はIT業界にB型が多いのに、B型の比率はそんなに変わらないと判定してしまうFales Negative(FN)が生ずる可能性があるわけです。
なお、閾値判定には両側検定と片側検定があります。もし、必ず値が多い(少ないことはあり得ない)ことが自明なケースでP値を0.05にした場合は、多い側のみ5%が危険域となります。もし、同じ0.05で片側検定にするとP値の閾値は22,115人となりますので22,150人は危険域に入ってしまうことになります。
値と有意水準 P値と有意水準の関係が誤解されやすいので補足しておきます。P値は、ある値が正規分布(確率分布)のどこにあたるかを示す確率値です。例えば、22,166人のP値は0.4なので、残り2%の確率エリアにあることを示しています。 一方、有意水準は”閾値としてのP値”です。何が紛らわしいかと言えば、一般にこの閾値を単にP値と読んだり、P値=有意水準と書いたりしているので、P値=閾値と勘違いしやすいのです。厳密にに言えば、P値の閾値=有意水準なのです。そこを理解したうえで省略されている”の閾値”という文字を補って見分けてください。 |
ふう~。いきなりの麻里ちゃんの質問にびびって、P値について力いっぱい説明してしまいました。
多重検定とFWER
さて、仮説検定におけるPがわかったところでQに行きたいところなのですが、その前に多重検定とFWERを説明しなければなりません。ただQを説明するだけなのに、今回は前置きが長いです。
IT企業の健康組合はいくつかありますので、4つの組合にそれぞれ100,000人の血液型を調査してもらうことにしました。その結果、4つの健康組合のうち1つだけ有意だった場合、「IT業界にB型が多いを否定できない」としていいのでしょうか。
サンプル(健康組合)が4つの場合、どれか1つは有意なる確率は次の計算で18.5%となります。1つの組合だけで検定する場合の有意になる確率(p=0.05)に比べると、発生確率は3.7倍に跳ね上がりますね。なので、4つのうち1つの組合が有意だったとしても、それをもって「IT業界にB型が多いを否定できない」とするのは難しいでしょう。とはいえ組合の1つは有意だったので「IT業界でもB型の比率はそんなに変わらない」という帰無仮説も証明されたとは言いにくいわけです。
1-(1-p)^4 = 1-(1-0.05)^4 = 0.185
このように複数のサンプルで有意になるかどうかを調べることが多重検定です。そして、複数(family)の検定のどれかが有意になる確率のことをFWER(familywise error rate)と言います。多重検定においては、1つの検定で有意になるP値ではなく、FWERをコントロールすべき(例 FWER 18.5→5%)という考え方が採用されています。
FDR
FWERは図3のFP/(TN+FP)を小さくするアプローチです。本当は帰無仮説が正しいのに、帰無仮説を棄却してしまう割合、すなわち「実はB型もそんなに変わらないのに、IT業界にB型が多いと判定してしまう割合」を多重検定においてコントロールするための指標です。
一連(family)の検定で1つも有意にならない確率(FWER)を抑えるには、多重度が増えるほど各検定の有意水準Pを小さくしなければなりません。そして有意水準Pを厳しくすると、今度はFN(βエラー)「本当はIT業界にB型が多いのに、B型もそんなに変わらないと判定してしまう誤り」が発生しやすくなってしまいます。
この問題を解決するために、多重度に応じてある程度は間違ってもいいことにしようという発想で登場したのがFDR(false discovery rate)です。
FDRはFP/(TP+FP)の割合を求める手法で、FP(αエラー)をある程度許容します。帰無仮説が棄却された中で、本当は帰無仮説が正しいものの割合、すなわち「IT業界にB型が多いと判定した中に、実はB型もそんなに変わらないデータも含まれている割合」をコントロールする指標です。
我々は神ではないのでどのデータがTN、FP、FN、TPかはわかりません。そこでFDRは期待値で求めます。P(Provability)値が確率なのに対し、FDRは期待値ということになります。有意水準Pとの関係で言えば、FWERを小さくするためにはPを小さくする必要があり、Pを大きくするとFWERは大きくなります。一方FDRの方は、Pを大きくすればFDRは大きくなり、Pを小さくすればFDRは小さくなります。
FDRをコントロールする方法はいろいろがありますが、最も有名なBH(Benjamini-Hochberg)法を説明しましょう。
Benjamini-Hochberg(BH法)
BH法はFDRをコントロールする手法の1つです。BH法の中でも、いくつか補正方式があるのですが、標準的な計算方法を4つの健康組合の例を使って説明します。
①N個の帰無仮説(4つの健康組合)それぞれのB型の割合P値を計算する。
健康組合1は22,166人なのでP値は0.04。他の健康組合のP値は表1の通りだったとします。
サンプル |
P値 |
健康組合1 |
0.04 |
健康組合2 |
0.16 |
健康組合3 |
0.08 |
健康組合4 |
0.01 |
表1:4つの組合のB型の人の数をP値計算
②P値の小さい順に並び替え、順番をiとします。(i=1~4)
表2のように健康組合4,1,3,2の順番となります。
③FDRの閾値を決めます。
ここでは0.05としています。5%ですから帰無仮説が100個棄却された場合に、その中に真の帰無仮説が5個入っていることを許容することになります。
④各サンプルのp値をq値に変換します。(Nはサンプル数=4)
qi=pi×N/i
このqがFDRの期待値です。p値を小さい順に並べたときに、q値がどのような値となるかを図4のような関係式で求めています。
図4:pとqの関係式
⑤qiとqi+1を比較して、qi> qi+1 ならqi = qi+1 とします。
今回は、この処理は該当なし
⑥qiと閾値を比較して棄却判定
Qi<= 閾値 なら有意、そうでなければ棄却します。
表2:P値の小さい順に並べて棄却判定
今回の4つの健康組合のデータをBH法で計算した結果は、表2のように4つの帰無仮定のうち1つは有意となりました。つまり、FDRの閾値が0.05の場合、上記の検定結果は「IT業界でもB型の比率はそんなに変わらない」とは言えないことになります。なお、表2の各piの値をP値0.05でそれぞれ比較すると、健康組合4と健康組合1が有意になり、FDRとは異なる有意数になります。
FDRは、Familyの数(N個)が多くて、帰無仮説が棄却される数(R)が多い集合に対して有用なモデルです。例えば10万の遺伝子に対して投薬して、影響のある遺伝子を選ぶ実験をしたとしましょう。1割に変化が生じたとすると1万の帰無仮説が棄却されたことになります。Qの閾値が5%ということは、この1万の中から500遺伝子程度はFP(αエラー)が含まれる可能性があることになります。
Q値(Q-Value)とは
大変長らくお待たせしました。図5のようにたどってきて、ようやくQ値を説明できます。Q値とは「検定結果が有意と判断される最小のFDR閾値のこと」です。表2は閾値が0.05で有意でしたが、閾値を0.03に下げたらどのqiも棄却となります。この場合、ぎりぎり有意となる閾値は0.04なので、Q=0.04ということになります。
図5:P値とQ値の関係
確率から求められるP値の閾値(有意水準)がP値なのに対し、期待値として求められるFDRの閾値がQ値です。そして、PはProbability(確率)のPなのですが、Q値は”同じ閾値だけどPとは違う閾値なのでQとしておこう”というQなのです(というのが私の見解で、QualityのQという説もあります)。
う~ん、図5に示す言葉の関係性を理解したのはいいのですが、この衝撃の答えをどうやって麻里ちゃんに伝えたらいいのでしょうか。「実はQはなんの略でもないんだよ」と回答しても「へっ」って言われそうだし、だからといってPからQに至る長い変遷を説明しても「面倒っちいやつ」と思われそうです。
まとめ
今回は強化学習のQ-Learningを説明する予定でしたが、いきなりの麻里ちゃんの質問のせいで、ずっぽり統計の説明にはまってしまいました。次回は、次回こそ、ちゃんとQ-Learningの説明をしますのでお楽しみに。
梅田弘之 株式会社システムインテグレータ :Twitter@umedano
- カテゴリ: