type
status
date
slug
summary
tags
category
icon
password
CNN系列
基础知识
面经指南
一、CNN基础知识
1.1 动机
在处理图像时,全链接网络会存在三个明显的缺点:
- 图像展开为向量会丢失空间信息
- 参数过多效率低下,训练困难
- 参数量过大,容易导致过拟合
同时在图像中局部特征存在相关性,因此Yann LeCun等提出了具有稀疏交互和参数共享特性的CNN模型。
1.2 CNN卷积层篇
1.2.1 稀疏交互
- 动机:改善全链接网络中,任意一对输入与输出神经元间都存在连接,形成稠密结构的问题
- 思路:采用卷积核,卷积核尺度远小于输入维度,每个输出神经元仅与前一层特定局部区域内的山景元存在连接
- 优点:减少了模型的参数量。全连接层的参数为MN,卷积层的参数为KN(M为输入,N为输出,K为卷积维度)
1.2.2 参数共享
- 思路:在同一模型的不同模块中使用相同参数,为卷积运算的固有属性。
- 区别:NN:计算每层输出时,权值参数矩阵中每个元素只作用于每个输入元素一次。CNN:卷积和中每个元素将作用与每个局部输入的特定位置上。
- 物理意义:使卷积层具有平移不变性(满足 f(g(x)) = g(f(x)) 时,称 f(x) 关于g 具有等变性)
1.2.3 CNN 卷积层与全连接层的联系
- 卷积核中的权值每次滑动计算时只是局部连接,且在卷积列中的神经元共享参数——计算局部信息,而全连接层神经元的权值与所有输入相连——计算全局信息。
- 全连接层可以视作一种特殊的卷积。考虑下面两种情况:
- (1) 特征图和全连接层相连,AlexNet经过五次池化后得到7*7*512的特征图,下一层全连接连向4096个神经元,这个过程可以看作有4096个7*7*512的卷积核和7*7*512的特征图进行卷积操作,最终得到1*1*4096的特征图,等价于全连接得到4096个神经元。
- (2) 全连接层和全连接层相连,AlexNet的再下一层依然是4096个神经元,即4096个神经元和4096个神经元全连接,由(1)得到了1*1*4096的特征图,本次全连接过程可以看作存在4096个1*1*4096的卷积核,依次和1*1*4096的特征图进行卷积操作,等价于全连接。
- 两者都是采用的矩阵点积运算,具有相似的计算形式,能够实现互相转化。
- 卷积——>全连接: 权重矩阵参数增大,权重补0,由于参数共享性质,在其中大部分块中,存在大量相等参数。
- 全连接——>全卷积: 将卷积核的尺寸设置为和输入数据体的尺寸一致(NxWxHxC)。除第一层全连接外,其他通道数都为1,N表示本层神经元的个数,为一个提前设定的超参数,结果与初始的那个全连接层一致。
- 一个深度卷积神经网络模型通常由若干卷积层叠加若干全连接层组成,中间也包含各种非线性操作以及池化操作。卷积层的作用是从输入数据中采集关键数据内容。全连接层在深度卷积神经网络中的作用是将前面经过多次卷积后高度抽象的特征进行整合。最后一层作归一化,然后输出概率。卷积层提供了一个有意义、低维度且几乎不变的特征空间,然后全连接层在这个空间里学习一个非线性的方程。通俗的说,卷积层是特征提取器,全连接层执行分类操作。
1.2.4 channel的含义
在卷积神经网络中,channel的含义是每个卷积层中卷积核的数量。卷积层的卷积个数就等于卷积层输出的out_channels。这个值也与下一层卷积的in_channels相同。
channels可以分为三种:
- 最初输入的图片样本的
channels
,取决于图片类型,比如RGB;
- 卷积操作完成后输出的
out_channels
,取决于卷积核的数量。此时的out_channels
也会作为下一次卷积时的卷积核的in_channels
;
- 卷积核中的
in_channels
,就是上一次卷积的out_channels
,如果是第一次做卷积,就是样本图片的channels
。
1.3 CNN池化层
1.3.1 池化层针对区域
池化层针对区域是非重叠区域。
1.3.2 池化层的种类
- 均值池化。思路:对领域内特征值取平均;优点:抑制由领域大小受限造成的估计值方差增大现象;特点:对背景的保留效果好。
- 最大值池化。思路:取领域内最大值;优点:抑制网络参数误差造成估计均值便宜问题;特点:更好提取纹理信息。
1.3.3 池化层的作用
降低参数量,保持对平移、伸缩、旋转操作的不变性
1.3.4 池化层的反向传播
由于 Pooling 操作容易改变 feature map 的 尺寸大小,使得 Pooling 层不可导。假定进行2*2的池化,会生成2*2*2*2=16 个梯度,即梯度无法传递到对应的位置;要避免这类情况可以将一个像素的loss传递给4个像素,且需要保证传递的loss综合不变。
mean pooling池化层的反向传播
- mean pooling 前向传播介绍:将 patch 中的值求平均来做 pooling;
- mean pooling 反向传播介绍:将值的梯度均等分为 n*n 份 分配给上一层,以保证 池化 前后 梯度之和保存不变;
max pooling 池化层的反向传播
- max pooling 前向传播介绍:将 patch 中的值取 max 来做 pooling 结果 传递给下一层;
- max pooling 反向传播介绍:把梯度直接传给前一层 值最大的一个像素,而其他像素不接受梯度,也就是为0;
1.4 CNN整体篇
1.4.1 CNN处理文本的流程
- 输入变长的字符串或单词串;
- 利用滑动窗口加池化的方式将原先的输入转化为固长的向量表示
1.4.2 CNN的特点
CNN 能够捕获文本中的局部特征
1.4.3 CNN的平移不变性
1.4.4 CNN的im2col实现方法
1.4.5 CNN的不足
- 以CNN为代表的前馈神经网络使用了条件独立假设,其特征提取范围受到限制;而循环神经网络或者Attention机制的模型能够看到序列整体的信息,因此对于序列建模任务,单纯的CNN存在先天不足。
- 卷积神经网络的核心思想是捕捉局部特征。对于序列任务,比如文本来说,局部特征就是由若干单词组成的滑动窗口(类似N-Gram)。卷积神经网络的优势在于能够自动地对N-Gram特征进行组合和筛选,获得不同抽象层次的语义信息。解决方法:加入更多卷积层 -> 网络深度增加 -> 参数量增大 -> 容易过拟合 -> 引入 Dropout 正则化 -> 引入超参数 -> 网络庞大冗余,难以训练
- 使用CNN做序列任务的优点在于其共享权重的机制,使得训练速度相对较快;但是其最大的缺点在于CNN无法构建长距离依存关系。
- 有许多研究者试图改进CNN模型,使其能够应用于序列任务。诸如用于句子语义建模的动态卷积神经网络DCNN、可以在整个序列的所有窗口上进行卷积的时延神经网络TDNN等。
1.5 空洞卷积
1.5.1 动机
- 正常CNN 的 filler 作用于输入矩阵连续位置,利用 卷积 和 池化 整合多尺度的上下文信息,导致分辨率损失
- pooling 会损失信息,降低精度,不加则导致感受野变小,学不到全局信息
- CNN提取特征的能力受到卷积核大小的限制,特别是对于序列问题,容易造成长距离依赖问题
1.5.2 基本概念
Dilated Convolutions,翻译为扩张卷积或空洞卷积。空洞卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率参数,主要用来表示扩张的大小,以及去掉 pooling。
1.5.3 空洞卷积与普通卷积的联系
卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野。感受野指的是特征图上某个元素的计算受输入图像影响区域的范围,即特征图上神经元能够“看到”的图像范围,例如3×3卷积核的感受野大小为9。

