教科書 › 第III部 深層学習:何の前提を足すか
CHAPTER 12

良くなったと言う前に ── 評価の作り方

★ 会員23分

第9章・第10章・第11章で、三度「それは評価の話なので別章で」と預けました。この章で回収します。

第III部の最後が測り方なのは順番の問題ではありません。ここまでの11章は全部「何かを変えると何かが良くなる」という形をしていて、その「良くなった」を言えるかどうかだけが、この章にかかっているからです。

測るというのは数字を1つ出すことではありません。幅と向きを一緒に出すことです。

1. 1つの数字には幅がある

テスト集合は、解かせたい問題全体から引いた標本です。同じモデルでも別の1,000問を引けば点は動きます。NN 問のうち pp の割合を正解するとき、正解数は二項分布に従い、割合の標準偏差は

σ  =  p(1−p)N\sigma \;=\; \sqrt{\frac{p(1-p)}{N}}
(1)

です。pp は本当の正解率、NN はテストの件数。95%の幅はその 1.96 倍で、p=0.70p=0.70 なら

件数 NN 95%の幅
100 ±0.0898
300 ±0.0519
1,000 ±0.0284
3,000 ±0.0164
10,000 ±0.0090
30,000 ±0.0052

100問で測った「70%」は、本当は61%から79%のどこかです。第0部第3章で見た σ/n\sigma/\sqrt{n} と同じ形で、幅を半分にするには件数を4倍要ります。

FIG 1第0部第3章の図をそのまま持ってきたもの。引く件数を増やすと、中心は動かず幅だけが 1/√件数 で縮む。テスト集合の点が動く理由も、ミニバッチの平均が揺れる理由も、同じ式

逆に、欲しい幅から必要な件数が決まります(p=0.70p=0.70)。

欲しい幅 必要な件数
±0.05 323
±0.02 2,017
±0.01 8,068
±0.005 32,270

「0.5点の改善」を主張するには、1モデルにつき3万問が要るという計算です。ここまでが、1本のモデルを1回測る話です。

2. 95%と書いた幅が95%でないとき

上の ±1.96σ\pm 1.96\sigma は、正解率が0と1から離れているときの近似です。どのくらい当たっているかは、二項分布を全部列挙すれば近似なしで確かめられます。本当の値 pp を決め、k=0,1,…,Nk=0,1,\dots,N それぞれの確率を足し上げて、「測定から引いた区間が本当の値を含む確率」を出します。

本当の値 件数 素朴な式(p^±1.96p^(1−p^)/N\hat p \pm 1.96\sqrt{\hat p(1-\hat p)/N}) Wilson の式
0.50 100 0.9431 0.9431
0.70 100 0.9502 0.9372
0.70 30 0.9529 0.9298
0.95 100 0.8775 0.9659
0.95 1,000 0.9417 0.9504

真ん中あたりでは素朴な式で足ります。問題は端で、正解率0.95のモデルを100問で測ると、95%と名乗った区間が実際に本当の値を含むのは87.8%です。しかも同じ条件で25.2%の確率で区間の上端が1を超えます(「正解率 103%」の区間が4回に1回出る)。

飽和しかけたテストほどこれを踏みます。Wilson の式は

p^+z22N1+z2N  ±  z1+z2Np^(1−p^)N+z24N2\frac{\hat p + \frac{z^2}{2N}}{1 + \frac{z^2}{N}} \;\pm\; \frac{z}{1 + \frac{z^2}{N}}\sqrt{\frac{\hat p(1-\hat p)}{N} + \frac{z^2}{4N^2}}
(2)

で、p^\hat p は測った正解率、z=1.96z=1.96、NN は件数です。中心が少し真ん中へ引き寄せられ、上端は1を超えません。表のとおり端では素朴な式より当たり、真ん中では少し保守的になります。

(この表は列挙で出した値です。第4節の図のつまみを「100問・本当の正解率 0.95」に合わせると、引き直して数えたほうの割合も9割弱まで落ちます。)

3. 2本を比べるなら、同じ問題を解かせる

ここからが本題です。2本のモデル A・B を比べます。人工の問題1,000問を、次の割合で作りました(この割合は私が決めた仮定です)。

