深度学习知识复习

目录

SGD的缺点

是梯度的方向并没有指向最小值的方向,走的“之”字

Momentum

 AdaGrad

 Adam

总截图

 权重

权重的初始值

为什么不能将权重初始值设为0呢?严格地说,为什么不能将权重初始 值设成一样的值呢?

隐藏层的激活值的分布

 接着,我们尝试使用Xavier Glorot等人的论文[9]中推荐的权重初始值(俗 称“Xavier初始值”)

 ReLU的权重初始值

Batch Normalization

Batch Normalization 的算法

正则化

权值衰减 

 Dropout

​编辑

 超参数的验证

本节将介绍尽可能高效地寻找超参数的值的方法。

验证数据

超参数的最优化

卷积神经网络

批处理 

基于 im2col的展开

深度学习

加深网络



优化器

泛化能力是指处理未被观察过的数据

SGD的缺点

是梯度的方向并没有指向最小值的方向,走的“之”字

Momentum

比SGD好在 在下坡时会加速(模拟的小球在山上滚动,在这个力的作用下,物体的速度增 加这一物理法则)和SGD相比,我们发现 “之”字形的“程度”减轻了

 

 AdaGrad

 学习率衰减即随着学习的进行,使学习率逐渐减小

AdaGrad会为参数的每个元素适当地调整学习率,与此同时进行学习

 

 Adam

Momentum参照小球在碗中滚动的物理规则进行移动,AdaGrad为参 数的每个元素适当地调整更新步伐

果将这两个方法融合在一起

 Adam会设置 3个超参数。一个是学习率(论文中以α出现),另外两 个是一次momentum系数β1和二次momentum系数β2。根据论文, 标准的设定值是β1为 0.9,β2 为 0.999。设置了这些值后,大多数情 况下都能顺利运行。

总截图

 权重

权重的初始值

权重的初始值特别重要。实际上,设定什么样的 权重初始值,经常关系到神经网络的学习能否成功

为什么不能将权重初始值设为0呢?严格地说,为什么不能将权重初始 值设成一样的值呢?

这是因为在误差反向传播法中,所有的权重值都会进行 相同的更新。比如,在2层神经网络中,假设第1层和第2层的权重为0。这 样一来,正向传播时,因为输入层的权重为0,所以第2层的神经元全部会 被传递相同的值。第2层的神经元中全部输入相同的值,这意味着反向传播 时第2层的权重全部都会进行相同的更新

为了防止“权重均一化” (严格地讲,是为了瓦解权重的对称结构),必须随机生成初始值。

隐藏层的激活值的分布

有一个实验就是用不同的权重初始值 一个初始值是1 一个是0.01络(激活函数使用 sigmoid函数)

将1000随机数据输给5个输出层 

 发现数据经过激活函数或集中分布在0 1 这会造成梯度消失

 接着,我们尝试使用Xavier Glorot等人的论文[9]中推荐的权重初始值(俗 称“Xavier初始值”)

使用Xavier初始值后,前一层的节点数越多,要设定为目标节点的初始 值的权重尺度就越小。 

 ReLU的权重初始值

首先说一点Xavier初始值是以激活函数是线性函数为前提而推导出来的

sigmoid函数和tanh函数左右对称,且中央附近可以视作线性函数,所以适 合使用Xavier初始值

但当激活函数使用ReLU时,一般推荐使用ReLU专 用的初始值,也就是Kaiming He等人推荐的初始值,也称为“He初始值”

Batch Normalization

为了使各层拥有适当的广度,“强制性”地调整激活值的分布 会怎样呢?

实际上,Batch Normalization[11]方法就是基于这个想法而产生的。

Batch Normalization 的算法

为什么Batch Norm这么惹人注目呢?因为Batch Norm有以下优点。

  •  抑制过拟合(降低Dropout等的必要性)。
  • 不那么依赖初始值(对于初始值不用那么神经质)
  • 可以使学习快速进行(可以增大学习率)。                

 Batch Norm的思路是调整各层的激活值分布使其拥有适当的广度。

以进行学习时的mini-batch为单位,按minibatch进行正规化。具体而言,就是进行使数据分布的均值为0、方差为1的 正规化。

非常简单。通过将这个处理插入到 激活函数的前面(或者后面)A,可以减小数据分布的偏向。 

Batch Norm层会对正规化后的数据进行缩放和平移的变换

正则化

过拟合原因

发生过拟合的原因,主要有以下两个。

  • 模型拥有大量参数、表现力强。
  •  训练数据少。

权值衰减 

权值衰减是一直以来经常被使用的一种抑制过拟合的方法

。该方法通过 在学习的过程中对大的权重进行惩罚,来抑制过拟合。

