日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】次梯度(subgradient)方法

發(fā)布時(shí)間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】次梯度(subgradient)方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

次梯度方法(subgradient method)是傳統(tǒng)的梯度下降方法的拓展,用來處理不可導(dǎo)的凸函數(shù)。它的優(yōu)勢(shì)是比傳統(tǒng)方法處理問題范圍大,劣勢(shì)是算法收斂速度慢。但是,由于它對(duì)不可導(dǎo)函數(shù)有很好的處理方法,所以學(xué)習(xí)它還是很有必要的。

次導(dǎo)數(shù)

設(shè)f:I→R是一個(gè)實(shí)變量凸函數(shù),定義在實(shí)數(shù)軸上的開區(qū)間內(nèi)。這種函數(shù)不一定是處處可導(dǎo)的,例如最經(jīng)典的例子就是,在處不可導(dǎo)。但是,從下圖的可以看出,對(duì)于定義域內(nèi)的任何,我們總可以作出一條直線,它通過點(diǎn),并且要么接觸f的圖像,要么在它的下方。這條直線的斜率稱為函數(shù)的次導(dǎo)數(shù)。

次導(dǎo)數(shù)與次微分(subdifferential)計(jì)算方式

凸函數(shù)f:I→R在點(diǎn)x0的次導(dǎo)數(shù),是實(shí)數(shù)c使得:?

原導(dǎo)數(shù)計(jì)算公式為:

對(duì)該定義略作解釋:

按照上面次導(dǎo)數(shù)對(duì)定義方式,次導(dǎo)數(shù)c應(yīng)滿足條件:

對(duì)于函數(shù)而言,只有在處不可導(dǎo),即我們考慮在處的次導(dǎo)數(shù):

很容易就可以得出:

接下來給出正宗的計(jì)算定義:

對(duì)于所有I內(nèi)的x。我們可以證明,在點(diǎn)x0的次導(dǎo)數(shù)的集合是一個(gè)非空閉區(qū)間[a, b],其中a和b是單側(cè)極限?

它們一定存在,且滿足a ≤ b。?
所有次導(dǎo)數(shù)的集合稱為函數(shù)f在的次微分

例如:考慮凸函數(shù)。在原點(diǎn)的次微分是區(qū)間[?1, 1]。時(shí),次微分是單元素集合{-1},而,則是單元素集合{1}。

