卷积神经网络(Convolutional Neural Network,CNN)

卷积神经网络一般由卷积层汇聚层全连接层交叉堆叠而成的前馈神经网络,使用误差反向传播算法进行训练。

1 卷积基础

一维卷积:信号发生器每个时刻$t$产生一个信号$x_t$,生成信号序列$\left(x_1,x_2,\cdots,x_t,\cdots\right)$。其信息衰减率为$w_k$,即在$k-1$个时间步长后信息为原来的$w_k$倍,将$\left(w_1,w_2,\cdots,w_k,\cdots\right)$称为滤波器或卷积核。

设滤波器序列为$\left(w_1,w_2,\cdots,w_k,\cdots,w_m\right)$,其与信号序列$\left(x_1,x_2,\cdots,x_t,\cdots\right)$的卷积

信号序列$\mathbf{x}$和滤波器$\mathbf{w}$的卷积

二维卷积:给定二维图像数据$X\in\mathbb{R}^{M\times N}$和二维滤波器$W\in\mathbb{R}^{m\times n}$,其卷积为

互相关:给定二维图像数据$X\in\mathbb{R}^{M\times N}$和二维卷积核$W\in\mathbb{R}^{m\times n}$,其互相关定义为

图像数据$X\mathbb{R}^{M\times N}$和卷积核$W\in\mathbb{R}^{m\times n}$的互相关

其中$Y\in\mathbb{R}^{M-m+1,N-n+1}$为输出矩阵。

互相关和卷积的区别在于卷积核发生了反转(在两个维度上颠倒次序,即旋转$180$度)。因此互相关也称为不反转卷积。

卷积扩展

  1. 卷积核步长:卷积核在滑动时的间隔;
  2. 数据零填充:在输入数据各维度的两端进行补零。

假设一维卷积的输入向量元素个数为$M$,卷积核元素个数为$m$,卷积核步长为$s$,输入数据两端各$p$个零填充,则卷积输出向量个数为$\left(M-m+2p\right)/s+1$。

窄卷积(Narrow Convolution):步长$s=1$,两端补零$p=0$,卷积输出长度为$M-m+1$。
宽卷积(Wide Convolution):步长$s=1$,两端补零$p=m-1$,卷积后输出长度为$M+m-1$。
等宽卷积(Equal-Width Convolution):步长$s=1$,两端补零$p=\left(m-1\right)/2$,卷积后输出长度为$M$。

卷积交换性
二维图像数据$X\in\mathbb{R}^{M\times N}$和二维卷积核$Y\in\mathbb{R}^{m\times n}$,对图像数据$X$的两个维度进行零填充(两端各补$m-1$个和$n-1$个零),得到全填充的图像数据$\tilde{X}\in\mathbb{R}^{\left(M+m-1\right)\times\left(N+n-1\right)}$。图像数据$X$和卷积核$W$的宽卷积

其中$\tilde{\otimes}$为宽卷积操作。

宽卷积具有交换性,即

2 卷积神经网络结构

卷积层

卷积层提取空间局部区域特征。

卷积层结构:

  • 输入特征映射组:$X\in\mathbb{R}^{M\times N\times D}$为三维张量,其中每个切片矩阵$X^d\in\mathbb{R}^{M\times N}$为一个输入特征映射,$1\leq d\leq D$。
  • 输出特征映射组:$Y\in\mathbb{R}^{M’\times N’ \times P}$为三维张量,其中每个切片矩阵$Y^p\in\mathbb{R}^{M’ \times N’}$为一个输出特征映射,$1 \leq p \leq P$。
  • 卷积核:$W\in\mathbb{R}^{m\times n\times D\times P}$为四维张量,其中每个切片矩阵$W^{p,d}\in\mathbb{R}^{m\times n}$为一个二维卷积核,$1\leq d\leq D,1 \leq p \leq P$。

输入特征映射组$X$到输入特征映射$Y^p$

在输入为$X\in\mathbb{R}^{M\times N\times D}$,卷积核为$W\in\mathbb{R}^{m\times n\times D\times P}$,输出为$Y\in\mathbb{R}^{M’\times N’ \times P}$的卷积层,共需要$\left(m\times n\right)\times D\times P+P$个参数。

汇聚层(子采样层、池化层)

汇聚层进行特征选择,降低特征数量。

汇聚层的输入层特征映射组为$X\in\mathbb{R}^{M\times N\times D}$,对其中每个特征映射$X^d$,将其划分为多个区域$R_{m,n}^d,1\leq m\leq M,1\leq n\leq N$。汇聚是对每个区域进行采样,得到一个值作为该区域的概括。

常用汇聚函数:

  • 最大汇聚(Maximum Pooling):取区域内最大值作为输出
  • 平均汇聚(Mean Pooling):去区域内平均值作为输出

典型汇聚层是将每个特征映射划分为$k\times k$个不重叠区域,然后使用最大汇聚方式进行采样。

网络结构

典型的卷积神经网络是有卷积层、汇聚层、全连接层交叉堆叠而成。


Deep Learning      nerual network

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Recurrent_Nerual_Network 上一篇
CRF 下一篇