原文:http://blog.csdn.net/abcjennifer/article/details/7691571網絡
本欄目(Machine learning)包括單參數的線性迴歸、多參數的線性迴歸、Octave Tutorial、Logistic Regression、Regularization、神經網絡、機器學習系統設計、SVM(Support Vector Machines 支持向量機)、聚類、降維、異常檢測、大規模機器學習等章節。全部內容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index)機器學習
第一章-------單參數線性迴歸 Linear Regression with one variable函數
(一)、Cost Function學習
線性迴歸是給出一系列點假設擬合直線爲h(x)=theta0+theta1*x, 記Cost Function爲J(theta0,theta1).net
之因此說單參數是由於只有一個變量x,即影響迴歸參數θ1,θ0的是一維變量,或者說輸入變量只有一維屬性。設計
下圖中爲簡化模式,只有theta1沒有theta0的狀況,即擬合直線爲h(x)=theta1*xblog
左圖爲給定theta1時的直線和數據點×ci
右圖爲不一樣theta1下的cost function J(theta1)get
cost function plot:it
當存在兩個參數theta0和theta1時,cost function是一個三維函數,這種樣子的圖像叫bowl-shape function
將上圖中的cost function在二維上用不一樣顏色的等高線映射爲以下右圖,可得在左圖中給定一個(theta0,theta1)時又圖中顯示的cost function.
咱們的目的是最小化cost function,即上圖中最後一幅圖,theta0=450,theta1=0.12的狀況。
(二)、Gradient descent
gradient descent是指梯度降低,爲的是將cost funciton 描繪出以後,讓參數沿着梯度降低的方向走,並迭代地不斷減少J(theta0,theta1),即穩態。
每次沿着梯度降低的方向:
參數的變換公式:其中標出了梯度(藍框內)和學習率(α):
gradient即J在該點的切線斜率slope,tanβ。下圖所示分別爲slope(gradient)爲正和負的狀況:
同時更新theta0和theta1,左邊爲正解:
關於學習率:
α過小:學習很慢; α太大:容易過學習
因此若是陷入局部極小,則slope=0,不會向左右變換
本圖表示:無需逐漸減少α,就能夠使降低幅度逐漸減少(由於梯度逐漸減少):
求導後:
由此咱們獲得:
其中x(i)表示輸入數據x中的第i組數據