利用正則化方法避免過擬合問題

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

引言

你有沒有創建過一個可以完美訓練樣本的機器學習模型,但對於需要預測的樣本卻給出了非常糟糕的預測!你有沒有想過為什麼會這樣?本文解釋了過度擬合,這是導致了不可見樣本預測不佳的原因之一。同時,這篇文章介紹了基於回歸的正則化技術,明確了如何使用正則化技術避免過度擬合的方式。

本文解釋了何為過度擬合,即導致被預測樣本預測不佳的原因之一。同時,通過簡單的步驟介紹了基於回歸的正則化方法,明確了如何用正則化的方式避免過度擬合的發生。

利用正則化方法避免過擬合問題

多項式回歸與過度擬合

你有沒有創建過一個可以完美訓練樣本的機器學習模型,但對於需要預測的樣本卻給出了非常糟糕的預測!你有沒有想過為什麼會這樣?本文解釋了過度擬合,這是導致了不可見樣本預測不佳的原因之一。同時,這篇文章介紹了基於回歸的正則化技術,明確了如何使用正則化技術避免過度擬合的方式。

機器學習 (ML) 的重點是訓練數據的算法,以便創建一個模型。通過這個模型,我們能夠對看不見的數據 (測試數據) 做出正確的預測。例如,如果要創建一個分類器,我們首先要收集訓練 ML 算法所需的數據。我們負責找到不同類的最好分辨特徵來表示每個類,以便電腦能夠辨別不同的類。這些特徵將被用來訓練 ML 算法。假設我們要建立一個 ML 模型,將圖像分類為包含貓咪的以及不包含貓咪的。我們通過使用以下圖片來訓練數據。

利用正則化方法避免過擬合問題

我們要回答的第一個問題是「什麼是可以用來區分不同類的最佳特徵?」這是機器學習的關鍵問題所在;因為使用更好的特徵可以訓練 ML 模型產生更好的預測。讓我們試著以這些圖像為例,並從中提取一些貓的代表性特徵。一些代表性的特徵可以是兩個黑色的瞳孔以及兩只有角度的耳朵。假設我們用某種方法提取了這些特徵,並且用上面的圖像創建了一個ML 模型。這種模型可以應用於各種貓的圖像,因為大多數貓都有以上的那些特點。我們可以使用一些需要預測的數據來測試模型,如下所示。假設測試數據的分類精度為 x%。

利用正則化方法避免過擬合問題

你可能想要增加分類的準確性,那麼首先你要考慮的就是使用更多特徵。這是因為使用的判別特徵越多,準確度就越高。通過再次對訓練數據的檢測,我們可以找到更多的特徵,如整體圖像的顏色等;因為所有訓練的貓咪樣本都是白色的,且眼睛虹膜為黃顏色。下面顯示的四個特徵即為特徵向量。它們將被用來重新訓練ML 模型。

創建訓練過的模型後,我們就需要來測試它。使用新的特徵向量的預期結果是,分類精度將降低且小於 x%。這是為什麼呢?精度下降的原因是因為使用了一些已經存在於訓練數據中但不廣泛存在於所有貓咪圖像中的特徵。這些特徵並不存在於每個貓咪的圖片里。所有使用的訓練圖像有白色的皮膚和黃色的虹膜,因此機器認為所有的貓都有以上兩個特徵。而在測試數據中,有些貓是黑色的,有些是黃色的——這些並不能通過白色貓咪的訓練數據而訓練出來。與此同時,有些貓咪的虹膜也並不是黃色的。

在這種情況下,我們使用的特徵是高效強大的訓練樣本,但在測試樣本過程中表現卻十分糟糕,這種現象則被稱為過度擬合。即該模型受訓練數據的某些特徵而得到訓練,但在測試數據中卻不存在這種特徵。

前面討論的目的是通過一個高層次的例子來簡單解釋什麼是過度擬合。想要了解過度擬合的細節,最好還是使用一個較為簡單的示例。其餘的討論就將基於一個回歸的例子來討論過度擬合的細節。

