機械学習は関数のあてはめ — 学習 = パラメータ調整を体感する
このコースは新しい数学を教えません。線形代数・微積・統計で触った道具が、機械学習の現場でそのまま動くのを図の上で確かめていきます。まず、機械学習の一番の核心を1つの図で握ってしまいましょう。
「予測する」とは、入力 から出力 を返す関数を用意することです。ただしその関数には調整できるつまみ(パラメータ) がついています。
学習とは、このつまみ を動かして、手元のデータにいちばん合う形を探すこと。それだけです。
触ってみる — 傾き1つで直線を合わせる
黒い点が観測データです。青い直線 にはつまみが1つ、傾き だけあります。スライダーを動かすと、各点から直線までの縦の隔たり(残差、赤い破線)が変わります。
赤い破線の二乗をぜんぶ足したものが損失です。手でいちばん小さくできたと思ったら、「自動最適化」ボタンで答え合わせをしてみてください。あなたの手探りと、計算が出す最適解がどれだけ近いかが分かります。
種明かし — 良し悪しを1つの数で測る
いま起きたことを整理します。
- パラメータ付きの関数 を用意した(直線 )
- 予測の外れ具合を損失という1つの数にまとめた(残差二乗和)
- 損失を最小にする を探した — それが「学習済みモデル」
損失を1つの数に押し込むのがポイントです。良し悪しが1次元の高さになれば、あとは「その谷底を探す」という単純な問題に化けます。このコースの回帰・分類・ニューラルネットは、すべてこの「関数を決めて、損失を測って、最小化する」の変奏です。
機械学習の地図はふつう3つに分かれます。正解ラベル付きのデータから を学ぶ教師あり学習(このコースの主役)、正解なしで構造を見つける教師なし学習(第9章の次元削減)、試行錯誤で報酬を最大化する強化学習。どれも「何かを最適化する」点は共通です。
試してみよう
- 傾きを極端に大きく・小さくすると損失メーターはどうなりますか(両側で増える谷型になります)
- 点が完全に一直線に並んでいたら、最小の損失はいくつになるでしょう(0。残差がすべて消えます)
理解チェック
パラメータを増やせば損失はいくらでも下げられる?
手元のデータ上では、その通りです。切片も傾きも、さらに高次の項も足せば損失は下がり続けます。ですがそれは「見たことのある点」への当てはまりがよくなるだけ。未知のデータでの成績(汎化)は別問題で、第8章の過学習で正面から扱います。
操作チャレンジ — 図で解く3問
読んで分かったら、手で確かめましょう。3問とも、スライダーだけで解けます。
傾き w を動かして、原点を通る直線 ŷ = w x の損失(残差二乗和)を最小にしてください。
損失(残差二乗和) = 55.620