卷积神经网络 I
- 卷积运算
- 卷积网络的动机:稀疏交互、参数共享、平移不变性
- 池化
卷积神经网络
给定一个卷积层:
参数 |
表示 |
卷积核数目 |
F |
卷积核大小 |
K |
步长 |
S |
零填充个数 |
P |
假如输入图片大小:W1×H1×D1
经过卷积后输出大小:W2×H2×D2
其中:
W2=(W1−K+2P)/S+1H2=(H1−K+2P)/S+1D2=F
通过参数共享,每个滤波器的参数:K×K×D1+1(F 个滤波器 F∗(K∗K∗D1)+F)
卷积神经网络 II
参数学习
设计和学习一个神经网络结构:
-
设计网络结构:卷积层,池化层,全连接层
-
设定超参数:开始学习过程之前设置,而不是通过训练获得。定义了关于模型的更高层次的概念,如复杂度或学习能力(容量)
-
参数学习:基于大量样本数据,通过误差逆传播算法进行参数学习。
- 前向传播
- 损失函数
- 反向传播
- 更新权重
其他卷积方式:转置
卷积操作实现了高维特征到低维特征的转换。
转置卷积:实现高维特征到低维特征的转换
高维向量 x∈Rd ,低维向量为 z∈Rp,p<d
高维d→低维p:z=Wx,W∈Rp×d
高维p→低维d:x=WTZ,WT∈Rd×p
举例:输入 x=[x1,x2,x3,x4,x5]∈R5 ,卷积核 w=[w1,w2,w3]T
高维5→低维3:
z=Cx=⎣⎢⎡w100w2w10w3w2w10w3w200w3⎦⎥⎤x=w⊗x
低维3→高维5:
x=C⊤z=⎣⎢⎢⎢⎢⎢⎡w1w2w3000w1w2w3000w1w2w3⎦⎥⎥⎥⎥⎥⎤z=rot180(w)⊗~z
其他卷积方式:空洞
空洞卷积/膨胀卷积:不增加参数,同时增加单元感受野的方法。
如果在卷积核的每两个元素之间插入 D−1 个空洞,卷积核的有效大小为:
K′=K+(K−1)×(D−1),
- D 称为膨胀率。当 D=1 时卷积核为普通的卷积核。
典型网络简介
LetNet
LeNet 提供了利用卷积层堆叠进行特征提取的框架,开启了深度卷积神经网络的发展。
卷积核 1:5×5,6 个
卷积核 2:5×5,16 个
输入/层/输出 |
大小 |
通道 |
输入图像 |
32×32 |
1 |
C1 层 |
$28 \times 28 $ |
6 |
S2 层 |
14×14 |
6 |
C3 层 |
10×10 |
16 |
S4 层 |
5×5 |
16 |
C5 层 |
1×1 |
|
S6 层 |
1×1 |
|
S2 的 6 通道到 C3 的 16 通道,采用连接表来进行组合:
AlexNet
- 大数据训练:百万级 ImageNet 图像数据
- 非线性激活函数 ReLU
- 5 个卷积层、 3 个汇聚层和 3 个全连接层
- 分 Group 实现双 GPU 并行局部响应归一 化(LRN 层)
- 防止过拟合:Dropout 、数据增强
InceptionNet
残差网络