4.5 優化器中常見的梯度下降算法

梯度下降算法(Gradient Descent)的數學公式可以通過以下步驟嚴格表達:


1. 基本梯度下降(Batch Gradient Descent)

目標:最小化損失函數L(θ)\mathcal{L}(\theta)L(θ),其中 θ\thetaθ是模型參數。
參數更新規則θt+1=θt?η??θL(θt)\theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta \mathcal{L}(\theta_t)θt+1?=θt??η??θ?L(θt?)

  • θt\theta_tθt?:第 $t $次迭代的參數值
  • η\etaη:學習率(Learning Rate)
  • ?θL(θt)\nabla_\theta \mathcal{L}(\theta_t)?θ?L(θt?):損失函數對參數 θ\thetaθ的梯度(所有訓練樣本的平均梯度)。

2. 隨機梯度下降(Stochastic Gradient Descent, SGD)

每次迭代隨機選取一個樣本計算梯度:
θt+1=θt?η??θL(θt;xi,yi)\theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta \mathcal{L}(\theta_t; x_i, y_i)θt+1?=θt??η??θ?L(θt?;xi?,yi?)

  • ?θL(θt;xi,yi)\nabla_\theta \mathcal{L}(\theta_t; x_i, y_i)?θ?L(θt?;xi?,yi?):僅基于單個樣本 (xi,yi)(x_i, y_i)(xi?,yi?)的梯度。

3. 小批量梯度下降(Mini-Batch Gradient Descent)

每次迭代使用一個小批量(Batch)數據計算梯度:

θt+1=θt?η?1B∑i=1B?θL(θt;xi,yi)\theta_{t+1} = \theta_t - \eta \cdot \frac{1}{B} \sum_{i=1}^B \nabla_\theta \mathcal{L}(\theta_t; x_i, y_i)θt+1?=θt??η?B1?i=1B??θ?L(θt?;xi?,yi?)

  • BBB:批量大小(Batch Size)
  • 1B∑i=1B?θL\frac{1}{B} \sum_{i=1}^B \nabla_\theta \mathcal{L}B1?i=1B??θ?L:批量內樣本梯度的平均值。

4. 帶動量的梯度下降(Momentum)

引入動量項 vtv_tvt?加速收斂并減少震蕩:

vt+1=βvt+(1?β)?θL(θt)v_{t+1} = \beta v_t + (1-\beta) \nabla_\theta \mathcal{L}(\theta_t)vt+1?=βvt?+(1?β)?θ?L(θt?)
θt+1=θt?η?vt+1\theta_{t+1} = \theta_t - \eta \cdot v_{t+1}θt+1?=θt??η?vt+1?

  • β\betaβ:動量系數(通常設為 0.9),控制歷史梯度的影響。

5. Adam 優化器

結合動量(一階矩)和自適應學習率(二階矩),并引入偏差修正:

mt+1=β1mt+(1?β1)?θL(θt)(一階矩估計)m_{t+1} = \beta_1 m_t + (1-\beta_1) \nabla_\theta \mathcal{L}(\theta_t) \quad \text{(一階矩估計)}mt+1?=β1?mt?+(1?β1?)?θ?L(θt?)(一階矩估計)
vt+1=β2vt+(1?β2)(?θL(θt))2(二階矩估計)v_{t+1} = \beta_2 v_t + (1-\beta_2) \left( \nabla_\theta \mathcal{L}(\theta_t) \right)^2 \quad \text{(二階矩估計)}vt+1?=β2?vt?+(1?β2?)(?θ?L(θt?))2(二階矩估計)
m^t+1=mt+11?β1t+1(一階矩偏差修正)\hat{m}{t+1} = \frac{m{t+1}}{1 - \beta_1^{t+1}} \quad \text{(一階矩偏差修正)}m^t+1=1?β1t+1?mt+1?(一階矩偏差修正)
v^t+1=vt+11?β2t+1(二階矩偏差修正)\hat{v}{t+1} = \frac{v{t+1}}{1 - \beta_2^{t+1}} \quad \text{(二階矩偏差修正)}v^t+1=1?β2t+1?vt+1?(二階矩偏差修正)
θt+1=θt?η?m^t+1v^t+1+?\theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}{t+1}}{\sqrt{\hat{v}{t+1}} + \epsilon}θt+1?=θt??η?v^t+1?+?m^t+1?

  • β1,β2\beta_1, \beta_2β1?,β2?:衰減率(通常設為 0.9 和 0.999)
  • ?\epsilon?:數值穩定性常數(通常設為$10^{-8} $)。

6. 梯度下降的數學意義

