面試總結——L1和L2

1、L2正則化,爲什麼L2正則化可以防止過擬合?L1正則化是啥?

避免過擬合的第一個思路:使盡可能多的參數爲零。爲此,最直觀地可以引入L0-範數。這意味着,我們希望絕大多數w的分量爲零。

L0範數:向量中非0元素的個數。

通過引入L0正則項,我們可以使模型稀疏化且易於解釋,並且在某種意義上實現了「特徵選擇」。這看起來很美好,但是L0正則項:非連續、非凸、不可導。因此,L0正則項雖好,但是求解這樣的最優化問題,難以在多項式時間內找到有效解(NP-Hard 問題)。

於是我們考慮 L0範數最緊的凸放鬆:L1-範數。

L1-norm 又叫做Manhattan-norm,可能最早提出的大神直接用在曼哈頓區坐出租車來做比喻。下圖中綠線是兩個黑點的 L2 距離,而其他幾根就是 taxicab 也就是 L1 距離,確實很像我們平時用地圖時走的路線了。

這兩個正則項最主要的不同,包括兩點:

  • L2 計算起來更方便,而 L1 在特別是非稀疏向量上的計算效率就很低;
  • 還有就是 L1 最重要的一個特點,輸出稀疏,會把不重要的特徵直接置零,而 L2 則不會;
  • 最後,如之前多次提過,L2 有唯一解,而 L1 不是。

因爲 L1 天然的輸出稀疏性,把不重要的特徵都置爲 0,所以它也是一個天然的特徵選擇器

爲什麼使用L1正則項,會傾向於使得參數稀疏化;而使用L2-正則項,會傾向於使得參數稠密地接近於零?

爲了簡便起見,我們只考慮模型有兩個參數w1與w2的情形。

在圖中,我們有三組「等值線」。位於同一條等值線上的w1與w2,具有相同的值(平方誤差、L1-範數或L2-範數)。並且,對於三組等值線來說,當 (w1,w2)沿着等值線法線方向,像外擴張,則對應的值增大;反之,若沿着法線方向向內收縮,則對應的值減小。

因此,對於目標函數Obj(F)來說,實際上是要在正則項的等值線與損失函數的等值線中尋找一個交點,使得二者的和最小。

對於L1-正則項來說,因爲L1-正則項的等值線是一組菱形,這些交點容易落在座標軸上。因此,另一個參數的值在這個交點上就是零,從而實現了稀疏化。

對於L2-正則項來說,因爲L2-正則項的等值線是一組圓形。所以,這些交點可能落在整個平面的任意位置。所以它不能實現「稀疏化」。但是,另一方面,由於 (w1,w2)落在圓上,所以它們的值會比較接近。這就是爲什麼L2-正則項可以使得參數在零附近稠密而平滑。

 

2、深度學習裏面怎麼防止過擬合?(data augdropoutmulti-task learning)如何防止過擬合,列舉了4中主要防止過擬合方法:Early Stopping、數據集擴充、正則化法以及dropout,還詳細跟他說了每種方法原理及使用的場景,並解釋我在哪些項目裏具體用到了這些方法,

 

3、機器學習中使用「正則化來防止過擬合」到底是一個什麼原理?爲什麼正則化項就可以防止過擬合?https://www.zhihu.com/question/20700829

過擬合發生的本質原因,是由於監督學習問題的不適定:數據遠遠少於模型空間。因此過擬合現象的發生,可以分解成以下三點:

  1. 有限的訓練數據不能完全反映出一個模型的好壞,然而我們卻不得不在這有限的數據上挑選模型,因此我們完全有可能挑選到在訓練數據上表現很好而在測試數據上表現很差的模型,因爲我們完全無法知道模型在測試數據上的表現。
  2. 如果模型空間很大,也就是有很多很多模型以給我們挑選,那麼挑到對的模型的機會就會很小。
  3. 與此同時,如果我們要在訓練數據上表現良好,最爲直接的方法就是要在足夠大的模型空間中挑選模型,否則如果模型空間很小,就不存在能夠擬合數據很好的模型。

由上3點可見,要擬合訓練數據,就要足夠大的模型空間;用了足夠大的模型空間,挑選到測試性能好的模型的概率就會下降。因此,就會出現訓練數據擬合越好,測試性能越差的過擬合現象。

