為什麼在SGD中使用L1正則化很難獲得稀疏性?

時間 2021-06-06 10:57:58

1樓:曹神仙

我覺得根本原因在於l1問題是凸問題而非強凸,有無窮多個解,即存在不止一種希疏模式。sgd會使得演算法在不同且效果一致的稀疏模式之間跳轉,最後導致失去稀叔性

2樓:市民王先生

先說L1正則化的原理。

L1正則化所約簡的特徵,是那些和其他特徵共線性的,多餘的特徵。

這就好比公司裡有兩個能力非常相似的員工,那麼在任務量一定,且乙個人就可以幹完的情況下,那與其讓兩個人平均分配任務,還不如開除其中乙個,這樣可以減少總的工資消耗(因為有社保,醫保,公積金等固定開支,兩個人平均分到的可支配工資一定少於乙個人分配時得到的可支配收入)。

那麼,如果公司特別大員工特別多呢?每次人事都只能檢查一小部分員工中有沒有這種能力相似的員工,而且一旦發現這部分員工所從事的事情需要某種能力型別,它還會補充進來新的員工。如此一來,公司裡面就總是會有本該被優化的員工留下。

只有當人事一次檢查完所有員工的能力之後,才能一次性發現所有能力重複的員工,然後每種能力型別的員工都只保留乙個,實現徹底的優化。

然而一次檢查所有員工的勞動強度太大了,超出了人事的大腦記憶體了。那麼,怎麼才能在既不需要一次檢查所有員工的情況下,又能去掉那些多餘的員工呢?

那就是提高人事的記憶力,別把那些被開除過的員工再請回來了。具體到演算法上,就是給梯度更新項加記憶,讓梯度不要隨每批次樣本變化太快。不過這樣的演算法也只是讓梯度變化慢一點而已,終歸還是不能讓那些多餘特徵權重徹底歸零。

在樣本規模超大的情況下,還會嚴重降低收斂速度。

不知道Ftrl是怎麼解決的。

3樓:黑鳳梨

一般說L1會讓引數洗漱,L2會讓引數趨於乙個相對較小的值,但是所謂的L1洗漱,其實是概率稀疏,有大概率會變稀疏,這中間有很多因素,包括初始化,資料模型等等。

神經網路中 L1 正則化和 dropout 正則化對weights 稀疏化的實質區別是什麼?

一般來說,引數越多越容易過擬合。這兩種方法都是為了阻止過擬合,l1方法是將部分權重置為0,直接減小參數量,dropout則是使一部分鏈結隨機失活,每次迭代只更新一部分引數,變相減小每次的參數量。l1實現稀疏可以從proximal gradient這個運算中的收縮運算元來解釋,當引數的絕對值小於某乙個...

機器學習正則化中範數為什麼要定義成l1,l2等形式?

袁承興 對抗過擬合最有效的方法就是增加訓練資料的完備性,但它昂貴且有限。另一種思路是減小網路的規模,因為網路越大表達容量越大,但這樣可能會因為限制了模型的表達潛力而導致識別精度整體下降。所以才引入了正則化,正則化 Regularization 可以在原有的訓練資料,以及網路架構不縮減的情況下,有效避...

L1,L2正則化中為什麼說「等高線與norm ball 首次相交的地方就是最優解

愛知識的lz 首先,搞清楚他們都是等值線,也就是說各自線上的值相等,至於相交時值是否相等不一定。其次,什麼是相同的,對於原損失函式 正則項,相交時,w1,w2的取值是相同的,這就是說正則化其實是加了約束,約束原誤差函式的w1,w2在正則化的範圍內。所以,當等值線相交時,說明有相同的w1,w2。下面解...