优点:dilated width 会随着层数增加而指数增加,层数 增加,参数量线性增长, 感受野 指数增加,可覆盖全部信息
1.5.4 空洞卷积的作用
- 扩大感受野。如果希望增加输出单元的感受野,一般可以通过增加卷积核大小、增加卷积层数,或在卷积前增加池化操作来实现。但是前两者会增加参数数目,第三种方式会损失信息。空洞卷积就是一种增加感受野的同时不增加参数数量的方法。
- 捕获多尺度上下文信息:在进行空洞卷积前,通过双线性插值,对feature map进行上采样之后,再进行空洞卷积,这样可以在提高feature map的像素的同时,提取更多的全局信息
1.6 反卷积
1.6.1 基本概念
- 反卷积=上采样=(转置卷积+微步卷积)⊆ 空洞卷积=一般意义上的广义卷积(包含上采样和下采样)。
- 上采样:在应用在计算机视觉的深度学习领域,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(e.g.:图像的语义分割),这个采用扩大图像尺寸,实现图像由小分辨率到大分辨率的映射的操作,叫做上采样(Upsample)。
反卷积是一种特殊的正向卷积,先按照一定的比例通过补0来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。
1.6.2 作用
- 通过反卷积可以用来可视化卷积的过程
- 反卷积在GAN等领域中有着大量的应用。 比如用GANs生成图片,其中的generator和discriminator均采用深度学习,generator生成图片过程中采用的就是反卷积操作(当然discriminator采用卷积对generator生成的图片判别真伪)。
- 将一些低分辨率的图片转换为高分辨率的图片。
- Author:liamtech
- URL:https://liamtech.top/article/10e9746b-4e13-81d3-9e33-eb20118213aa
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!