Coursera機器學習基石筆記week12
Nonlinear Transformation
Quadratic Hypothesis
已知對於線性模型來說,可以分類線性可分的情況,但是對於線性不可分的情況,我們可以使用非線性模型來進行分類。
對於圖中的h(x),我們可以知道
,但是對應的引數是
。那麼如果我們令
,那麼
。這樣
的轉換就使在x空間中無法線性可分轉換成了可以在z空間線性可分了。這個轉換的過程稱作特徵轉換(Feature Transform).
已知x域中圓形可分在z域中是線性可分的,那麼反過來,如果在z域中線性可分,是否在x域中一定是圓形可分的呢?答案是否定的。由於權重向量w取值不同,x域中的hypothesis可能是圓形、橢圓、雙曲線等等多種情況。
一般來說,x空間中可能含有
,也就說它可能包含圓心不過原點,雙曲線,橢圓的情況。那麼對於在z空間中的hypothesis來說,可以表示為:
Nonlinear Transform
利用對映變換的思想,通過對映關係,把x域中的最高階二次的多項式轉換為z域中的一次向量,也就是從quardratic hypothesis轉換成了perceptrons問題。用z值代替x多項式,其中向量z的個數與x域中x多項式的個數一致(包含常數項)。這樣就可以在z域中利用線性分類模型進行分類訓練。訓練好的線性模型之後,再將z替換為x的多項式就可以了。
Price of NonLinear Transform
由上圖可以看出,計算z域特徵維度個數的時間複雜度是Q的d次方,隨著Q和d的增大,計算量會變得很大。同時,空間複雜度也大。也就是說,這種特徵變換的一個代價是計算的時間、空間複雜度都比較大。
另一方面,z域中特徵個數隨著Q和d增加變得很大,同時權重w也會增多,即自由度增加,VC Dimension增大。令z域中的特徵維度是1+d˘,則在域中,任何d˘+2的輸入都不能被shattered;同樣,在x域中,任何d˘+2的輸入也不能被shattered。d˘+1是VC Dimension的上界,如果d˘+1很大的時候,相應的VC Dimension就會很大。根據之前章節課程的討論,VC Dimension過大,模型的泛化能力會比較差。
如上圖就是一種trade-off,對於左圖來說雖然
不夠小,但是泛化能力更強;對於右圖來說,雖然
但是泛化能力不強。
那麼如何選擇合適的Q,來保證不會出現過擬合問題,使模型的泛化能力強呢?一般情況下,為了儘量減少特徵自由度,我們會根據訓練樣本的分佈情況,人為地減少、省略一些項。但是,這種人為地刪減特徵會帶來一些“自我分析”代價,雖然對訓練樣本分類效果好,但是對訓練樣本外的樣本,不一定效果好。所以,一般情況下,還是要儲存所有的多項式特徵,避免對訓練樣本的人為選擇。
Structured Hypothesis Sets
上述hypothesis稱作Structured Hypothesis Sets
從上圖中也可以看到,隨著變換多項式的階數增大,雖然EinEin逐漸減小,但是model complexity會逐漸增大,造成EoutEout很大,所以階數不能太高。
那麼,如果選擇的階數很大,確實能使
接近於0,但是泛化能力通常很差,我們把這種情況叫做tempting sin。所以,一般最合適的做法是先從低階開始,如先選擇一階hypothesis,看看
是否很小,如果
足夠小的話就選擇一階,如果
大的話,再逐漸增加階數,直到滿足要求為止。也就是說,儘量選擇低階的hypothes,這樣才能得到較強的泛化能力。
總結
這節課主要介紹了非線性分類模型,通過非線性變換,將非線性模型對映到另一個空間,轉換為線性模型,再來進行線性分類。本節課完整介紹了非線性變換的整體流程,以及非線性變換可能會帶來的一些問題:時間複雜度和空間複雜度的增加。最後介紹了在要付出代價的情況下,使用非線性變換的最安全的做法,儘可能使用簡單的模型,而不是模型越複雜越好。