Cross-Validation

錯誤率是正則化參數 lambda 的凸函數嗎?

  • August 17, 2017

在 Ridge 或 Lasso 中選擇正則化參數 lambda 時,推薦的方法是嘗試不同的 lambda 值,測量 Validation Set 中的誤差,最後選擇返回最低誤差的那個 lambda 值。

如果函數 f(lambda) = error 是凸函數,這對我來說並不明確。會是這樣嗎?即這條曲線是否可以有多個局部最小值(這意味著在 lambda 的某個區域找到誤差的最小值並不排除在某些其他區域有一個 lambda 返回更小的誤差的可能性)

在此處輸入圖像描述

您的建議將不勝感激。

最初的問題詢問誤差函數是否需要是凸的。 不,不是的。 下面給出的分析旨在提供一些關於這個問題和修改後的問題的洞察力和直覺,該問題詢問誤差函數是否可能具有多個局部最小值。

直觀地說,數據和訓練集之間不必存在任何數學上必要的關係。 我們應該能夠找到模型最初很差的訓練數據,通過一些正則化變得更好,然後再次變得更糟。在那種情況下,誤差曲線不可能是凸的——至少如果我們使正則化參數從 0 .

請注意,不等於具有唯一的最小值!然而,類似的想法表明多個局部最小值是可能的:在正則化過程中,首先擬合模型可能對某些訓練數據變得更好,而對其他訓練數據沒有明顯變化,然後它會在其他訓練數據上變得更好,等等。這些訓練數據的混合應該產生多個局部最小值。為了使分析簡單,我不會試圖證明這一點。

編輯(以回應更改的問題)

我對下面介紹的分析及其背後的直覺非常有信心,因此我開始以最粗略的方式尋找一個例子:我生成了小的隨機數據集,在它們上運行 Lasso,計算一個小的訓練集的總平方誤差,並繪製其誤差曲線。一些嘗試產生了一個有兩個最小值的結果,我將對此進行描述。向量的形式為 (x1,x2,y) 對於功能 x1x2 和回應 y .

訓練數據

(1,1,0.1), (2,1,0.8), (1,2,1.2), (2,2,0.9)

測試數據

(1,1,0.2), (1,2,0.4)

Lasso 是使用glmnet::glmmetin運行的R,所有參數都保留為默認值。的價值觀 λ x 軸上是該軟件報告的值的倒數(因為它使用 1/λ )。

具有多個局部最小值的誤差曲線

數字


分析

讓我們考慮任何擬合參數的正則化方法 β=(β1,,βp) 到數據 xi 和相應的回應 yi 具有嶺回歸和套索共有的這些屬性:

  1. (參數化)方法用實數參數化 λ[0,) , 非正則化模型對​​應於 λ=0 .
  2. (連續性)參數估計 ˆβ 持續依賴於 λ 並且任何特徵的預測值隨著 ˆβ .
  3. (收縮)作為 λ , ˆβ0 .
  4. (有限性)對於任何特徵向量 x , 作為 ˆβ0 , 預測 ˆy(x)=f(x,ˆβ)0 .
  5. (單調誤差)比較任意值的誤差函數 y 到一個預測值 ˆy , L(y,ˆy) , 隨差異增加 |ˆyy| 因此,在濫用符號的情況下,我們可以將其表示為 L(|ˆyy|) .

(歸零 (4) 可以用任何常數代替。)

假設數據使得初始(非正則化)參數估計 ˆβ(0) 不為零。讓我們構建一個包含一個觀察的訓練數據集 (x0,y0) 為此 f(x0,ˆβ(0))0 . (如果找不到這樣的 x0 ,那麼初始模型不會很有趣!) y0=f(x0,ˆβ(0))/2 .

假設意味著誤差曲線 e:λL(y0,f(x0,ˆβ(λ)) 具有以下屬性:

  1. e(0)=L(y0,f(x0,ˆβ(0))=L(y0,2y0)=L(|y0|) (因為選擇 y0 )。
  2. limλe(λ)=L(y0,0)=L(|y0|) (因為作為 λ , ˆβ(λ)0 , 從何而來 ˆy(x0)0 )。

因此,它的圖形連續連接兩個同樣高(和有限)的端點。

圖顯示 e 的可能圖。

定性地說,有三種可能:

  • 訓練集的預測永遠不會改變。這不太可能 - 幾乎您選擇的任何示例都不會具有此屬性。
  • 一些中間預測 0<λ< 比開始時更糟 λ=0 或在極限 λ . 這個函數不能是凸的。
  • 所有中間預測都介於 02y0 . 連續性意味著至少有一個最小值 e , 附近 e 必須是凸的。但是由於 e(λ) 漸近地逼近一個有限常數,它不可能是凸的足夠大 λ .

圖中的垂直虛線顯示了繪圖從凸形(左側)變為非凸形(右側)的位置。(附近還有一個非凸區域 λ0 在此圖中,但通常情況不一定如此。)

引用自:https://stats.stackexchange.com/questions/298509