前言
涉及的知識點:
- 使用最小二乘法來擬合參數的本質原因
- 擬合和過擬合的概念
- 局部線性回歸算法(Locally Weighted Regression)——接觸的首個“non-parametric”(非參數)機器學習方法
- 二元分類問題的機器學習解法
為什么使用最小二乘法?
回想高中的時候老師教最小二乘法狞膘,就直接告訴你用這個最小二乘公式來算直線的斜率k和截距b洪灯,得到的直線就能夠最好地擬合圖中出現的數據赎线。這里“最好地擬合”的含義,我記得老師說是“經過最多點且未經過的點在直線兩邊均勻分布”。
本講用概率的方法使我明白了:“最好的擬合”本質上是求出一個擬合函數 使得圖像上的所有離散點出現在這個函數圖像上或者在這個函數圖像附近的概率最大。從概率觀點出發(fā)愈腾,自然地推導出最小二乘法炉爆。
符號定義
:在確定了
作為參數的前提下堕虹,
出現后,
出現的概率芬首。注意這個符號和
不同赴捞。前者的
不是隨機變量而是一個確定的值(只不過我們還沒有擬合出來);后者的
是一個隨機變量郁稍,在概率論中的含義是“在隨機變量
,
出現的情況下赦政,
出現的條件概率”.
: 表示在給定
作為參數時,所有訓練樣本出現的條件下得到結果
的概率耀怜。
:定義
為
為極大似然函數恢着,強調的是
是隨
的變化而變化的。但是數值上二者是一樣的财破。
: 為了數學計算的方便而定義掰派。
推導過程
設 ;其中
為誤差函數。
假設誤差函數 服從正態(tài)分布(Gaussian distribution),則由于
狈究, 所以
假設誤差函數滿足正態(tài)分布的原因是“中心極限定理”:許多獨立的隨機變量之和趨向于服從正態(tài)分布碗淌。
我們假設引起誤差的因子之間是“獨立同分布的”(Independent and identically distributed),即因子都為隨機變量盏求,相互之間不互相影響,且具有相同的分布亿眠。
這個假設是比較符合事實的碎罚,因為引起誤差的因子往往是互不相關的。比如你要擬合房價和房子面積的關系函數纳像,對于獲取到的面積-房價數據荆烈,一定存在某種不可估量的誤差:你記錄數據的時候恰好房東太太心情不好,把房價定的偏高竟趾、記錄房價的時候抄錯數據等等憔购。這些引起誤差的因子之間是鮮有關聯的。
{% asset_img markdown-img-paste-20180101182814570.png %}
因此可以計算 :
極大似然估計:
求出一個 使上式得最大值岔帽,也就是使數據集
中的數據及其對應的
出現的可能性最大玫鸟。
易知: 使 最大的
值也能夠使
達到最大.
因此轉而求 的最大值:
為使上式最大,只需要使 最小即可犀勒。
結論
從上述推導可以看出屎飘,使用最小二乘估計來擬合訓練樣本的方法,從概率論的角度看贾费,實質上是在假設誤差符合IID的情況下(這個假設符合實際)钦购,求出一個 使訓練樣本中的數據出現的概率最大。(這應該也是擬合的本質褂萧?)
擬合和過擬合的概念
對于給定的訓練樣本押桃,比如之前使用的房價-房子面積的例子,其中只有“房子面積”這一個特征导犹,在之前的定義中唱凯,我們這樣定義 :
。這樣擬合出的將會是一條直線:
為了更加精確地擬合每個訓練樣本锡足,我們可以這樣定義 :
這樣擬合出的是一個二次函數波丰,可以看到擬合效果比上面好一些壳坪,因為經過了更多的點且未經過的點在函數圖像兩邊均勻分布:
以此類推舶得,如果有6個訓練樣本,我們可以這么定義 :
看起來有點像泰勒公式爽蝴,這樣擬合出的曲線將經過每個訓練樣本:
上面的三個例子中:
第一個例子稱為"underfitting"(欠擬合)沐批,因為它沒有較好地反映出房價和房子面積的關系結構。
第三個例子稱為"overfitting"(過擬合)蝎亚,因為它太過于注重擬合訓練樣本九孩,而沒有體現出宏觀上的房價和房子面積的結構關系,也就是說它只能夠表現已知的數據发框,不能夠根據輸入變量來預測輸出變量躺彬。(輸入變量和輸出變量在上一講的筆記中定義)
“非參數”算法
不知道為啥課程要在這里提一嘴“非參數算法”,并以局部線性回歸算法為例子簡要講解了一下,這似乎和之前和之后將要講的內容沒什么關聯宪拥。但是既然講了我就記一下仿野。
所謂“非參數”,是區(qū)別于“確定參數”算法的另一類算法她君,在之前的線性回歸中脚作,我們使用訓練樣本擬合出一個參數 后,如果要根據新的輸入變量預測輸出變量缔刹,那么只需要將新的輸入變量代入擬合出的函數即可球涛。在“非參數”算法中,我們的
的參數和訓練樣本數據是緊密相關的校镐,(可以說訓練樣本數據就是參數的一部分亿扁?)隨著訓練樣本數量的增加,為計算
需要保存的東西也線性增加鸟廓。
“非參數”算法的例子:局部線性回歸算法
在線性回歸算法中魏烫,我們的計算過程如下:
確定
使得
最小
輸出
而在局部線性回歸算法中,我們需要這么計算:
確定
使得
最小
輸出
其中 稱為第i組數據的權重肝箱,是一個非負的值哄褒,它的標準定義如下:
其中 是新輸入的輸入變量。
可以看到煌张,在局部線性回歸算法中呐赡,每次根據新的輸入變量 計算輸出變量
都需要所有之前出現過的訓練樣本參與確定新的
,且從
的表達式中可以看出骏融,距離
越遠的訓練樣本中的輸入變量
對應的權重
越小链嘀,根據這個算法計算每次計算出來的
具有很強的局部特征,因此稱為局部線性回歸算法档玻。
二元分類問題
二元分類問題是指輸出變量y的值域為 的問題怀泊。比如判斷一個人是否患病、判斷一個軟件是否是惡意軟件误趴、判斷一個人是男是女等等問題霹琼,這些問題只有兩種可能的答案,是或者不是凉当。
線性回歸算法在二元分類問題中表現較差
在之前的線性回歸問題中枣申,我們定義 這樣擬合出來的將會是一個線性函數,現在考慮用線性函數來擬合一個簡單的二元分類問題:
現有一組訓練樣本分布看杭,根據線性回歸算法可以擬合出下圖中的直線:
在上述訓練樣本分布下用線性回歸算法解決二元分類問題是簡單的忠藤,只需要根據擬合出的直線求出 時對應的
的值,則
但是對于下面這個訓練樣本分布楼雹,上述線性回歸算法就不能準確分類:
可以看到線性回歸算法解決分類問題時受訓練樣本數據分布的影響較大(如果硬要用線性回歸來解決分類問題似乎要用之前說的”非參數”算法?)
logistic(也稱sigmoid)函數解決分類問題
logistic函數: 函數圖像大致如下:
注意到這個函數值域為 模孩。
定義不同于線性回歸算法的新 :
至于為什么在二分類問題中使用logistic函數來定義 (應該有很多其他值域為
可供選擇)尖阔,這個問題將在下一講的廣義線性模型(GLM)中很自然地解決。
那么榨咐,如何擬合這個新的 的參數呢诺祸?
在線性回歸問題中,我們使用最小二乘法來擬合 的參數祭芦,為什么使用最小二乘法筷笨,上面已經解釋清楚;那么龟劲,如何擬合這個新定義的
的參數呢胃夏?首先我們要明確參數擬合的最終目的是為了得出一個
使得訓練樣本數據出現的概率最大,也就是達到極大似然估計昌跌。
在二元分類問題中仰禀,定義概率分布如下:
因為y的取值只能是0或1,上述兩式可以合并為一個式子:
則極大似然函數
因此蚕愤,
為了使 達到最大值(還記得嗎答恶?我們在線性回歸部分通過使
最小來做到這一點),我們需要使用“梯度上升法”萍诱,簡單來說就是朝著梯度方向每次走一步悬嗓,直到梯度為0時達到最大值。
求解過程在講義中能找到裕坊,如下:
首先要知道怎么求 的導數:
則 的梯度為:
根據梯度上升包竹,得到 的更新公式:
這個更新公式除了梯度上升和下降導致的符號不同之外,和線性回歸中推出的更新公式看起來是一樣的籍凝,只是這里的 和線性回歸中的不同周瞎。這不是巧合,在下一講中的廣義線性模型中我們就能知道原因饵蒂。