动手学深度学习/7.5-7.7学习笔记

7.5 批量规范化

总起:批量规范化是一种加速深层网络收敛的有效方法

7.5.1 训练深层网络

一:使用批量规范层的必要性

1、在使用真实数据时,第一步是标准化输入特征,使其均值为0,方差位1

——使用批量规范层可以将参数的量级进行统一,以便于更好的跟优化器配合使用

2、在多层感知机或神经网络中,变量分布中的偏移,可能会阻碍网络的收敛

——使用批量规范层可以对学习率进行补偿

(偏移解释:中间层中的变量可能具有更广的变化范围,模型参数随着训练更新而变幻莫测)

3、深层网络复杂,容易过拟合

——使用批量规范层可以将输入正则化,降低深层神经网络的过拟合风险

二:批量规范化的原理:

1、在每次训练迭代中,首先根据当前小批量进行规范化输入,即减去其均值并除以其标准差

2、在[1]的基础上再运用比例系数和比例偏移

3、由于单位方差是一个主观选择,所以包含拉伸参数(Gamma)和偏移参数(Beta)

4、在方差估计值中添加一个(epsilon),保证了永远不会尝试除以0

5、以上两个估计值通过使用均值和方差的噪声来抵消缩放效应

三:批量规范化特点以及注意事项

1、批量规范化是基于当前小批量进行处理的(小批量大小不能为1,否则隐藏单元将会为0)

2、只用使用足够大小的小批量,批量规范化这种方法才是稳定有效的

(在使用规范化批量方法时,批量大小的选择很重要)

3、批量规范化可以运用于单个层,也可以运用于所有层

4、拉伸参数(Gamma)和偏移参数(Beta)是需要和其他模型参数一起学习的参数

5、批量规范化最适合解决批量大小为50-100的问题

6、批量规范层在[通过小批量统计数据规范化]和[通过数据集统计规范化]中功能不同

6.1 在第一种模式下,只能根据小批量的均值和方差不断训练模型

6.2 在第二种模式下,可以根据数据集精确计算批量规范化所需要的均值和方差

四、名词解释以及备注

1、缩放效应:当特征的取值范围发生变化时,模型的性能也发生变化

[解释:在几个特征中,其中一个特征的取值范围很大,而其他的特征取值范围很小

,那么那个取值范围大的特征将会对损失函数影响更大,导致模型对这一特征更敏

感,忽略其他特征的作用,从而影响模型的泛化能力]

2、优化中的各种噪声源通常会导致很快的训练和较少的过拟合[尚未理论证实]

7.5.2 批量规范化层

一:和其他的层之间的关键区别

批量规范化在完整的小批量上执行,不能忽略批量大小

二:在全连接层的实施策略

1、批量规范化层置于全连接层的仿射变换和激活函数之间

2、先进行权重和偏置参数的计算,然后再进行再进行批量规范化,再执行激活函数

三:在卷积层中的实施策略

1、批量规范化运用在卷积层和非线形激活函数之间

2、在有多个输出通道时,需要对“每个”输出执行批量规范化,每个通道有其自己的拉伸参数和偏移参数

3、在计算均值和方差时,会收集所有空间的值

4、在[3]的基础上,在所有通道中,运用相同的均值和方差,以便于在每个空间位置对值进行规范化

四:在预测过程中的实施策略

1、在训练模式和预测模式下,批量规范化的行为/功能不同

2、在预测模式下,移动平均估算整个训练集的样本均值和方差,并在预测时用他们得到确定输出。

7.5.6 争议

1、批量规范化被认为可以使优化地形更加平滑

2、注意区分直觉和现象真实解释之间的区别

[现有解释:通过减少内部协变量偏移,但有如下两个问题:名次不够准确、区分不够清楚]

7.6 残差网络(ResNet)

总起:添加层会使网络更具表达力,为取得质的突破,需要一些数学知识

7.6.1 函数类

一:现存状况

