解釋:L1 正規化如何自動辨識特徵?

理解L1(LASSO)正規化執行的自動特徵選擇過程。

特徵選擇是從給定的特徵集中選擇最佳特徵子集的過程;最佳子集是指能夠最大限度地提高模型在給定任務上表現的特徵子集。

特徵選擇可以是一個手動過程,或者更準確地說,當使用過濾或包裝方法時,可以是一個明確的過程。在這些方法中,特徵會根據一個固定的指標值重複添加或移除,該指標值決定了特徵在預測中的重要性。這些指標可以是資訊增益、變異數或卡方統計量,演算法會根據指標的固定閾值來決定是否接受或拒絕某個特徵。需要注意的是,這些方法並非模型訓練階段的一部分,而是在模型訓練之前執行的。

L1正則化如何自動辨識特徵?

嵌入式方法無需任何預先定義的選擇標準,即可隱式地識別特徵,並從訓練資料本身提取這些特徵。辨識內在特徵的過程是模型訓練階段的一部分。模型學習辨識特徵並同時進行相關預測。在後續章節中,我們將描述正規化在辨識內在特徵過程中的作用,重點關注L1正則化及其在改進機器學習模型中的作用。

均衡化與模型複雜性:提升效能的高階策略

正則化是透過懲罰模型複雜度來避免過度擬合並實現任務泛化的過程。

在此,模型的複雜度類似於其適應訓練資料模式的能力。假設一個關於x的簡單多項式模型,其次數為d,則多項式的次數d越高,模型捕捉觀測資料模式的能力就越強。這種增強的靈活性可能導致模型記憶訓練資料而非學習實際模式,從而降低其對新資料的泛化能力。

過擬合與欠擬合

當嘗試將一個d = 2次多項式模型擬合到一組由包含雜訊的三次多項式產生的訓練樣本上時,該模型將無法充分捕捉樣本分佈。這是因為模型缺乏對三次(或更高次)多項式產生的資料進行建模所需的靈活性複雜性。這種模型稱為欠擬合。欠擬合表示模型過於簡單,無法捕捉資料中的潛在模式。

沿用之前的例子,現在假設我們有一個d = 6階的模型。隨著複雜度的增加,模型應該能夠輕鬆估計用於產生資料的原始三次多項式(例如,將所有指數大於 3 的項的係數設為 0)。如果訓練過程沒有及時終止,模型將繼續利用其額外的靈活性來進一步降低誤差,並開始識別噪音樣本。這將顯著降低訓練誤差,但模型現在會面臨訓練資料過載的問題。噪音在實際環境中(或測試期間)會發生變化,任何基於預測的知識都會受到影響,導致較高的測試誤差。過載意味著模型過於複雜,學習到的不是實際訊號,而是雜訊。

 

如何確定模型的最佳複雜度?

在實際應用中,我們往往對資料產生過程或資料的實際分佈了解有限甚至一無所知。找到複雜度合適的最優模型,避免欠擬合和過度擬合,是一項巨大的挑戰。這需要採用有效的方法來評估模型效能,並確定能夠兼顧準確性和通用性的合適複雜度。透過使用合適的評估指標和技術(例如交叉驗證),專家可以識別出在未見過的數據上表現最佳的模型,從而避免過度擬合和欠擬合問題。

 

一個可行的方法是先建立一個足夠穩健的模型,然後透過選擇特徵來降低其複雜度。特徵越少,模型就越簡單。

如前所述,特徵選擇可以是明確的(例如濾波方法、卷積方法),也可以是隱式的。對於確定目標變數值而言並非至關重要的冗餘特徵應該被捨棄,以防止模型學習到不一致的模式。正則化也起到類似的作用。那麼,正則化和特徵選擇如何共同作用,而實現模型複雜度最優這一共同目標呢?降低機器學習模型的複雜度對於提升性能和避免模型過衝至關重要,而這正是正則化和特徵選擇共同關注的重點。

 

L1 組織作為功能限制器

繼續我們的多項式模型,我們將其表示為 f 的函數,輸入為x,係數為θ,次數為d

對於多項式模型,輸入x_i的每個冪都可以視為一個特徵,形成如下向量:

我們也定義了一個目標函數,其簡化可得到理想參數θ* ,並且包含了正規化項,該項用於懲罰模型的複雜度。

為了確定函數的下界,我們需要分析所有臨界點,即導數為零或未定義的點。

關於參數之一θj的偏導數可以寫成如下形式:

sgn函數定義如下:

注意:絕對值函數的導數與上面定義的符號函數 (sgn) 不同。原始導數在 x = 0 處無定義。我們擴展了導數的定義,消除了 x = 0 處的拐點,並使函數在其整個定義域內可微。此外,當基本算術運算涉及絕對值函數時,機器學習 (ML) 框架會使用這些擴充函數。請查看PyTorch 論壇中的此連結。

透過計算目標函數對單一係數θj的偏導數,並將其設為零,我們可以建立一個方程,將θj的最優值與預測、目標和特徵連結起來。

讓我們來分析上面的等式。如果我們假設輸入值和目標值都圍繞著平均值分佈(即,資料在預處理步驟中已經標準化),那麼等式左側項(LHS)實際上表示特徵編號 j 與期望值和目標值之差之間的變異數

 

兩個變數之間的統計變異數決定了一個變數對另一個變數值的影響程度(反之亦然)。

等式右邊的符號函數迫使​​等式左邊的變異數只取三個值(因為符號函數只會回傳 -1、0 和 1)。如果特徵j是不必要的,且不影響預測結果,則變異數將接近零,從而使相應的係數θj*為零。這會導致該特徵從模型中移除。此過程有助於降低模型複雜度並提高模型效能。

 

把符號函數想像成一條被水流沖刷而成的峽谷。你可以穿過峽谷(也就是河床),但要出去,你會遇到巨大的障礙或陡峭的落差。 L1 正則化會產生類似於損失函數梯度的「閾值」效應。梯度必須夠強才能突破障礙,否則就會變為零,最終導致係數為零。

為了提供一個更貼近實際的例子,請考慮一個資料集,其中包含從一條直線(以兩個係數表示)導出的樣本,並添加了一些雜訊。最優模型的係數不應超過兩個;否則,它將透過多項式的自由度/冪次來補償資料中的雜訊。改變多項式模型中高階係數不會影響目標值與模型預測值之間的差異,進而降低模型對特徵的變異數。

在訓練過程中,損失函數的梯度會不斷增加或減少一個固定的步長。如果損失函數(MSE,均方誤差)的梯度小於該固定步長,則係數最終會趨近於 0。請注意以下公式,它說明如何使用梯度下降法更新係數:


如果上圖藍色部分小於λα(λα 本身就是非常小的數),則Δθj近似為λα 的常數步長。此步長(紅色部分)的符號取決於sgn(θj),而 sgn(θj) 的輸出又取決於θj的值。如果θj 的值為正,即大於ε,則sgn(θj)等於 1,從而使Δθj近似等於-λα,使其趨近於零。

為了抑制導致係數為零的恆定步長(紅色部分),損失函數的梯度(藍色部分)必須大於步長。損失函數梯度越大,特徵值對模型輸出的影響就越顯著。

這就是 L1 正則化在訓練過程中如何消除與模型輸出無關的特徵(或更準確地說,是相應的參數)的方法。

 

延伸閱讀及概要

  • 為了更深入了解這個主題,我在Reddit的r/MachineLearning版塊上發文提問,跟進 它包含各種不同的解讀,您可能有興趣閱讀。
  • 馬迪亞爾·艾特巴耶夫也 一個有趣的博客 它探討的是同一個問題,但採用了幾何學的解釋。
  • 博客 布萊恩·金從機率的角度解釋了組織結構。
  • 這個 討論 CrossValidated 網站解釋了為什麼 L1 標準鼓勵使用稀疏模型。 博客 Mukul Ranjan 撰寫的一篇詳細文章解釋了為什麼 L1 標準鼓勵交易金額為零,這與 L2 標準不同。

「L1 正規化選擇特徵」是指大多數機器學習學習者都認同的簡單陳述,但他們往往忽略了其內部運作機制。這篇部落格旨在與讀者分享我的理解和思考模型,以更直觀的方式解答這個問題。如有任何建議或疑問,您可以在我的網站上找到我的郵箱地址。祝您學習愉快,生活美好!

 

評論被關閉。