理解基於回歸示例的正則化

假設我們要創建一個符合下面所示數據的回歸模型。我們可以使用多項式回歸。

利用正則化方法避免過擬合問題

我們可以首先使用的最簡單模型是具有一階多項式方程的線性模型:

利用正則化方法避免過擬合問題

θ1、θ2是模型參數和x是唯一使用的特徵。

前面的模型的圖表如下所示:

利用正則化方法避免過擬合問題

根據如下所示的損失函數,我們可以得出這樣的結論:模型不能很好地擬合數據。

利用正則化方法避免過擬合問題

fi(xi)是樣本i預期輸出值,di為同一個樣本的所需輸出值。

這個模型太簡單了,因此很多預測都不準確。所以我們應該創建一個更複雜的模型,以便能夠很好地適應數據。那麼我們可以將等式的程度從一到二增加。顯示如下:

利用正則化方法避免過擬合問題

通過將相同的特徵x提升為 2 (x2),我們創建了一個新的特徵;我們不僅可以捕獲數據的線性特徵,還能捕捉一些非線性特徵。新模型的圖表如下所示:

利用正則化方法避免過擬合問題

該圖表明,第二度多項式比第一度更適合數據。但同時,二次方程也不能很好地應用於一些數據樣本。這就是為什麼我們可以創建一個更複雜的第三度模型,顯示如下:

利用正則化方法避免過擬合問題

該圖將如下所示:

利用正則化方法避免過擬合問題

在添加了捕獲第三級數據屬性的新特徵後,該模型變得更適合於數據。為了更好地適應數據,我們還可以將等式的程度提高到第四度,如下面的等式所示:

利用正則化方法避免過擬合問題

該圖將如下所示:

利用正則化方法避免過擬合問題

多項式方程的程度越高,它就越適合於數據。但還有一些重要的問題需要解答。如果用通過增加新的特徵來增加多項式方程程度的方式來提高結果的準確度,那麼為什麼不使用一個非常高的程度,比如100度呢?或者說,這類問題的最佳度是多少呢?

模型容量/複雜性

有一個項叫做模型容量或複雜性。模型容量/複雜性是指模型可以使用的變化級別。容量越高,模型所能應付的變化越大。第一個模型y1,與y4相比較而言,就是一個小容量模型。在我們的例子中,我們通過增加多項式程度來增加容量。

當然,多項式方程的程度越高,數據就越合適。但請記住,增加多項式的程度也增加了模型的複雜性。使用比所需容量高的模型可能會導致過度擬合。也就是說,模型會變得非常複雜,它會很好的適合訓練數據,但對於需要預測的數據而言將會是非常失敗的。ML 的目標不僅是建立一個可以高效訓練數據的模型,同時也應該可以應用於需要預測的數據樣本。

第四度 (y4) 的模型是非常複雜的。是的,它非常適合我們已經得到的數據,但它卻不能應用在需要預測的數據。這種情況下,y4中新使用的特徵(就是x4)捕獲的細節比我們所需的要多。因此這個新特徵使模型過於複雜,所以我們應該放棄使用這個特徵。

在這個例子中,實際上我們知道要移除哪些特徵。因此,我們可以選擇不要使用它,並且返回到以前使用的的第三度模型 。但在實際工作中,我們並不知道要移除哪些特徵。此外,假設新特徵沒有那麼糟糕,我們不想完全移除它,只是想盡可能的減少它帶來的負面影響,那我們該怎麼辦?

我們來回顧一下損失函數,其唯一的目標就是最小化或避免預測的誤差。我們可以設定一個新的目標,盡可能減少或避免新特徵的效果。在修改損失函數以修x3後,我們得到的公式將如下所示:

利用正則化方法避免過擬合問題

我們現在的目標是盡量最小化損失函數。我們現在只想盡量減少 θ4×4這個項。很明顯,為了最小化 θ4×4,我們應該盡量減少 θ4,因為它是的唯一的自由參數。我們可以將其值設置為零;如果為了防止該特徵表現十分糟糕,我們可以選擇完全移除該特徵,如下所示:

利用正則化方法避免過擬合問題

通過去掉它,我們回到第三度多項式方程 ( y3)。y3不能像y4一樣完美符合所有已存在的數據,但總的來說,它卻可以比y4為需要預測的數據提供更好的表現。

但是,如果x4是一個相對良好的特徵,我們只是想限制它,而不是完全移除它,我們可以把它設置為一個接近零的,但不到零的值 (如 0.1),如下所示。通過這樣做,我們限制了x4的效果。因此,新的模型不會像以前那樣複雜。

利用正則化方法避免過擬合問題

回到y2,看起來它似乎比y3簡單。它可以很好地使用已存在的和需要預測的數據樣本。因此,我們應該移除在y3的新特徵(即x3),或者如果表現得沒有那麼糟糕時,我們可以只是減小它。我們可以修改損失函數來做到這一點。

利用正則化方法避免過擬合問題

利用正則化方法避免過擬合問題

正則化

請注意,我們實際上知道y2是適合數據的最佳模型,因為數據圖表可供我們使用。這是一個非常簡單的任務,我們可以自己手動解決。但是,如果這些信息不能提供給我們,並且隨著樣本數量和數據複雜性的增加而增加,我們將無法輕易得出這樣的結論。必須有一種自動的東西來告訴我們哪種程度將最適合所提供的數據,同時告訴我們需要把那些特徵的影響降低至最低,以獲得最好的預測。這就是正則化。

正則化幫助我們選擇模型複雜度以適應數據。自動識別使模型過於複雜的干擾特徵會大幅度提高預測效率。請記住,如果這些特徵符合標準,正則化是十分有用的,會相對地幫助我們得到良好的預測。並且我們只是需要減小該特徵,並不是完全移除它們。正則化會限制所有使用的特徵,而不是某個選定的子集。之前我們只限制x3和x4兩個特徵,而不是所有特徵。因此這種情況不屬於正則化的范疇。

使用正則化時,一個新的項會被添加到損失函數,以限制特徵,因此損失函數將如下所示:

利用正則化方法避免過擬合問題

在移動Λ以外的總和後,它也可以表示為如下所示的式:

利用正則化方法避免過擬合問題

新添加的項用限制特徵的方式來控制模型複雜性的級別。我們之前的目標是在添加正則化項之前,盡量減少預測誤差。而現在我們的目標是盡量減少錯誤,但要小心不要使模型過於複雜,避免過度擬合。

有一個稱為 lambda (λ) 的正則化參數,它控制如何限制這些特徵。它是一個沒有固定值的超參數。它的值根據不同的任務而改變。隨著它的值的增加,對特徵的限制力度也會越大。因此,模型變得更加簡單。當其值降低時,對特徵懲罰的力度也會降低,從而提高模型的複雜性。當其為零時表示根本不限制任何特徵。

當λ為零時, θj的值將不會受到限制,如下一等式所示。這是因為設置為零意味著移除正則化項,而留下了錯誤項。因此,我們的目標將回溯到將錯誤降到最小,越接近零越好。當誤差最小化是目標時,模型可能會發生過度擬合的情況。

利用正則化方法避免過擬合問題

利用正則化方法避免過擬合問題

利用正則化方法避免過擬合問題

但是,當限制參數λ的值非常高時 (例如109,對於參數θj來說就必須有很高的限制,以使損失保持在最小值。因此,參數θj將為零。由此得出,模型 (y4) 將修剪θi,如下所示。

利用正則化方法避免過擬合問題

利用正則化方法避免過擬合問題

請注意,正則化項是從1開始它的索引j,而不是0。實際上,我們使用正則化項來限制特徵 (xi)。因為θ0沒有關聯的功能,所以沒有理由去限制它。在這種情況下,模型將會是y4=θ0並以下圖形式顯示出:

利用正則化方法避免過擬合問題