【機器學習基礎】正則化及多分類問題總結

Uniqe發表於2021-10-27

本節主要是填前面的坑,前面要對正則化,以及多分類的問題進行一個單獨總結,這裡就通過蒐集一些網上資料對這兩塊內容進行一個總結。


 1.正則化

  正則化是一種迴歸形式,為了防止模型的過擬合的方法,它將係數估計(coefficient estimate)朝零的方向進行約束、調整或縮小。

  也就是說,正則化可以在學習過程中降低模型複雜度和不穩定程度,從而避免過擬合的危險。

  正則化分為L1正則和L2正則,L1正則化和L2正則化都是在損失函式中加入懲罰項,以限制某些引數,L1正則又稱Lasso迴歸,L2正則又稱Ridge迴歸。如下式:

  其中θ為引數:

  ||θ||為正則項,從上面的新的損失函式可以看出,在訓練時不僅需要L(θ)最小,而且還要引數越小越好,這就相當於在學習時期望將一些不重要的特徵權重減小。

那麼L1和L2正則化是如何對訓練產生影響呢?下面從數學公式的角度來說明:

  當||θ||為L1正則時:

  那麼新的損失函式對引數的導致:

 

  從上面的式子可以看出,前面兩項跟原來的更新方式一樣,而最後一項,當w>0時,會減去ηλ一項,而當w<0時,則會加上ηλ一項,說明更新時總是迫使引數朝著0的位置移動

  當||θ||是L2正則時:

  那麼新的損失函式對引數進行求導:

  可以看出,引數的更新每次都要乘以1-ηλ, 那麼第一項就會越來越小,逐漸趨於0,而後面那一項對於對損失有影響的項,值較大,整體就不會等於0,但對於損失沒有影響的項,也是接近於0,整體接近於0(但極少等於0),因此,這個過程使得最終對於學習沒有用的引數的權重進行了減弱

  根據上面對比L1和L2,雖然二者都是使引數朝著0的方向移動,但是對於L2來說,當引數數值比較大時,對引數的懲罰比較強,因為是-wηλ,

  這樣(L2正則)就會使得結果更加的smooth(平滑),因為通常來說光滑的曲線更能反映真實的情況,但當λ設定過大時,過於光滑,懲罰過大,則會導致欠擬合。

  L1正則是一視同仁地移動ηλ個距離

  綜上,L2使得所有的引數都會很接近於0,但不會真正到達0,而L1因為無視引數大小,移動距離都一樣,因此引數之間會差距較大,有的達到0。這樣對於損失貢獻不大的特徵的引數就會被置為0。

 

  上面是從公式的角度解釋L1好L2的工作原理以及為什麼L1會產生稀疏解,而L2不會產生稀疏解的原因。

  下面我們從幾何和優化的角度來看看L1和L2的原理:

  首先把L1正則和L2正則寫成正常的公式,即:

  假設f(x)有兩個引數w1和w2,那麼原始的損失函式影像為:

  圖中等高線代表了Loss的大小,對於L1,相當於在原損失函式中加入了後面|w|的限制,如若只有兩個引數,那麼後面那一項就是一個菱形,隨著w的取值不同,菱形的大小也不同:

                                                                                                                                 

  圖中一方面要儘可能向著圓環的中心靠攏,另一方面又要使菱形最小,顯然當菱形與等高線相切時是最小的,菱形與等高線的交點即為最優解,從圖中可以看出,交點更靠近於遠點,同時菱形也更容易相較於座標軸上,從而使得某些維度的值為0;

  對於L2,後面一項為w12+w22,是一個圓形,如圖所示:

 

  對於圓形也是一樣的道理,只不過在圓與等高線相交時,很難相較於座標軸上,因此只會使得引數更加靠近原點,使得引數的平方和最小(最小圓)。

  有關正則化的內容就說這麼多,關鍵還是L1正則和L2正則的形式,以及L1能夠產生稀疏解,L2會使得曲線更加的“光滑”,其實二者的本質都是降低模型的複雜程度以達到防止過擬合的。

