有監(jiān)督學習和無監(jiān)督學習
機器學習,分為有監(jiān)督學習和無監(jiān)督學習。
有監(jiān)督學習,就是有訓練集,有label,我們是可以知道模型輸出是什么樣子的。而無監(jiān)督學習,沒有訓練集,沒有label,提前無法知道輸出的樣子。
有監(jiān)督學習分為兩種:回歸和分類。模型輸出若為連續(xù)變量,就是回歸;模型輸出為離散值,就是分類。
無監(jiān)督學習常見的是聚類。給定一堆數據集,從中找出相似的類簇,這個過程沒有l(wèi)abel。
神經網絡,深度學習,SVM和決策樹,都是有監(jiān)督學習。下面介紹的方法也只適用于有監(jiān)督學習。
模型
機器學習最一般的模型就是下面這個圖。

給定m個訓練集,每個訓練集有n個特征。訓練集作為X輸入給模型,經過訓練后模型就是h(x)。
線性模型的求解,就是求解h(x)表達式的過程。
線性模型的表示
線性模型的表達式為
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn [1]
其中
- x1~xn就是n個特征,作為模型的輸入
- θ0~θn,就是線性模型的n+1個參數
根據m個訓練集,求解θ0~θn的具體數值的過程,就是所謂的學習。求解線性模型,就是求其參數θ0~θn的解。
線性模型求解思路
我們當然是希望求解出來的模型,預測值盡量逼近真實值。
為了更為直觀的說明線性模型,以最簡單的線性模型hθ(x)=θ0+θ1x為例,用下圖表示,紅色點為訓練集。

圖中有4(m)個訓練集,h(x)是最終求得的模型。
我們希望模型的預測值與真實值之間的差別,盡量的小。用歐氏距離來表示:
J=(h(x(1))y(1))2+(h(x(2))y(2))2+(h(x(3))y(3))2+(h(x(4))y(4))2 [2]
其中
- x(1),和y(1)表示第一個訓練集的特征,和真實值
J更一般的表達式為
J=∑14(h(x(i))y(i))2=∑14(θ0+θ1x(i)y(i))2 [3]
這里的預測值與真實值之間的歐氏距離之和J,就是所謂的代價函數。找到能使代價函數最小值點的參數θ,就是線性模型的解。
代價函數
代價函數的定義如下
J(θ)=12m∑1m(h(x(i))y(i))2 [4]
它的物理含義就是預測值與真實值之間的差別。差別越小,就說明我們的模型和真實模型越接近。代價函數J是其參數θ的二次函數。代價函數的表達式,就是均方差MSE(Mean Square Error)的定義。
這里還是用簡化的線性模型來說明問題,另式[3]中的θ1=0和y(i)=1,可得代價函數的曲線為

這里把代價函數看成曲線,是最簡單的情況。代價函數更多情況下是以多維曲面的形態(tài)出現的(曲面也有最低點)。
梯度下降法
圖3中,代價函數的最小值是其導數為零的點。

在圖中任意取一個θ值作為其初始值,然后不斷迭代最終找到代價函數導數為0點(最小值)的過程,就是求解代價函數參數θ的過程(學習),也就是梯度下降法的物理含義。它的思想為,只要順著梯度方向下降迭代,就能找到代價函數的最小值。
對于代價函數是多維曲面的情況,可以把曲面類比成山,想象梯度下降法就是從山上往下走,每一步順著梯度方向,最終肯定就能走到山谷最低點。
無論是曲線還是曲面,會不會有多個局部最低點呢?答案是會的,梯度下降法很可能找不到真正的最低點,它可能只能找到局部最低點。
但好消息是,線性模型的代價函數,在數學上已經被證明為凸函數,即這種函數的局部最低點就是其最低點。所以我們在線性模型中用梯度下降思路求解最小值是沒有問題的。
最小均方算法
最小均方算法``LMS(Least Mean Square)是梯度下降思想的具體實現,它是由Bernard Widrow和Marcian E. Hoff提出的,所以也叫Widrow-Hoff學習規(guī)則。
為什么叫最小均方呢,這是因為代價函數的表達式,就是均方差``MSE(Mean Square Error)的定義。
LMS算法是這樣的
Repeat until convergence (for every j){
θj:=θjαθjJ(θ) [5]
}(update θj simultaneously)
其中
- θj表示線性模型的某一個參數
:=是賦值符號
- α表示
學習速率
convergence是收斂
它說明,為了求得任意一個參數θj的值,首先我們需要對θj取一個初值,然后順著代價函數J的梯度方向( θj)不斷迭代,直到θj的值收斂(即本次迭代和上次迭代的值為同一個),就找到了θj的值。
對每一個參數都一起進行這個迭代過程,就能求得每一個參數的值。不過這里要注意的是,要結束一輪迭代后,才對各個參數的值做更新。
這里要注意的是學習速率α,它會把梯度值放大。所以學習速率越大,尋找代價函數最小值過程中迭代的步長也就越大。
學習速率太大,有可能導致參數不收斂,或收斂到最后震蕩較大
學習速率太小,則肯定會收斂,但收斂迭代次數會很大
- 一般情況下,每一次迭代后,梯度都會變小。所以即便
學習速率是固定值,學習步長也會隨著迭代次數增加而減小
代價函數的形狀也與各個特征x的大小相關,為了讓代價函數形狀均衡,一般要對特征做歸一化(比如-1
最小均方算法的一般化表達推導
將代價函數的表達式[4]帶入LMS算法式[5]中的αθjJ(θ),用偏微分對表達式化簡,可得
αθjJ(θ)
=αθj(12m∑1m(h(x(i))y(i))2)
=α12m2∑1m(h(x(i))y(i))θj(h(x(i))y(i)) [6]
將線性模型的表達式[1]帶入[6]中的θj(h(x(i))y(i))
θj(h(x(i))y(i))
=θj(θ0+θ1x(i)1+θ2x(i)2+...+θnx(i)ny(i))
=0+0+...+x(i)j+0+...+0 [7]
所以,式[6]可簡化為
αθjJ(θ)
=α1m∑1m(h(x(i))y(i))x(i)j [8]
將式[8]帶入LMS算法表達式[5]中,可得LMS算法的一般化表達式為
Repeat until convergence (for every j){
θj:=θjα1m∑1m(h(x(i))y(i))x(i)j [9]
}(update θj simultaneously)
參考
- Andrew NG. machine learning class at coursera
|