爲什麼正則化能夠避免過擬合:因爲正則化就是控制模型空間的一種辦法。正則化能夠在保證模型有效的前提下使得模型簡單,而越簡單的模型泛化能力越強。就像求解n個一階變量的方程組,但是方程組的個數不足n,這樣就會有無數解,引入正則化項使得有唯一解,而且此解會使該方程組簡單。

 

4、機器學習中常常提到的正則化到底是什麼意思?https://www.zhihu.com/question/20924039

 

5、什麼是正則項,L1範式,L2範式區別是什麼,各自用在什麼地方?L1 L2 的區別以及如何解決 L1 求導困難;

 

L1 和 L2 範數在機器學習上最主要的應用大概分下面兩類

  • 作爲損失函數使用
  • 作爲正則項使用也即所謂 L1-regularization 和 L2-regularization

我們可以擔當損失函數

先來看個迴歸問題

preview

我們需要做的是,獲得一條線,讓數據點到線上的總距離(也就是error)最小。

於是可以用能表示距離的 L1-norm 和 L2-norm 來作爲損失函數了。

首先是 L1-norm 損失函數,又被稱爲 least absolute deviation (LAD,最小絕對偏差)

如果我們最小化上面的損失函數,其實就是在最小化預測值 和目標值 的絕對值。

之後是大家最熟悉的 L2-norm 損失函數,又有大名最小二乘誤差 (least squares error, LSE):

爲什麼大家一般都用 L2 損失函數,卻不用 L1 呢?

這個就說來話長了,如果你問一個學習過微積分的同學,如何求一個方程的最小值,他/她大概會想當然的說:“求導,置零,解方程。” 號稱微積分屆的農夫三拳。

但如果給出一個絕對值的方程,突然就會發現農夫三拳不管用了,求最小值就有點麻煩了。主要是因爲絕對值的倒數是不連續的。

同樣的對於 L1 和 L2 損失函數的選擇,也會碰到同樣的問題,所以最後大家一般用 L2 損失函數而不用 L1 損失函數的原因就是:

因爲計算方便!可以直接求導獲得取最小值時各個參數的取值。

此外還有一點,用 L2 一定只有一條最好的預測線,L1 則因爲其性質可能存在多個最優解

L1 損失函數好處,就是魯棒性 (Robust) 更強,對異常值更不敏感

 

我們還能擔當正則項

在損失函數中加個正則項(Regularization Term),來防止參數擬合得過好。

L1-regularization 和 L2-regularization 便都是我們常用的正則項,兩者公式的例子分別如下

preview

preview

這兩個正則項最主要的不同,包括兩點:

  • L2 計算起來更方便,而 L1 在特別是非稀疏向量上的計算效率就很低;
  • 還有就是 L1 最重要的一個特點,輸出稀疏,會把不重要的特徵直接置零,而 L2 則不會;因爲 L1 天然的輸出稀疏性,把不重要的特徵都置爲 0,所以它也是一個天然的特徵選擇器
  • L2 有唯一解,而 L1 不是。

L1可以實現稀疏,但是爲什麼要稀疏?讓我們的參數稀疏有什麼好處呢?

1)特徵選擇(Feature Selection):

       大家對稀疏規則化趨之若鶩的一個關鍵原因在於它能實現特徵的自動選擇。一般來說,xi的大部分元素(也就是特徵)都是和最終的輸出yi沒有關係或者不提供任何信息的,在最小化目標函數的時候考慮xi這些額外的特徵,雖然可以獲得更小的訓練誤差,但在預測新的樣本時,這些沒用的信息反而會被考慮,從而干擾了對正確yi的預測。稀疏規則化算子的引入就是爲了完成特徵自動選擇的光榮使命,它會學習地去掉這些沒有信息的特徵,也就是把這些特徵對應的權重置爲0。