为损失函数加上权重的L2范 数的权值衰减方法。

 

 Dropout

训练时,随机 选出隐藏层的神经元,然后将其删除。被删除的神经元不再进行信号的传递

 超参数的验证

神经网络中,除了权重和偏置等参数,超参数(hyper-parameter)也经 常出现。

这里所说的超参数是指,比如各层的神经元数量、batch大小、参 数更新时的学习率或权值衰减等

如果这些超参数没有设置合适的值,模型 的性能就会很差。虽然超参数的取值非常重要,但是在决定超参数的过程中 一般会伴随很多的试错。

本节将介绍尽可能高效地寻找超参数的值的方法。

验证数据

之前我们使用的数据集分成了训练数据和测试数据,训练数据用于学习, 测试数据用于评估泛化能力

不能使用测试数据评估超参数的性能。这一点非常重要,但也容易被忽视。

为什么不能用测试数据评估超参数的性能呢?

这是因为如果使用测试数 据调整超参数,超参数的值会对测试数据发生过拟合

超参数的最优化

在超参数的最优化中,减少学习的epoch,缩短一次评估所需的时间 是一个不错的办法

步骤0 设定超参数的范围。

步骤1 从设定的超参数范围中随机采样。

步骤2 使用步骤1中采样到的超参数的值进行学习,通过验证数据评估识别精 度(但是要将epoch设置得很小)。

步骤3 重复步骤1和步骤2(100次等),根据它们的识别精度的结果,缩小超参 数的范围。

在超参数的最优化中,如果需要更精炼的方法,可以使用贝叶斯最优 化(Bayesian optimization)。贝叶斯最优化运用以贝叶斯定理为中 心的数学理论,能够更加严密、高效地进行最优化。详细内容请 参 考 论 文“Practical Bayesian Optimization of Machine Learning Algorithms”[16]等

卷积神经网络

Affine层实现了全连接层

 

 

学会的就略过了

批处理 

神经网络的处理中进行了将输入数据打包的批处理。之前的全连接神经 网络的实现也对应了批处理,通过批处理,能够实现处理的高效化和学习时 对mini-batch的对应。

我们希望卷积运算也同样对应批处理。为此,需要将在各层间传递的数 据保存为4维数据。具体地讲,就是按(batch_num, channel, height, width) 的顺序保存数据。比如,将图7-12中的处理改成对N个数据进行批处理时, 数据的形状如图7-13所示。

 这就是为什么要reshape(加一个维度

基于 im2col的展开

如果老老实实地实现卷积运算,估计要重复好几层的for语句。这样的 实现有点麻烦,还慢

im2col是一个函数,将输入数据展开以适合滤波器(权重)。如图7-17所示, 对3维的输入数据应用im2col后,数据转换为2维矩阵(正确地讲,是把包含 批数量的4维数据转换成了2维数据)。

 im2col会把输入数据展开以适合滤波器(权重)。具体地说,如图7-18所示, 对于输入数据,将应用滤波器的区域(3维方块)横向展开为1列。im2col会 在所有应用滤波器的地方进行这个展开处理。

 在 滤波器的应用区域重叠的情况下,使用im2col展开后,展开后的元素个数会 多于原方块的元素个数。因此,使用im2col的实现存在比普通的实现消耗更 多内存的缺点。但是,汇总成一个大的矩阵进行计算,对计算机的计算颇有 益处。

 transpose会更改多维数组的轴的顺序

深度学习

只需通过 叠加层,就可以创建深度网络。本章我们将看一下深度学习的性质、课题和 可能性,然后对当前的深度学习进行概括性的说明。

加深网络

如图8-1所示,这个网络的层比之前实现的网络都更深。这里使用的卷 积层全都是3 × 3的小型滤波器,特点是随着层的加深,通道数变大(卷积 层的通道数从前面的层开始按顺序以16、16、32、32、64、64的方式增加)。 此外,如图8-1所示,插入了池化层,以逐渐减小中间数据的空间大小;并且, 后面的全连接层中使用了Dropout层。

 这个网络使用He初始值作为权重的初始值,使用Adam更新权重参数。 把上述内容总结起来,这个网络有如下特点。 • 基于3×3的小型滤波器的卷积层。 • 激活函数是ReLU。 • 全连接层的后面使用Dropout层。 • 基于Adam的最优化。 • 使用He初始值作为权重初始值。

参考刚才排行榜中前几名的方法,可以发现进一步提高识别精度的技术和 线索。比如,集成学习、学习率衰减、Data Augmentation(数据扩充)等都有 助于提高识别精度。

Data Augmentation

对于输入图像,通过施加旋转、垂直或水平方向上 的移动等微小变化,增加图像的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值