Machine Learning

Stanford Univ, Coursera


「Supervised Learning (教師あり学習)」の一例として「 Linear Regression (線形回帰)」を学ぶ。 ここでは、1入力 $x$、1出力の例を扱う。

Linear Regression with One Variable

「家の広さ $x$ 」を用いて「家の値段 $y$」を推測したい。 Training Set $(x^{(i)}, y^{(i)})$ をあるLearning Algorithm で処理して、 良さそうな Hypothesis 関数 $h(x)$ を作る。 $i$番目のtraining setが$(x^{(i)}, y^{(i)})$。 $y' = h(x')$
Training Setの例: 家の「広さ」と「値段」 の関係。
$i$size of house: $x^{(i)}$price: $y^{(i)}$
12104460
21416232
31534315
4852178
$\cdots$$\cdots$$\cdots$

Cost Function

Hypothesis (仮説関数) : $h_{\theta}(x) = {\theta}_0 + {\theta}_1 x$

$m$ は訓練用データセットのデータ数。

Squared Error Function (2乗誤差関数) を用いて次のように定義する。
Cost Function (目的関数): $\displaystyle J({\theta}_0, {\theta}_1) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 $

$J({\theta}_0, {\theta}_1)$ が最小になるように、${\theta}_0$, ${\theta}_1$ を調節する。

Gradient descent (最急降下法)

Want: ${\min}_{{\theta}_0, {\theta}_1}$ $J({\theta}_0, {\theta}_1)$ 手順: ${\theta}_j$ の更新では ${\theta}_0$ と ${\theta}_1$ を同時に更新するのが重要。
$\displaystyle tmp_0 := {\theta}_0 -\alpha \frac{\partial}{\partial {\theta}_0} J({\theta}_0, {\theta}_1)$
$\displaystyle tmp_1 := {\theta}_1 -\alpha \frac{\partial}{\partial {\theta}_1} J({\theta}_0, {\theta}_1)$
${\theta}_0 = tmp_0$
${\theta}_1 = tmp_1$

$\alpha$ を Learning Rate (学習率) という。

$\displaystyle \frac{\partial}{\partial {\theta}_0} J({\theta}_0, {\theta}_1) = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) $
$\displaystyle \frac{\partial}{\partial {\theta}_0} J({\theta}_0, {\theta}_1) = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) \cdot x^{(i)} $

1-5 test

$i$ 番目の training set を ($x^{(i)}, y^{(i)}$) と表すとき、$3$ 番目 の $y^{(3)}$ はどれ。

$x$ サイズ (feet${}^{2}$)     $y$  価格 (1000)
2104                            460
1416                            232
1534                            315
...

3番目の価格を答えればよい。肝心の表が、問題で隠れて見えないが。(答) 315

1-6 test

$h_{\theta} (x) = \theta_0 + \theta_1 x$ とする。 $\theta_0$ と $\theta_1$ は? (答) $\theta_0 = 0.5$, $=\theta_1 = 1$

1-7 test

training set は $m=3$ 個。 $h_{\theta} (x) = \theta_1 x$、 損失関数を $\displaystyle J(\theta_1 ) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta} (x^{(i)}) - y^{(i)})^2$とするとする。 $J(0)$ は?

(答) どの$i$に対しても $h_{\theta} (x^{(i)}) =0$ だから、 $(1^2 + 2^2 + 3^2)/(2*3) = 14/6$

1-9 test (Gradient Descent)

$\theta_0 = 1$, $\theta_1=2$ とする。$\theta_0$ と $\theta_1$ は 規則 $\theta_j = \theta_j + \sqrt{\theta_0 \theta_1}$ を使って 同時に更新する。結果の$\theta_0$ と $\theta_1$ は?

(答) $\theta_0 = 1+\sqrt{2}$, $\theta_1 = 2+\sqrt{2}$

1-10 test (Gradient Descent Intuition)

$\theta_1$ が $J(\theta_1)$の局所最適と仮定して、 $\theta_1 = \theta_1 - \alpha \frac{d}{d \theta_1} J(\theta_1)$ で 更新すると$\theta_1$はどうなる?

(答) $\theta_1$ は変らない

1-11 test (Gradient Descent For Linear Regression)

正しいものを全て選べ。

   gradient descentが収束するためには、\alphaをゆっくり減らす必要がある。
   (必ずしもそうではない。誤差関数の方が小さくなっていくので)

   gradient descent は$J(\theta)$のグローバルな最小値を見付けることが保証されている。
   (いや、local minimumにつかまることがあるでしょ)

〆 gradient descent は $\alpha$ が固定値であっても収束できる。
   (誤差の方が小さくなっていくので)

〆 線形回帰で特定の $J(\theta_0 , \theta_1)$に対して、局所最適解はない。
   (単なる放物線だから)

Yoshihisa Nitta

http://nw.tsuda.ac.jp/