epoch;iteration;stochastic-gradient-decent ; minibatch-gradient-decent ; fullbatch-gradient-decent概念

本文深入探讨了三种梯度下降算法:随机梯度下降(SGD)、批量梯度下降(BGD)和全程梯度下降(FBGD)。SGD每次仅使用一个样本更新参数,适合大数据集;BGD和FBGD则考虑整个数据集,FBGD在内存允许的情况下一次性处理所有数据。一个epoch内,SGD更新次数最多,BGD最少,而FBGD介于两者之间。理解这些概念对于优化模型训练至关重要。

为方便讲述,举一些数字例子:

假设总数据集有100000条训练数据,每条数据的格式都是{data;label}

stochastic-gradient-descent

每次随机选择一条训练数据,以此条数据前向传播后得到的值与label之间的loss来更新模型梯度

batch-gradient-descent:(有时也称作minibatch-gradient-decent)

batch:有时训练数据过大无法一次性装入内存;活着就是单纯为了采用batch-gradient-decent这种训练方式,人们会将整个的100000条数据划分为多个子集,现假设一个batch有1000条训练数据,(那么batchsize=1000)

batch-gradient-decent :将这1 batch的1000条训练数据依次前向传播,得到loss,加权后得到处理后的加权loss,以这个loss来对模型参数进行更新

fullbatch-gradient-decent

fullbatch的意思是:全部数据。之所以都是全部数据,但还加了一个batch,是因为有时数据实在太大了装不仅内存,确实需要分隔成一个个batch,但是fullbatch gradient decent的核心,无论是训练数据划分为多个batch,他都是将这些所有的100000条数据依次前向传播,得到loss,加权后得到处理后的加权loss,以这个loss来对模型参数进行更新

epoch

指的是全部训练数据经过一次前向传播,一次反向传播的过程

那么,对于fullbatch-gradient-decent来说,一个epoch他只进行了一次的模型参数更新

           对于minibatch-gradient-decent来说,一个epoch他进行了100000/1000=100次的参数更新 

           对于stochastic-gradient-decent来说,一个epoch他进行了100000/1=100000次的参数更新

iteration

无论batchsize是多大(无论batchsize是SGD的1,minibatch的1000还是fullbatch的100000),把一个batch内的所有数据都放入神经网络中前向传播一遍,得到loss反向对模型参数更新一遍 ,这个过程称为一次iteration(迭代)

ref:https://blog.youkuaiyun.com/xys430381_1/article/details/80680167

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值