卷积神经网络来由
- 全连接前馈网络参数过多
- 针对视觉世界
- 像素与像素之间,主要与其附近的像素有关,与其距离较远的像素无关–局部不变性
- 像素的统计性指标再图像中相对统一–统计平稳性
- 对于物体的识别不依赖于它在图像中的位置–平移、旋转、缩放不变性
- 被识别的目标由各个部分构成–构成性
- 全连接前馈网络很难提取这些局部不变特征
=> ⋆ \star ⋆感受野–视网膜特定区域,只有给区域内的刺激才能激活该神经元
卷积神经网络
-
对视觉世界特性的利用
- 局部不变性:核(感受野),局部连接
- 统计平稳性:权重共享(每个位置都用相同的卷积核)
- 构成性:感受野随着网络的加深而加大,更深层次的单元可能会间接地于更大的输入部分交互(不断提取特征,相当于压缩图像,同样大小的视网膜区域能够看到更大范围的特征)
- 平移、旋转、缩放不变性:空间或时间上的池化(下采样)
-
结构
- 卷积层Convolution
- 卷积核(过滤器,在一个卷积层中可以存在多个卷积核)
- 一维卷积:一维卷积核
- 二维卷积:二维卷积核
- 三维卷积(通道):三维卷积核
- 滑动步长
- 零填充
- 输出(特征图谱)大小计算
假 设 输 入 矩 阵 大 小 为 W 1 × H 1 , 步 长 为 S , 宽 度 上 的 填 充 数 量 为 P W , 高 度 上 的 填 充 数 量 为 P H , 过 滤 器 大 小 为 F W × F H , 则 输 出 矩 阵 大 小 为 W 2 × H 2 W 2 = W 1 − F W + P W S + 1 H 2 = H 1 − F H + P H S + 1 若 存 在 多 个 通 道 c h a n n e l ( 三 维 ) , 即 输 入 矩 阵 为 W 1 × H 1 × c , 过 滤 器 为 F W × F H × c , 输 出 矩 阵 为 W 2 × H 2 × 1 假设输入矩阵大小为W_1\times H_1,步长为S,\\ 宽度上的填充数量为P_W,高度上的填充数量为P_H,\\ 过滤器大小为F_W\times F_H,则输出矩阵大小为W_2\times H_2\\ W_2=\frac{W_1-F_W+P_W}{S}+1\\ H_2=\frac{H_1-F_H+P_H}{S}+1\\ 若存在多个通道channel(三维),即输入矩阵为W_1\times H_1\times c,\\ 过滤器为F_W\times F_H\times c,输出矩阵为W_2\times H_2\times 1 假设输入矩阵大小为W1×H1,步长为S,宽度上的填充数量为PW,高度上的填充数量为PH,过滤器大小为FW×FH,则输出矩阵大小为W2×H2W2=SW1−FW+PW+1H2=SH1−FH+PH+1若存在多个通道channel(三维),即输入矩阵为W1×H1×c,过滤器为FW×FH×c,输出矩阵为W2×H2×1 - 非线性激活函数
- 修正线性函数relu:
o
u
t
p
u
t
=
m
a
x
(
0
,
i
n
p
u
t
)
output=max(0,input)
output=max(0,input)
- Tanh
- sigmoid
- Prelu
- 修正线性函数relu:
o
u
t
p
u
t
=
m
a
x
(
0
,
i
n
p
u
t
)
output=max(0,input)
output=max(0,input)
- 空洞卷积–通过给卷积核插入空洞来变相地增加感受野的大小
⋆ \star ⋆如何增加输出单元的感受野:增加卷积核的大小;增加层数;在卷积之间进行汇聚(池化)
- 卷积核(过滤器,在一个卷积层中可以存在多个卷积核)
- 池化层Pooling
- 引入先验假设:输出单元对输入的微小平移、扭转等保持不变
- 常用最大池化,标准做法是平铺(无重叠滑动)
- 作用
- 保留显著特征(显著像素),降低维度,增大卷积核的感受野,防止过拟合
- 增加了对位移的鲁棒性,可以忽略目标的微小平移、扭转之类的相对位置的变化(目标在不同的图像中的相对位置可能不同,但经过下采样后的特征图谱几乎一致),提高精度
- 由于特征图谱变小了,精确度可能受到影响,所以需要增加深度
- 填充Padding的作用
- 在卷积层中:使得输入输出维度一致
- 在池化层中:保持边界信息(图像边缘的像素点只会被卷积一次,中间的像素点会被卷积多次,于是边界信息的参考程度降低,而经过填充后边界像素点可以被卷积多次)
⋆ \ \ \ \ \star ⋆常用多层的小卷积核来替换大的卷积核,减少计算量和参数量
⋆ \ \ \ \ \star ⋆残差网络 - 卷积层Convolution
-
应用
- 图像识别:对图片的特征提取,往往不必从头训练一个深度网络
- 使用当前最佳的Imagenet数据集训练好的网络来作为特征提取器
- 针对自己要解决的问题添加一个新的Softmax层
- 用自己的数据训练做微调
- 文本处理
- 图像识别:对图片的特征提取,往往不必从头训练一个深度网络