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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

机器学习——梯度下降算法

發布時間:2025/4/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习——梯度下降算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 梯度下降算法
    • 概念
    • 前提條件
      • 目標函數
      • 訓練集
    • 訓練步驟
    • 代碼表示
    • 梯度下降的算法調優
    • 總結

梯度下降算法

最優化算法在機器學習中是一種求解最合適的權重參數的算法,梯度下降算法就是其中的一種。

概念

梯度下降算法是一個最優化的算法,它是沿梯度下降的方向求解極小值。

前提條件

目標函數

使用梯度下降算法的第一個前提條件就是目標函數,即告訴梯度下降要求哪個函數的解,例如在線性回歸方程中求解最小二乘法的公式:

這個公式在線性回歸中的最終目的,就是求偏導取駐點最后得到θ的一個極小值。而在這里則是利用梯度下降算法去求得最小值。

訓練集

這個目標函數和線性回歸方程相比在分母處多了一個m。這個m是一個總的數據量,意味著是求多個數據之后的平均值。

第二個前提條件就是數據集,有了目標函數,還必須有數據支撐。只有有了大量的數據,機器才能夠真正的掌握規律。

最終的目的就是求得使這個目標函數最小(或局部最小)的參數θ。

訓練步驟

上圖是一個梯度下降的模型。想要理解這個模型,可以假想一個人站在山的任意一點,想要以最快的速度下山。求解的步驟如下所示:

  • 隨機生成一個初始點:圖中紅色區域的點為初始點,對于不同的初始點,獲得的最小值也不同,因此梯度下降求得的只是局部最小值;
  • 確定學習率:學習率即下降的幅度,可以理解為下山時每一步邁的大小。學習率的選取還是有一定要求的,步子邁的太大有可能不收斂,步子邁的太小速度太慢。
  • 學習率的選擇可以通過下圖來說明:


    假設從左邊最高點開始,如果學習率剛剛合適,例如圖中紅線,就能順利找到最低點;如學習率調整的太小,比如藍色的線就會走的太慢,雖然也可以順利找出最低點,但實際情況中可能等不及出結果;如果學習率稍大,可能會在上面震蕩永遠到達不了最低點;若是選取的非常大,比如黃色的線可能直接無法收斂,update參數時可能會發現損失函數越更新越大。

    還有一點值得注意,學習率并不是一成不變的,可能剛開始時候大一些,后邊不斷調小。

  • 輸入數據集,確定一個向下的方向,并更新θ。
  • 數據集的輸入一般有三種:批量梯度下降(每調整一小步,帶入所有的數據,這樣的訓練應該是最精確的,但是往往速度奇慢無比)、隨機梯度下降(每次隨機獲取數據集中的一個值,速度很快但是不夠精確)、小批量隨機梯度下降(前兩者的中間產物,速度相對較快結果也相對精確)。

  • 訓練終止:當損失函數達到預設值的一個值,或者收斂不明顯時,可以終止訓練。得到的值就是梯度下降算法的最小值。
  • 代碼表示

    梯度下降的算法用偽碼表示為:

    repeat until convergence{θj := θj - α * δ/δθj * J(θ0, θ1) }(simultaneously update j =0 and j = 1)temp0 = θ0 - α * δ/δθ0 * J(θ0) temp1 = θ1 - α * δ/δθ1 * J(θ1)θ0 := temp0 θ1 := temp1

    α代表了學習率,θj表示為有多個特征,這里是對每一個特征求偏導求出分別對應的參數。多個特征需要分別各自訓練。

    以上就是整個梯度下降算法的基本知識。

    梯度下降的算法調優

  • 算法的步長選擇
  • 算法參數的初始值選擇
  • 歸一化
  • 在前文描述的算法中,步長的實際取值取決于數據樣本,可以多取一些分別運行比較迭代效果。

    初始值不同,獲得的最小值也有可能不同,當然如果損失函數是凸函數,則一定是最優解。由于有局部最優解的風險,需要多次不同初始值運行算法,使關鍵損失函數取最小值、選擇損失函數去最小值的初值。

    由于樣本不同特征的取值范圍不一樣,可能導致迭代速度很慢,為了減少特征取值的影響,可以對特征數據歸一化求出期望和標準差,然后轉化成期望和標準差的比值,可以加快迭代速度。

    總結

    梯度下降法的含義是通過當前的梯度方向尋找新的迭代點,并從當前點移動到新的迭代點繼續尋找新的迭代點,直到找到最優解。在其算法過程中,只需要求解損失函數的一階導數,計算成本很小。相比于最小二乘法,梯度下降需要選擇步長,而最小二乘法不需要。同時,最小二乘法是計算解析解,如果樣本量不算很大,且存在解析解,最小二乘法才會占有優勢。

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

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

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