2)可解釋性(Interpretability):

       另一個青睞於稀疏的理由是,模型更容易解釋。例如患某種病的概率是y,然後我們收集到的數據x是1000維的,也就是我們需要尋找這1000種因素到底是怎麼影響患上這種病的概率的。假設我們這個是個迴歸模型:y=w1*x1+w2*x2+…+w1000*x1000+b(當然了,爲了讓y限定在[0,1]的範圍,一般還得加個Logistic函數)。通過學習,如果最後學習到的w*就只有很少的非零元素,例如只有5個非零的wi,那麼我們就有理由相信,這些對應的特徵在患病分析上面提供的信息是巨大的,決策性的。也就是說,患不患這種病只和這5個因素有關,那醫生就好分析多了。但如果1000個wi都非0,醫生面對這1000種因素,累覺不愛。
 

L1 L2 的區別:

  • L1範數可以進行特徵選擇,即讓特徵的係數變爲0.
  • L2範數可以防止過擬合,提升模型的泛化能力,有助於處理 condition number不好下的矩陣(數據變化很小矩陣求解後結果變化很大)
  • (核心:L2對大數,對outlier離羣點更敏感!)
  • 下降速度:最小化權值參數L1比L2變化的快
  • 模型空間的限制:L1會產生稀疏 L2不會。
  • L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。

座標軸下降法(解決L1正則化不可導的問題)

由於lasso迴歸的損失函數是不可導的,所以梯度下降算法將不再有效,下面利用座標軸下降法進行求解。

座標軸下降法和梯度下降法具有同樣的思想,都是沿着某個方向不斷迭代,但是梯度下降法是沿着當前點的負梯度方向進行參數更新,而座標軸下降法是沿着座標軸的方向

下面爲具體的更新過程。

    1選取初始參數

           

    (2)針對當前得到的參數進行迭代,假設已經求出第k-1輪的參數,現在由求,其中,則:

          

   (3)通過以上步驟即可以得到每輪的迭代結果,如果相對於的變化很小,則停止迭代,否則,重複步驟2.

通過以上迭代過程可以看出

    1. 座標軸下降法進行參數更新時,每次總是固定另外m-1個值,求另外一個的局部最優值,這樣也避免了Lasso迴歸的損失函數不可導的問題。

    2. 座標軸下降法每輪迭代都需要O(mn)的計算。(和梯度下降算法相同)

座標軸下降法的數學依據爲:

    對於一個可微凸函數,其中的向量,如果對於一個解,使得在某個座標軸

都能達到最小值,則就是的全局的最小值點。

 

座標軸下降法的求極值過程,可以和梯度下降做一個比較:

    a) 座標軸下降法在每次迭代中在當前點處沿一個座標方向進行一維搜索 ,固定其他的座標方向,找到一個函數的局部極小值。而梯度下降總是沿着梯度的負方向求函數的局部最小值。

    b) 座標軸下降優化方法是一種非梯度優化算法。在整個過程中依次循環使用不同的座標方向進行迭代,一個週期的一維搜索迭代過程相當於一個梯度下降的迭代。

    c) 梯度下降是利用目標函數的導數來確定搜索方向的,該梯度方向可能不與任何座標軸平行。而座標軸下降法法是利用當前座標方向進行搜索,不需要求目標函數的導數,只按照某一座標方向進行搜索最小值。

    d) 兩者都是迭代方法,且每一輪迭代,都需要O(mn)的計算量(m爲樣本數,n爲係數向量的維度)

 

6、L1正則爲什麼能讓係數變爲0L1正則怎麼處理0點不可導的情形?(這個誰會?近端梯度下降)

l1 相比於 l2 爲什麼容易獲得稀疏解?

假設費用函數 L 與某個參數 x 的關係如圖所示:

preview

則最優的 x 在綠點處,x 非零。

現在施加 L2 regularization,新的費用函數如圖中藍線所示:

preview

最優的 x 在黃點處,x 的絕對值減小了,但依然非零。

而如果施加 L1 regularization,則新的費用函數如圖中粉線所示

preview

最優的 x 就變成了 0。這裏利用的就是絕對值函數的尖峯。

 

兩種 regularization 能不能把最優的 x 變成 0,取決於原先的費用函數在 0 點處的導數。
如果本來導數不爲 0,那麼施加 L2 regularization 後導數依然不爲 0,最優的 x 也不會變成 0。
而施加 L1 regularization 時,只要 regularization 項的係數 C 大於原先費用函數在 0 點處的導數的絕對值,x = 0 就會變成一個極小值點。

