CNN训练过程:
1)向前传播阶段:
a)从样本集中取一个样本(X,Yp),将X输入网络;
b)计算相应的实际输出Op。
在本阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算,实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果:
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
2)向后传播阶段:
a)计算实际输出Op与相应的理想输出Yp的差;
b)按极小化误差的方法反向传播调整权矩阵。
CNN优点:
1) 输入图像和网络的拓扑结构能很好的吻合;
2) 尽管使用较少参数,仍然有出色性能;
3) 避免了显式的特征抽取,而隐式地从训练数据中进行学习;
4) 特征提取和模式分类同时进行,并同时在训练中产生,网络可以并行学习;
5) 权值共享减少网络的训练参数,降低了网络结构的复杂性,适用性更强;
6) 无需手动选取特征,训练好权重,即得特征,分类效果好;
7) 可以直接输入网络,避免了特征提取和分类过程中数据重建的复杂度。
CNN缺点:
1) 需要调整参数;
2) 需要大样本量,训练最好要GPU;
3) 物理含义不明确,神经网络本身就是一种难以解释的 “黑箱模型”。
CNN常用框架:
1) Caffe:源于Berkeley的主流CV工具包,支持C++,python,matlab; Model Zoo中有大量预训练好的模型供使用;
2) Torch: Facebook用的卷积神经网络工具包,通过时域卷积的本地接口,使用非常直观; 定义新网络层简单;
3) TensorFlow:Google的深度学习框架;TensorBoard可视化很方便;数据和模型并行化好,速度快。
CNN应用场景:
应用场景包括机器学习、语音识别、文档分析、语言检测和图像识别等领域。
特别强调的是:CNN在图像处理和图像识别领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的。CNN相较于传统的图像处理算法的好处之一在于:避免了对图像复杂的前期预处理过程,可以直接输入原始图像。
结语:
卷积神经网络CNN是近年发展起来,并引起广泛重视的一种高效识别方法。卷积神经网络以其局部权值共享的特殊结构在模式识别方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。CNN算法在人工智能之机器学习、语音识别、文档分析、语言检测和图像识别等领域等领域有着广泛应用。