卷积网络文档
一、简介
本文档主要讨论了卷积网络()的推导和实现。架构的连接数远多于权重数,这表明某种形式的正则化是必要的。此网络假设我们希望以数据驱动的方式学习一些过滤器,以从输入中提取特征。
二、全连接反向传播算法
在典型的中,前几层是交替的卷积和下采样,然后最后几层(靠近输出层)都是全连接的一维网络。当我们准备将最终的二维特征图输入到一维网络时,一个非常方便的方法就是将所有输出的特征图连接成一个长的输入向量。接下来我们回到反向传播算法的讨论。
2.1 前馈传递
我们使用平方误差成本函数进行前馈传递,这里主要讨论的是多类问题,网络输出需要成“one-of-c”的形式。输出层激活函数的选择(如sigmoid或tanh)会影响训练过程和结果。
2.2 反向传播过程
反向传播过程涉及到敏感度的计算和权重的更新。每个元的敏感度(即误差对基的导数)都需要计算出来,然后用于更新权重和偏置。这个过程在每一层都需要进行,从输出层开始,一直到输入层。
三、卷积网络
3.1 卷积层
卷积层的BP更新主要涉及到卷积核权重的更新和特征图的组合学习。在卷积过程中,每个输出图可能是多个输入图的组合值,这需要在学习过程中自动选择。卷积层的敏感度计算涉及到与下一层的连接权重,需要进行上采样操作以匹配输入图的大小。
3.2 子采样层
子采样层的操作主要是对特征图进行下采样,减小其尺寸。在反向传播过程中,需要计算子采样层的敏感度图,然后用于更新权重和偏置参数。对于乘性偏置参数β,我们需要在前向传播过程中保存相关的计算结果,以便在反向传播过程中使用。
四、学习特征图的组合
有时候,通过对多个输入图进行卷积然后将卷积值相加得到一个输出图的效果较好。但是哪些输入图应该被选择进行卷积是一个问题。这里我们尝试让在训练过程中学习这些组合,即让网络学会选择哪些输入图来计算最佳的输出图。这涉及到对权重参数的学习和调整。
五、使用MATLAB加速计算
对于的训练,主要的计算瓶颈在于前向传播和反向传播过程中的图像处理操作。我们可以利用MATLAB内置的图像处理函数如imresize和kron来加速这些操作。我们也可以在内联代码中直接计算sigmoid函数及其导数,以避免重复的计算和查找。
六、参考资料
[1] 深度学习学习笔记系列(第七部分)
[2] LeNet-5,卷积网络
[3] 卷积网络
[4] 手写数字识别网络
[5] 深度学习:三十八(Stacked 简单介绍)
[6] 基于梯度的学习应用于文档识别。
[7] 使用深度卷积网络进行 Imagenet 分类。
[8] UFLDL中的“卷积特征提取”和“池化”。
[9] 反向传播BP算法等。