上面只分析了一個參數 x。事實上 L1 regularization 會使得許多參數的最優值變成 0,這樣模型就稀疏了。

爲什麼使用L1正則項,會傾向於使得參數稀疏化;而使用L2-正則項,會傾向於使得參數稠密地接近於零?

爲了簡便起見,我們只考慮模型有兩個參數w1與w2的情形。

在圖中,我們有三組「等值線」。位於同一條等值線上的w1與w2,具有相同的值(平方誤差、L1-範數或L2-範數)。並且,對於三組等值線來說,當 (w1,w2)沿着等值線法線方向,像外擴張,則對應的值增大;反之,若沿着法線方向向內收縮,則對應的值減小。

因此,對於目標函數Obj(F)來說,實際上是要在正則項的等值線與損失函數的等值線中尋找一個交點,使得二者的和最小。

對於L1-正則項來說,因爲L1-正則項的等值線是一組菱形,這些交點容易落在座標軸上。因此,另一個參數的值在這個交點上就是零,從而實現了稀疏化。

對於L2-正則項來說,因爲L2-正則項的等值線是一組圓形。所以,這些交點可能落在整個平面的任意位置。所以它不能實現「稀疏化」。但是,另一方面,由於 (w1,w2)落在圓上,所以它們的值會比較接近。這就是爲什麼L2-正則項可以使得參數在零附近稠密而平滑。

 

7、L0L1L2正則化(如果能推導絕對是加分項,一般人最多能畫個等高線,L0NP問題)其實上面的這些問題基本都能在《李航:統計學習方法》《周志華:機器學習》裏面找到,能翻個45遍基本就無壓力了

 

8、避免過擬合策略、如何提高模型泛化能力、L1L2正則區別,優缺點、生成式,判別式模型、深度學習這塊瞭解多少、

避免過擬合策略

1、獲取更多數據:

     

2、使用合適的模型:

2.1 網絡結構 Architecture

減少網絡的層數、神經元個數等均可以限制網絡的擬合能力;

2.2 訓練時間 Early stopping

對於每個神經元而言,其激活函數在不同區間的性能是不同的。當網絡權值較小時,神經元的激活函數工作在線性區,此時神經元的擬合能力較弱(類似線性神經元)。有了上述共識之後,我們就可以解釋爲什麼限制訓練時間有用:因爲我們在初始化網絡的時候一般都是初始爲較小的權值。訓練時間越長,部分網絡權值可能越大。如果我們在合適時間停止訓練,就可以將網絡的能力限制在一定範圍內。

2.3 限制權值 Weight-decay,也叫正則化(regularization)

原理同上,但是這類方法直接將權值的大小加入到 Cost 裏,在訓練的時候限制權值變大。以 L2 regularization爲例:

訓練過程需要降低整體的 Cost,這時候,一方面能降低實際輸出與樣本之間的誤差 C0,也能降低權值大小。

2.4 增加噪聲 Noise

2.4.1 在輸入中加噪聲:噪聲會隨着網絡傳播,按照權值的平方放大,並傳播到輸出層,對誤差 Cost 產生影響。

2.4.2 在權值上加噪聲:在初始化網絡的時候,用0均值的高斯分佈作爲初始化。

2.4.3 對網絡的響應加噪聲:如在前向傳播過程中,讓默寫神經元的輸出變爲 binary 或 random。

3、結合多種模型:訓練多個模型,以每個模型的平均輸出作爲結果。

大概基於這個原理,就可以有很多方法了:

3.3 Dropout

這是一個很高效的方法。

4. 貝葉斯方法

如何提高模型泛化能力

基本思路就是:先把模型搞複雜,複雜到得到令你滿意的訓練誤差(訓練誤差要低於『令你滿意的測試誤差』),然後在慢慢調參、簡化模型、添加先驗和正則、改變數據維度、特徵提取等,直到測試誤差也滿足『低於令你滿意的測試誤差』。

 

改進思路一般有兩個:
1、改進模型:
①、換算法;
②、調參數。

2、做好數據預處理:
有一個好的數據集遠比有一個好的模型更爲重要。這裏的“好”主要表現在兩方面:
①、做好特徵選擇;
②、做好數據離散化、異常值處理、缺失填充等。

 

9、如何克服過擬合,欠擬合

 

