1. 程式人生 > >Coursera機器學習基石筆記week12

Coursera機器學習基石筆記week12

Nonlinear Transformation

Quadratic Hypothesis

已知對於線性模型來說,可以分類線性可分的情況,但是對於線性不可分的情況,我們可以使用非線性模型來進行分類。
在這裡插入圖片描述
對於圖中的h(x),我們可以知道 w 0 = 0.6 ,

w 1 = 1 , w 2 =
1 w_0=0.6,w_1=-1,w_2=-1 ,但是對應的引數是 1 , x 1
2 , x 2 2 1,x_1^2,x_2^2
。那麼如果我們令 z 0 = 1 , z 1 = x 1 2 , z 2 = x 2 2 z_0=1,z_1=x_1^2,z_2=x_2^2 ,那麼 h ( x ) = s i g n ( 0.6 + w 1 z 1 + w 2 z 2 ) h(x)=sign(0.6+w_1z_1+w_2z_2) 。這樣 x n z n x_n\rightarrow z_n 的轉換就使在x空間中無法線性可分轉換成了可以在z空間線性可分了。這個轉換的過程稱作特徵轉換(Feature Transform).
在這裡插入圖片描述
已知x域中圓形可分在z域中是線性可分的,那麼反過來,如果在z域中線性可分,是否在x域中一定是圓形可分的呢?答案是否定的。由於權重向量w取值不同,x域中的hypothesis可能是圓形、橢圓、雙曲線等等多種情況。
在這裡插入圖片描述
一般來說,x空間中可能含有 Φ 2 ( x ) = ( 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 ) \Phi_2(x)=(1,x_1,x_2,x_1^2,x_1x_2,x_2^2) ,也就說它可能包含圓心不過原點,雙曲線,橢圓的情況。那麼對於在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,對於左圖來說雖然 E i n E_{in} 不夠小,但是泛化能力更強;對於右圖來說,雖然 E i n = 0 E_{in}=0 但是泛化能力不強。

那麼如何選擇合適的Q,來保證不會出現過擬合問題,使模型的泛化能力強呢?一般情況下,為了儘量減少特徵自由度,我們會根據訓練樣本的分佈情況,人為地減少、省略一些項。但是,這種人為地刪減特徵會帶來一些“自我分析”代價,雖然對訓練樣本分類效果好,但是對訓練樣本外的樣本,不一定效果好。所以,一般情況下,還是要儲存所有的多項式特徵,避免對訓練樣本的人為選擇。
在這裡插入圖片描述

Structured Hypothesis Sets

在這裡插入圖片描述
上述hypothesis稱作Structured Hypothesis Sets
在這裡插入圖片描述
從上圖中也可以看到,隨著變換多項式的階數增大,雖然EinEin逐漸減小,但是model complexity會逐漸增大,造成EoutEout很大,所以階數不能太高。

那麼,如果選擇的階數很大,確實能使 E i n E_{in} 接近於0,但是泛化能力通常很差,我們把這種情況叫做tempting sin。所以,一般最合適的做法是先從低階開始,如先選擇一階hypothesis,看看 E i n E_{in} 是否很小,如果 E i n E_{in} 足夠小的話就選擇一階,如果 E i n E_{in} 大的話,再逐漸增加階數,直到滿足要求為止。也就是說,儘量選擇低階的hypothes,這樣才能得到較強的泛化能力。
在這裡插入圖片描述

總結

這節課主要介紹了非線性分類模型,通過非線性變換,將非線性模型對映到另一個空間,轉換為線性模型,再來進行線性分類。本節課完整介紹了非線性變換的整體流程,以及非線性變換可能會帶來的一些問題:時間複雜度和空間複雜度的增加。最後介紹了在要付出代價的情況下,使用非線性變換的最安全的做法,儘可能使用簡單的模型,而不是模型越複雜越好。