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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习之梯度下降法(GD)和坐标轴下降法(CD)

發(fā)布時間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之梯度下降法(GD)和坐标轴下降法(CD) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

梯度下降法

梯度下降法(Gradient Descent, GD)常用于求解無約束情況下凸函數(shù)(Convex Function)的極小值,是一種迭代類型的算法,因為凸函數(shù)只有一個極值點,故求解出來的極小值點就是函數(shù)的最小值點

梯度下降法的優(yōu)化思想是用當前位置負梯度方向作為搜索方向,因為該方向為當前位置的最快下降方向,所以梯度下降法也被稱為“最速下降法”。梯度下降法中越接近目標值,變量變化越小。計算公式如下

梯度下降法(數(shù)值解)過程

  • Step1:初始化θ(隨機初始化)
  • Step2:沿著負梯度方向迭代,新的θ 能夠使得J(θ) 更小?α:學習率、步長
  • Step3:如果J(θ) 能夠繼續(xù)減小,返回Step2,直到迭代完成。

收斂條件:當目標函數(shù)的函數(shù)值變化非常小的時候或者達到最大迭代次數(shù)的時候,就結束循環(huán)。

注:僅考慮單個樣本的單個 θ 參數(shù)的梯度值

4.2批量梯度下降法(BGD)

使用所有樣本的梯度值作為當前模型參數(shù)θ 的更新

4.3隨機梯度下降法(SGD)

使用單個樣本的梯度值作為當前模型參數(shù)θ的更新

for i= 1 to m,{

}

BGD和SDB的區(qū)別

  • SGD速度比BGD快(整個數(shù)據(jù)集從頭到尾執(zhí)行的迭代次數(shù)少)
  • SGD在某些情況下(全局存在多個相對最優(yōu)解,J(θ)不是一個二次函數(shù)),SGD有可能會跳出某些小的局部最優(yōu)解,所以一般情況下不會比BGD差;SGD在收斂的位置會存在J(θ)函數(shù)波動的情況,抗噪聲很差。
  • BGD一定能夠得到一個局部最優(yōu)解(在線性回歸模型中一定是得到一個全局最優(yōu)解),SGD由于隨機性的存在可能導致最終結果比BGD差
  • 注意:優(yōu)先選擇SGD

小批量梯度下降法(MBGD)

  • 如果要滿足算法訓練過程較快,又需要保證最終參數(shù)訓練的準確率較高,提出小批量梯度下降法(Mini-batch Gradient Descent,簡稱MBGD)。
  • MBGD中是把樣本劃分為b個樣本(b一般為10),然后以這b個樣本的平均梯度為更新方向:

for i = 1 to m/10,{

}

學習率選擇和參數(shù)初始化

由于梯度下降法中負梯度方向作為變量的變化方向,所以有可能導致最終求解的值是局部最優(yōu)解,所以在使用梯度下降的時候,一般需要進行一些調(diào)優(yōu)策略

  • 學習率的選擇:學習率過大,表示每次迭代更新的時候變化比較大,有可能會跳過最優(yōu)解;學習率過小,表示每次迭代更新的時候變化比較小,就會導致迭代速度過慢,很長時間都不能結束;
  • 算法初始參數(shù)數(shù)值的選擇:初始值不同,最終獲得的最小值也有可能不同,因為梯度下降法求解的是局部最優(yōu)解,所以一般情況下,選擇多次不同初始值運行算法,并最終返回損失函數(shù)最小情況下的結果值;
  • 標準化:由于樣本不同特征值的取值范圍不同,可能會導致在各個不同參數(shù)上迭代速度不同,為了減少特征取值的影響,可以將特征進行標準化操作。

BGD、SGD、MBGD的區(qū)別

當樣本量為m的時候,每次迭代BGD算法中對于參數(shù)值更新一次,SGD算法中對于參數(shù)值更新m次,MBGD算法中對參數(shù)值更新m/n次,相對來講SGD的更新速度最快;

SGD算法中對于每個樣本都需要更新參數(shù)值,當樣本值不太正常的時候,就有可能會導致本次的參數(shù)更新會產(chǎn)生相反的影響,也就是說SGD算法的結果并不完全收斂,而是在收斂結果處波動;

SGD算法是每個樣本都更新一次參數(shù)值,所以SGD算法特別適合樣本數(shù)據(jù)量特別大的情況以及在線機器學習(Online ML)

梯度下降法案例代碼

坐標軸下降法

坐標軸下降法(Coordinate Descent,CD)是一種迭代法,通過啟發(fā)式的方法一步步的迭代求解函數(shù)的最小值,和梯度下降法(GD)不同的時候,坐標軸下降法是沿著坐標軸的方向去下降,而不是采用梯度的負方向下降。

坐標軸下降法利用EM算法的思想,在參數(shù)更新過程中,每次均先固定m-1個參數(shù)值,求解剩下的一個參數(shù)的局部最優(yōu)解;然后進行迭代式的更新操作。

坐標軸下降法的核心思想是多變量函數(shù)F(X)可以通過每次沿著一個方向優(yōu)化來獲取最小值。

其數(shù)學依據(jù)是:對于一個可微凸函數(shù)f(θ),其中θ 為?n*1 的向量,如果對于一個解??,使得f(θ) 在某個坐標軸??上都能達到最小值,則? 就是 f(θ) 的全局的最小值點。

在坐標軸下降法中,優(yōu)化方向從算法的一開始就固定了,即沿著坐標的方向進行變化。在算法中,循環(huán)最小化各個坐標方向的目標函數(shù)。即:如果???給定,那么??的第i維度為:

因此,從一個初始的? 求得函數(shù)F(x)的局部最優(yōu)解,可以迭代獲取??的序列,從而可以得到:

坐標軸下降法算法過程:

  • 給θ 向量隨機選取一個初值,記做?
  • ?對于第k輪的迭代,從?? 開始計算,? 到為止,計算公式如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????

  • 檢查???和??向量在各個維度上的變化情況,如果所有維度的變化情況都比較小的話,那么認為結束迭代,否則繼續(xù)k+1輪的迭代
  • 在求解每個參數(shù)局部最優(yōu)解的時候可以求導的方式來求解
    ?

總結

以上是生活随笔為你收集整理的机器学习之梯度下降法(GD)和坐标轴下降法(CD)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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