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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

梯度下降法和牛顿法

發布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 梯度下降法和牛顿法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在機器學習的優化問題中,梯度下降法和牛頓法是常用的兩種凸函數求極值的方法,他們都是為了求得目標函數的近似解。在邏輯斯蒂回歸模型的參數求解中,一般用改良的梯度下降法,也可以用牛頓法。由于兩種方法有些相似,我特地拿來簡單地對比一下。下面的內容需要讀者之前熟悉兩種算法。

梯度下降法

梯度下降法用來求解目標函數的極值。這個極值是給定模型給定數據之后在參數空間中搜索找到的。迭代過程為:

可以看出,梯度下降法更新參數的方式為目標函數在當前參數取值下的梯度值,前面再加上一個步長控制參數alpha。梯度下降法通常用一個三維圖來展示,迭代過程就好像在不斷地下坡,最終到達坡底。為了更形象地理解,也為了和牛頓法比較,這里我用一個二維圖來表示:

懶得畫圖了直接用這個展示一下。在二維圖中,梯度就相當于凸函數切線的斜率,橫坐標就是每次迭代的參數,縱坐標是目標函數的取值。每次迭代的過程是這樣:

  • 首先計算目標函數在當前參數值的斜率(梯度),然后乘以步長因子后帶入更新公式,如圖點所在位置(極值點右邊),此時斜率為正,那么更新參數后參數減小,更接近極小值對應的參數。
  • 如果更新參數后,當前參數值仍然在極值點右邊,那么繼續上面更新,效果一樣。
  • 如果更新參數后,當前參數值到了極值點的左邊,然后計算斜率會發現是負的,這樣經過再一次更新后就會又向著極值點的方向更新。
  • 根據這個過程我們發現,每一步走的距離在極值點附近非常重要,如果走的步子過大,容易在極值點附近震蕩而無法收斂。解決辦法:將alpha設定為隨著迭代次數而不斷減小的變量,但是也不能完全減為零。

    牛頓法

    首先得明確,牛頓法是為了求解函數值為零的時候變量的取值問題的,具體地,當要求解 f(θ)=0時,如果 f可導,那么可以通過迭代公式

    來迭代求得f的零值點。通過一組圖來說明這個過程。

    當應用于求解最大似然估計的值時,變成?′(θ)=0的問題。 這個與梯度下降不同,梯度下降的目的是直接求解目標函數極小值,而牛頓法則變相地通過求解目標函數一階導為零的參數值,進而求得目標函數最小值。 那么迭代公式寫作:

    當θ是向量時,牛頓法可以使用下面式子表示:

    其中H叫做海森矩陣,其實就是目標函數對參數θ的二階導數。

    通過比較牛頓法和梯度下降法的迭代公式,可以發現兩者及其相似。海森矩陣的逆就好比梯度下降法的學習率參數alpha。牛頓法收斂速度相比梯度下降法很快,而且由于海森矩陣的的逆在迭代中不斷減小,起到逐漸縮小步長的效果。

    牛頓法的缺點就是計算海森矩陣的逆比較困難,消耗時間和計算資源。因此有了擬牛頓法。

    轉載于:https://www.cnblogs.com/linyuanzhou/p/4910701.html

    總結

    以上是生活随笔為你收集整理的梯度下降法和牛顿法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。