1. 程式人生 > >哈爾濱工業大學計算機學院-模式識別-課程總結(三)-線性判別函數

哈爾濱工業大學計算機學院-模式識別-課程總結(三)-線性判別函數

的區別 技術 方便 img 上進 lms amp 計算 生成

1. 線性判別函數

  • 本章介紹的線性判別函數都歸屬於判別式模型,即對於分類問題,根據判別函數\(g(x)\)的取值進行判斷,比如正數歸為第一類,負數與零歸為第二類。關於判別式模版與生成式模型的區別可以閱讀我以前的[博客])(https://www.cnblogs.com/szxspark/p/8426850.html),最典型的生成式模型是貝葉斯分類器,這個在之前的博客中也有介紹。
  • 在介紹具體算法之前,先了解一下線性判別函數的基本概念。

    1.2 線性判別函數基本概念

  • 對於線性可分情況,線性判別函數\(g(x)\)與判別界面\(H\)如下圖所示:
    -技術分享圖片
  • 對於線性不可分情況:
  • 技術分享圖片
  • 線性判別函數的形式化形式為:
    \[g ( \mathbf { x } ) = \mathbf { w } ^ { t } \mathbf { x } + w _ { 0 }\]
    • \(\mathbf { x } = \left( x _ { 1 } , x _ { 2 } , \ldots , x _ { d } \right) ^ { t }\),是特征矢量,\(d\)是特征維度的大小。
    • \(\mathbf { w } = \left( w _ { 1 } , W _ { 2 } , \dots , W _ { d } \right) ^ { t }\),是權矢量。
    • \(W _ { 0 }\) 是偏置。
  • 線性判別函數的增廣形式(便於書寫,便於設計目標函數):
    \[g ( \mathbf { y } ) = \mathbf { a } ^ { t } \mathbf { y }\]
    • \(\mathbf { y } = \left( 1 , x _ { 1 } , x _ { 2 } , \ldots , x _ { d } \right) ^ { t }\),是增廣的特征矢量,在原始向量前插\(1\)即可。
    • \(\mathbf { a } = \left( w _ { 0 } , w _ { 1 } , W _ { 2 } \dots , W _ { d } \right) ^ { t }\),是增廣的權矢量。

      在學習該增廣形式的時候,我曾思考過,既然可以將將線性函數轉化為兩個向量的點乘,那在深度學習中(以pytorch為例),設計線性層(nn.Linear)時為什麽還要令參數bias=True,直接不需要偏置,在輸入向量中拼接一個維度(值為1)豈不是更加方便。答案當然是否定,我仔細思考後發現,如果這麽做的話,對於每一個輸入對會有一個獨立的bias

      ,因為新拼接的“1”值會隨著反向傳播進行叠代更新(每個輸入的更新結果不同),此時bias便失去了意義,不再是與線性函數函數綁定,而是變成了輸入的一個特征。

  • 兩類問題的線性判別準則:
    \[g ( \mathbf { x } ) = \mathbf { w } ^ { t } \mathbf { x } + w _ { 0 } \left\{ \begin{array} { l l } { > 0 , } & { \mathbf { x } \in \omega _ { 1 } } \\ { < 0 , } & { \mathbf { x } \in \omega _ { 2 } } \\ { = 0 } & {拒識 } \end{array} \right.\]
  • 線性分類器的分類界面三維空間可視化:
  • 技術分享圖片

    該界面有幾個特點:
    1.線性分類界面\(H\)\(d\)維空間中的一個超平面;
    2.分類界面將\(d\)維空間分成兩部分,\(R_1\)\(R_2\)分別屬於兩個類別;
    3.判別函數的權矢量\(w\)是一個垂直於分類界面\(H\)的矢量,其方向指向區域\(R_1\)
    4.偏置\(w_0\)與原點到分類界面\(H\)的距離\(r_0\)有關:
    \[r _ { 0 } = \frac { w _ { 0 } } { \| \mathbf { w } \| }\]

1.3 線性判別函數的學習

  • 以下內容全部采用增廣形式的寫法進行介紹。
  • 線性判別函數的學習目的,其實就是想通過\(n\)個訓練樣本\(\mathbf { y } _ { 1 } , \mathbf { y } _ { 2 } , \dots , \mathbf { y } _ { n }\),來確定一個判別函數\(g ( \mathbf { y } ) = \mathbf { a } ^ { t } \mathbf { y }\)的權矢量\(a\)。其中n個樣本集合來源於兩個不同類別。
    • 在線性可分的情況下,希望得到的判別函數能夠將所有的訓練樣本正確分類。
    • 線性不可分的情況下,判別函數產生錯誤的概率最小。
  • 判別函數的非規範化形式:
    \[\left\{ \begin{array} { l l } { \mathbf { a } ^ { t } \mathbf { y } _ { i } > 0 , } & { \mathbf { y } _ { i } \in \omega _ { 1 } } \\ { \mathbf { a } ^ { t } \mathbf { y } _ { i } < 0 , } & { \mathbf { y } _ { i } \in \omega _ { 2 } } \end{array} \right.\]
  • 判別函數的規範化i形式:
    \[\left\{ \begin{array} { c l } { \mathbf { a } ^ { t } \mathbf { y } _ { i } > 0 , } & { \mathbf { y } _ { i } \in \omega _ { 1 } } \\ { - \mathbf { a } ^ { t } \mathbf { y } _ { i } > 0 , } & { \mathbf { y } _ { i } \in \omega _ { 2 } } \end{array} \right.\]

    • 在之後的感知器算法於LMSE算法中,均依據規範化的形式進行介紹,規範化後會使得目標函數形式比較簡單。
    • 規範化是在輸入數據上進行,將屬於第二個類別的數據乘上\(-1\)即可。
    • 需要註意,因為本節內容是在函數的增廣形式下進行介紹,因此在規範化之前需要對於每個類別的數據都拼接一個特征“1”。

2. 二分類問題

2.1 感知器算法Perception

2.2 最小平方誤差算法LMSE

3. 多類問題

3.1 處理方式

3.2 擴展的感知器算法

其他算法

哈爾濱工業大學計算機學院-模式識別-課程總結(三)-線性判別函數