梯度下降的更新方向由 負梯度方向 ??θL-\nabla_\theta \mathcal{L}??θ?L決定,其本質是沿著損失函數曲面的最速下降方向移動參數 θ\thetaθ。學習率 η\etaη控制步長,過大可能導致震蕩,過小則收斂緩慢。


公式總結表

算法公式
批量梯度下降θt+1=θt?η??θL\theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta \mathcal{L}θt+1?=θt??η??θ?L
隨機梯度下降θt+1=θt?η??θL(xi,yi)\theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta \mathcal{L}(x_i, y_i)θt+1?=θt??η??θ?L(xi?,yi?)
小批量梯度下降θt+1=θt?η?1B∑i=1B?θL(xi,yi)\theta_{t+1} = \theta_t - \eta \cdot \frac{1}{B} \sum_{i=1}^B \nabla_\theta \mathcal{L}(x_i, y_i)θt+1?=θt??η?B1?i=1B??θ?L(xi?,yi?)
Momentumvt+1=βvt+(1?β)?θL),(θt+1=θt?ηvt+1v_{t+1} = \beta v_t + (1-\beta)\nabla_\theta \mathcal{L} ),( \theta_{t+1} = \theta_t - \eta v_{t+1}vt+1?=βvt?+(1?β)?θ?L)(θt+1?=θt??ηvt+1?
Adamθt+1=θt?η?m^t+1v^t+1+?\theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}{t+1}}{\sqrt{\hat{v}{t+1}} + \epsilon}θt+1?=θt??η?v^t+1?+?m^t+1?

關鍵點

  1. 梯度方向:負梯度方向是函數值下降最快的方向(由泰勒展開的一階近似可得)。
  2. 學習率選擇:學習率 $\eta $需通過實驗調參(或使用自適應方法如 Adam)。
  3. 收斂性:在凸函數中,梯度下降收斂到全局最優;在非凸函數中可能收斂到局部極小或鞍點。
  4. 復雜度:批量梯度下降計算成本高,小批量/隨機梯度下降更適合大規模數據。

通過上述公式,梯度下降算法被嚴格地數學化,成為深度學習模型優化的基礎工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90218.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AM1.5G AAA穩態太陽光模擬器特點

光譜匹配度AM1.5G AAA穩態太陽光模擬器的光譜分布嚴格匹配國際標準IEC 60904-9中的AM1.5G光譜(波長范圍300-4000nm),確保與自然太陽光的偏差在25%以內(AAA級標準)。光譜匹配度通過精密濾光片和氙燈或LED組合光源實現&a…

OSPF開放式最短路徑優先

1OSPF簡介(1)OSPF英文全稱Open Shortest Path First (開放式最短路徑優先)(2)OSPF是IETF 開發的一種鏈路狀態路由協議,使用基于帶寬的度量值。(3)OSPF采用SPF算法計算路由,從算法上保…

Lua(模塊與包)

Lua 模塊的基本概念Lua 中的模塊是一個由函數、變量組成的代碼庫,通常保存在獨立的 .lua 文件中。模塊通過 return 語句導出其內容,供其他腳本調用。模塊化設計可以提高代碼復用性,便于管理。創建模塊模塊通常以 .lua 文件形式存在&#xff0…

1. boost::asio之socket的創建和連接

網絡編程基本流程 網絡編程的基本流程對于服務端是這樣的 服務端 1)socket——創建socket對象。 2)bind——綁定本機ipport。 3)listen——監聽來電,若在監聽到來電,則建立起連接。 4)accept——再創建一個…

WPF 控制動畫開關