割合
両方とも正解 0.62
両方とも不正解 0.24
A だけ正解 0.05
B だけ正解 0.09

本当の正解率は A が 0.67、B が 0.71。86%の問題では2本の正誤が一致します。実際のテストもこの形です(やさしい問題はどちらも解け、難しい問題はどちらも落とす)。

引いた1,000問での実測はこうなりました。

正解数 正解率 単独の95%区間
A 679 0.679 [0.6501, 0.7079]
B 721 0.721 [0.6932, 0.7488]

2つの区間は 0.0147 の幅で重なっています。 ここで「区間が重なっているから差があるとは言えない」と書くのが、よくある間違いです。差そのものの区間を出すと話が変わります。

一致した問題は差について何も言っていません。効くのは食い違った問題だけで、A だけ正解が45問、B だけ正解が87問、合計132問(13.2%)でした。

比べ方 差の標準誤差 zz 両側 pp
別々に測ったものとして比べる 0.02047 2.052 0.0402
同じ問題で対にして比べる 0.01142 3.678 0.000235

同じデータなのに標準誤差が 1.79分の1 になりました。問題の難しさのばらつきが、対にすると差し引かれて消えるからです。

食い違い132問だけを見るなら、仮定をほとんど置かずに検定できます。帰無仮説「どちらが正解でも同じこと」が正しいなら、45と87の振り分けは表裏を132回投げたのと同じです。

  • 二項分布を全列挙した厳密な値(McNemar 検定):p=3.232×10−4p = 3.232\times10^{-4}
  • 符号をでたらめに入れ替える並べ替え検定を20万回:実測の差 ∣b−c∣=42|b-c|=42 以上になったのは 68回、p=0.000340p = 0.000340

二つは一致します。並べ替え検定は正規分布も σ\sigma も使わず、「向きに意味が無ければこうなる」を実際に20万回作って数えただけです。式を思い出せないときでも、これは書けます。

では 0.01(1点)の差を見分けるには何問要るか。食い違い率を rr、見たい差を dd とすると z=dN/rz = d\sqrt{N}/\sqrt{r} なので

N  ≥  1.962 rd2N \;\ge\; \frac{1.96^{2}\,r}{d^{2}}
(3)

r=0.11r=0.11、d=0.01d=0.01 で 4,226問。ただしこれは zz の期待値がちょうど 1.96 になる件数=半分の確率でしか有意にならない件数です。8割の確率で見分けたいなら 1.961.96 を 1.96+0.841.96+0.84 に替えて 8,634問。人工データで実測すると

件数 対にして比べた 別々に測って比べた
1,000 0.1640 0.0015
4,226 0.4865 0.0260
8,626 0.8023 —
16,000 0.9720 0.4530

式どおり 4,226問で 48.7%、8,626問で 80.2% でした。対にしないと16,135問要ります(表の16,000問で45.3%)。1点の差を主張している比較表を見たら、まず件数を見てください。

4. 選んだ時点で、点は上がっている

次は、同じテスト集合を何度も見ることで起きるずれです。

実力がまったく同じ候補を kk 個用意します(本当の正解率は全部 0.70)。それぞれ別の500問で測り、いちばん良かったものを選びます。これを20,000回繰り返しました。

候補の数 kk 選ばれた版の点(平均) 底上げ 別の500問で測り直すと 「0.70より有意に高い」と出た割合
1 0.6997 −0.0003 0.7003 0.0200
2 0.7115 +0.0115 0.6999 0.0428
5 0.7239 +0.0239 0.7002 0.1062
10 0.7315 +0.0315 0.7000 0.1976
20 0.7379 +0.0379 0.7000 0.3553
50 0.7456 +0.0456 0.7001 0.6680

20個試して一番良かったものを選ぶと、実力が1ミリも違わないのに平均で +0.0379(3.8点)上がります。 1件あたりの σ\sigma は 0.0205 なので、底上げは 1.85σ1.85\sigma 分。しかも20個のうち最良の版は、35.5%の確率で「有意に0.70より高い」と判定されます(本当は差が無いのに)。

§

この先は会員限定です

全42章と全ラボが読み放題。月額¥490、いつでも解約できます。

コメント

コメントにはログインが必要です