原文:http://blog.csdn.net/abcjennifer/article/details/7700772
本欄目(Machine learning)包括單參數(shù)的線性回歸、多參數(shù)的線性回歸、Octave Tutorial、Logistic Regression、Regularization、神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)系統(tǒng)設(shè)計、SVM(Support Vector Machines 支持向量機)、聚類、降維、異常檢測、大規(guī)模機器學(xué)習(xí)等章節(jié)。所有內(nèi)容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index)
第二講-------多變量線性回歸?Linear Regression with?multiple?variable
(一)、Multiple Features:
多變量假設(shè):輸出由多維輸入決定,即輸入為多維特征。如下圖所示:Price為輸出,前面四維為輸入:

假設(shè)h(x)=θ0+θ1x1+……所謂多參數(shù)線性回歸即每個輸入x有(n+1)維[x0……xn]

(二)、Gradient Descent for Multiple Variables:
左邊為但參數(shù)的梯度遞減單變量學(xué)習(xí)方法,右圖new algorithm為多變量學(xué)習(xí)方法。

(三)、Gradient Descent for Multiple Variables - Feature Scaling
It is important to 歸一化feature,所以用到了feature scaling,即將所有feature歸一化到[-1,1]區(qū)間內(nèi):


(四)、Gradient Descent for Multiple Variables - Learning Rate
梯度下降算法中另一關(guān)鍵點就是機器學(xué)習(xí)率的設(shè)計:設(shè)計準(zhǔn)則是保證每一步迭代后都保證能使cost function下降。
這是cost function順利下降的情況:

這是cost function不順利下降的情況:
原因如右圖所示,由于學(xué)習(xí)率過大,使得隨著迭代次數(shù)的增加,J(θ)越跳越大,造成無法收斂的情況。
解決方法:減小學(xué)習(xí)率

總結(jié):如何選取學(xué)習(xí)率:
測試α=0.001,收斂太慢(cost function下降太慢),測試0.01,過了?那就0.003……

(五)、Features and Polynomial Regression
假設(shè)我們的輸入為一座房子的size,輸出為該house的price,對其進(jìn)行多項式擬合:
有兩個選擇,二次方程或者三次方程??紤]到二次方程的話總會到最高點后隨著size↑,price↓,不合常理;因此選用三次方程進(jìn)行擬合。

這里歸一化是一個關(guān)鍵。
或者有另一種擬合方程,如圖粉紅色曲線擬合所示:

(六)、Normal Equation
與gradient descent平行的一種方法為Normal Equation,它采用線性代數(shù)中非迭代的方法,見下圖:

我們想要找到使cost function 最小的θ,就是找到使得導(dǎo)數(shù)取0時的參數(shù)θ:
該參數(shù)可由圖中紅框公式獲得:

具體來說:X是m×(n+1)的矩陣,y是m×1的矩陣

上圖中為什么x要加上一列1呢?因為經(jīng)常設(shè)置X(i)0=1;
下面比較一下Gradient Descent與Normal Equation的區(qū)別:

(七)、Normal Equation Noninvertibility
我們已知,對于有m個樣本,每個擁有n個feature的一個訓(xùn)練集,有X是m×(n+1)的矩陣,XTX是(n+1)×(n+1)的方陣,那么對于參數(shù)θ的計算就出現(xiàn)了一個問題,如果|XTX|=0,即XTX不可求逆矩陣怎么辦?這時可以進(jìn)行冗余feature的刪除(m<=n的情況,feature過多):