10、L1 L2 的區別以及如何解決 L1 求導困難;

L1 L2 的區別:

  • L1範數可以進行特徵選擇,即讓特徵的係數變爲0.
  • L2範數可以防止過擬合,提升模型的泛化能力,有助於處理 condition number不好下的矩陣(數據變化很小矩陣求解後結果變化很大)
  • (核心:L2對大數,對outlier離羣點更敏感!)
  • 下降速度:最小化權值參數L1比L2變化的快
  • 模型空間的限制:L1會產生稀疏 L2不會。
  • L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。

 

11、L1正則爲什麼可以把係數壓縮成0,座標下降法的具體實現細節

座標軸下降法(解決L1正則化不可導的問題)

由於lasso迴歸的損失函數是不可導的,所以梯度下降算法將不再有效,下面利用座標軸下降法進行求解。

座標軸下降法和梯度下降法具有同樣的思想,都是沿着某個方向不斷迭代,但是梯度下降法是沿着當前點的負梯度方向進行參數更新,而座標軸下降法是沿着座標軸的方向

下面爲具體的更新過程。

    1選取初始參數

           

    (2)針對當前得到的參數進行迭代,假設已經求出第k-1輪的參數,現在由求,其中,則:

          

   (3)通過以上步驟即可以得到每輪的迭代結果,如果相對於的變化很小,則停止迭代,否則,重複步驟2.

通過以上迭代過程可以看出

    1. 座標軸下降法進行參數更新時,每次總是固定另外m-1個值,求另外一個的局部最優值,這樣也避免了Lasso迴歸的損失函數不可導的問題。

    2. 座標軸下降法每輪迭代都需要O(mn)的計算。(和梯度下降算法相同)

座標軸下降法的數學依據爲:

    對於一個可微凸函數,其中的向量,如果對於一個解,使得在某個座標軸

都能達到最小值,則就是的全局的最小值點。

 

座標軸下降法的求極值過程,可以和梯度下降做一個比較:

    a) 座標軸下降法在每次迭代中在當前點處沿一個座標方向進行一維搜索 ,固定其他的座標方向,找到一個函數的局部極小值。而梯度下降總是沿着梯度的負方向求函數的局部最小值。

    b) 座標軸下降優化方法是一種非梯度優化算法。在整個過程中依次循環使用不同的座標方向進行迭代,一個週期的一維搜索迭代過程相當於一個梯度下降的迭代。

    c) 梯度下降是利用目標函數的導數來確定搜索方向的,該梯度方向可能不與任何座標軸平行。而座標軸下降法法是利用當前座標方向進行搜索,不需要求目標函數的導數,只按照某一座標方向進行搜索最小值。

    d) 兩者都是迭代方法,且每一輪迭代,都需要O(mn)的計算量(m爲樣本數,n爲係數向量的維度)

 

12、爲什麼L1正則可以實現參數稀疏,而L2正則不可以?爲什麼L1很多係數可以被壓縮爲0L2是被壓縮至接近於0

爲什麼使用L1正則項,會傾向於使得參數稀疏化;而使用L2-正則項,會傾向於使得參數稠密地接近於零?

爲了簡便起見,我們只考慮模型有兩個參數w1與w2的情形。

在圖中,我們有三組「等值線」。位於同一條等值線上的w1與w2,具有相同的值(平方誤差、L1-範數或L2-範數)。並且,對於三組等值線來說,當 (w1,w2)沿着等值線法線方向,像外擴張,則對應的值增大;反之,若沿着法線方向向內收縮,則對應的值減小。

因此,對於目標函數Obj(F)來說,實際上是要在正則項的等值線與損失函數的等值線中尋找一個交點,使得二者的和最小。

對於L1-正則項來說,因爲L1-正則項的等值線是一組菱形,這些交點容易落在座標軸上。因此,另一個參數的值在這個交點上就是零,從而實現了稀疏化。

對於L2-正則項來說,因爲L2-正則項的等值線是一組圓形。所以,這些交點可能落在整個平面的任意位置。所以它不能實現「稀疏化」。但是,另一方面,由於 (w1,w2)落在圓上,所以它們的值會比較接近。這就是爲什麼L2-正則項可以使得參數在零附近稠密而平滑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章