《动手学深度学习》第四天2020-02-15

https://www.boyuai.com/elites/

2) 第二次打卡内容(2月15日-17日)截止打卡时间:2/17-22:00

Task03:过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶(1天)

Task04:机器翻译及相关技术;注意力机制与Seq2seq模型;Transformer(1天)

Task05:卷积神经网络基础;leNet;卷积神经网络进阶(1天)


Task05难度相较Task04低,先进行Task05


10、卷积神经网络基础

使用形状为2×2,步幅为2的池化层,会将高和宽都减半

卷积神经网络通过使用滑动窗口在输入的不同位置处重复计算,减小参数数量

在通过卷积层或池化层后,输出的高和宽可能减小,为了尽可能保留输入的特征,我们可以在减小高宽的同时增加通道数


池化层有参与模型的正向计算,同样也会参与反向传播

池化层没有模型参数:池化层直接对窗口内的元素求最大值或平均值,并没有模型参数参与计算

池化层通常会减小特征图的高和宽

池化层的输入和输出具有相同的通道数


对于高宽维度,只要输入的高宽(填充后的)大于或等于卷积核的高宽即可进行计算


通道数为3,宽高均为224的输入,经过一层输出通道数为96,卷积核大小为11,步长为4,无padding的卷积层后,得到的feature map的宽高为⌊(224−11)/4⌋+1=54

conv2d = nn.Conv2d(in_channels=3, out_channels=4, kernel_size=3, padding=2),输入一张形状为3×100×100的图像,输出的形状为:

输出通道数是4,上下两侧总共填充4行,卷积核高度是3,所以输出的高度是104 - 3 + 1=102104−3+1=102,宽度同理可得。


假如你用全连接层处理一张256×256的彩色(RGB)图像,卷积核的高宽是3×3,输出包含10个通道,在使用偏置的情况下,这个卷积层共有多少个参数:输入通道数是3(RGB),输出通道数是10,所以参数数量是10×3×3×3+10=280。

假如你用全连接层处理一张256×256的彩色(RGB)图像,输出包含1000个神经元,在使用偏置的情况下,参数数量是:图像展平后长度为3×256×256,权重参数和偏置参数的数量是3×256×256×1000+1000=196609000。

11、LeNet

LeNet主要分为两个部分:卷积层块和全连接层块

LeNet的绝大多数参数集中在全连接层部分

LeNet在连接卷积层块和全连接层块时,需要做一次展平操作

LeNet的卷积层块交替使用卷积层和池化层。

12、深度卷积神经网络(AlexNet)

LeNet: 在大的真实数据集上的表现并不尽如⼈意。

1.神经网络计算复杂。

2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域。

机器学习的特征提取:手工定义的特征提取函数

神经网络的特征提取:通过学习得到数据的多级表征,并逐级表⽰越来越抽象的概念或模式。

神经网络发展的限制:数据、硬件

ModernCNN

1)深度卷积神经网络(AlexNet)

首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。

特征:

8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。

将sigmoid激活函数改成了更加简单的ReLU激活函数。

用Dropout来控制全连接层的模型复杂度。

引入数据增强,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。


用Dropout来控制全连接层的模型复杂度

包含有5层卷积和2层全连接隐藏层,以及1个全连接输出层

将LeNet中的ReLU激活函数改成了sigmoid激活函数

首次证明了学习到的特征可以超越⼿⼯设计的特征

使用重复元素的网络(VGG)

VGG:通过重复使⽤简单的基础块来构建深度模型。

Block:数个相同的填充为1、窗口形状为3×3的卷积层,接上一个步幅为2、窗口形状为2×2的最大池化层。

卷积层保持输入的高和宽不变,而池化层则对其减半。


通过重复使⽤简单的基础块来构建深度模型。


⽹络中的⽹络(NiN)

LeNet、AlexNet和VGG:先以由卷积层构成的模块充分抽取 空间特征,再以由全连接层构成的模块来输出分类结果。

NiN:串联多个由卷积层和“全连接”层构成的小⽹络来构建⼀个深层⽹络。

⽤了输出通道数等于标签类别数的NiN块,然后使⽤全局平均池化层对每个通道中所有元素求平均并直接⽤于分类。


1×1卷积核作用

1.放缩通道数:通过控制卷积核的数量达到通道数的放缩。

2.增加非线性。1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性。

3.计算参数少

NiN重复使⽤由卷积层和代替全连接层的1×1卷积层构成的NiN块来构建深层⽹络。

NiN去除了容易造成过拟合的全连接输出层,而是将其替换成输出通道数等于标签类别数 的NiN块和全局平均池化层。

NiN的以上设计思想影响了后⾯⼀系列卷积神经⽹络的设计。


GoogLeNet

由Inception基础块组成。

Inception块相当于⼀个有4条线路的⼦⽹络。它通过不同窗口形状的卷积层和最⼤池化层来并行抽取信息,并使⽤1×1卷积层减少通道数从而降低模型复杂度。

可以⾃定义的超参数是每个层的输出通道数,我们以此来控制模型复杂度。


GoogLeNet模型

完整模型结构


未进行代码实践。耗时约2小时。

你可能感兴趣的:(《动手学深度学习》第四天2020-02-15)