1、对于非嵌套函数类别,较复杂的函数不能都保证更接近“真”函数

2、对于嵌套函数类别,较复杂的函数会更接近“真”函数

3、只有当较复杂的函数类包含较小的函数类时,才能确保提升他们的性能

4、理想映射函数:恒等函数 F(x)=x

二:ResNet核心思想

每个附加层都应该更容易包含原始函数作为其元素之一

[在神经网络中引入附加层时,应尽可能保留原始函数的特征和性能,以确保网络的性能和稳定性]

7.6.2 残差块

一:概念

1、残差映射:F(x)-x,在现实中,残差映射更加利于优化

——不需要从原始输入中去学习,而是学习输入和输出之间的差异

2、理想映射函数F(x)接近恒等函数时,残差映射也更易于捕获恒等函数的细微波动

——输入和输出差异很小,残差映射可以更好的学习和表示这些差异,使网络更加准确的逼近恒等函数

3、在残差块中,输入可通过跨层数据通路更快的向前传播

——参差块中的跨层连接可以使得前向传播的信息流动更加直接和高效

二:原理(默认2个卷积层)

在残差块中,有两个有相同输出通道数的卷积层,每个卷积层后接一个批量规范化层和ReLU激活函数,

然后通过跨层数据通道,跳过这2个卷积运算,将输入直接加在最后的ReLU激活函数前

三:特点以及注意点

1、在原始的参差块中,2个卷积层的输入和输出要求形状相同

2、如果想要改变通道数,则需要另外增加一个额外的1*1的卷积层

3、在[2]的情况下,可以通过1*1的卷积层,进行高度和宽度的改变(减半操作)

7.6.3 ResNet模型

一:和GoogLeNet的区别

1、ResNet的每个卷积层增加了批量规范化层

2、架构更简单,修改更方便

二:ResNet结构

1、使用4个残差块组成的模块,每个模块使用若干输出通道相同的残差块

2、第一个模块的通道数同输入通道数一致

3、第一个模块已经使用了步幅为2的最大汇聚层,无需通道数翻倍和高度宽度减半

4、之后的每个模块在第一个残差块里将上一个模块的通道数翻倍,并将高度宽度减半

7.7 稠密连接网络(DenseNet)

总起:稠密连接网络是参差网络的某种程度上的逻辑扩展

7.7.1 从ResNet到DenseNet

一:关键区别以及相关基础

1、DenseNet输出是连接,而不是ResNet的简单相加

2、执行从x到其展开式的映射,将这些展开式结合到多层感知机中,再减少特征数量,实现方式:连接

3、DenseNet的相关数学基础为泰勒展开式

4、稠密网络的两大组成部分:稠密块(dense block)和过渡层(transition layer)

5、稠密块用于定义如何连接输入和输出、过渡层控制通道数

7.7.2 稠密块体

一:相关基础

1、一个稠密块由多个卷积块组成,每个卷积块使用相同数量的输出通道

2、在前向传播中,每个卷积块的输入和输出在通道维度上连接

3、卷积块的通道数控制了输出通道数相对于输入通道数的增长程度,因此也称为增长率

[得到输出通道数 = 输入通道数 + 输出通道数*DenseBlock数量]

7.7.3 过渡层

一:相关基础

1、过渡层可以用来控制模型的复杂度

2、使用1*1卷积层可以减少通道数,并使用步幅为2的平均汇聚层减半高度和宽度

7.7.4 DenseNet模型

一:与ResNet的相似点和架构

1、DenseNet和ResNet都使用一样的单卷积层和最大汇聚层

2、DenseNet使用4个稠密块

3、在稠密块中,可以设置,使用多少卷积层

4、在每个稠密块中的每个卷积层中,可以设置通道数(增长率)

5、在模块之间,DenseNet使用过渡层减半高度和宽度并减半通道数

6、与ResNet相似,最后连接全局汇聚层和全连接层来输出结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值