当前位置: 首页 > news >正文

总梯度是各样本梯度的线性叠加

设总损失函数J(w)J(w)J(w)为数据集中NNN个独立样本的损失函数Li(w)L_i(w)Li(w)之和,即J(w)=∑i=1NLi(w)J(w) = \sum\limits_{i=1}^{N} L_i(w)J(w)=i=1NLi(w)。若每个样本的损失函数Li(w)L_i(w)Li(w)关于模型参数www均可导,则总损失函数J(w)J(w)J(w)关于参数www的导数(或梯度),等于各个样本损失函数Li(w)L_i(w)Li(w)关于参数www的导数(或梯度)之和。

用数学公式表示即为:
∂J(w)∂w=∂∂w(∑i=1NLi(w))=∑i=1N∂Li(w)∂w\frac{\partial J(w)}{\partial w} = \frac{\partial}{\partial w} \left( \sum\limits_{i=1}^{N} L_i(w) \right) = \sum\limits_{i=1}^{N} \frac{\partial L_i(w)}{\partial w}wJ(w)=w(i=1NLi(w))=i=1NwLi(w)


证明

这个结论的证明依赖于微积分中两个最基础的求导法则:求和法则与链式法则。

在机器学习中,总损失函数JJJ通常是所有NNN个样本的损失LiL_iLi的平均值或总和,即

J(w)=1N∑i=1NLi(w)J(w) = \frac{1}{N} \sum\limits_{i=1}^{N} L_i(w)J(w)=N1i=1NLi(w)
其中,LiL_iLi是第iii个样本的损失,它依赖于模型的预测值,而预测值又依赖于参数www

  1. 对参数www求导
    对总损失JJJ关于参数www求偏导数:
    ∂J∂w=∂∂w(1N∑i=1NLi)\frac{\partial J}{\partial w} = \frac{\partial}{\partial w} \left( \frac{1}{N} \sum\limits_{i=1}^{N} L_i \right)wJ=w(N1i=1NLi)

  2. 运用求和法则
    根据微积分的求和法则(和的导数等于导数的和),以及常数因子可以提取到导数外面的性质,可以把求导符号放进求和符号里面:
    ∂J(w)∂w=1N∑i=1N∂Li(w)∂w\frac{\partial J(w)}{\partial w} = \frac{1}{N} \sum\limits_{i=1}^{N} \frac{\partial L_i(w)}{\partial w}wJ(w)=N1i=1NwLi(w)

  3. 结论
    观察上面的等式,右边∑i=1N∂Li∂w\sum\limits_{i=1}^{N} \dfrac{\partial L_i}{\partial w}i=1NwLi正是各个样本损失对参数的导数之和。


这个数学性质是批量梯度下降(Batch Gradient Descent)和小批量随机梯度下降(Mini-batch SGD)能够成立的基石。

  • 并行计算的基础:因为它证明了总梯度可以拆分成独立的部分,所以可以把数据分成一个个 Batch,分别计算每个 Batch 的梯度,最后把它们加起来(或取平均),就能得到全量数据的真实梯度。

补充说明

  • 适用前提:该性质成立的核心前提是各个样本的损失LiL_iLi之间是相互独立的,并且都是关于参数www的可导函数。

http://www.cnnetsun.cn/news/2491851.html

相关文章:

  • 互联网大厂 Java 求职者面试:微服务与安全框架的探讨
  • ARM SVE2指令集与SABD指令优化实战
  • 如何解决暗黑破坏神2存档管理的技术困境:d2s-editor深度技术解析
  • 别再手动复制了!用Python的pdfplumber库,5分钟把PDF表格批量转成Excel
  • 善良且有锋芒,理性的利己主义者
  • m4s-converter:5秒完成B站缓存视频转换的完整指南
  • 告别玄学调参:用Python手把手实现卡尔曼滤波器,搞定传感器数据融合
  • 磁力搜索终极指南:magnetW一站式聚合搜索工具快速上手
  • 番茄小说永久保存神器:5分钟打造个人数字图书馆
  • Midjourney景深控制黄金三角法则:prompt构图权重×--s 250×--style raw = 真实光学虚化效果(实验室级验证)
  • ppt模板_0037_圣诞主题6
  • Windows HEIC缩略图预览:告别iPhone照片在Windows的“盲盒“时代
  • 如何高效实现STL到STEP格式转换?专业工具stltostp实战指南
  • League Akari:英雄联盟智能助手完整指南 - 提升游戏体验的终极工具
  • 英雄联盟国服换肤神器R3nzSkin:3分钟解锁所有皮肤终极指南
  • Unity C# Native AOT实战:零IL、零元数据、真防反编译
  • SleeperX:终极Mac电源管理解决方案,重新定义你的工作流程
  • 长期使用Taotoken服务在API稳定性方面的实际反馈
  • 英雄联盟玩家的终极本地化效率工具:League Akari 完全指南
  • 免费压缩包密码恢复工具:3步轻松找回遗忘的加密文件
  • 暗黑3一键宏工具终极指南:D3KeyHelper图形化宏完全教程
  • 暗黑破坏神2存档编辑器深度解析:从新手到高手的实战秘籍
  • HS2-HF Patch:5分钟实现HoneySelect2完整汉化与MOD整合的终极解决方案
  • 告别命令行恐惧:用Portainer在Ubuntu 20.04上轻松管理你的ROS Noetic Docker容器
  • Endnote期刊名缩写设置保姆级教程:告别手动修改,一键搞定Word参考文献格式
  • 高速乒乓球机器人:轻量化机械臂与实时控制算法
  • 5个理由告诉你为什么Poppins是解决多语言排版难题的最佳字体选择
  • 基于Eyun API制作第一个微信聊天机器人
  • AI Agent Harness Engineering 在游戏开发中的应用:打造千人千面的 NPC 生态
  • 手把手教你用Simulink复现FCS-MPC并网逆变器仿真(附Matlab Function代码详解)