--- tags: 機器學習基石下:方法篇 --- Ch12 Nonlinear Transformation === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ## [Quadratic Hypothesis](https://www.coursera.org/learn/ntumlone-algorithmicfoundations/lecture/nlWdl/quadratic-hypothesis) 在先前的章節中,學習的機器學習模型都為線性模型,即假設空間都為線性的(2D平面中為一條直線,3D空間為一個平面),使用的得分為線性得分(linear scores)$s=w^Tx$。其中 $x$ 為特徵值向量,$w$ 為權重。 ### Linear Hypothesis 線性模型的優點是理論上可以使用 VC 限制來約束約束(假設是非線性的各種曲線或超平面,則每種假設都可以完全二分,即有 $2^N$ 種二分類。),這保證了 $E_{in} \approx E_{out}$(VC-Dimension比較小)。但對於線性不可分(non-linear separable)的問題(如下圖),$E_{in}$ 很大,從而導致 $E_{out}$ 也很大,導致分類結果不理想。 ![](https://hackmd.io/_uploads/ryzPedoWa.png) - linear 好處:VC dimension 是有限的,所以 $E_{in}$ 和 $E_{out}$ 通常很接近 - linear 壞處:$E_{in}$ 常常會很大 - 那要怎樣突破 linear 的限制? ### Circular Separable 為了解決線性模型的缺點,我們可以使用非線性模型來進行分類。基於這個非線性思想,先前討論的 PLA、Regression 問題也可以透過非線性的形式來求解。例如可以使用一個半徑為 $\sqrt{0.6}$ 圓心在原點的圓劃分,它的 hypotheses可以寫成:$h_{SEP}(x) = sign(-x^2_1 - x^2_2 + 0.6)$ 此公式的意義為將樣本點到原點距離的平方與數值 0.6 作比較,圓形將樣本集分離,圓形內部是正類,標記為 +1,外部是負類,標記為 -1,此種方式稱作圓形可分(circular separable)。如下圖所示: ![](https://hackmd.io/_uploads/HkmNZuoW6.png) - 它不是線性可分,但我們可以說它圓圈圈可分XD - 但這樣可能要再從頭來一次說,怎麼設計一個圓圈圈演算法,再從頭把線改成圓圈圈 - 接下來說明如何系統化地設計這些演算法。 ### Circular Separable & Linear Separable 將公式(12-01)做如下轉換,變成熟悉的線性模型: ![](https://hackmd.io/_uploads/SJ-v-_sWa.png) 原公式中,$h(x)$ 的權重為 $w_0 = 0.6$,$w_1 = -1$,$w_2 = -1$,但是 $h(x)$ 的特徵不是線性模型的 $(1,x_1,x_2)$,而是$(x,x^2_1,x^2_2)$。通過令 $z_0 = 1, z_1 = x^2_1, z_2 = x^2_2$,$h(x)$ 可以變成上式。 這種 $x_n \rightarrow z_nx$ 的變換可以看作將 $X$ 空間中的點映射到 $Z$ 空間中去,即從 $X$ 空間的圓形可分割映射到 $Z$ 空間的線性可分。$Z$ 域中的直線對應於 $X$ 域中的圓形。背後的思想是透過非線性的特徵變換 $ \Phi$(feature transform) 將圓形可分(非線性可分)變成線性可分。 ![](https://hackmd.io/_uploads/rkr2f_iZp.png) > - 我們先把 $x_0,x_1^2,x_2^2$ 用 $z_0,z_1,z_2$ 代替 > - 然後用 $\tilde w$ 代替 $w$,表示這不是原來針對 $x$ 的 weight > - 然後就可以很簡潔的使用 $\text{sign}(\tilde w^Tz)$ 來代表我們的 hypothesis $h(x)$ > - 我們可以把它想成,從原來的空間 $\mathcal X$ 轉換到另一個空間 $\mathcal Z$,使得轉換後是 linear separable 的。 - **這樣的轉換我們稱為 feature transform $\phi$** > - 反過來說,如果在新的空間 $\mathcal Z$ 是 linear separable 的,那就代表我在原來的空間 $\mathcal X$ 一定可以用圓圈圈分開嗎? 那麼問題來了,已知在 $X$ 域中圓形可分,在 $Z$ 域中線性可分;反過來,如果在 $Z$ 域中線性可分,是否在 $X$ 域中一定圓形可分呢? 答案是否定的。由於權重向量 $w$ 取值不同,$X$ 域中的 hypothesis 可能是圓形、橢圓、雙曲線等等多種情況。 ### Linear Hypothesis in $\mathcal Z$ Space ![](https://hackmd.io/_uploads/S1OfXdob6.png) ![](https://hackmd.io/_uploads/ryfrXdib6.png) ### General Quadratic Hypothesis Set 透過這種形式轉換的 $Z$ 空間的直線對應原 $X$ 空間中特殊的二次曲線(quadratic curves)。說「特殊」是因為表示的圓只能是圓心過原點的圓,不能隨意表示各種情況的圓。如果想要表示 $X$ 空間中所有的二次曲面,應設計出一個更大的 $Z$ 空間,其特徵轉換如公式為: ![](https://hackmd.io/_uploads/HkUFQuobp.png) 透過以上特徵轉換,$Z$ 空間中的每個超平面就對應 $X$ 空間中各種不同情況的二次曲線(圓、橢圓、雙曲線)。則 $X$ 空間中的假設空間 $H$ 為: ![](https://hackmd.io/_uploads/HyooQusZT.png) 上式中,$\widetilde{h}$ 表示 $Z$ 空間中的假設函數。 > - 這樣就包含了所有二次的 hypothesis > - 在 $\mathcal Z$ 中的 perceptrons 等同於 $\mathcal X$ 中的 quadratic hypotheses > - **這些 quadratic hypothesis 已經包含了 linear hypothesis 和 constants (as degenerate cases)** ## [Nonlinear Transform](https://www.coursera.org/learn/ntumlone-algorithmicfoundations/lecture/8i4AH/nonlinear-transform) ### Good Quadratic Hypothesis 從 $X$ 空間轉換到 $Z$ 空間,則在 $Z$ 空間中獲得的好的線性假設函數,相當於在 $X$ 空間中獲得了好的二次假設函數,即在 $Z$ 空間中存在線性可分的直線對應於在 $X$ 中(非線性)可分的二次曲線。目標就是在 $Z$ 空間中找到一個最佳的分類線(假設函數)。 ![](https://hackmd.io/_uploads/SkSjNOjba.png) 利用映射變換的思想,透過映射關係,把XXX空間中的最高階二次的多項式轉換為ZZZ空間中的一次向量z,即從二次假設轉換成了感知器問題。用z 值代替x 多項式,其中向量z 的個數與XXX空間中x 的多項式的個數相同(包含常數項)。這樣就可以在ZZZ域中利用線性分類器進行訓練。訓練好之後,再將z 替換為x 的多項式即可(反變換)。具體過程如下: ### The Nonlinear Transform Steps $X$ 空間中的數據為 $\{(x_n,y_n)\}$,$Z$ 空間的資料集為 $\{(z_n= \Phi_2(x_n),y_n)\}$; 透過特徵變換函數 $\Phi$ 將 $X$ 空間中線性不可分的資料集 $\{(x_n,y_n)\}$ 變換為 $Z$ 空間中線性可分的資料集 $\{(z_n= \Phi_2(x_n),y_n)\}$; 使用線性分類演算法和 $Z$ 空間的資料集 $\{(z_n,y_n)\}$ 獲得表現良好的感知器模型(最優權重向量)$\widetilde{w}$; 最後得到最優的假設函數 $g(x) = (\widetilde{w}^T \ \Phi(x))$。 ![](https://hackmd.io/_uploads/HkSvHOi-a.png) 上圖中,最下邊兩張圖表達了這個想法的核心思想。判斷某個樣本屬於哪個類別,只需要將 $X$ 空間中的資料變換到 $Z$ 空間;然後使用 $Z$ 空間中的假設函數(線性分類器)將樣本分類;最後反變換到 $X$ 空間,得到真實類別。 這類模型由兩部分構成: - 非線性變換函數 $\Phi$:透過特徵變換,將非線性可分問題轉換為線性可分問題; - 線性模型:包括先前學習的二分類、線性迴歸和 Logistic 迴歸等; 使用以上求解非線性分類的思路可以解決二次 PLA,二次迴歸,三次迴歸,…,多項式迴歸等多種問題。 > - 注意這裡的反運算 $\phi^{-1}$ 不一定真的存在,只是想像說如果反運算回來可能長這樣 - 因為 $x$ 對應到 $z$ 不一定會是一對一的 > - 其實我們是在看說 $\mathcal X$ 裡面每一個點對應到 $\mathcal Z$ 之後會被分成哪一類,再畫出左邊那種圖。 ### Nonlinear Model via Nonlinear $\phi$ + Linear Models ![](https://hackmd.io/_uploads/H17kI_sWT.png) - 有了 **nonlinear transform 加上 linear model** 之後,我們就可以做很多事情了。 ### Feature Transform $\phi$ 特徵變換(feature transform)的想法非常常見,例如我們熟知的手寫數字辨識任務中,從原始的像素值特徵轉換為具體的特徵,例如密度、對稱性等: ![](https://hackmd.io/_uploads/HJHbUdsba.png) ## [Price(代價) of Nonlinear Transform](https://www.coursera.org/learn/ntumlone-algorithmicfoundations/lecture/DbaXv/price-of-nonlinear-transform) ### Computation / Storage Price 如果 $X$ 的特徵維度為 $d$ 維,也就是包含 $d$ 個特徵,那麼二次多項式個數,即 $Z$ 空間的特徵維度為:$\breve{d} = 1 + C^1_d + C^2_d + d = \frac {d(d+3 )}{2} + 1$ 如果 $X$ 特徵維度是 2 維的,即 $(x_1, x_2)$,那麼它的二次多項式為:$(1, x_1, x_2, x^2_1, x_1x_2, x^2_2)$,有六項。 如果階數為 $Q$,$X$ 空間的特徵維度為 $d$ 維,則它的 $Z$ 空間特徵維度為:$\breve{d} = C^Q_{Q+d} + C^d_{Q+d} = O(Q^d)$ ![](https://hackmd.io/_uploads/Hyua8uoZT.png) > - 若想把 $d$ 個維度的 $x$ 轉換成 $Q$ 次多項式,會有 $1+\tilde d$ 個 dimension,那麼 $\tilde d$ 是多少呢? - 這裡我們一樣在 $d$ 上面加波浪符表示是在 $\mathcal Z$ 空間發生的事。 > - 高中學的重複組合:$d$ 種不同的東西,可以重複取,取 $Q$ 個出來,有幾種取法? - $H^d_Q=C^{Q+d}_Q=C^{Q+d}_d=O(Q^d)$ - 這應該是 $Q$ 次項的解,而 $Q-1,Q-2,...1$ 都會小於 $Q$ 次項的數量,所以我們給 upper bound $O(Q^d)$ > - 所以計算上、儲存上,我們都要花額外的力氣,要解這個問題變得很困難。 ### Model Complexity Price 特徵轉換還帶來另一個問題。在前面的章節中講述過,模型參數的自由度大概是這個模型的 VC 維度。$z$ 域中特徵個數隨著 Q 和 d 增加變得很大,同時權重 w 也會增加,即自由度增加,VC-Dimension 增加。令 $z$ 域中的特徵維度為 $\breve{d} + 1$,在 $Z$ 域中,任何 $\breve{d} + 2$ 的輸入都不能被 shattered,同樣,在 $X$ 域中,任何 $\breve{d} + 2$ 的輸入也不能被 shattered;$\breve{d} + 1$是 VC-Dimension 的上界,如果 $\breve{d} + 1$ 很大,對應的 VC-Dimension 也會很大。根據先前章節課程的討論,VC-Dimenslon 過大,模型的泛化能力會比較差。 ![](https://hackmd.io/_uploads/ByK7Pdj-p.png) > - $Q$ 變大,則 VC dimension 也會變大 > - 我最多會有 $\tilde d+1$ 的 VC dimension,因為任何 $\tilde d+2$ 個點在 $\mathcal Z$-space 都沒辦法被 perceptron 給 shatter,這個之前證過了。 ### Generalization Issue 下例解釋了 VC-Dimension 過大,導致分類效果不佳的原因: ![](https://hackmd.io/_uploads/SJJiPOoZa.png) 左邊用直線進行線性分類,有部分點分類錯誤;右邊用四次曲線進行非線性分類,所有點都分類正確,那麼哪一個分類效果好呢?單從平面上這些訓練資料來看,四次曲線的分類效果更好,但是四次曲線模型很容易帶來過擬合的問題,雖然它的 $E_{in}$ 比較小;泛化能力上,左邊的分類器比較好。也就是說,VC-Dimension 過大會帶來過擬合問題,$\breve{d} + 1$ 不能過大。 ### Danger of Visual Choices 那麼如何選擇合適的 Q,避免過度擬合,提高模型泛化能力呢?一般情況下,為了盡量減少特徵自由度,會根據訓練樣本的分佈情況,人為地減少、省略一些項。但是,這種人為地刪減特徵會帶來一些「自我分析」代價,雖然對訓練樣本分類效果好,但是對訓練樣本外的樣本,不一定效果好。所以,一般情況下,還是要保存所有的多項式特徵,避免對訓練樣本的人為選擇。 ![](https://hackmd.io/_uploads/SJrRDOiWT.png) ## [Structured Hypothesis Sets](https://www.coursera.org/learn/ntumlone-algorithmicfoundations/lecture/ZyLyN/structured-hypothesis-sets) ### Polynomial Transform Revisited 下面討論 $X$ 空間到 $X$ 空間的多項式變換。 如果特徵維度是一維的,變換多項式只有常數項: $Φ_0(x) =(1)$ 如果特徵維度是兩維的,變換多項式包含了一維的 $Φ_0(x)$: $Φ_1(x) = (Φ_0(x), x_1,x_2, . . . ,x_d)$ 如果特徵維度是三維的,變換多項式包含了二維的 $Φ_1(x)$: $Φ2(x) = (Φ_1(x), x^2_1,x1x2, . . . , x^2_d)$ 以此類推,如果特徵維度是 Q 維的,則它的變換多項式為: $Φ_Q(x) = (Φ_{Q−1}(x), x^Q_1,x^{Q−1}_1x2, . . . ,x^Q_d)$ 這種結構稱為 **Structured Hypothesis Sets**: ![](https://hackmd.io/_uploads/ByfK__oWT.png) ### Structured Hypothesis Sets 對於這種 Structured Hypothesis Sets ,VC-Dimention 和 $E_{in}$ 滿足如下關係: ![](https://hackmd.io/_uploads/HyVhOus-6.png) VC-Dimention 與錯誤率之間的關係如上曲線圖。 由上圖易知,隨著變換多項式的階數增大,雖然 $E_{in}$ 逐漸減小,但模型複雜度會逐漸增大,造成 $E_{out}$ 很大,所以階數不能太高。 ![](https://hackmd.io/_uploads/BkDWtdj-T.png) 如果選擇的階數很大,能使 $E_{in} \approx 0$,但泛化能力很差,這種情況叫做 tempting sin。所以,一般做法是先從低階開始,如先選擇一階假設,看看 $E_{in}$ 是否很小,如果 $E_{in}$ 夠小就選擇一階,如果很大就逐漸增加階數,直到滿足要求為止。也就是說,盡量選擇低階的假設,這樣才能得到泛化能力較強的模型。 > - 越高次多項式的 hypothesis set,VC dimension 越高,可以 shatter 越多點,$E_{in}$ 越低 - 然而 $E_{in}$ 和 $E_{out}$ 差距越大 > Linear Model First! ### Summary 本課介紹了非線性變換的整體流程(透過非線性變換,將非線性模型映射到另一個空間,轉換為線性模型,再來進行線性分類。 之後介紹了非線性變換存在的問題:時間複雜度和空間複雜度的增加。 最後介紹了在付出代價的情況下,使用非線性變換的最安全做法:盡可能使用簡單的模型,而不是模型越複雜越好。