テデトクログイン

← コースに戻る

機械学習は関数のあてはめ — 学習 = パラメータ調整を体感する

このコースは新しい数学を教えません。線形代数・微積・統計で触った道具が、機械学習の現場でそのまま動くのを図の上で確かめていきます。まず、機械学習の一番の核心を1つの図で握ってしまいましょう。

「予測する」とは、入力 xx から出力 yy を返す関数を用意することです。ただしその関数には調整できるつまみ(パラメータ)θ\theta がついています。

y^=fθ(x)\hat{y} = f_\theta(x)

学習とは、このつまみ θ\theta を動かして、手元のデータにいちばん合う形を探すこと。それだけです。

触ってみる — 傾き1つで直線を合わせる

黒い点が観測データです。青い直線 y^=wx\hat{y} = w x にはつまみが1つ、傾き ww だけあります。スライダーを動かすと、各点から直線までの縦の隔たり(残差、赤い破線)が変わります。

損失 = 45.15
ŷ = w x の傾き1つで、赤い残差の二乗和(損失)が増減します。手で最小にできたら、ボタンで答え合わせを。

赤い破線の二乗をぜんぶ足したものが損失です。手でいちばん小さくできたと思ったら、「自動最適化」ボタンで答え合わせをしてみてください。あなたの手探りと、計算が出す最適解がどれだけ近いかが分かります。

種明かし — 良し悪しを1つの数で測る

いま起きたことを整理します。

  1. パラメータ付きの関数 fθf_\theta を用意した(直線 wxwx)
  2. 予測の外れ具合を損失という1つの数にまとめた(残差二乗和)
  3. 損失を最小にする θ\theta を探した — それが「学習済みモデル」

損失を1つの数に押し込むのがポイントです。良し悪しが1次元の高さになれば、あとは「その谷底を探す」という単純な問題に化けます。このコースの回帰・分類・ニューラルネットは、すべてこの「関数を決めて、損失を測って、最小化する」の変奏です。

機械学習の地図はふつう3つに分かれます。正解ラベル付きのデータから fθf_\theta を学ぶ教師あり学習(このコースの主役)、正解なしで構造を見つける教師なし学習(第9章の次元削減)、試行錯誤で報酬を最大化する強化学習。どれも「何かを最適化する」点は共通です。

試してみよう

理解チェック

パラメータを増やせば損失はいくらでも下げられる?

手元のデータ上では、その通りです。切片も傾きも、さらに高次の項も足せば損失は下がり続けます。ですがそれは「見たことのある点」への当てはまりがよくなるだけ。未知のデータでの成績(汎化)は別問題で、第8章の過学習で正面から扱います。

操作チャレンジ — 図で解く3問

読んで分かったら、手で確かめましょう。3問とも、スライダーだけで解けます。

1 / 3

傾き w を動かして、原点を通る直線 ŷ = w x の損失(残差二乗和)を最小にしてください。

損失(残差二乗和) = 55.620