XIACA NI SEPPO

By xiaca.

Coursera機械学習コース振り返り〜Week1後半〜

Coursera機械学習コース week1 後半の振り返りです。
自分のメモ用です。読んでもなんの得にもなりませんし、Courseraの理解を助けることもないです。

## モデルと目的関数
### モデルの表現
数式の表記法としてx(i)は入力、y(i)は出力になる。m個のトレーニング例は(x(i), y(i)); i= 1,...,mとなりこれをトレーニングセットとなる。(i)はトレーニング瀬戸へのインデックスであり、べき乗ではない。

入力値のスペースはX、出力値のスペースはYとなる。例ではX = Y = R。

教師あり学習をもう少し形式的にすると訓練セットが与えられた時に、関数h: X→Yを学習することであり、h(x)は対応するyの値に対する良い予測である。
関数hは仮説と呼ばれる。

住宅の例でいうと予測しようとしている目標変数が連続的である場合は学習問題を回帰問題と呼ぶ。yが少数の離散致死tか取ることができない時は分類問題という。

### Cost Function(目的関数)
CostFunction(目的関数)を利用してHypothesisFunctions(仮説関数)の制度を測定できる。xからの入力と実際の出力yからの仮説の全ての結果の平均さを取る。

pred = X*theta;
err = (pred-y).^2;
J = 1 / (2*m) * sum(err);

別の言い方をするとそれは、1/2x xは目的関数hの二条平均、または予測値と実際の値の差。

この関数は、「二乗誤差関数」または「平均二乗誤差」とも呼ばれます。平均値は半分になります。


### Cost Function - Intution 1 
視覚的に考えてみると、トレーニングデータセットはx-y平面場に散らばっている。直線を作ろうとしているh theta(x)でこれらの散らばったデータ点をつく通過する。

目的は可能な限り最高のラインを手に入れることです。可能な限り最良の線は、線からの散乱点の平均二乗垂直距離が最小になりようにすう。理想的には、ラインはトレーニグデータセットのすべてのポイントを通過するべき。

目的関数の結果を最小になるhを見つければそれが答え?

### Cost Function - Intution 2
Intution 1の時と違ってthetaが2つある場合の例。theta1の場合は弓なりのグラフとなるけど2つの時は等高線図になる等高線図は、多くの等高線を含むグラフ。2変数あkん数の等高線は同じ線のすべての点で定数あたいを持つ。色によって、3次元的なものを表してるらしい。任意の色を取り、「円」に沿って進むと、コスト関数と同じ値が得られると予想される。たとえば、上の緑色の線上にある3つの緑色の点は、J(theta0, theta1)そして、結果として、それらは同じ行に沿って見つかる。

後々、扱う例では、もっとthetaの数が増えるので等高線図ではプロットできなくなるよという話っぽい?


## パラメータ学習
### Gradient Descent(勾配降下)
仮説関数を持っていて、データにどれだけうまく治るか測定する方法を学んだけど、今度は仮説関数内のパラメータを推定する必要がある。それば勾配降下がおこるところ

フィールドtheta0とtheta1に基づいて仮説関数をグラフ化すると想像してみてください(実際には、コスト関数をパラメータ推定値の関数としてグラフ化する)。xとy自体をグラフ化するのではなく、仮説関数のパラメータ範囲と特定のパラメータのセットを洗濯した結果生じるコストをグラフ化する。

x軸にtheta0を、y軸にtheat1っをコスト関数を軸にz軸に置く、グラフ上の点はおれら特定シータパラメータを用いた我々の仮説を用いた費用関数の結果である。
コスト関数がグラフのピットで最小である時、赤い矢印はグラフの最小点を示す。
これを行う方法としてコスト関数の導関数(関数への接戦)を取る。接戦の傾きはその時点で導関数であり、それは私たちに向かってすすむ方向を与えてくれる。最急降下の方向にコスト関数をステップダウンする。各ステップのサイズは学習率と呼ばれるパラメータαによって決まる。
グラフの星間の距離はパラメータアルファによって決定されるステップを表す。αが小さいほど段差が小さく、大きいほど段差が大きくなる。ステップが実行される方向はJ(theaa0, theta1)の偏導関数によって決まる。グラフのどこから始まるかによって修了する場所の可能性が違う。

勾配アルゴリズム
thetaj := theatj - alpha * (derivative)J(theta0, theta1) (for j = 0 and j = 1)(simuhomeou update theat0 and theta1)

:=は代入の意味
alphaは学習率
alphaの隣は導関数derivative

どこでj = 0, 1は特徴インデックス番号。各反復でtheta1, theta2, ... , theta n を同人い更新する必要がある。


### Gradient Descent Intution
1つのパラメータtheta1を使用した場合、theta1 := theta1 - alpha(d / d *theta1J(theaata1))


### Gradient Descent For Linear Regression(線形回帰のための勾配降下)
特に線形回帰の場合に適用すると、新しい形の勾配降下方程式を導き出すことができる。実際のコスト関数と実際の仮説関数を代入して方程式を修正する。

勾配降下を線形回帰の方程式に当てはめたもの

repeaat until convergence: {
  theta0 := theta0 - alpha * 1/ 2 * sum(h - y)
  theta1 := theta1 - alpha * 1/ 2 * sum((h - y) * x)
}