Coursera week2
Linear Regression with Multiple Variables(重回帰分析)
単回帰分析が、1つの目的変数を1つの説明変数で予測したのに対し、重回帰分析は1つの目的変数を複数の説明変数で予測しようというものです。
Hypothesis function(仮説関数)
仮説関数の式
https://gyazo.com/7820aa19b8b8a1edd8603e62487ec5a2
また、上記の式は下のように変形することができます。
https://gyazo.com/fd3b75799a3a80c9b14d634fae05255a
データに最もフィットするような$ \theta を探すために、実データとの誤差を定量化する目的関数 (cost function)と、目的関数の最小値を求めるためのアルゴリズムである最急降下法 (Gradient Descent)を導入します。
Cost Function (目的関数)
目的関数の式
$ J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2
選んだパラメーターθを用いて計算した予測値$ h_\theta(x) と、実際の値yがどれだけずれているのか、二乗差をとって足し合わせ、平均を取っているだけです。2で割っているのは、最小値を求めるために微分する際、$ h_\theta(x) の中から来る2と相殺されるようにつけてあります。
Gradient Descent (最急降下法)
最急降下法の式
https://gyazo.com/2a2560c09a42dd143ae7e3965195115d
下の画像では、1つの変数を使用した勾配降下と複数の変数を使用した勾配降下を比較しています。
https://gyazo.com/20a409f848679051410e2880ced01d71
Feature Scaling (スケーリング)
もし説明変数の範囲が互いにバラバラだったなら、スケーリング (feature scaling)をして、全ての説明変数の値の範囲を、おおよそ −1 ≤$ x_i ≤ 1 にする必要があります。
https://gyazo.com/f9eada4ce714be7e0ad6ee082433b7bc
あるいは、
https://gyazo.com/f9ddc07783d3f6d227ee1e23b8cc1f4a
とすれば、値の範囲をおおよそ-1から1にすることができます。mean(x)はベクトルxの平均値、SD(x)はxの標準偏差、max(x)、min(x)は、それぞれ最大値と最小値を表します。
$ \theta 同士の範囲に差があると、目的関数$ J(\theta) が非対称的な形になり、最急降下法で最小値にたどり着くまでに時間がかかります。スケーリングによって、目的関数$ J(\theta) が対称的な形となり、最急降下法で最小値までたどり着く時間が短くなります。
https://gyazo.com/25412772a610019eea78b1cf5bf25c4a
Normal Equation(正規方程式)
最急降下法以外に、目的関数$ J(\theta) の最小値を求める方法として、正規方程式 (normal equation)を解く方法があります。
https://gyazo.com/237d998d82e9f53b150af377dffc1f05
正規方程式
https://gyazo.com/3fb8276375ebfd7f9ee3f141aa0af3a4
最急降下法と正規方程式のメリット・デメリット
最急降下法
学習率αを選ぶ必要がある
たくさんの繰り返しによって解にたどり着く
説明変数の数が多くても (n = 1,000,000程度)上手く動く
収束の目安は、1回のアップデートにおける$ \theta_jの値の変化が$ 10^{-3}以下になるとき
正規方程式
学習率αを選ばなくてよい
直接解が求められる
Xのサイズが大きい場合、計算に時間がかかる ($ (X^TX)^{-1} の計算量が膨大)