伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

(一)卷积神经网络的基础

  1.  CNN中的基础概念:卷积层和池化层,填充、步幅、输入通道和输出通道含义。

    此处解释一个较简单问题:两个连续的3*3卷积核的感受野与一个5*5卷积核的感受野相同!

  伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

如上图所示3*3的输入在1个2*2的卷积核计算后等得到一个2*2的输出,我们在试想一个2*2的卷积核与图中2*2的输出作用,将得到一个整数z,此时我们便可以说z再上一层的感受野是4,在上上层的感受野是9,;由此,可以类比得到的两个连续的3*3的卷积核时,第一层的感受野是25,第二层的感受野是9;即两个连续的3*3的卷积核与一个5*5卷积核的大小是相同的,都是25。

2. 1*1卷积层的作用

(1)实现通道维数的改变,即升维与降维

(2)卷积层后一般会跟一个非线性函数,因此会增大网络的非线性

(3)假设我们将通道维当作特征维,将高和宽维度上的元素当成数据样本,那么1×1卷积层的作用与全连接层等价。(暂时还不理解,难道用了1×1卷积层就可以不用flatten()函数将其按行展平了么?还是说这个1*1的卷积核与前一层中的每一个元素相连接,形式上与全连接层相同?)

(二)leNet

使用全连接层的局限性:

    图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。

    对于大尺寸的输入图像,使用全连接层容易导致模型过大。

使用卷积层的优势:

    卷积层保留输入形状。

    卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大

leNet结构及pytorch编码如下图所示:伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

(三)卷积神经网络进阶

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

    网络结构图及其pytorch的实现

伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

(2)VGG网络

    特点:VGG通过重复使用简单的基础块VGG_BLOCK来构建深度网络模型。

    Block:数个相同的填充为1、窗口形状为3×3的卷积层,接上一个步幅为2、窗口形状为2×2的最大池化层。
    卷积层保持输入的高和宽不变,而池化层则对其减半。

    VGG11的结构图 

 

伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

 伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

 (3)网络中的网络NiN

LeNet、AlexNet和VGG:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。
NiN网络的不同之处在于串联多个由卷积层和“全连接”层构成的小⽹络来构建1个深层网络。
最后一层使用输出通道数等于标签类别数的NiN块,然后使用全局平均池化层对每个通道中所有元素求平均并直接用于分类。

 1×1卷积核作用
1.放缩通道数:通过控制卷积核的数量达到通道数的放缩。
2.增加非线性。1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性**函数,从而可以增加网络的非线性。
3.计算参数少

NiN网络的结构图如下所示:

伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

NiN网络的pytorch实现如下图所示:伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

 (4)GoogleNet

    由Inception基础块组成。

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

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

    GoogleNet的结构基础块如下图所示:伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

pytorch代码实现inception基础块如下:

伯禹AI-task 05 卷积神经网络基础 leNet 卷积神经网络进阶

笔记到这吧。