动手学深度学习TF2.0第十课: 卷积层中的超参数调整

卷积层的输出形状由输入形状和卷积窗口形状来决定。如假设输入的形状为n(h) * n(w), 卷积核窗口形状是k(h) * k(w), 那么输出形状将会是 (n(h) - k(h) +1) * (n(w) - k(w) +1).

1. 超参数调整

由上讨论,可引出两个超参数: 填充和步幅.

  • 填充
''' 
填充(padding): 是指在输入的高和宽两侧填充元素(通常为0). 填充的小技巧:
	1. 一般情况下,会填充一定的行,从而使得输入尺寸与输出尺寸相同;
	2. 假设在高一共填充p(h)行, 在宽一共填充p(w)行, 那么输出形状会是:(n(h)-k(h)+p(h)+1) * (n(w)-k(w)+p(w)+1);
	> 为了保持技巧1满足, 一般我们设置p(h) = k(h)-1, p(w) = k(w)-1; 
	> 因为填充会均匀填充在输入的左右两侧,即每一侧填充p(h)/2; 所以,卷积核k常常取奇数,如1/3/5/7;
'''
  • 步幅
'''
步幅(stride): 卷积核在输入数组上每次滑动的行数和列数称为步幅;
	1. 步幅的设置可以减小输入数组的尺寸;
	2. 假设高的步幅为s(h), 宽的步幅为s(w), 则输出的形状为:
			 ((n(h)-k(h)+p(h)+s(h))/s(h))*((n(w)-k(w)+p(w)+s(w))/s(w)).
'''
  • 通道数

  • 池化层

'''
池化层:(pooling): 它的提出是为了缓解卷积层对位置的过度敏感性。 
	1. 池化层直接计算池化窗口内元素的最大值(最大池化)或平均值(平均池化);
	2. 可以指定池化层的填充和步幅;
	3. 在处理多通道输入数据时,池化层对每个输入通道分别池化,而不是像卷积层那样将各通道的数据按通道叠加;
	
'''

2. 卷积神经网络

卷积神经网络就是含卷积层的网络.

卷积层尝试解决这两个问题:
	1. 卷积层保留输入形状,使图像的像素在高和宽两个方向上的相关性均可能被有效识别;
	2. 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。

3. LetNet模型

LetNet模型: 一个早期用来识别手写数字图像的卷积神经网络, LeNet展示了通过梯度下降训练卷积神经网络可以达到手写数字识别在当时最先进的结果。这个奠基性的工作第一次将卷积神经网络推上舞台,为世人所知.

LeNet分为卷积层块和全连接层块两个部分. 
	1. 卷积层块 = 卷积层 + 最大池化层. 卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。
	"卷积层块的输出形状为(批量大小, 通道, 高, 宽)"

	2. 当卷积层块的输出传入全连接层块时,全连接层块会将小批量中每个样本变平(flatten), 也就是全连接层的输入形状将变成二维,(小批量样本, 数据向量(通道×高×宽))
	
	3. 卷积层紧接着池化层, 所以下一层的卷积层的尺寸由上一层的池化层尺寸来进行估算;
	

4. 深度卷积神经网络(AlexNet)

AlexNet 与 LeNet理念相似,但有着极大的改善.


1. 与相对较小的LeNet相比,AlexNet包含8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层;
2. AlexNet将sigmoid激活函数改成了更加简单的ReLU激活函数;
3. AlexNet通过`丢弃法`来控制全连接层的模型复杂度。而LeNet并没有使用丢弃法;
4. AlexNet引入了大量的`图像增广`,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱发呆de白菜头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值