首页 > 编程知识 正文

对学生深度学习的理解,深度学习理解

时间:2023-05-05 02:34:09 阅读:157571 作者:1737

当数据巨大(在机器学习的深度学习中,几乎任何时候)时,都需要使用术语epochs、batch size和iterations (迭代)。 在这种情况下,不可能一次将数据输入计算机。 因此,为了解决这个问题,有必要将数据分成小块,逐块传递给计算机,在每一步的末端更新神经网络的权重,拟合给定的数据。

http://www.Sina.com/http://www.Sina.com /

0、深度学习的优化算法,梯度下降。

梯度下降的迭代性质可以进化未匹配的图标以获得对数据的良好匹配。

坡度下降有一个称为学习率的参数。 如上图的左边所示,由于最初的学习率较大,下降步骤会变大。 随着分数的下降,学习率越来越小,下降步长也越来越小。 同时,成本函数也在减少。 或者说,成本减少到梯度的含义是斜率或者斜坡的倾斜度。 下降的含义是代价函数的下降。。 哪个都一样。 (损失/代价的减少是件好事) ) ) ) ) ) ) )。

每次参数更新有两种方法。

第一,遍历所有数据集计算一次损失函数,然后计算函数对各参数的梯度,更新梯度。 该方法每次更新参数都要一次查看数据集内的所有样本,计算量开销大,计算速度慢,不支持在线学习。 这称为Batch gradient descent,这会降低批梯度。

另一种是每次看到一个数据就计算损失函数,求出梯度更新参数。 这被称为随机梯度下降、静态梯度设计。 这种方法比较快,但收敛性能不太好,可能在最优点的附近晃悠,但hit没有达到最优点。 两次参数的更新也相互抵消,目标函数的振动可能会变得激烈。

为了克服两种方法的缺点,目前普遍采用折中手段。 最小梯度,小批量梯度下降。 该方法将数据分成若干批次,逐批次更新参数。 这样,一批中的一组数据共同确定了此次坡度的方向,下降后就不易偏移,减少了随机性。 另一方面,批量的样本数与整个数据集相比非常小,所以计算量也不是很多。

因为3358www.Sina.com/的当前坡度下降基本上基于最小坡度,所以这就是3358www.Sina.com/经常出现在深度学习框架函数中的原因。

主要思想是在每次训练中利用batch_size个数据进行参数寻优,一组数据共同确定了这次的梯度方向。

算法是迭代的,意思是需要多次使用算法获取结果,以得到最优化结果。

注: batch_size和number of batches不同。

时候也称为损失函数或者损失1个iteration相当于使用batch_size个样本进行1次训练。 每次迭代都要进行权重更新,每次权重更新都需要对batch_size个数据进行Forward运算得到损失函数,并用BP算法更新参数。

1、batch_size

根据batch_size的大小,将所有样本数据分成iterations块,进行训练,反复更新权重

每次迭代次数、迭代时更新网络结构的参数。

batch_size,神经网络希望进行多次重复训练以达到目标和结果。

batch_size(块大小)数值意思是:一个 batch 中的样本总数,一次喂进网络的样本数

1迭代=1(batch_size )数据正向通过(forward );=1(batch_size )数据反向通过(backward ) )。

构建从前方传播() x1,x2,x3 )中获得的y ) hwb ) x )的公式

反向传播:根据给定的损失函数求解参数的过程

2、iterations(迭代)epochs被定义为前向传播和后向传播的所有批次的一次训练迭代。 这意味着一个周期是整个输入数据的一次前进和后退。 简单来说,epochs是指正在训练的Numbers ofiterations = All/batch_size

迭代是重复反馈的动作

为什么要使用多个epoch?

对于神经网络,一次性传递完整的数据集是不够的,完整的数据集必须在同一神经网络中多次传递。 但是,请注意,您使用了有限的数据集。 我们还使用梯度减少这一迭代过程来优化学习过程和图。 因此,仅更新权重一次或使用一个epoch是不够的。

随着epoch数量的增加,神经网络中权重的更新次数也随之增加,曲线从欠配变为偏置。

那么,几个 epoch 才是合适的呢?

不幸的是,这个问题并没有正确的答案。对于不同的数据集,答案是不一样的。但是数据的多样性会影响合适的 epoch 的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。


4.learning rate:学习率ϵ


ϵ(0,1),是一个确定步长大小的正标量(一般设置的很小,如0.001),表示沿着梯度的方向一步迈多大。

5.momentum:动量

随机梯度下降(SGD)学习过程有时会很慢。比如在穿越山谷时,使用SGD则会在山谷壁来回的摆动(如下图)。动量算法积累了之前梯度指数级衰减的移动平均,并且继续沿该方向移动。
v表示动量,超参数α
α [0,1) 决定了之前梯度的贡献衰减得有多快。

References:

https://blog.csdn.net/jqdxt/article/details/80638500
[1] 怎么选取训练神经网络时的Batch size?
[2] 梯度下降优化算法综述
[3] Ian, Goodfellow, Yoshua, Bengio. 深度学习[M]. 北京:人民邮电出版社, 2017.

 

6.举个栗子

训练集有1000个样本,batchsize=10,那么: 
训练完整个样本集需要:100次iteration,100=1000/10。

想要训练多少轮,epoch就是多少,例如像训练5轮,epoch=5

具体的计算公式为: 
one epoch = numbers of iterations = N = 训练样本的数量/batch_size

7.接地气理解

100人要进大厅,需要通过旋转门,All=100

旋转门一次只能进5个人,batch_size=5,一小批通过算迭代1次;

全部人都进去需要 All/batch_size=100/5 =20次,需要迭代iterations=20,

全部人都通过了就是一次epoch

如果这100人是一群小孩,闲着没事,所有人,按上面模式分批,在旋转门来回穿行10次当游戏,那epoch=10。

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。