赞
踩
本系列相关答案和源代码托管在我的Github上:PY131/Machine-Learning_ZhouZhihua.
注:本题程实现基于python-theano(这里查看完整代码和数据集)。
卷积神经网络(Convolutional Neural Network, CNN)是“深度学习”的代表模型之一,是一种多隐层神经网络,正被广泛用于图像处理、语音识别等热点领域。
卷积神经网络的原理和特点,集中体现在以下三个核心思想当中:
在整合了上述三大特点之后,卷积神经网络具备了很强的畸变容忍能力,能够从复杂的对象中隐式地进行特征提取与学习。
卷积神经网络同多层感知机(MLP)一样,通过设置多个隐层来实现对复杂模型的学习。如下图所示是一个手写字符识别的卷积神经网络结构示意图(书p114):
从图中可以看到卷积层(convolutional layer)和采样层(pooling layer)的复合,其功能简述如下:
通过多层复合,隐层最终输出目标维特征向量,通过连接层和输出层输出结果。
神经网络的参数设计十分重要,关于CNN模型的一些参数的考虑(如隐层特征图数目和大小、滤波器大小等),可参考Convolutional Neural Networks (LeNet)文章最后Tips and Tricks的内容。
这里,我们采用python-theano深度学习库来实现基于MNIST数据的字符识别实验。关于theano的基础使用可参考:深度学习基础 - 基于Theano-MLP的字符识别实验(MNIST)或是Deep Learning Tutorials。
这里我们采用经过规约的数据集mnist.pkl.gz,给出该数据集的部分信息如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。