卷积神经网络基础教程
卷积神经网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。
卷积神经网络是一种专门用来处理具有类似网格结构的数据的神经网络,例如时间序列(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作是二维的像素网格)。
卷积运算
一维场合
卷积的一个重要物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。
对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应 加权叠加,就直接得到了输出信号。
形象的物理含义见怎样通俗易懂地解释卷积? - 知乎
给定一个输入信号序列
x(t),t=1,⋅⋅⋅,n
,和单位响应序列(有时也称滤波器)
f(t),t=1,⋅⋅⋅,m
,一般情况下单位响应的长度
m
远小于输入信号长度
则卷积输出:
在卷积神经网络中,对于不在 [1,n] 范围之内的 x(t) 用零补齐(zero-padding),输出长度一般为 n+m−1 。此时也称为 宽卷积。另一类是 窄卷积,输出长度为 n−m+1
二维场合
二维卷积经常用在图像处理中。给定一个图像
xij,1≤i≤M,1≤j≤N
,和滤波器
fij,1≤i≤m,1≤j≤n
,一般
m<<M,n<<N
。
卷积的输出为:
在图像处理中,常用的均值滤波(mean filter)就是当前位置的像素值设为滤波器窗口中素有像素的平均值,也就是 fuv=1mn 。
CNN中的卷积层
在全连接前馈神经网络中,如果第
l
层有
如果用卷积来代替全连接,第
l
层的每一个神经元都只和第
其中 w(l)∈Rm 为 m 维的滤波器,
写成紧凑的向量形式:
从公式 (4) 中可以看到 w(l) 和 b(l−1) 对于第 l 层中的所有神经元都是相同的:权值共享;在卷积层里面,我们只需要
上面是一维的卷积层,在图像处理中,图像是以二维矩阵的形式输入到神经网络中的。设假设
X(l)∈R(wl×hl)
和
X(l−1)∈R(wl−1×hl−1)
分别是第
l
层和第
其中, W(l)i,j∈Ru×v 为两维的滤波器, b(l−1) 为偏置项。第 l 层的神经元个数为
写成紧凑的向量形式:
为了增强卷积层的表示能力,我们可以使用 K 各不同的滤波器来得到
不失一般性,假设第
l−1
层的特征映射组数为
nl−1
,每组特征映射的大小为
ml−1=wl−1×hl−1
。则第
l−1
层的总神经元数为
nl−1×ml−1
。第
l
层的特征映射组数为
其中, W(l,k,p) 表示第 l−1 层的第 p 组特征向量到第
第
有时,第
l
层的每一组特征映射并不依赖于第
池化(Pooling)
卷积层虽然可以显著减少连接的个数,但是每一个特征映射的神经元个数并没有显著减少。为了解决这个问题,一般会在卷积层后面再加上一个池化(Pooling)操作,也被称为子采样(Subsampling),构成一个子采样层。子采样层可以大大降低特征为数,避免过拟合。
对于卷积层得到的一个特征映射
X(l)
,我们可以将
X(l)
划分为多个区域
Rk,k=1,…,K
。这些区域可以重叠,也可以不重叠。则每个区域映射到下一层的神经元
X(l+1)k
:
其中 down 是子采样函数, wl+1 和 b(l) 分别是可训练的权重和偏置参数。写成紧凑的向量形式:
注意到,对于每一组特征映射 Xl ,其内部的采样区域 Rk,k=1 用到的权重和偏置参数是一样的(参数共享)。
子采样函数 down 一般是取区域内所有神经元的最大值(Maximum Pooling)或平均值(Average Pooling)