您当前的位置:首页 > 美文欣赏 > 内容

PyTorch深度学习实战 Batch是深度学习中的一个重要概念

PyTorch深度学习实战 Batch是深度学习中的一个重要概念

批处理是深度学习中的一个重要概念。批处理通常指两个不同的概念——。如果对应的是模型训练方法,批量是指在所有数据处理完毕后,一次性更新权重或参数估计;如果对应的是模型训练中的数据,那么batch通常是指模型计算一次输入的数据量。

基于批量概念的模型训练通常遵循以下步骤:

初始化参数

重复以下步骤

处理所有数据更新参数

与批处理算法相对应的是增量算法,其步骤如下:

初始化参数

重复以下步骤

A .处理一个或一组数据点 B .更新参数。

这里的主要区别是批处理算法一次处理所有数据;在增量算法中,每次处理一个或几个观测值时,都应该更新参数。在反向传播算法中,具体操作对应于正在处理就是计算损失函数的梯度曲线。如果是批处理算法,计算平均或总损失函数的梯度曲线;如果是递增算法,损失函数的梯度曲线只有在对应一个观测值或几个观测值时才计算。"更新就是从现有的参数值中减去梯度变化率和学习率的乘积。

在线学习和离线学习

在深度学习中,另外两个常见的概念是在线学习和离线学习。在离线学习中,所有的数据都是可以重复获取的。比如上面的批量学习就是一种线下学习。而在线学习中,每个观测值都会被抛弃,处理后更新。在线学习永远是一种增量算法,但增量算法既可以离线,也可以在线。

离线学习有以下优势:

对于任意固定数目的参数,可以直接计算出目标函数,因此很容易验证模型训练是否在向所要求的方向发展。

计算精度可以达到任何合理的程度。

可以使用各种算法来避免局部最优。

可以通过训练、验证和测试来验证模型的通用性。

可以计算预测值及其置信区间。

在线学习可以实现不了以上功能,因为数据没有被存储并且不能不可重复获得。因此,对于任何固定的参数集,损失函数可以不能在训练集上计算,并且误差可以不能在验证集上计算。这使得在线算法通常比离线算法更复杂和不稳定。而离线增量算法不存在在线算法的问题,所以需要了解在线学习和增量算法的区别。

偏移/阈值

在深度学习中,使用sigmoid激活函数的隐层或输出层的神经元在计算网络输入时,通常会增加一个偏移值,称为Bias。对于线性输出神经元,偏移项是回归中的截距项。与截距项类似,偏置项可以看作是一个特殊神经元引起的连接权,因为偏置项通常与一个单位值固定的偏置神经元相联系。例如,在一个多层感知器神经网络中,如果一个神经元的输入变量是N维的,那么这个神经元根据参数在这个高维空间中画一个超平面,一边是正的,另一边是负的。所使用的参数决定了超平面在输入空间中的相对位置。如果没有偏置项,这个超平面的位置是有限的,必须经过原点;如果多个神经元需要自己的超平面,模型的灵活性将受到严重限制。这就像一个没有截距项回归模型。在大多数情况下,其斜率的估计值会大大偏离最优估计值,因为生成的拟合曲线必须经过原点。因此,如果偏移项缺失,多层感知器的普适拟合能力就不存在。一般来说,隐层和输出层的每个神经元都有自己的偏移项。但是,如果输入神经已经被等比例地转换到一个有限的范围内,例如[0,1]区间,那么在第一个隐层中的神经元已经设置了偏移项之后,任何后续层中与这些具有偏移项的神经元链接的其他神经元都不需要另外设置偏移项。

数据标准化在机器学习和深度学习中,数据标准化的动作经常发生。那么什么是标准化数据呢?实际上,单词标准化在这里用来代替几个相似但不同的动作。

这里有三个常见的标准化数据处理动作。

(1)重标度:通常是指在一个矢量上加上或减去一个矢量,然后乘以或除以一个常数光。例如,将华氏温度转换为摄氏温度就是一个缩放的过程。

(2)归一化:通常指将向量除以其范数,例如采用欧氏空间距离,即以向量的方差为范数对向量进行归一化。在深度学习中,归一化通常采用范围作为范数,即向量减去最小值,再除以其范围,使数值范围在0到1之间。

(3)标准化:通常指将一个向量从其位置和大小上去掉的度量。比如一个向量服从正态分布,可以减去它的均值,除以它的方差来标准化数据,从而得到一个服从标准正态分布的向量。

标签:数据神经元模型


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 海盗船600t机箱(海盗船 600T 机箱 前置面板旋钮接线)

下一篇: 1100左右最值得入手的手机(现在1100块左右哪款手机最值得买呢)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号