Coursera 機械学習(2週目-2)


正規方程式

この辺りから、文系出身者にとっては理解が追いつきにくくなってきます。。。
正規方程式は要約すると、「求めたい\(θ\)を解析学を使ってサクっと出しちゃおう」というものです。
これだけ聞くと、「最急降下方いらなくない?」と思ってしまいますが、どちらもメリット・デメリットがあります。
例えば以下のようなサンプル数4(m=4)のデータを考えてみます。

広さ(\(feet^2\))
\(x_1\)
寝室の数
\(x_2\)
階数
\(x_3\)
築年数(年)
\(x_4\)
売値($)
\(y\)
2104 5 1 45 460
1416 3 2 40 232
1534 3 2 30 315
852 2 1 36 178

この\(x_1\)から\(x_4\)まで特徴量4つ(n=4)を使って売値yを予測するとします。
まず、\(x_0\)という新しい列を追加します。この列の値は全て1です。

\(x_0\) 広さ(\(feet^2\))
\(x_1\)
寝室の数
\(x_2\)
階数
\(x_3\)
築年数(年)
\(x_4\)
売値($)
\(y\)
1 2104 5 1 45 460
1 1416 3 2 40 232
1 1534 3 2 30 315
1 852 2 1 36 178

\(x_0\)から\(x_4\)でXという行列、yはそのままyという行列を作ります。
\[
X = \begin{pmatrix}
1 & 2104 & 5 & 1 & 45 \\
1 & 1416 & 3 & 2 & 40 \\
1 & 1534 & 3 & 2 & 30 \\
1 & 852 & 2 & 1 & 36
\end{pmatrix}
y = \begin{pmatrix}
460 \\
232 \\
315 \\
178
\end{pmatrix}
\]
あとは以下の式に当てはめて計算します。
$$\large θ=(X^TX)^{-1}X^Ty$$
これで適切な\(θ\)が求まります。ちなみに\(θ\)を正規方程式で求める場合、フューチャースケーリングは不要になります。
さて、最急降下方と正規方程式ですが、どちらもメリット・デメリットが存在します。どのように使い分ければいいでしょうか。
サンプル数がm、特徴量がnだった場合、

最急降下方 正規方程式
メリット デメリット メリット デメリット
  • nが大量にあってもうまく働いてくれる
  • 学習率αを選定する必要がある
  • 繰り返し(イテレーション)が必要
  • 学習率αが不要
  • 繰り返し(イテレーション)が不要
  • \((X^TX)^{-1}\)を計算する必要がある
  • nが多い場合に遅くなる

以上のことから、「nが少なければ正規方程式、nが多ければ最急降下方」という使いわけで良さそうです。
多いか少ないかの判断は、PCの処理能力にも寄りますが、おおよそn=10000あたりからです。

コメントを残す