L1不可導怎麼辦 座標下降演算法

2021-09-25 07:04:10 字數 2430 閱讀 1995

本文為學習 的筆記

帶l1正則的損失函式,在求梯度時可能遇到不可求導的點,即非光滑的點,這時可以使用非梯度優化的方法比如座標下降法。

座標下降法屬於一種非梯度優化的方法,它在每步迭代中沿乙個座標的方向進行線性搜尋(線性搜尋是不需要求導數的),通過迴圈使用不同的座標方法來達到目標函式的區域性極小值。

理論支援

定理:給定函式f(x

)=g(

x)+∑

i=1n

hi(x

i)f(x)=g(x)+\sum_^ h_\left(x_\right)

f(x)=g

(x)+

∑i=1

n​hi

​(xi

​), 其中g是可微的凸函式,hi是凸的(但是不可微),那麼如果在某一點x,使得f(x)在每乙個座標軸上都是最小值,那麼f(x)是乙個全域性的最小值,即f(x

+d⋅e

i)≥f

(x)f\left(x+d \cdot e_\right) \geq f(x)

f(x+d⋅

ei​)

≥f(x

)對於所有的d,i都有f(x

)=min⁡zf

(z)f(x)=\min _ f(z)

f(x)

=minz​

f(z)

。這裡ei=

(0,…

,1,…

0)∈r

ne_=(0, \ldots, 1, \ldots 0) \in \mathbb^

ei​=(0

,…,1

,…0)

∈rn

這裡可微凸函式+不可微凸函式的形式就是lasso回歸形式,現在l1正則不可導。

證明:f (y

)−f(

x)≥∇

g(x)

t(y−

x)+∑

i=1n

[hi(

yi)−

hi(x

i)]=

∑i=1

n[∇i

g(x)

(yi−

xi)+

hi(y

i)−h

i(xi

)]⎵≥

0≥0\begin f(y)-f(x) \geq & \nabla g(x)^(y-x)+\sum_^\left[h_\left(y_\right)-h_\left(x_\right)\right] \\ &=\sum_^ \underbrace g(x)\left(y_-x_\right)+h_\left(y_\right)-h_\left(x_\right)\right]}_ \geq 0 \end

f(y)−f

(x)≥

​∇g(

x)t(

y−x)

+i=1

∑n​[

hi​(

yi​)

−hi​

(xi​

)]=i

=1∑n

​≥0[

∇i​g

(x)(

yi​−

xi​)

+hi​

(yi​

)−hi

​(xi

​)]​

​≥0​

其中∇ g(

x)t\nabla g(x)^

∇g(x)t

是對所有維度的一階導數,第一項即泰勒公式展開,後面的為線性運算,整個式子表示x點為當前的最小點。

演算法過程

下標表示屬於第幾維向量,上標表示第幾輪,上圖是一輪的計算。

x 1(

k)=arg

⁡min⁡f

(x1,

x2(k

−1),

x3(k

−1),

…xn(

k−1)

)x_^=\arg \min f\left(\mathrm_, \mathrm_^, \mathrm_^, \ldots \mathrm_^\right)

x1(k)​

=arg

minf(x

1​,x

2(k−

1)​,

x3(k

−1)​

,…xn

(k−1

)​), 表示固定除x1x_

x1​以外以外的所有維度的變數,在x1x_

x1​維度上進行搜尋,找到x1x_

x1​維度上的最小值。

當l1正則不可導時,可以使用座標下降法來代替梯度下降法來找到最優解。

L1正則化與稀疏性 L1正則化不可導問題

l1正則化與稀疏性 座標軸下降法 解決l1正則化不可導的問題 lasso回歸演算法 座標軸下降法與最小角回歸法小結 l1正則化使得模型引數具有稀疏性的原理是什麼?機器學習經典之作 pattern recognition and machine learning 中的第三章作出的乙個解釋無疑是權威且直...

關於L1正則在某些點不可導說明

首先乙個函式連續但是不一定可導,判斷乙個函式是否連續是在某個點左極限 右極限 改點的函式值,判斷乙個函式是否可導,左導數等於右導數,關於l1正則在0點不可導怎麼解決這個問題,為什麼在0點 不可以導,這個問題從15年畢業到現在,面試過程也被問了,作為一名面試官也問了別人,看看吧 f x x lim x...

遇到不可重現問題怎麼辦

測試無法重現問題這個是測試過程中比較常見的現象,網上看到的總結的比較好文章,自己補充了4 5兩點 1 回憶操作步驟 嘗試重現 盡量回憶當時的操作步驟,並且最大可能的復原當時的操作環境。確認當時的操作步驟是否有誤。如果確認無誤,可以多次嘗試重現 即使發現有操作錯誤的情況,也不要認為沒問題了,要思量為什...