详解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就是这样做的。
热门推荐
马寨·时光里:潍坊安丘的乡村记忆休闲新地标
全国哪的“烧鸡”最好吃?经过评比,这6个地方不错,你吃过几种
解码基础教育高质量发展的“潍坊答案”
医疗保险和商业保险共存的报销方法
USDA供需报告丨全球大豆调减349万吨,玉米-188万吨
吉他初学者常见问题解答
AI驱动的创新:人工智能在医疗、金融和教育中的应用
白水晶真假快速指南:识破真水晶的秘密
柏拉图《理想国》教育思想的思考与启示
从头开始:使用Windows Deployment Services进行快速部署
重庆山地居住区分析报告
拖鞋材质EVA和PVC哪个好?拖鞋建议买什么材质的?
围棋段位制度详解:从入门到九段的完整指南
跑步后皮肤为什么会痒
夏季高发!玩水后,耳朵痛千万别忽视!
指数投资如何进行策略规划?这种规划方式有哪些实际效果?
重磅:校友会2025中国重点大学排名,C9高校表现强势
软件APP开发全流程详解:从需求分析到上线运维
安卓15重磅功能曝光!首次真正实现可变刷新率:更省电更流畅
“信号升格”、5G-A启航:江西书写5G价值新篇章
充电宝购置与使用安全指南:守护你的出行体验!
巴西农业多面现状:农产品贸易、利好政策及未来机遇挑战
雅思备考口语自我介绍范例指南
探秘贵州湄潭茶叶:详解其独特品质、优势及市场竞争力分析
量子计算机发展:现状、潜力与挑战
AI帮写:如何利用人工智能提升你的写作效率与创意?
2024年巴西农业现代化进程展望
同位素:那些“重量”不同的原子
社交恐惧症的治疗与自我调节方法探讨与建议
头发最爱的12种食物总结