Coursera Machine Learning 1週目の復習
自分用のメモです。
①Introduction
回帰問題
予測するものの値が連続的である場合の問題。実数値を推測する問題。
(数学の関数の連続と定義は違うけどニュアンス的に一緒)
土地の広さをxとしたとき、土地の相場yは、y=2x のような関数を算出する問題。
分類問題
対象にラベルをつける問題。これはりんご、これはみかん、のように判別する問題。
②Model and Cost Function
数式の定義
x:インプット
y:アウトプット
m:データの組の総数
i:何番目のデータの組か
$$
(x^{(i)}, y^{(i)}) : データの組
$$
h:仮説関数 (hypothesis)
仮説関数 (Hypothesis)
記号hで表される。yをxから推測するための関数。
y = h(x) の形をとる。
仮説という名前はなんとなくつけられてしまっただけで、先生的にはあまりいい命名じゃないと。
コスト関数 (Cost Function)
適切な仮説関数を導き出す(仮説関数の係数、定数の適切な値を導き出す)ために使われる関数。
hが線形回帰の場合、仮説関数は下のように表される。
$$
h_θ(x)^{x{(i)}} = θ_0+θ_1x^{(i)}
$$
このとき、コスト関数は
$$
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x_i)-y_i)^2
$$
となる。
このJ()が最小となるθ_0,θ_1を求めることで適切な仮説関数が導き出される。
③Parameter Learning
最急降下法
勾配法のアルゴリズムの一つ。
関数の傾きから関数の最小値を探索する、連続最適化問題のアルゴリズム。
勾配法としては最も単純で、よく使われる。
(それから、線形回帰のコスト関数以外にも使えるよ。)
最急降下法を用いる手順
・θ_0, θ_1 を適当に設定してスタート
・θ_0,θ_1を変えながら、J(θ_0,θ_1) を小さくしていき、最小値を探す
その更新式が↓
$$
\theta_{j}:=\theta_{j}-α\frac{\partial}{\partial \theta_{j}}J(\theta_{0},\theta_{1})
$$
αは探索幅(学習率と呼ぶ)、:=はイコールではなく代入の意味
なぜ更新式がこの形をとるのかがいまいち理解できないときは、
Gradient Descent Intuition - Linear Regression with One Variable | Coursera
ポイントは、全てのθの値は同時に更新する必要があること。つまり
$$
temp0:=\theta_{0}-α\frac{\partial}{\partial \theta_{0}}J(\theta_{0},\theta_{1})
temp1:=\theta_{1}-α\frac{\partial}{\partial \theta_{1}}J(\theta_{0},\theta_{1})
\theta_{0} := temp0
\theta_{1}:=temp1
$$
こういう順番で行う必要がある。先にθ0を更新して、そのθ0を用いてθ1を算出してはいけない、ということ