《动手学深度学习Pytorch版》Task5-卷积神经网络
卷积神经网络基础
需要理解卷积神经网络的基础概念,主要是卷积层和池化层、填充、步幅、输入通道和输出通道的含义。
几个经典的模型
LeNet
AlexNet
VGG
NiN
GoogLeNet
-
1×1卷积核作用
- 放缩通道数:通过控制卷积核的数量达到通道数的放缩。
- 增加非线性:1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性**函数,从而可以增加网络的非线性。
- 计算参数少
-
LeNet vs AlexNet
注:5*5 Conv(16),这里的16指的是输出的通道数
LeNet的图片是灰度图,尺寸也小,模型比较简单; AlexNet是尺寸更大的彩色图,最开始的卷积核设计的也更大,模型也更复杂。
- VGG & NiN(NiN: 网络中的网络)
- VGG
VGG:通过重复使⽤简单的基础块来构建深度模型。
Block:数个相同的填充为1、窗口形状为 3×3 的卷积层,接上一个步幅为2、窗口形状为 2×2 的最大池化层。
卷积层保持输入的高和宽不变,而池化层则对其减半。 - NiN
NiN:串联多个由卷积层和“全连接”层构成的小⽹络来构建⼀个深层⽹络。
⽤了输出通道数等于标签类别数的NiN块,然后使⽤全局平均池化层对每个通道中所有元素求平均并直接⽤于分类。
- VGG
- GoogLeNet
由Inception基础块组成。
Inception块相当于⼀个有4条线路的⼦⽹络。它通过不同窗口形状的卷积层和最⼤池化层来并⾏抽取信息,并使⽤1×1卷积层减少通道数从而降低模型复杂度。
可以⾃定义的超参数是每个层的输出通道数,我们以此来控制模型复杂度。
GoogLeNet完整结构