【数学基础】算法工程师必备的机器学习--线性模型(下)
??作者:華校專
作者信息:
華校專,曾任阿里巴巴資深算法工程師、智易科技首席算法研究員,現任騰訊高級研究員,《Python 大戰機器學習》的作者。
編者按:
算法工程師必備系列更新啦!繼上次推出了算法工程師必備的數學基礎后,小編繼續整理了必要的機器學習知識,全部以干貨的內容呈現,哪里不會學哪里,老板再也不用擔心你的基礎問題!
第二章:線性模型
五、感知機
5.1 定義
感知機是二分類的線性分類模型,屬于判別模型。
模型的輸入為實例的特征向量,模型的輸出為實例的類別:正類取值 +1, 負類取值 -1 。
感知機的物理意義:將輸入空間(特征空間)劃分為正、負兩類的分離超平面。
設輸入空間(特征空間)為;輸出空間為;輸入 為特征空間的點;輸出為實例的類別。
定義函數 為感知機。其中:
* 為權值向量, 為偏置。它們為感知機的參數。
sign 為符號函數:
感知機的幾何解釋: 對應特征空間 上的一個超平面 S ,稱作分離超平面。
* 是超平面 S 的法向量, b 是超平面的截距。
超平面 S 上方的點判別為正類。
超平面 S 下方的點判別為負類。
超平面 S 將特征空間劃分為兩個部分:
5.2 損失函數
給定數據集,其中。
若存在某個超平面 S : , 使得將數據集中的正實例點與負實例點完全正確地劃分到超平面的兩側,則稱數據集 為線性可分數據集;否則稱數據集 線性不可分。
劃分到超平面兩側,用數學語言描述為:
根據感知機的定義:
1) 對正確分類的點
2) 對誤分類的點
如果將感知機的損失函數定義成誤分類點的中總數,則它不是 的連續可導函數,不容易優化。
因此,定義感知機的損失函數為誤分類點到超平面 S 的總距離。
對誤分類的點,則 距離超平面的距離為:
由于,以及,因此上式等于
不考慮
,則得到感知機學習的損失函數:其中:1) 為誤分類點的集合。它隱式的與 相關,因為 優化導致誤分類點減少從而使得 收縮。
2) ?之所以不考慮因為感知機要求訓練集線性可分,最終誤分類點數量為零,此時損失函數為零。即使考慮分母,也是零。若訓練集線性不可分,則感知機算法無法收斂。3) 誤分類點越少或者誤分類點距離超平面S 越近, 則損失函數 L 越小。
對于特定的樣本點,其損失為:
因此給定訓練集 ,損失函數是 的連續可導函數。
若正確分類,則損失為 0 。
若誤分類,則損失為 的線性函數。
給定訓練集
,求參數:假設誤分類點集合 是固定的,則損失函數 的梯度為:
通過梯度下降法,隨機選取一個誤分類點,對進行更新:
其中 是步長,即學習率。
通過迭代可以使得損失函數 不斷減小直到 0 。
感知機學習算法的原始形式:
1) 輸入:
a) 線性可分訓練集
對于某個誤分類點 ,假設它被選中用于更新參數。
則:
假設迭代之前,分類超平面為 ,該誤分類點距超平面的距離為 。
假設迭代之后,分類超平面為 ,該誤分類點距超平面的距離為 。
幾何解釋 :當一個實例點被誤分類時,調整 使得分離平面向該誤分類點的一側移動,以減少該誤分類點與超平面間的距離,直至超平面越過所有的誤分類點以正確分類。
感知機學習算法由于采用不同的初值或者誤分類點選取順序的不同,最終解可以不同。
感知機收斂性定理:設線性可分訓練集
1) 存在滿足 的超平面: ,該超平面將 完全正確分開。且存在 ,對所有的 ,N 有:
其中 $2) 令,則感知機學習算法原始形式在 上的誤分類次數 滿足:
感知機收斂性定理說明了:
1) 當訓練集線性可分時,感知機學習算法原始形式迭代是收斂的。
此時算法存在許多解,既依賴于初值,又依賴于誤分類點的選擇順序。
為了得出唯一超平面,需要對分離超平面增加約束條件。
2) 當訓練集線性不可分時,感知機學習算法不收斂,迭代結果會發生震蕩。
根據原始迭代形式 :取初始值 均為 0。則 可以改寫為:
這就是感知機學習算法的對偶形式。
感知機學習算法的對偶形式:
1) 輸入:
線性可分訓練集
學習率
2) 輸出:
,其中。?感知機模型。
3) 步驟:
初始化: 。
在訓練集中隨機選取數據 ,若則更新:
在訓練集中重復選取數據來更新 直到訓練集中沒有誤分類點。
在對偶形式中, 訓練集 僅僅以內積的形式出現,因為算法只需要內積信息。
可以預先將 中的實例間的內積計算出來,并以矩陣形式存儲。即 Gram矩陣:
與原始形式一樣,感知機學習算法的對偶形式也是收斂的,且存在多個解。
支持向量機(support vector machines :SVM)是一種二分類模型。它是定義在特征空間上的、間隔最大的線性分類器。
間隔最大使得支持向量機有別于感知機。
如果數據集是線性可分的,那么感知機獲得的模型可能有很多個,而支持向量機選擇的是間隔最大的那一個。
支持向量機還支持核技巧,從而使它成為實質上的非線性分類器。
支持向量機支持處理線性可分數據集、非線性可分數據集。
當訓練數據線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機(也稱作硬間隔支持向量機)。
當訓練數據近似線性可分時,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機(也稱為軟間隔支持向量機)。
當訓練數據不可分時,通過使用核技巧以及軟間隔最大化,學習一個非線性分類器,即非線性支持向量機。
當輸入空間為歐氏空間或離散集合、特征空間為希爾伯特空間時,將輸入向量從輸入空間映射到特征空間,得到特征向量。支持向量機的學習是在特征空間進行的。
特征向量之間的內積就是核函數,使用核函數可以學習非線性支持向量機。
非線性支持向量機等價于隱式的在高維的特征空間中學習線性支持向量機,這種方法稱作核技巧。
線性可分支持向量機、線性支持向量機假設這兩個空間的元素一一對應,并將輸入空間中的輸入映射為特征空間中的特征向量。
非線性支持向量機利用一個從輸入空間到特征空間的非線性映射將輸入映射為特征向量。
歐氏空間是有限維度的,希爾伯特空間為無窮維度的。
歐式空間,具有很多美好的性質。
若不局限于有限維度,就來到了希爾伯特空間。
如果再進一步去掉完備性,就來到了內積空間。
如果再進一步去掉"角度"的概念,就來到了賦范空間。此時還有“長度”和“距離”的概念。
歐式空間希爾伯特空間 內積空間 賦范空間。
從有限到無限是一個質變,很多美好的性質消失了,一些非常有悖常識的現象會出現。
越抽象的空間具有的性質越少,在這樣的空間中能得到的結論就越少
如果發現了賦范空間中的某些性質,那么前面那些空間也都具有這個性質。
一、 線性可分支持向量機
給定一個特征空間上的訓練數據集 ,其中
為第 i 個特征向量,也稱作實例; 為 的類標記;稱作樣本點。
當 時,稱 為正例。
當 時,稱 為負例。
假設訓練數據集是線性可分的,則學習的目標是在特征空間中找到一個分離超平面,能將實例分到不同的類。
分離超平面對應于方程 , 它由法向量 和截距 決定,可以用 來表示。
給定線性可分訓練數據集,通過間隔最大化學習得到的分離超平面為: ,
相應的分類決策函數:,稱之為線性可分支持向量機。
當訓練數據集線性可分時,存在無窮個分離超平面可以將兩類數據正確分開。
感知機利用誤分類最小的策略,求出分離超平面。但是此時的解有無窮多個。
線性可分支持向量機利用間隔最大化求得最優分離超平面,這樣的解只有唯一的一個。
可以將一個點距離分離超平面的遠近來表示分類預測的可靠程度:
一個點距離分離超平面越遠,則該點的分類越可靠。
一個點距離分離超平面越近,則該點的分類則不那么確信。
在超平面 確定的情況下:
1) 能夠相對地表示點 距離超平面的遠近。
2) 的符號與類標記 的符號是否一致能表示分類是否正確
時,即 位于超平面上方,將 預測為正類。
此時若 則分類正確;否則分類錯誤。
時,即 位于超平面下方,將 預測為負類。
此時若 則分類正確;否則分類錯誤。
可以用 來表示分類的正確性以及確信度,就是函數間隔的概念。
符號決定了正確性。
范數決定了確信度。
對于給定的訓練數據集 和超平面
定義超平面 關于樣本點 的函數間隔為:
定義超平面 關于訓練集 的函數間隔為:超平面 關于 中所有樣本點 的函數間隔之最小值: 。
1.2 幾何間隔
如果成比例的改變 和 ,比如將它們改變為和,超平面 還是原來的超平面,但是函數間隔卻成為原來的100倍。
因此需要對分離超平面施加某些約束,如歸一化,令,使得函數間隔是確定的。此時的函數間隔成為幾何間隔。
對于給定的訓練數據集 和超平面
1) 定義超平面 關于樣本點 的幾何間隔為:
2) 定義超平面 關于訓練集 的幾何間隔為:超平面 關于 中所有樣本點 的幾何間隔之最小值: 。
由定義可知函數間隔和幾何間隔有下列的關系:
1) 當 時,函數間隔和幾何間隔相等。
2) 當超平面參數, 等比例改變時:
超平面并沒有變化。
函數間隔也按比例改變。
幾何間隔保持不變。
支持向量機學習基本思想:求解能夠正確劃分訓練數據集并且幾何間隔最大的分離超平面。幾何間隔最大化又稱作硬間隔最大化。
對于線性可分的訓練數據集而言,線性可分分離超平面有無窮多個(等價于感知機),但幾何間隔最大的分離超平面是唯一的。
幾何間隔最大化的物理意義:不僅將正負實例點分開,而且對于最難分辨的實例點(距離超平面最近的那些點),也有足夠大的確信度來將它們分開。
求解幾何間隔最大的分離超平面可以表示為約束的最優化問題:
考慮幾何間隔和函數間隔的關系,改寫問題為:
函數間隔 的大小并不影響最優化問題的解。
假設將 按比例的改變為,此時函數間隔變成 (這是由于函數間隔的定義):
因此取,則最優化問題改寫為:
這一變化對求解最優化問題的不等式約束沒有任何影響。
這一變化對最優化目標函數也沒有影響。
注意到和 是等價的,于是最優化問題改寫為:
這是一個凸二次規劃問題。
凸優化問題,指約束最優化問題:
其中:
1) 目標函數 和約束函數 都是 上的連續可微的凸函數。
2) 約束函數 是 上的仿射函數。
稱為仿射函數,如果它滿足
當目標函數 是二次函數且約束函數 是仿射函數時,上述凸最優化問題成為凸二次規劃問題。
線性可分支持向量機原始算法:
求得最優解
由此得到分離超平面: ,以及分類決策函數 : 。
輸入:線性可分訓練數據集 , 其中
輸出:
最大幾何間隔的分離超平面
分類決策函數
算法步驟:
構造并且求解約束最優化問題:
可以證明:若訓練數據集 線性可分,則可將訓練數據集中的樣本點完全正確分開的最大間隔分離超平面存在且唯一。
1.4 支持向量
在訓練數據集線性可分的情況下,訓練數據集的樣本點中與分離超平面距離最近的樣本點的實例稱為支持向量。
支持向量是使得約束條件等號成立的點,即:
對于正實例點,支持向量位于超平面
對于負實例點,支持向量位于超平面
超平面 、 稱為間隔邊界, 它們和分離超平面 平行,且沒有任何實例點落在 、 之間。
在、之間形成一條長帶,分離超平面位于長帶的中央。長帶的寬度稱為 、 之間的距離,也即間隔,間隔大小為 。
在決定分離超平面時,只有支持向量起作用,其他的實例點并不起作用。
如果移動支持向量,將改變所求的解。
如果在間隔邊界以外移動其他實例點,甚至去掉這些點,則解是不變的。
由于支持向量在確定分離超平面中起著決定性作用,所以將這種分離模型稱為支持向量機。
支持向量的個數一般很少,所以支持向量機由很少的、重要的訓練樣本確定。
1.5 對偶算法
將線性可分支持向量機的最優化問題作為原始最優化問題,應用拉格朗日對偶性,通過求解對偶問題得到原始問題的最優解。這就是線性可分支持向量機的對偶算法。
對偶算法的優點:
對偶問題往往更容易求解。
引入了核函數,進而推廣到非線性分類問題。
原始問題:
定義拉格朗日函數:
其中 為拉格朗日乘子向量。
根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
先求。拉格朗日函數分別為 求偏導數,并令其等于 0
代入拉格朗日函數:
對偶問題極大值為:
設對偶最優化問題的 的解為,則根據 `KKT` 條件有:
根據第三個式子,此時必有。同時考慮到,得到 :
分類決策函數寫作: 。
上式稱作線性可分支持向量機的對偶形式。
可以看到:分類決策函數只依賴于輸入 和訓練樣本的內積。
于是分離超平面寫作: 。
根據第一個式子,有: 。
由于 不是零向量(若它為零向量,則 也為零向量,矛盾),則必然存在某個 使得。
線性可分支持向量機對偶算法:
最大幾何間隔的分離超平面
分類決策函數
1、構造并且求解約束最優化問題:
求得最優解 。
2、 計算 。
3、 選擇 的一個正的分量 ,計算 。
4、 由此得到分離超平面: ,以及分類決策函數 :
算法步驟:
輸入:線性可分訓練數據集
輸出:
只依賴于 對應的樣本點 ,而其他的樣本點對于 沒有影響。
1) 將訓練數據集里面對應于 的樣本點對應的實例 稱為支持向量。
2) 對于 的樣本點,根據 ,有:
即 一定在間隔邊界上。這與原始問題給出的支持向量的定義一致。
二、線性支持向量機
對于線性不可分訓練數據,線性支持向量機不再適用,但可以想辦法將它擴展到線性不可分問題。
設訓練集為 ,其中 。假設訓練數據集不是線性可分的,這意味著某些樣本點 不滿足函數間隔大于等于 1 的約束條件。
即約束條件變成了:。
這里 稱作懲罰參數,一般由應用問題決定。
1、 C 值大時,對誤分類的懲罰增大,此時誤分類點凸顯的更重要 2、 C 值較大時,對誤分類的懲罰增加,此時誤分類點比較重要。3、 C 值較小時,對誤分類的懲罰減小,此時誤分類點相對不重要。
對每個松弛變量 ,支付一個代價。目標函數由原來的變成:
對每個樣本點 引進一個松弛變量,使得函數間隔加上松弛變量大于等于 1。
相對于硬間隔最大化,稱為軟間隔最大化。
于是線性不可分的線性支持向量機的學習問題變成了凸二次規劃問題:
1) 這稱為線性支持向量機的原始問題。
2) 因為這是個凸二次規劃問題,因此解存在。
可以證明 的解是唯一的; 的解不是唯一的, 的解存在于一個區間。
對于給定的線性不可分的訓練集數據,通過求解軟間隔最大化問題得到的分離超平面為: ,
以及相應的分類決策函數: ,稱之為線性支持向量機。線性支持向量機包含線性可分支持向量機。現實應用中訓練數據集往往是線性不可分的,線性支持向量機具有更廣泛的適用性。
定義拉格朗日函數為:
原始問題是拉格朗日函數的極小極大問題;對偶問題是拉格朗日函數的極大極小問題。
1) 先求 對的極小。根據偏導數為0:
得到:2) 再求極大問題:將上面三個等式代入拉格朗日函數:
于是得到對偶問題:
根據 KKT 條件:
則有: 。
1) 若存在 的某個分量,則有:。
若 的所有分量都等于 0 ,則得出 為零,沒有任何意義。若 的所有分量都等于 C,根據,則要求。這屬于強加的約束, ? ? ?1、 根據 ,有。? ? ?2、 考慮 ,則有:
2) 分離超平面為: 。
3) 分類決策函數為: 。
線性支持向量機對偶算法:
4) 輸入:訓練數據集 ,其中
5) 輸出:
分離超平面
分類決策函數
求得最優解 。
1、 計算: 。
2、 選擇 的一個合適的分量,計算: 。
可能存在多個符合條件的。這是由于原始問題中,對 b 的解不唯一。所以
實際計算時可以取在所有符合條件的樣本點上的平均值。
3、 由此得到分離超平面:,以及分類決策函數: 。
選擇懲罰參數 ,構造并且求解約束最優化問題:
算法步驟:
在線性不可分的情況下,對偶問題的解 中,對應于 的樣本點 的實例點 稱作支持向量,它是軟間隔的支持向量。
線性不可分的支持向量比線性可分時的情況復雜一些:
根據,以及,則:
1) 若 ,則, 則松弛量。此時:支持向量恰好落在了間隔邊界上。
2) 若, 則,于是 可能為任何正數:
1、 若,則支持向量落在間隔邊界與分離超平面之間,分類正確。2、 若,則支持向量落在分離超平面上。3、 若,則支持向量落在分離超平面誤分類一側,分類錯誤。
定義取正函數為:
定義合頁損失函數為: ,其中 為樣本的標簽值, 為樣本的模型預測值。
則線性支持向量機就是最小化目標函數:
合頁損失函數的物理意義:
1) 當樣本點 被正確分類且函數間隔(確信度) 大于 1 時,損失為0
2) 當樣本點 被正確分類且函數間隔(確信度) 小于等于 1 時損失為
當樣本點 未被正確分類時損失為
可以證明:線性支持向量機原始最優化問題等價于最優化問題:
合頁損失函數圖形如下:
因為0-1損失函數不是連續可導的,因此直接應用于優化問題中比較困難。
通常都是用0-1損失函數的上界函數構成目標函數,這時的上界損失函數又稱為代理損失函數。
感知機的損失函數為,相比之下合頁損失函數不僅要分類正確,而且要確信度足夠高(確信度為1)時,損失才是0。即合頁損失函數對學習有更高的要求。
0-1損失函數通常是二分類問題的真正的損失函數,合頁損失函數是0-1損失函數的上界。
理論上SVM 的目標函數可以使用梯度下降法來訓練。但存在三個問題:
合頁損失函數部分不可導。這可以通過sub-gradient descent 來解決。
收斂速度非常慢。
無法得出支持向量和非支持向量的區別。
5.3 學習算法
5.3.1 原始形式
? ? ? b) 學習率
? ? ? 2) 輸出:
? ? ? a) 感知機模型:
? ? ?3) 步驟:
? ? ? a) 選取初始值 。
? ? ? b) 在訓練集中選取數據 。若 則:
? ? ? c)在訓練集中重復選取數據來更新 直到訓練集中沒有誤分類點。
5.3.2 性質
因此有 。這里要求,因此步長 要相當小。
5.3.3 收斂性
5.3.4 對偶形式
第三章:支持向量機
1.1 函數間隔
1.3 硬間隔最大化
2.1 原始問題
2.2 對偶問題
2.3 支持向量
2.4 合頁損失函數
總結
以上是生活随笔為你收集整理的【数学基础】算法工程师必备的机器学习--线性模型(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学术相关】读研究生,从学会「拒绝」导师
- 下一篇: 【CV】图像分割二十年,盘点影响力最大的