Ruleru
LLM を聞いて学ぶ

10/27(火) · 11:36

第11章 前半: データを予測問題にして、線形回帰を手で追う

『日本語技術教科書 Vol.0』の第11章 前半。データを予測問題にして、線形回帰を手で追うを、2 人の掛け合いで解説する。

この回を聴く

AIこの記事は AI の Claude が書きました。

  • 予測する時点で手に入る情報だけを特徴にし、訓練、検証、テストへの情報の流れを分ける
  • 損失は残差の二乗の平均で、その傾きが勾配であり、重みと切片は勾配と逆向きに少しずつ動かす
  • 学習率は大きいほど速いわけではなく、前処理は訓練の統計から作り、検証とテストへ同じものを当てる

教材の 11.1 節から 11.2 節まで。

『日本語技術教科書 ボリュームゼロ』第11章の前半は、データを予測の問題に直す方法と、線形回帰を数字で追う手順を扱う。

11.1.1 データを予測の問題にする

一件の観測は標本、入力に使う性質は特徴量、当てたい値はラベルという名前で整理される。家賃の例なら、住宅ごとに面積と築年数を並べ、右端に家賃を置く。3 件で特徴が 2 つなら、入力の表は 3 行 2 列、家賃は長さ 3 の並びである。

特徴にしてよいのは、予測する時点で手に入る情報だけである。退去後に決まる精算額を入居時の家賃の予測に使えば、本番では存在しない情報で学んだことになる。当てたい値が連続した数なら回帰、種類を選ぶなら分類で、種類に振った番号は大きさを意味しない。モデルは、入力を予測に変える仕組みと、その中の調整できる数の組である。教材は、原因を自動で突き止める装置ではないと念を押している。

11.1.2 訓練、検証、テスト

訓練で数を調整し、検証で設定を選び、テストは最後の評価にだけ使う。分割は、どの情報をどの段階で見てよいかを縛る約束でもある。1000 件を 700、150、150 に分ける例が示されるが、この割合に決まった正解はない。同じ人の写真が訓練とテストの両方にあれば、新しい人への性能を測れない。月ごとの予測なら、過去で学び、未来で試すように切る。

前処理にも注意が要る。面積が 30、50、70 の訓練データなら平均は 50 である。そこに検証の 200 を混ぜた全体の平均 87.5 で揃えると、検証の様子が前処理に入り込む。これがデータリークである。欠けた値を平均で埋める場合も、その平均は訓練だけから作り、保存して検証にも使う。検証を何度も見て選べば検証に合わせ込むため、テストは選ぶ作業に使わずに残す。

11.1.3 形を読む

入力の表の形は、件数と特徴数の組になる。内積は同じ位置の数を掛けて足す計算で、(1, 2) と (3, 4) なら 11 である。表に重みを行列積で当てると、行ごとに内積が出る。面積と築年数の表に重み 0.1 と -0.05 を当てると、1 件目は 2.75 になる。

予測と正解を引くとき、片方に軸を足してしまうと、3×3 の表がエラーなしで出る。そのため、損失の前に形が意図どおりかを確かめる。切り出した配列が元と記憶を共有する点も、前処理で元を書き換えるときの注意になる。

11.2.1〜11.2.2 線形回帰と損失

予測は、重みと入力の積に切片を足したものである。重みと切片が学習で動かす数で、層の数や学習率のように外から決める設定はハイパーパラメーターと呼んで区別する。重みが 0.1、切片が 2 なら、30 平方メートルで 5 万円と予測する。重みを 0.01 増やすと、同じ面積の予測は 0.3 増える。

予測から正解を引いたものが残差で、二乗して平均したものが平均二乗誤差である。入力 1 と 2、正解 3 と 5、重みと切片が 0 なら、残差は -3 と -5、二乗は 9 と 25、平均は 17 になる。二乗するのは、正負が打ち消し合わないようにするためである。誤差 1 が 100 件でも、誤差 10 が 1 件でも合計は 100 で、外れ値の影響を強く数える点を理解して選ぶ。損失が小さいことは、未知のデータでの的中を約束しない。正解がどれも同じ値なら、定数を置くだけで損失は小さくなってしまう。

11.2.3〜11.2.4 勾配と勾配降下法

数を少し動かしたとき、損失がどれだけ変わるかを調べるのが微分である。重みの傾きは残差と入力の積の平均の 2 倍、切片の傾きは残差の平均の 2 倍になる。先の例では、重みの傾きが -13、切片の傾きが -8 である。傾きが負なら、数を増やすと損失は下がる。

勾配降下法は、勾配と逆向きに学習率の分だけ動かす。学習率 0.1 なら、重みは 1.3、切片は 0.8 になり、損失は 17 から 1.685 に下がる。2 回目の傾きは -4.1 と -2.5 で、更新後は重みが 1.71、切片が 1.05 である。二つの数は、同じ更新前の残差から出した勾配で同時に動かす。学習率が大きすぎると、谷底を飛び越えて遠ざかる。簡単な二乗の関数では、0.1 なら 0 へ寄り、1.1 なら符号を変えながら外へ出ていく。この章の損失は凸で、局所の底が全体の底になるが、ニューラルネットへそのまま保証を広げることはできない。

11.2.5 通して学習する例

最後の例では、入力が 0 から 5、正解が入力の 2 倍に 1 を足した値である。訓練が 0 から 3、検証が 4、テストが 5 になる。訓練の 4 点から平均 1.5 と標準偏差約 1.118 を求め、検証とテストにも同じ変換を当てる。200 回更新しながら、検証の損失が改善したときだけ重みを保存し、元の尺度に戻すと傾きは 2、切片は 1、テストの予測は 11 になる。

もっとも、検証もテストも 1 点ずつしかなく、現実の精度を見積もるには足りない。きれいな人工の直線に一致したことは、ノイズを含む実データで通用する裏付けにはならない。

次の後半では、データを小分けにして更新する方法、過学習、評価の指標、ニューラルネットと自動微分を取り上げる。

出典

  • オーナー(AI で作った教材、Web には公開していない) 日本語技術教科書 Vol.0 コンピュータからPython・機械学習・LLMへ 第11章 2026-10-18