次導(dǎo)數(shù)與次微分的一些性質(zhì)

  • 凸函數(shù)f:I→R在可導(dǎo),當(dāng)且僅當(dāng)次微分只由一個(gè)點(diǎn)組成,這個(gè)點(diǎn)就是函數(shù)在的導(dǎo)數(shù)。?
  • 點(diǎn)是凸函數(shù)f的最小值,當(dāng)且僅當(dāng)次微分中包含零,也就是說,在上面的圖中,我們可以作一條水平的“次切線”。這個(gè)性質(zhì)是“可導(dǎo)函數(shù)在極小值的導(dǎo)數(shù)是零”的事實(shí)的推廣。
  • 次梯度(subgradient)

    到這里,我們總算是搞清楚次導(dǎo)數(shù)和次微分是什么東西了。

    將次導(dǎo)數(shù)和次微分的概念推廣到多元函數(shù),就可以得到次梯度了。如果f:U→ R是一個(gè)實(shí)變量凸函數(shù),定義在歐幾里得空間內(nèi)的凸集,則該空間內(nèi)的向量v稱為函數(shù)在點(diǎn)的次梯度,如果對(duì)于所有U內(nèi)的x,都有:?

    所有次梯度的集合稱為次微分,記為。次微分總是非空的凸緊集。

    此記法與前面的次導(dǎo)數(shù)記法極為相似。我們用更為常見的記法來定義次梯度:

    次梯度(Subgradient)與梯度的概念類似,凸函數(shù)的First-order characterization(一階特征描述)是指如果函數(shù)f可微,那么當(dāng)且僅當(dāng)為凸集,且對(duì)于,使得,則函數(shù)為凸函數(shù)。這里所說的次梯度是指在函數(shù)上的點(diǎn)滿足以下條件的:

    其中,函數(shù)不一定要是凸函數(shù),非凸函數(shù)也可以,即對(duì)于凸函數(shù)或者非凸函數(shù)而言,滿足上述條件的均為函數(shù)在該點(diǎn)的次梯度。但是,凸函數(shù)總是存在次梯度(可以利用epigraph和支撐平面理論證明),而非凸函數(shù)則不一定存在次梯度,即使可微。這里主要包含兩層意思:1.用次梯度對(duì)原函數(shù)做出的泰勒一階展開估計(jì)總是比真實(shí)值要小;2.次梯度可能不唯一。

    很明顯,凸函數(shù)的次梯度一定存在,如果函數(shù)在點(diǎn)處可微,那么,為函數(shù)在該點(diǎn)的梯度,且唯一;如果不可微,則次梯度不一定唯一。但是對(duì)于非凸函數(shù),次梯度則不一定存在,也不一定唯一。例如,凸函數(shù)范數(shù)為凸函數(shù),但不滿足處處可微的條件,因此,函數(shù)的次梯度不一定唯一,如下圖:

    左一圖為,函數(shù)在時(shí),次梯度唯一,且;當(dāng)時(shí),次梯度為中的任意一個(gè)元素;

    左二圖為,函數(shù)在時(shí),次梯度唯一,且;當(dāng)時(shí),次梯度為中的任意一個(gè)元素;

    同樣,絕對(duì)值函數(shù)和最大值函數(shù)在不可微點(diǎn)處次梯度也不一定唯一,如下圖:

    對(duì)于最大值函數(shù)而言,其在滿足的點(diǎn)處,次梯度為任意一條直線在向量和之間。

    同理,我們還可以給出在高維情形下次微分(subdifferential)的定義,即:

    • 次微分是閉合且為凸集;

    • 如果函數(shù)在點(diǎn)處可微,那么次微分等于梯度;

    • 凸函數(shù)的次微分不為空,但非凸函數(shù)則不一定。

    次梯度的性質(zhì)

    • Scalingf(數(shù)乘不變性):;

    • Addition(加法不變性):;

    • Affine composition(仿射特性):如果,那么;

    • Finite pointwise maximum(有限最大值):如果,那么,意味著函數(shù)的次微分等于所有能取得最大值的函數(shù)在點(diǎn)處的微分,具體實(shí)例可參考之前提到的最大值函數(shù)部分。

    為什么要計(jì)算次梯度?

    在開頭已經(jīng)粗略的闡述了次梯度方法的使用情景,在這里在詳細(xì)的復(fù)述一遍。

    對(duì)于光滑的凸函數(shù)而言,我們可以直接采用梯度下降算法求解函數(shù)的極值,但是當(dāng)函數(shù)不處處光滑、處處可微的時(shí)候,梯度下降就不適合應(yīng)用了。因此,我們需要計(jì)算函數(shù)的次梯度。對(duì)于次梯度而言,其沒有要求函數(shù)是否光滑,是否是凸函數(shù),限定條件很少,所以適用范圍更廣

    次梯度具有以下優(yōu)化條件(subgradient optimality condition):對(duì)于任意函數(shù)(無論是凸還是非凸),函數(shù)在點(diǎn)處取得最值等價(jià)于:

    即,當(dāng)且僅當(dāng)0屬于函數(shù)在點(diǎn)處次梯度集合的元素時(shí),為最優(yōu)解。

    這與之前所描述的次導(dǎo)數(shù)的性質(zhì)相符合。

    證明:

    證明很簡單,當(dāng)次梯度時(shí),對(duì)于所有,存在,所以,為最優(yōu)解,即證。

    次梯度算法

    介紹完前面的基礎(chǔ)知識(shí),終于要開始介紹算法了~

    經(jīng)典梯度下降算法實(shí)際上是利用負(fù)梯度總是指向最小值點(diǎn)這一性質(zhì),然后每次迭代??,??是一個(gè)很小的控制步進(jìn)長度的數(shù),可以是常量也可以是變量,迭代過程一直進(jìn)行直到收斂。

    次梯度算法(Subgradient method)與梯度下降算法類似,僅僅用次梯度代替梯度,即:

    其中,,為在點(diǎn)處的次梯度。

    與梯度下降算法不同的地方在于,次梯度算法并不是下降算法,每次對(duì)于參數(shù)的更新并不能保證代價(jià)函數(shù)是呈單調(diào)遞減的趨勢(shì),因此,一般情況下我們選擇:

    另一點(diǎn)與梯度下降算法不同的是:次梯度算法沒有明確的步長選擇方法,類似Exact line search和Backtracking line search的方法,只有步長選擇準(zhǔn)則,具體如下:

    • Fixed step sizes:?;
    • Diminishing step sizes: 選擇滿足以下條件的:

    Diminishing step sizes方法主要是保證步長逐漸變小,同時(shí),變化幅度還不會(huì)特別快。這里需要注意的是,次梯度算法并不像梯度下降一樣,可以在每一次迭代過程中自適應(yīng)的計(jì)算此次步長(adaptively computed),而是事先設(shè)定好的(pre-specified)。

    但是,很多人會(huì)提出這樣一個(gè)問題,如果你不能保證次梯度是單調(diào)的,如何保證最后可以收斂?

    定理:如果為凸函數(shù),且滿足Lipschitz continuous with G,如果固定步長為,那么次梯度算法滿足:

    ?

    lipschitz條件:

    對(duì)于在實(shí)數(shù)集的子集的函數(shù)??,若存在常數(shù),使得??,則稱??符合利普希茨條件,對(duì)于??最小的常數(shù)?稱為??的利普希茨常數(shù)。若??,??稱為收縮映射

    在高維情形下:

    證明:

    對(duì)于,,其中。因此,我們可以展開下式為:

    因?yàn)?#xff0c;,且由凸函數(shù)一階性質(zhì)可得,上式不等式可以寫為:

    對(duì)于任意,求和上式可以獲得:

    因?yàn)?#xff0c;,所以:

    如果令為迭代次內(nèi)的最優(yōu)解,那么,其中,,因此:

    ?

    所以,我們可以得到

    同時(shí),因?yàn)?span style="color:#f33b45;">函數(shù)滿足Lipschitz continuous with G,所以,,即函數(shù)的次梯度。

    綜上所述,我們可以證明下式成立:

    其中為初值與最優(yōu)點(diǎn)之間的二范數(shù)距離。

    當(dāng),既證上述定理成立。

    此時(shí),如果我們想要獲得-最優(yōu)解,則令,令等式的每一部分等于,則。

    因此,次梯度的收斂速度為,跟梯度下降算法收斂速度相比,要慢許多。

    下面是次梯度法的一般方法:

  • 選擇有限的正的迭代步長?
  • 計(jì)算一個(gè)次梯度
  • 更新
  • 若是算法沒有收斂,則返回第二步繼續(xù)計(jì)算
  • 次梯度方法性質(zhì):

  • 簡單通用性:就是說第二步中,任何一個(gè)次梯度都是可以的。
  • 收斂性:只要選擇的步長合適,總會(huì)收斂的。
  • 收斂慢:需要大量的迭代才能收斂。
  • 非單調(diào)收斂:不一定是下降方向,在這種情況下,不能使用線性搜索選擇合適的。
  • 沒有很好的停止準(zhǔn)則。
  • 對(duì)于不同步長的序列的收斂結(jié)果

    不妨設(shè)是次迭代中的最優(yōu)結(jié)果。

    1).步長和不可消時(shí)(Non-summable diminishing step size):

    并且這種情況能夠收斂到最優(yōu)解:

    2).Constant step size:?

    ,收斂到次優(yōu)解:
    3).Constant step length:?

    ,能夠收斂到次優(yōu)解
    4).Polyak’s rule:

    ,若是最優(yōu)值可知?jiǎng)t可以用這種方法。

    次梯度算法實(shí)例

    A. Regularized Logistic Regression

    對(duì)于邏輯回歸的代價(jià)函數(shù)可記為:

    明顯,上式是光滑且凸的,而regularized problem則是指優(yōu)化目標(biāo)函數(shù)為:

    如果,則成為嶺回歸(ridge problem),如果則稱為Lasso回歸。對(duì)于嶺回歸,我們?nèi)匀豢梢圆捎锰荻认陆邓惴ㄇ蠼饽繕?biāo)函數(shù),因?yàn)楹瘮?shù)處處可導(dǎo)光滑,而Lasso問題則無法用梯度下降算法求解,因?yàn)楹瘮?shù)不是處處光滑,具體可參考上面給出的Norm-1的定義,所以,對(duì)于Lasso問題需要選用次梯度算法求解。

    下圖是對(duì)于同樣數(shù)據(jù)集下分別對(duì)邏輯回歸選用嶺懲罰和Lasso懲罰求解最優(yōu)解的實(shí)驗(yàn)結(jié)果圖(n=1000,p=20n=1000,p=20):

    B. 隨機(jī)次梯度算法

    上面講到的次梯度算法梯度更新定義為:

    隨機(jī)次梯度算法(Stochastic Subgradient Method)與次梯度算法(Subgradient Method)相比,每次更新次梯度是根據(jù)某一個(gè)樣本計(jì)算獲得,而不是通過所有樣本更新次梯度,其定義為:

    其中,是第次迭代隨機(jī)選取的樣本。從該方法的定義,我們也可引出隨機(jī)梯度下降算法(Stochastic Gradient Descent)的定義,即當(dāng)函數(shù)可微連續(xù)時(shí),。

    所以,根據(jù)梯度更新的方式不同,次梯度算法和梯度下降算法一般被稱為“batch method”。從計(jì)算量來講,次隨機(jī)更新近似等于一次batch更新,二者差別在于,當(dāng)變化不大時(shí),差別可以近似等于0。

    對(duì)于隨機(jī)更新次梯度,一般隨機(jī)的方式有兩種:

    • Cyclic rule:選擇;
    • Randomized rule:均勻隨機(jī)從選取一點(diǎn)作為。

    與所有優(yōu)化算法一樣,隨機(jī)次梯度算法能否收斂?

    答案是肯定的,這里就不在做證明,有興趣的同學(xué)可以參考boyd教授的論文,這里僅給出收斂結(jié)果,如下:

    對(duì)于Cyclic rule,隨機(jī)次梯度算法的收斂速度為;對(duì)于Randomized rule,隨機(jī)次梯度算法的收斂速度為。

    下圖給出梯度下降和隨機(jī)梯度下降算法在同一數(shù)據(jù)下迭代結(jié)果:

    隨機(jī)梯度下降一般有兩個(gè)特性:

  • 通常下降的速度較batch方法要快。
  • 通常在最優(yōu)點(diǎn)附近會(huì)來回震蕩,相較于batch方法不夠穩(wěn)定。
  • ?

    參考文章:

    凸優(yōu)化-次梯度算法

    優(yōu)化中的subgradient方法

    次導(dǎo)數(shù) 次梯度 小結(jié)

    次梯度(Subgradient)

    次梯度

    總結(jié)

    以上是生活随笔為你收集整理的【机器学习】次梯度(subgradient)方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。