記錄一種實現方式:第一步:首先定義一個靜態類,提供依賴屬性,進而方便在xaml中實現綁定:public static class AnimationBehavior{// 定義附加屬性public static readonly DependencyProperty IsAnimatingProperty Depen…

元素豎向的百分比設定是相對于父容器的高度嗎?

元素豎向的百分比設定是相對于父容器的高度嗎? 核心問題 在CSS中,當設置元素的豎向屬性(如height、padding-top等)為百分比值時,其計算基準是父容器的高度還是寬度? 權威結論height屬性 百分比值基于父容器…

web3.0怎么入局

Web3.0(第三代互聯網)融合了區塊鏈、去中心化應用(DApps)、NFT、DAO等新興技術,給個人和機構提供了許多全新的賺錢機會。入局 Web3.0 賺錢主要有以下幾種途徑,根據你的技術背景、資金能力和時間投入可以選擇適合自己的方式。 目錄 一、普通用戶賺錢方式(門檻低) 1. …

linux入門 相關linux系統操作命令(二)--文件管理系統 ubuntu22.04

以下有免費的4090云主機提供ubuntu22.04系統的其他入門實踐操作 地址:星宇科技 | GPU服務器 高性能云主機 云服務器-登錄 相關兌換碼星宇社區---4090算力卡免費體驗、共享開發社區-CSDN博客 兌換碼要是過期了,可以私信我獲取最新兌換碼!&a…

Python-初學openCV——圖像預處理(二)

目錄 一、圖像仿射變換 1、基本性質 二、cv2.warpAffine() 函數 1、圖像旋轉 2、圖像平移 3、圖像縮放 4、圖像剪切 三、 插值方法 1、最近鄰插值 2、雙線性插值 3、像素區域插值 4、雙三次插值 5、Lanczos插值 一、圖像仿射變換 仿射變換(Affine Tr…

醫療AI輕量化部署方案的深度梳理與優化路徑判研

摘要 醫療AI的快速發展為精準診斷、個性化治療和醫療資源優化提供了新機遇。然而,大規模模型的高計算復雜度和資源需求限制了其在資源受限環境(如邊緣設備、基層醫療機構)的應用。本文系統梳理了醫療AI輕量化部署的核心技術體系,包括模型壓縮、參數高效微調(PEFT)、邊緣-…

SSP通過SDK對接流量的原理與實現

一、核心概念解析 1.1 SSP(供應方平臺) 定義:SSP是程序化廣告生態中媒體方的核心工具,通過自動化技術幫助媒體(如網站、應用、視頻平臺)管理廣告資源、優化填充率并最大化廣告收益。核心功能:…

如何清理電腦c盤內存 詳細操作步驟

電腦使用時間不斷延長,許多用戶可能會遇到一個問題——C盤空間不足,導致系統運行緩慢或無法安裝新程序。如果C盤的存儲空間被大量占用,可能會影響到計算機的性能。本文將介紹幾種有效的方法,幫助你清理C盤內存,釋放空間…

ESP32的ADF詳解:5. Streams的API

一、算法流 (algorithm stream) 1. 初始化與配置API功能描述關鍵參數說明algo_stream_init()初始化算法流(AEC/AGC/NS/VAD)config->algo_mask 選擇算法組合config->sample_rate 設置采樣率(默認16kHz)config->partition_…

JavaScript對象鍵序問題解析

問題的發現: 我有一個接口返回一個json數據瀏覽器network里的Response里是從大到小排。 但Preview就是反過來的 問題的描述: 上面那個讓我發現瀏覽器處理對象或者json是會對其鍵值對做排序!!! 在JavaScript中&am…

pandas庫的數據導入導出,缺失值,重復值處理和數據篩選,matplotlib庫 簡單圖繪制

目錄 一.數據導入導出 1.CSV文件讀取與參數說明 2.Excel與TST文件讀取 3.數據導出操作 二.缺失值處理 1.填充缺失值 2.刪除缺失值【刪除整行數據】 三.重復值處理 四.數據篩選與條件查詢 1.邏輯判斷取數 2.字符匹配 3.邏輯運算: &(和&…

FPGA?如何實現另一個?FPGA?

如果你對 FPGA 有些了解,大概知道它的意思是“可編程邏輯器件”,可以把寫好的邏輯電路(通常是 Verilog/VHDL)通過工具綜合、布局布線、燒寫進去,讓一塊芯片變成“你想要的電路”。但如果我告訴你,現在有個開…

文思助手、新華妙筆 AI材料星的公文寫作深度測評

公文寫作一直都是體制內工作人員的日常核心任務,寫公文的難點不僅來自于對政策表述嚴謹性的高要求,也在于格式規范、內容深度以及效率壓力的多重考驗。隨著AI技術的發展,越來越多的文字輔助工具出現,很大程度的緩解了寫作壓力&…

Flutter開發環境搭建與工具鏈

Flutter開發實戰第1章:Flutter開發環境搭建與工具鏈1.1 Flutter簡介與優勢Flutter是Google推出的開源UI工具包,用于從單一代碼庫構建編譯為原生性能的移動、Web和桌面應用程序。Flutter的核心優勢包括:跨平臺一致性:一套代碼運行在…

io_uring:Linux異步I/O的革命性突破

目錄 1. io_uring是什么? io_uring核心優勢: 2. io_uring核心原理 2.1 雙環形緩沖區設計 2.2 關鍵數據結構 1、完成隊列CQ 2、提交隊列SQ 3、Params 3. io_uring工作流程 3.1 初始化階段 3.2 I/O操作流程 4. C代碼示例(原始系統調…

線段樹學習筆記 - 練習題(2)

文章目錄1. 前言2. P3870 [TJOI2009] 開關3. P2184 貪婪大陸4. P1438 無聊的數列5. P1471 方差1. 前言 線段樹系列文章: 線段樹學習筆記。線段樹學習筆記 - 練習題(1)。 前一篇做了幾道線段樹的題目,這篇文章就繼續看下線段樹的…