原文:http://blog.csdn.net/abcjennifer/article/details/7700772
本欄目(Machine learning)包括單參數(shù)的線性回歸、多參數(shù)的線性回歸、Octave Tutorial、Logistic Regression、Regularization、神經(jīng)網(wǎng)絡、機器學習系統(tǒng)設計、SVM(Support Vector Machines 支持向量機)、聚類、降維、異常檢測、大規(guī)模機器學習等章節(jié)。所有內(nèi)容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index)
第二講-------多變量線性回歸?Linear Regression with?multiple?variable
(一)、Multiple Features:
多變量假設:輸出由多維輸入決定,即輸入為多維特征。如下圖所示:Price為輸出,前面四維為輸入:
假設h(x)=θ0+θ1x1+……所謂多參數(shù)線性回歸即每個輸入x有(n+1)維[x0……xn]
(二)、Gradient Descent for Multiple Variables:
左邊為但參數(shù)的梯度遞減單變量學習方法,右圖new algorithm為多變量學習方法。
(三)、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
梯度下降算法中另一關鍵點就是機器學習率的設計:設計準則是保證每一步迭代后都保證能使cost function下降。
這是cost function順利下降的情況:
這是cost function不順利下降的情況:
原因如右圖所示,由于學習率過大,使得隨著迭代次數(shù)的增加,J(θ)越跳越大,造成無法收斂的情況。
解決方法:減小學習率
總結:如何選取學習率:
測試α=0.001,收斂太慢(cost function下降太慢),測試0.01,過了?那就0.003……
(五)、Features and Polynomial Regression
假設我們的輸入為一座房子的size,輸出為該house的price,對其進行多項式擬合:
有兩個選擇,二次方程或者三次方程。考慮到二次方程的話總會到最高點后隨著size↑,price↓,不合常理;因此選用三次方程進行擬合。
這里歸一化是一個關鍵。
或者有另一種擬合方程,如圖粉紅色曲線擬合所示:
(六)、Normal Equation
與gradient descent平行的一種方法為Normal Equation,它采用線性代數(shù)中非迭代的方法,見下圖:
我們想要找到使cost function 最小的θ,就是找到使得導數(shù)取0時的參數(shù)θ:
該參數(shù)可由圖中紅框公式獲得:
具體來說:X是m×(n+1)的矩陣,y是m×1的矩陣
上圖中為什么x要加上一列1呢?因為經(jīng)常設置X(i)0=1;
下面比較一下Gradient Descent與Normal Equation的區(qū)別:
(七)、Normal Equation Noninvertibility
我們已知,對于有m個樣本,每個擁有n個feature的一個訓練集,有X是m×(n+1)的矩陣,XTX是(n+1)×(n+1)的方陣,那么對于參數(shù)θ的計算就出現(xiàn)了一個問題,如果|XTX|=0,即XTX不可求逆矩陣怎么辦?這時可以進行冗余feature的刪除(m<=n的情況,feature過多):