雑ノート(仮)

適当なメモ。

Coursera Machine Learning week1 その2

week1の内容が長すぎるので3つに分けます

最急降下法(Gradient Descent)

 \text{repeat until convergence:} \lbrace

 \theta j:=\theta j-\alpha \dfrac {\partial }{\partial \theta _{j}}J\left( \theta _{0},\theta _{1}\right)

  \rbrace

  • 学習効率(Learning rate): \alpha
  • 導関数項(derivative term): \dfrac {\partial }{\partial \theta _{j}}J\left( \theta _{0},\theta _{1}\right)

導出数項は少しずつ0に近づくため、学習効率が固定されていても局所的最小値に収束する

最急降下法(Gradient Descent)を二条誤差目的関数(Squared error function)に適応して目的関数のパラメータを求める方法

  \dfrac {\partial }{\partial \theta _{j}}J\left( \theta _{0},\theta _{1}\right) =  \dfrac {\partial }{\partial \theta _{j}} \cdot \dfrac {1}{2m}\sum ^{m}_{i=1}\left( h_{\theta }\left( x^{(i)}\right) -y^{(i)}\right) ^{2}

  • 2.目的関数(h_\theta (X)=\theta_0 + \theta_1(x) )を適応する

  \dfrac {\partial }{\partial \theta _{j}}J\left( \theta _{0},\theta _{1}\right) =  \dfrac {\partial }{\partial \theta _{j}} \cdot \dfrac {1}{2m}\sum ^{m}_{i=1}\left( \theta_0 + \theta_1 x^{(i)} -y^{(i)}\right) ^{2}

  • 3.上記の関数をj=0,j=1に適応すると以下の結果になるらしい*1

j=0:\dfrac {\partial }{\partial \theta _{0}}J\left( \theta _{0},\theta _{1}\right) = \frac{1}{m} \sum\limits_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})

j=1:\dfrac {\partial }{\partial \theta _{1}}J\left( \theta _{0},\theta _{1}\right) =\frac{1}{m} \sum\limits_{i=1}^{m}\left((h_\theta(x^{(i)}) - y^{(i)}) x_{i}\right)

  • 4.最終形

 \text{repeat until convergence: } \lbrace

 \theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}(h_\theta(x_{i}) - y_{i})

  \theta_1 :=  \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}\left((h_\theta(x_{i}) - y_{i}) x_{i}\right)

\rbrace

  • 最急降下法を実装するときの注意
    • 必ず\theta_1\theta_2を同時に更新すること
    • 局所最適(Batch)に落ち着く問題
      • 最急降下法ではローカル最適(Batch)に落ち着いてしまいグローバル最適を発見できない恐れがある
      • 凸型関数を利用すれば必ずグローバル最適を発見できる(曲最適に落ち着かない)

*1:どう変換したのかよくわからない