2.多分類問題

  在前面所有的演算法都是以二分類為例的,一方面因為二分類便於原理的理解,另一方面多分類問題都是基於二分類進行的。其實多分類問題包括單個標籤的多個類別問題以及多個標籤的多分類問題。

  單標籤的多分類問題是指僅有一個標籤,有多個類別,比如圖片辨識中貓、狗、大象等分類,多標籤多類別是指有多個標籤,比如貓本身有一個標籤,同時貓與植物相比,又帶有動物的標籤,這就屬於一個多標籤的分類問題。

  在此主要說的是單標籤多分類的任務,多標籤分類比較複雜,後面會對多標籤分類問題進行簡單的介紹,並附上相關部落格,後面遇到要解決的問題再進行學習。

  對於單標籤的分類問題,前面在LogisticRegression中講到了softmax,其實,對於多分類問題,通常可以轉化為二分類問題來解決多分類問題,常見的策略包括:OVO(一對一策略)、OVR(一對多策略)以及MVM(多對多策略)。

OVO(一對一策略)

  OVO是指將樣本類別進行兩兩組合,單後組合後分別進行訓練,這樣就訓練出n(n-1)/2個分類器,然後最終對於一個新樣本,分別輸入到這些分類器當中,最終進行投票得到結果,如圖所示:

  那麼對於一個新的樣本,其投票方式如下:

OVR(一對多策略)

  在一對多中,將所有類別僅看做類別X和其他,即分別選出每個類別後,將剩餘樣本作為一類,然後按照二分類進行訓練。在測試時,若僅有一個分類器預測為正類,則對應的類別標記作為最終分類結果。若有多個分類器預測為正類,則通常考慮各分類器的預測置信度,選擇預測置信度最大的類別標記作為分類結果。訓練如圖所示:

  對於樣本的預測:

 MVM(多對多策略)

  MVM策略是將樣本中一部分類別選出來作為正類,一部分類別作為負類,MVM的正反類選取不能隨意選取,必須有一定的特殊設計,最常見的技術是糾錯碼機制(ECOC),將編碼的思想引入類別拆分,並儘可能在解碼過程中具有容錯性。

  糾錯碼機制分為兩步:

  (1)編碼:

  將樣本的K個類別進行M次劃分,每一次劃分將一部分類別分為正類,一部分分為負類,然後訓練一個模型出來,這樣就能構建出M個模型;同時一個類別也被劃分了M次;

  (2)解碼階段

  將待測樣本分別帶進M個模型中,就會產生出M個結果,然後計算M個結果與上面每個類的被劃分M次的結果之間的距離,距離與待測類別距離較近的記為待測樣本所屬類別。

  具體原理如圖所示:

 3.多標籤多類別問題

  多標籤問題每一個樣本包含多個標籤,如特徵標籤中,一個物品存在多個標籤,尤其對於文字挖掘用途廣泛,如一篇新聞可能屬於政治,也可能屬於經濟類。那麼多標籤主要問題是:

  (1)標籤數量的不確定性,並非所有資料的標籤數量是固定不變的,有的樣本可能僅有1個標籤,但有的可能有成百上千個;

  (2)標籤之間存在相互依賴關係,比如有的樣本要確定了前一個標籤,才能確定後面的標籤,如一篇文章是屬於議論文還是散文,如果屬於散文,其第二個標籤是屬於抒情散文還是敘事散文;

  (3)通常多標籤的樣本資料對於標籤的獲取比較困難,通常標籤需要人工標註或機器標註,但是標籤體系過於龐大時,有時這項工作很難進行。

  那麼解決多標籤問題通常有兩種思路:

  (1)基於問題轉化的方法,就是把多標籤問題轉化為我們可以解決的單標籤問題,這種通常無法解決標籤之間的依賴問題;

  (2)基於演算法適應的方法,使用現有演算法,對演算法進行擴充套件,改進演算法,使其能夠適應多標籤資料,如MLKNN、rank-SVM等演算法,這些方法中有些能夠解決依賴問題,但有些也無法解決標籤之間的依賴問題。

  具體多標籤問題暫時這裡不再說明,附一篇有關多標籤問題解決的綜述文章:https://www.cnblogs.com/cxf-zzj/p/10049613.html

  後邊涉及到這類問題,再詳細進行了解和學習。

 

參考文獻:

機器學習:多分類及多標籤分類

多標籤分類(multi-label classification)綜述


本部分主要是對前面提到一些後續補充的內容進行一個總結和補充,主要是關於正則化和多分類的問題,其中多分類僅針對單標籤多分類問題進行了敘述,後面有涉及到多標籤多分類再進行了解和學習。

相關文章