規則を書くか、規則を当てるか
人に「猫の見分け方を言葉で書いてください」と頼むと、だいたい詰まります。耳が三角、ひげがある、目が縦——どれも例外が出る。にもかかわらず、人は猫を一瞬で見分けます。規則を言葉にできないのに、判別はできる。 この落差が、この本の出発点です。
やり方は2つあります。規則を書くか、規則を当てるか。
書く側の限界は「つまみの数」で決まる
下の図で、まず自分で規則を書いてみてください。点は2種類あり、直線1本で分けます。つまみは2つ——線の角度と切片です。
図は 46.7% の線から始まります(わざと外した位置に置いてあります)。角度と切片を根気よく動かせば、93.3% まで行きます(この図の既定の点群で、2つのつまみを総当たりして測った上限です)。残りは2つの山が重なっている所で、直線1本ではどう引いても拾えません。
ここで大事なのは、合わせられたことではなく、つまみが2つで済んだ理由です。 点が平面の上にあり、特徴が2つ(横と縦)しかないからです。
特徴が 個なら、式に出てくる数は 個です。向きを決める重み が 個、位置を決める切片 が1つ。特徴が3つなら線は平面になって4個、784個——28×28の画素をそのまま並べただけの小さな画像——なら 785個 です。手で回す対象が785個あるとき、人間に残る戦略はありません。
ここで数が1つ余ることに気づいてください。この図は なので数は3個()あるのに、つまみは2つしかありません。 と をまとめて2倍に伸ばしても、 を満たす点の集まりは同じです。線は1ミリも動かない。だから動かす意味があるのは「向き」と「位置」の2つ分だけで、角度と切片というつまみは、その2つをそのまま触れる形に直したものです。
数は 個あるが、境界は 個分しか決めていない。余った1つ——伸ばす倍率——は境界を変えないかわりに、別のものを変えます。 何を変えるかは、この章の後半で測ります。
これが「規則を書く」の限界です。限界は賢さではなく、次元で決まります。
当てる側は、手順が次元で変わらない
同じ図で「データから当てる」に切り替えてください。つまみは動かせなくなり、代わりに線が勝手に動き出します。止まったところで 91.7%——手で総当たりした上限 93.3% のすぐ下です(どちらも同じ点群での実測)。つまみに一度も触らずに、手でできる最良の近くまで来ています。
やっていることは1行です。いまの線で点を判定し、間違え方の向きに線を少し動かす。これを繰り返す。
はロジスティック関数 、 は正解(0か1)、 は1回に動かす量です。式(1)の中身で注目すべきは の部分で、これは予測と正解の差です。差が0なら動かない。差が大きいほど大きく動く。
そして重要なのは、この式が の次元に依存していないことです。特徴が2個でも784個でも、書く式は同じ。for の回る回数が変わるだけです。図の中の「当てる」側も、まさにこの式を1回ずつ回しています。
手で書く側は次元とともに手に負えなくなり、当てる側は次元が増えても手順が変わらない。この非対称が、機械学習を選ぶ理由です。
式(1)はどこから来たのか
「間違え方の向きに動かす」と言い換えましたが、向きを手で決めたわけではありません。下げたい量を1つ決めれば、動かす向きは微分で一意に出ます。 式(1)はその微分です。元の量を見ていきます。
を「その点が である確率」と読むことにします。正解が1の点では を、0の点では を大きくしたい。両方まとめて1本で書くと です( が0か1なので、片方が必ず指数0=1になって消えます)。 個の点で同時に大きくしたいなら掛け算で、掛け算は対数を取れば足し算になり、「大きくしたい」は符号を反転すれば「小さくしたい」になります。
これが交差エントロピー(対数損失)です。 の点では だけが残り、 が1に近いほど0へ、0に近いほど際限なく大きくなります。当てた上に自信があれば小さく、外した上に自信があれば巨大という形です。正解率にはこの「外し方の重さ」がありません——当たりか外れかを1票ずつ数えるだけです。
あとは を で微分します。3段で終わります。
1段目。 ロジスティック関数の微分は自分自身で書けます。。
2段目。 1点分の損失 を で微分します。合成関数なので で、それぞれは
です。掛けると が分母を払います。
約分で が消えること自体が、この損失を選ぶ理由です。 残るのは ——予測と正解の差そのもの。式(1)の括弧の中にいたものです。
3段目。 なので 、。 点の平均に戻して
式(1)は と書き直せます。損失を下げる向きに一歩動く、それだけの式でした。(式(3)の勾配は、この章の図と同じ60点で数値微分と突き合わせて確かめました。差は最大 です。)
「深く」する理由は、まだ出てきていない
ここまでに出てきたのは直線1本です。直線で分けられない配置——たとえば一方が他方を囲んでいる形——では、角度をどう回しても勝てません。図の「ばらつき」を大きくすると、2つの山が混ざって正解率が落ちます。あれは線の引き方が悪いのではなく、直線という形が足りない状態です。
(なお「当てる」側が 93.3% に完全には届かないのは、腕が悪いからではありません。式(1)が下げているのは正解率ではなく対数損失で、両者は別の量です。次の節で実数を出します。)
そこで選択肢が2つに分かれます。
- 特徴を人が作る。 「中心からの距離」のような列を人の手で足してやれば、直線でも分けられるようになります。長らく主流だったやり方で、作る列の設計こそが腕の見せどころでした。
- 特徴も当てる。 入力から特徴を作る段を、分類の段と一緒に、同じ式で学習してしまう。
2つめが「深く」するということです。層を重ねるのは、層ごとに人が意味を決めるためではなく、特徴を作る仕事まで式(1)に任せるためです。この本の残り11章は、ほぼこの一点の展開です。
- 第2章では、当てはめを強くすると手元のデータだけに合ってしまう問題(過学習)を扱います。
- 第3章では、層を重ねたときに式(1)の「差」をどうやって下の層まで届けるかを見ます。連鎖律だけで片付きます。
- 第4章では、 の選び方と、過学習への手当てが同じ問いの裏表であることを見ます。
- 第5章から、扱うデータの形に応じて「どんな前提を構造に埋めるか」が始まります。
よくある誤解: 「正解率が上がる=損失が下がる」
同じ向きに動くことが多いので同じものに見えますが、別の量です。この章の図でずれています。
ずれる出どころは、前に余らせた1つです。正解率は の符号しか見ないので、 と を同じ正の倍率で伸ばしても1点も変わりません。いっぽう損失は の値を見るので、伸ばすほど は0か1に寄り、当たっている点では小さくなり、外している点では跳ね上がります。倍率は境界を変えずに損失だけを変える。 図の既定の60点で測った実数です。
| 正解率 | 対数損失 | |
|---|---|---|
| 手で総当たりした最良の線(角度 ・切片 ) | 93.3%(56/60) | 0.4838 |
| 同じ線を5.55倍に伸ばしただけ | 93.3%(56/60) | 0.2895 |
| 当てる側・240回(図が止まる所) | 91.7%(55/60) | 0.3420 |
1行目と2行目は同じ境界です。点の分け方は1点も変わらないのに、損失は0.4838と0.2895でほぼ倍違う。正解率は境界だけを見ており、損失は境界と自信の強さの両方を見ている——これが「別の量」の中身です。
逆向きにもずれます。240回のあいだに、損失が下がったのに正解率が下がった回が3回ありました。1回目→2回目で正解率 88.3%→81.7%・損失 0.6848→0.6775、25回目→26回目で 88.3%→86.7%・0.5547→0.5509、35回目→36回目で 86.7%→85.0%・0.5205→0.5175。式(1)は毎回きちんと損失を下げていて、それでも正解率は下がりうる。
だから「当てる」側が 91.7% で止まって手の 93.3% に届かないのは腕の問題ではありません。式(1)は自分の仕事(損失を下げる)をしているだけで、正解率の最大を目指していないからです。3行目の損失 0.3420 は1行目の 0.4838 より小さく、損失では当てる側のほうが良い。ただし2行目を見れば分かるように、手の境界も倍率を選べば 0.2895 まで下がります。つまり当てる側は240回では損失の底にも達していません——止める場所を決める話は第4章です。
演習
答えは閉じてあります。手を動かしてから開いてください。
演習1. 1点分の損失 について、 の場合だけを使って を示してください。 は使ってよい。
答えを見る
なら第2項の係数 が0になり、 だけが残ります。 の微分と連鎖律で
本文の に を入れた と一致します。 の側も3行で、 から が出ます。 が0でも1でも、 の微分が分母を払って差だけが残るのが要点です。
演習2. 28×28 の画素をそのまま特徴に使うとします。(a) 式(1)が動かす数はいくつですか。(b) そのうち境界の形を決めているのは何個分ですか。(c) 残った1つは何を変えますか。
答えを見る
(a) 785個。 重み が 個、切片 が1個で 。
(b) 784個分。 と を同じ正の倍率 で伸ばしても の解は同じなので、境界は 個の数のうち1つ分を使っていません。自由度は 。
(c) 予測の自信の強さ。 伸ばすほど の出力が0か1に寄ります。境界が同じなので正解率は変わらず、損失だけが変わる。「よくある誤解」の表の1行目と2行目がこれです。
演習3. 3点とも正解が だとします。モデルAの予測は 、モデルBは 。 を1と判定します。(a) それぞれの正解率。(b) それぞれの平均対数損失。(c) 「正解率が高いほうが損失も小さい」は成り立ちますか。
答えを見る
(a) A は2点が で当たり=。B は3点とも で全外し=。
(b) なので1点分は です。、、。
(c) 成り立ちません。 A は正解率が高いのに損失は約1.75倍大きい。差を作っているのは A の3点目で、外した上に自信があった( なのに )ので1点で を払っています。B は全部外していますが、どれも ——「分からない」に近い場所にいるので1点あたり で済む。損失は外し方の重さを数え、正解率は数えない。 外れを自信たっぷりに出すモデルは、正解率が高くても損失で罰されます。
この章で言っていないこと
- 「深いほうが常に良い」とは言っていません。 層を増やすと学習が不安定になり、第4章で扱う手当てが必要になります。データが少なければ、人が特徴を作るほうが強い場面も残ります。
- 式(1)は分類の最も単純な形(ロジスティック回帰)です。交差エントロピーは導出しましたが、なぜこの損失を選ぶのが良いのか(最尤推定との関係・他の置き方との比較)は第2章で扱います。
- 「よくある誤解」の数字は、この章の図の既定の点群(60点・合成データ)での実測です。点の数やばらつきを変えれば値は変わります。変わらないのは正解率が倍率に鈍く、損失が倍率に敏感という性質のほうです。
- 図の点は合成データです。実データの性質(欠損・偏り・分布の変化)は扱っていません。
もっと詳しく
この章は地図です。各論は記事側に揃っています。
コメント
コメントにはログインが必要です