详解minibatch梯度下降:如何用每个输入数据更新权重?
创作时间:
作者:
@小白创作中心
详解minibatch梯度下降:如何用每个输入数据更新权重?
引用
CSDN
1.
https://blog.csdn.net/qq_20289205/article/details/79911540
在深度学习中,minibatch梯度下降是一种常用的优化算法,它介于批量梯度下降和随机梯度下降之间,通过小批量数据来更新模型权重。本文将通过一个具体例子,详细解释在minibatch中如何计算梯度并更新权重。
1. 提出问题
已知有一个size为k的minibatch,把它扔进神经网络之后,经过一系列变化,网络中的权重weights就会更新。但是,具体是怎么样更新的呢?
2. 解答
假设有5个权重,然后我们的mini batch 大小是2(里面有两个数据x1,x2),扔到神经网络之后,会先对每一个数据求出loss (l1, l2),然后,针对每一个数据对应的loss,各自求五个权重的梯度:
- 数据1(x1): Loss = l1, gradients1=(1.5,−2.0,1.1,0.4,−0.9)
- 数据2(x2): Loss = l2, gradients2=(1.2,2.3,−1.1,−0.8,−0.7)
如果要求五个权重的梯度,实际上是求上面两个数据所求出来的梯度(gradients1, gradients2) 的平均值:
gradients_result = ( gradients1, gradients2)/2 = (1.35, 0.15, 0, -0.2, -0.8)
具体到公式:
其中,L是loss,w是权重,w的下标j是指第几个权重(有五个权重的话,j就等于1,2,3,4,5),k是mini batch的大小, i就是指mini batch里第几个数据啦(这里有两个数据,那么i等于1,2)。
值得一提的是,我们可以推出:
因此,就有:
相对于之前的“先对每个例子的loss(l1, l2)求导得到梯度(gradients1, gradients2),然后求这些梯度的平均值”,上面的公式首先求所有loss的平均值,再对这个平均值求相对于权重(weights)的梯度。计算上简单了一些。
TensorFlow就是这样做的。
热门推荐
Excel表格存钱管理完全指南:从基础到进阶
颈椎病的中医疗效:传统智慧与现代健康的完美结合
“并购+易主”化解风险 国资助力“白银第一股”脱困重生
李森森:疯疯癫癫,一往无前
不锈钢家居全屋定制的未来趋势与创新实践
想考健康管理师在哪报名?附详细流程步骤
重视心电图检查 守护“心”健康
欢欢喜喜过大年丨非遗文旅热度高
合同到期终止赔偿标准怎么算
DNS隧道技术原理及其典型应用场景剖析
美乌均称接近达成资源协议 全球最大铜生产国全国停电 | 环球市场
心照不宣:无需言说的默契之美
双向情感障碍:深入探索与理解
JoJo的奇妙冒险第七部深度解析:重启的奇妙旅程
合同到期不签需要提前通知吗?一文详解合同到期不续签相关法律问题
英语六级考试包括哪几个部分 及格标准是什么
诗经中的明月意象,千古诗心照今人
广东十大经典家常菜:从食材到烹饪的完美演绎
出境旅游需要了解小费文化:尊重与理解的货币表达
选择西装前必备知识:西装面料的材质、花色及其特点
最佳西装面料:适合每个季节和场合的终极指南
壮族服饰文化:古老传承中的历史韵味与独特风情
办理泰国商务签证需要什么材料
孩子几岁能用防晒霜、洗面奶?长痘、晒伤能用哪些护肤品?
特斯拉自动泊车的步骤是什么
深化学校美育改革!中山构建多维评价体系,促多学科融合发展
退休金是单位发还是国家发?一文详解退休金发放与计算
提升ESTJ总经理管理能力的关键方法
江西推行就医免费停车1小时,部分医院2~3小时皆免费
设计师必知的7个文字排版技巧,提高排版效率!