卷积神经网络CNN
-
全连接前馈问题:
- 参数太多:效率低且容易过拟合
- 局部不变特性:忽略物体的局部不变性特征,比如图像中的尺度缩放、平移、旋转等操作不影响其语义信息。如果使用全连接,则所有维度都被一视同仁,如(x1,y1) (x2,y2)中的四个数字被等价看待,但是实际上x1和x2的关联度(相关性)会高于x1和y1,一般需要进行数据增强来提高性能。
-
卷积神经网络CNN是一种具有局部连接、权重共享、汇聚等特性的深层前馈神经网络。
-
一维卷积(信号处理中使用)
- 𝑦𝑡= ∑ 𝑤𝑘𝑥𝑡−𝑘+1 ( 1 ≤ 𝑘 ≤ K) ,其中𝑤1 , 𝑤2 , ⋯ 称为滤波器或卷积核,滤波器长度为K,这里假设卷积的输出 𝑦𝑡 的下标 𝑡 从 𝐾 开始。信号序列𝒙和滤波器𝒘的卷积定义为𝒚 = 𝒘 ∗ 𝒙, 其中∗表示卷积运算。
- 简单移动平均: 𝒘 = [1/𝐾, ⋯ , 1/𝐾] ;信号序列的二阶微分:𝒘 = [1, −2, 1],可以检测信号序列中的高频信息(高频和低频指信号变化的强烈程度)
-
二维卷积(图像)
-
给定图像 𝑿 ∈ ℝ𝑀×𝑁 和滤波器 𝑾 ∈ ℝ𝑈×𝑉, 𝑈 << 𝑀, 𝑉 << 𝑁,其卷积 𝑦𝑖𝑗= ∑ 𝑢 = 1 𝑈 \sum_{𝑢=1}^{𝑈} ∑u=1U ∑ 𝑣 = 1 𝑉 \sum_{𝑣=1}^{𝑉} ∑v=1V𝑤𝑢𝑣𝑥𝑖−𝑢+1,𝑗−𝑣+1 ,这里假设卷积的输出𝑦𝑖𝑗 的下标(𝑖, 𝑗)从(𝑈, 𝑉 )开始。输入信息𝑿和滤波器𝑾 的二维卷积定义为 𝒀 = 𝑾 ∗ 𝑿
-
均值滤波:𝑤𝑢𝑣 = 1 / 𝑈𝑉。一幅图像在经过卷积操作后得到结果称为特征映射。在计算卷积的过程中需要进行卷积核翻转(从两个维度(从上到下、从左到右)颠倒次序,即旋转180度)以上图为例,卷积是右下角元素减去左上角元素,和常规想法是相反的。
-
互相关(不翻转卷积):𝑦𝑖𝑗= ∑ 𝑢 = 1 𝑈 \sum_{𝑢=1}^{𝑈} ∑u=1U ∑ 𝑣 = 1 𝑉 \sum_{𝑣=1}^{𝑉} ∑v=1V𝑤𝑢𝑣𝑥𝑖+𝑢-1,𝑗+𝑣-1,和卷积的区别仅仅在于卷积核是否进行翻转。公式写法是𝒀 = 𝑾 ⊗ 𝑿 = = rot180 ( 𝑾 ) ∗ 𝑿。我们用互相关来代替卷积。
-
-
卷积的变种
- 步长:卷积核在滑动时的时间间隔;零填充:在输入向量两端进行补零。
- 假设卷积层的输入神经元个数为𝑀,卷积大小为𝐾,步长为𝑆,在输入两端各填补𝑃 个0,那么该卷积层的神经元数量为 (𝑀 − 𝐾 + 2𝑃) /𝑆 + 1
- 三种卷积
- 窄卷积 :步长𝑆 = 1,两端不补零𝑃 = 0,卷积后输出长度为𝑀 − 𝐾 + 1
- 宽卷积 :步长𝑆 = 1,两端补零𝑃 = 𝐾 − 1,卷积后输出长度𝑀 + 𝐾 − 1
- 等宽卷积 :步长 𝑆 = 1,两端补零 𝑃 = (𝐾 − 1)/2,卷积后输出长度 𝑀
-
其他卷积方式:**转置卷积 / 微步卷积 / 空洞卷积 **
-
卷积神经网络的具体结构:局部连接,权重共享
通常的交叉堆叠结构:
注:⼀个卷积块为连续M 个卷积层和b个汇聚层(M通常设置为2 ∼ 5,b为0或1 )⼀个卷积网络中可以堆叠N 个连续的卷积块,然后在接着K个全连接层 (N 的取值区间比较大,比如1 ∼ 100或者更大;K一般为0 ∼ 2)-
深度就是特征个数,如果是灰度图像,就只有一个特征映射, 输入层的深度 𝐷 = 1;如果是彩色图像,分别有 RGB 三个颜色通道的特征映射, 输入层的深度𝐷 = 3。
-
汇聚层也叫子采样层,其作用是进行特征选择,降低特征数量,从而减少参数数量。卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少,如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。
-
常用的汇聚函数有两种:最大汇聚(取区域中所有神经元活性值的max)和平均汇聚(取区域内所有神经元活性值的平均值)。典型的汇聚层是将每个特征映射划分为2 × 2大小的不重叠区域,然后使用最大汇聚的方式进行下采样。汇聚层也可以看作一个特殊的卷积层,卷积核大小为𝐾 × 𝐾,步长为𝑆 × 𝑆,卷积核为max函数或 mean函数。过大的采样区域会急剧减少神经元的数量,也会造成过多的信息损失。
-
卷积网络整体结构趋向于使用更小的卷积核以及更深的结构
-
-
二维卷积的数学性质(一维适用)
-
参数学习:只有卷积层有参数,因此只需要计算卷积层中参数的梯度
-
误差计算
关于b的误差项:因为z(l,p) 的每个元素都要加上⼀样的偏置b(l,p) , 即b(l,p) 与z(l,p)的每个元素都有关,根据链式法则,需要将关于z(l,p) 的每个元素的偏导数,即每个误差项相加。 -
反向传播
-
汇聚层(第𝑙 + 1层):该层每个神经元的误差项𝛿对应于第 𝑙 层的相应特征映射的一个区域。根据链式法则,第 𝑙 层的一个特征映射的误差项𝛿 (𝑙,𝑝) 只需要将𝑙 + 1层对应特征映射的误差项 𝛿 (𝑙+1,𝑝) 进行上采样操作,再和 𝑙 层特征映射的激活值偏导数逐元素相乘,就得到了𝛿 (𝑙,𝑝)。具体推导过程如下:
其中𝑓′𝑙 (⋅)为第 𝑙 层使用的激活函数导数,up为上采样函数,与汇聚层中使用的下采样操作刚好相反。如果zp= max 则关于最大xp的导数为1,其余为0。如果zp 是平均,则每个xp的导数都为1/n。 -
卷积层
第 𝑙 层的第d个输入x(𝑙,d) 关联到 𝑙+1层的全部 p=1,…P个净输入z(𝑙+1),因此反向传播时 需要把关于全部P个输出的偏导数累加。
-
-