本文介紹了非線性變換的整體流程:通過非線性變換,將非線性模型映射到另一個空間,轉換爲線性模型,再來進行線性分類。
之後介紹了非線性變換存在的問題:時間複雜度和空間複雜度的增加。
最後證明了非線性變換的一般做法:儘可能使用簡單的模型,而不是模型越複雜越好。
文章目錄
12. Nonlinear Transformation
12.1 Quadratic Hypotheses
在之前的章節中,學習的機器學習模型都爲線性模型,即假設空間都爲線性的(2D平面中爲一條直線,3D空間爲一個平面),使用的得分爲線性得分(linear scores) 。其中, 爲特徵值向量, 爲權重。
線性模型的優點是理論上可以使用VC限制進行約束(假設是非線性的各種曲線或者超平面,則每種假設都可以完全二分,即有 種二分類。),這保證了 (VC-Dimension比較小)。但是對於線性不可分(non-linear separable)的問題(如下圖), 很大,從而導致 也很大,導致分類結果不理想。
爲了解決線性模型的缺點,我們可以使用非線性模型來進行分類。基於這種非線性思想,之前討論的PLA、Regression問題也可以通過非線性的形式進行求解。例如可以使用一個半徑爲 圓心在原點的圓劃分,它的hypotheses可以寫成:
該公式的含義爲將樣本點到原點距離的平方與數值0.6作比較,圓形將樣本集分離,圓形內部是正類,標記爲+1,外部是負類,標記爲-1,此種方式稱作圓形可分(circular separable)。如下圖所示:
將公式(12-01)做如下轉換,變爲熟悉的線性模型:
原公式中, 的權重爲 , ,,但是 的特徵不是線性模型的 ,而是 。通過令 , 可以變成上式。
這種 的變換可以看作將 空間中的點映射到 空間中去,即從 空間的圓形可分映射到 空間的線性可分。 域中的直線對應於 域中的圓形。其背後的思想是通過非線性的特徵變換 (feature transform) 將圓形可分(非線性可分)變爲線性可分。
那麼問題來了,已知在 域中圓形可分,在 域中線性可分;反過來,如果在 域中線性可分,是否在 域中一定圓形可分呢?
答案是否定的。由於權重向量 取值不同, 域中的hypothesis可能是圓形、橢圓、雙曲線等等多種情況。
通過這種形式轉換的 空間的直線對應着原 空間中特殊的二次曲線(quadratic curves)。說“特殊”是因爲表示的圓只能是圓心過原點的圓,不能隨意表示各種情況的圓。如果想要表示 空間中所有的二次曲面,應設計一個更大的 空間,其特徵轉換如公式爲:
通過以上特徵轉換, 空間中的每個超平面就對應 空間中各種不同情況的二次曲線(圓、橢圓、雙曲線)。則 空間中的假設空間H爲:
上式中, 表示 空間中的假設函數。
習題01:
12.2 Nonlinear Transform
從 空間轉換到 空間,則在Z空間中獲得的好的線性假設函數,相當於在X空間中獲得了好的二次假設函數,即在 空間中存在線性可分的直線對應於在 中(非線性)可分的二次曲線。目標就是在 空間中找到一個最佳的分類線(假設函數)。
利用映射變換的思想,通過映射關係,把 空間中的最高階二次的多項式轉換爲 空間中的一次向量 z,即從二次假設轉換成了感知器問題。用 z 值代替 x 多項式,其中向量 z 的個數與 空間中 x 的多項式的個數相同(包含常數項)。這樣就可以在 域中利用線性分類器進行訓練。訓練好之後,再將 z 替換爲 x 的多項式即可(反變換)。具體過程如下:
- 空間中的數據爲 , 空間的數據集爲 ;
- 通過特徵變換函數 將 空間中線性不可分的數據集 變換爲 空間中線性可分的數據集 ;
- 使用線性分類算法和 空間的數據集 獲得表現良好的感知器模型 (最優權重向量) ;
- 最後得到最優的假設函數 。
上圖中,最下邊兩幅圖表達了該思路的核心思想。判斷某個樣本屬於哪個類別,只需要將 空間中的數據變換到 空間;然後使用 空間中的假設函數(線性分類器)對樣本進行分類;最後反變換到 空間,得到真實類別。
這類模型由兩部分構成:
- 非線性變換函數 :通過特徵變換,將非線性可分問題轉換爲線性可分問題;
- 線性模型:包括之前學習的二分類、線性迴歸和Logistic迴歸等;
使用以上求解非線性分類的思路可以解決二次PLA,二次迴歸,三次迴歸,…,多項式迴歸等多種問題。
特徵變換(feature transform) 的思想非常常見,比如我們熟知的手寫數字識別任務中,從原始的像素值特徵轉換爲具體的特徵,比如密度、對稱性等:
習題2:
12.3 Price of Nonlinear Transform
如果 的特徵維度爲 維,也就是包含 個特徵,那麼二次多項式個數,即 空間的特徵維度爲:
如果 特徵維度是2維的,即 ,那麼它的的二次多項式爲 ,有六項。
如果階數爲 , 空間的特徵維度爲 d 維,則它的 空間特徵維度爲:
由上式可以看出,計算 空間特徵維度個數的時間複雜度是 的 次方,隨着 和 的增大,計算量變大;空間複雜度也大。
特徵轉換還帶來另一個問題。在前面的章節中講述過,模型參數的自由度大概是該模型的VC維度。z域中特徵個數隨着Q和d增加變得很大,同時權重w也會增大,即自由度增加,VC-Dimension 增大。令z域中的特徵維度爲 ,在 域中,任何 的輸入都不能被 shattered,同樣,在 域中,任何 的輸入也不能被 shattered; 是 VC-Dimension 的上界,如果 很大,相應的 VC-Dimension 也會很大。根據之前章節課程的討論,VC-Dimenslon 過大,模型的泛化能力會比較差。
下例解釋了 VC-Dimension 過大,導致分類效果不佳的原因:
上圖中,左邊用直線進行線性分類,有部分點分類錯誤;右邊用四次曲線進行非線性分類,所有點都分類正確,那麼哪一個分類效果好呢?單從平面上這些訓練數據來看,四次曲線的分類效果更好,但是四次曲線模型很容易帶來過擬合的問題,雖然它的 比較小;泛化能力上,左邊的分類器更好。也就是說,VC-Dimension 過大會帶來過擬合問題, 不能過大。
那麼如何選擇合適的Q,避免過擬合,提高模型泛化能力呢?一般情況下,爲了儘量減少特徵自由度,會根據訓練樣本的分佈情況,人爲地減少、省略一些項。但是,這種人爲地刪減特徵會帶來一些“自我分析”代價,雖然對訓練樣本分類效果好,但是對訓練樣本外的樣本,不一定效果好。所以,一般情況下,還是要保存所有的多項式特徵,避免對訓練樣本的人爲選擇。
習題3:
12.4 Structured Hypothesis Sets
下面討論 空間到 空間的多項式變換。
如果特徵維度是一維的,變換多項式只有常數項:
如果特徵維度是兩維的,變換多項式包含了一維的 :
如果特徵維度是三維的,變換多項式包含了二維的 :
以此類推,如果特徵維度是Q維的,則它的變換多項式爲:
這種結構稱爲 Structured Hypothesis Sets:
對於這種 Structured Hypothesis Sets ,VC-Dimention 和 滿足如下關係:
VC-Dimention 與錯誤率之間的關係如下:
由上圖易知,隨着變換多項式的階數增大,雖然 逐漸減小,但模型複雜度會逐漸增大,造成 很大,所以階數不能太高。
如果選擇的階數很大,能使 ,但泛化能力很差,這種情況叫做tempting sin。所以,一般做法是先從低階開始,如先選擇一階假設,看看 是否很小,如果 足夠小就選擇一階,如果很大就逐漸增加階數,直到滿足要求爲止。也就是說,儘量選擇低階的假設,這樣才能得到泛化能力較強的模型。
習題4:
summary
本節課介紹了非線性變換的整體流程(通過非線性變換,將非線性模型映射到另一個空間,轉換爲線性模型,再來進行線性分類。
之後介紹了非線性變換存在的問題:時間複雜度和空間複雜度的增加。
最後介紹了在付出代價的情況下,使用非線性變換的最安全做法:儘可能使用簡單的模型,而不是模型越複雜越好。
參考:
https://www.cnblogs.com/ymingjingr/p/4306666.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning