特征選擇與稀疏學習(Feature Selection and Sparse Learning)


本博客是針對周志華教授所著《機器學習》的“第11章 特征選擇與稀疏學習”部分內容的學習筆記。


在實際使用機器學習算法的過程中,往往在特征選擇這一塊是一個比較讓人模棱兩可的問題,有時候可能不知道如果想要讓當前的模型效果更好,到底是應該加還是減掉一些特征,加又是加哪些,減又是減哪些,所以借着對這一章內容的學習,希望可以在文末解決這個疑惑。

子集搜索與評價

對一個學習任務來說,給定屬性集,其中有些屬性可能很關鍵、很有用,另一些屬性則可能沒什么用,我們將屬性稱為“特征”(feature),對當前學習任務有用的屬性稱為“相關特征”(relevant feature)、沒什么用的屬性稱為“無關特征”(irrelevant feature)。從給定的特征集合中選擇出相關特征子集的過程,稱為“特征選擇”(feature selection)。

特征選擇是一個重要的“數據預處理”(data preprocessing)過程,在現實機器學習任務中,獲得數據之后通常先進行特征選擇,此后再訓練學習器,那么,為什么要進行特征選擇呢?

  • 首先,我們在現實任務中經常會遇到維數災難問題,這是由於屬性過多造成的。若能從中選擇出重要的特征,則能緩解該問題。(這個意義上來說,特征選擇與降維有相似的動機。鏈接對維數災難的理解
  • 去除不相關特征往往會降低學習任務的難度。

特征選擇過程還要確保不丟失重要特征,否則后續學習過程會因為重要信息的缺失而無法獲得好的性能。並且給定同一個數據集,若學習任務不同,則相關特征很可能不同,因此,特征選擇中所謂的“無關特征”是指與當前學習任務無關

還有一類特征稱為“冗余特征”(redundant feature),它們所包含的信息能從其它特征中推演出來。例如,對於一個立方體,若已有特征“底面長”“底面寬”,則“底面積”是冗余特征,因為它從用已有特征得到。冗余特征很多時候不起作用,去除它們會減輕學習過程的負擔。不過有時候冗余特征也可以降低學習任務的難度,因為它可能恰好對應了完成學習任務所需的“中間概念”。比如說,如果學習目標是估算立方體的體積,則“底面積”這個冗余特征的存在將使得體積的估算更容易。

為簡化討論,本章暫且假定數據中不涉及冗余特征,並且假定初始的特征集合中包含了所有的重要信息。

而如果要從初始的特征集合中選取一個包含了所有重要信息的特征子集,若沒有任何領域知識作為先驗假設(領域知識可以簡化特征選擇過程),那就只好遍歷所有可能的子集了;然而這在計算上不太可行,因為會遭遇組合爆炸,特征個數稍多就無法進行。可行的做法是產生一個“候選子集”,評價出它的好壞,基於評價結果產生下一個候選子集,再對其進行評價,......,這個過程持續進行下去,直至無法找到更好的候選子集為止。顯然,這里涉及兩個關鍵問題:

  • 如何根據評價結果獲取下一個候選特征子集?
  • 如何評價候選特征子集的好壞?

子集搜索(subset search)

  • 貪心策略:前向搜索、后向搜索與雙向搜索

這里寫圖片描述

因此,在非遍歷所有子集的要求下,子集搜索方法必然只能是貪心的。

子集評價(subset evaluation)

給定數據集D,假定D中第i類樣本所占的比例為$p_i(i=1,2,...,|y|)$。為便於討論,假定樣本屬性均為離散型。對屬性子集A,假定根據其取值將D分成了V個子集${D1,D2,...,D^V}$,每個子集中的樣本在A上取值相同,於是我們可計算屬性子集A的信息增益:
$$Gain(A)=Ent(D)-\SigmaV_{v=1}\frac{|Dv|}{D}Ent(D^v),$$其公式其實就是數據集D的信息熵,減去按照屬性A切分出來的所有數據集的加權信息熵的差值。其中信息熵衡量的是信息的混亂/模糊程度。其公式定義為:
$$Ent(D)=-\Sigma^{|y|}_{i=1}p_klog_2p_k,$$
信息增益Gain(A)越大(信息混亂程度在D集合按照屬性A切分后減少得很多),意味着特征子集A包含的有助於分類的信息越多。於是,對每個候選特征子集,我們課基於訓練數據集D來計算其信息增益,以此作為評價准則。

更一般的,特征子集A實際上確定了對數據集D的一個划分,每個划分區域對應着A上的一個取值,而樣本標記信息Y則對應着對D的真實划分,通過估算對這兩個划分的差異,就能對A進行評價。與Y對應的划分的差異越小,則說明A越好。不過信息熵也僅是判斷這個差異的一種標准,其它能判斷兩個划分差異的機制都能用於特征子集評價,包括但不限於許多“多樣性度量”如不合度量、相關系數。

將特征子集搜索機制與子集評價機制相結合,即可得到特征選擇方法。例如將前向搜索與信息熵相結合,這顯然與決策樹算法非常相似。事實上,決策樹可用於特征選擇,樹結點的划分屬性所組成的集合就是選擇出的特征子集。其它的特征選擇方法未必像決策樹特征選擇這么明顯,但它們在本質上都是顯式或隱式地結合了某種(或多種)子集搜索機制和子集評價機制

常見的特征選擇方法可分為三類:過濾式(filter)、包裹式(wrapper)和嵌入式(embedding)。

過濾式選擇

過濾式方法先對數據集進行特征選擇,然后再訓練學習器,特征選擇過程與后續學習器無關。這相當於先用特征選擇過程對初始特征進行“過濾”,再用過濾后的特征來訓練模型,故得名“過濾式選擇”。

Relief(Relevant Features) 是一種注明的過濾式特征選擇方法,該方法設計了一個”相關統計量
來度量特征的重要性,該統計量是一個向量,其每個分量分別對應於一個初始特征,而特征子集的重要性則是由子集中每個特征所對應的相關統計量分量之和來決定。於是,最終只需指定一個閾值$\tau$,然后選擇比$\tau$大的統計量分量所對應的特征即可;也可指定與選取的特征個數k,然后選擇相關統計量分量最大的k個特征。

Relief的關鍵就在於如何確定相關統計量。(這里不詳述具體做法,有興趣的同學可以看原書。)

但Relief是為二分類問題設計的,其擴展變體Relief-F能處理多分類問題。

包裹式選擇

與過濾式特征選擇不考慮后續學習器不同,包裹式特征選擇直接把最終將要使用的學習器的性能作為特征子集的評價准則。換言之,包裹式特征選擇的目的就是為給定學習器選擇最有利於其性能、“量身定做”的特征子集。

一般而言,由於包裹式特征選擇方法直接針對給定學習器進行優化,因此從最終學習器性能來看,包裹式特征選擇比過濾式特征選擇更好,但另一方面,由於在特征選擇過程中需多次訓練學習器,因此包裹式特征選擇的計算開銷通常比過濾式大得多。

LVW(Las Vegas Wrapper)是一個典型的包裹式特征選擇方法。它在拉斯維加斯方法(Las Vegas Method)框架下使用隨機策略來進行子集搜索,並以最終分類器的誤差為特征子集評價准則,算法描述如下圖所示:

這里寫圖片描述

(拉斯維加斯方法和蒙特卡洛方法時兩個以著名賭城名字命名的隨機化方法,兩者的主要區別是:若有時間限制,則拉斯維加斯方法或者給出滿足要求的解,或者不給出解,而蒙特卡洛方法一定會給出解,雖然給出的解未必滿足要求;若無時間限制,則兩者都能給出滿足要求的解。)

嵌入式選擇與L1正則化

在過濾式和包裹式特征選擇方法中,特征選擇過程與學習器訓練過程有明顯的分別(過濾式是先做特征選擇,再用過濾后的特征做學習器訓練,而包裹式是用學習器訓練的結果作為特征選擇的依據);與此不同,嵌入式特征選擇是將特征選擇過程與學習器訓練過程融為一體,兩者在同一個優化過程中完成,即在學習器訓練過程中自動地進行了特征選擇。

比如給定數據集$D={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}$,其中$x\in R^d,y\in R$,我們考慮最簡單的線性回歸模型,以平方誤差為損失函數,則優化目標為:

$$min_w \Sigma_{i-1}^m (y_i-wTx_i)2.$$

當樣本的特征非常多,而樣本數相對比較少的時候,上式很容易陷入過擬合(也是維度災難的體現,所謂high variance問題)。而為了緩解過擬合問題,我們可以對上式引入正則化項。若使用$L_2$范數正則化,則有:

$$min_w \Sigma_{i-1}^m (y_i-wTx_i)2+\lambda||w||^2_2.$$

其中正則化參數$\lambda>0$。

上式也稱為“嶺回歸”(ridge regression),通過引入$L_2$范數正則化,確實能顯著降低過擬合風險。

那么,能否將正則化項中的$L_2$范數替換為$L_p$范數呢?答案是肯定的,若令p=1,即采用$L_1$范數,則有:

$$min_w \Sigma_{i-1}^m (y_i-wTx_i)2+\lambda||w||_1.$$

同樣正則化參數$\lambda>0$,而上式被稱為LASSO(Least Absolute Shrinkage and Selection Operator),中文也稱“最小絕對收縮選擇算子”

$L_1$范數和$L_2$范數都有助於降低過擬合風險,但前者還會帶來一個額外的好處:它比后者更易於獲得“稀疏”(sparse)解,即它求得的w會有更少的非零分量(更多的零分量)。

事實上,對w施加“稀疏約束”(即希望w的非零分量盡可能少)最自然的是使用$L_0$范數,但$L_0$范數不連續,難以優化求解,因此常使用$L_1$范數來近似。關於$L_0,L_1,L_2$范數的知識,可以參考這里機器學習中的范數規則化之(一)L0、L1與L2范數

為了幫助理解,我們來看一個直觀的例子:假定x僅有兩個屬性,於是無論嶺回歸還是LASSO接觸的w都只有兩個分量,即$w_1,w_2$,我們將其作為兩個坐標軸,然后在圖中繪制出兩個式子的第一項的"等值線",即在$(w_1,w_2)$空間中平方誤差項取值相同的點的連線。再分別繪制出$L_1$范數和$L_2$范數的等值線,即在$(w_1,w_2)$空間中$L_1$范數取值相同的點的連線,以及$L_2$范數取值相同的點的連線(如下圖所示)。

這里寫圖片描述

嶺回歸與LASSO的解都要在平方誤差項與正則化項之間折中,即出現在圖中平方誤差項等值線與正則化項等值線相交處。而由上圖可以看出,采用$L_1$范數時平方誤差項等值線與正則化項等值線的交點常出現在坐標軸上,即$w_1或w_2$為0,而在采用$L_2$范數時,兩者的交點常出現在某個象限中,即$w_1或w_2$均非0;換言之,采用$L_1$范數比$L_2$范數更易於得到稀疏解。

注意到w取得稀疏解意味着初始的d個特征中僅有對應着w的非零分量的特征才會出現在最終模型中,於是求解$L_1$范數正則化的結果時得到了僅采用一部分初始特征的模型;換言之,基於$L_1$正則化的學習方法就是一種嵌入式特征選擇方法,其特征選擇過程和學習器訓練過程融為一體,同時完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM