卷积神经网络(CNN)的参数优化方法_第1页
卷积神经网络(CNN)的参数优化方法_第2页
卷积神经网络(CNN)的参数优化方法_第3页
卷积神经网络(CNN)的参数优化方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

卷积神经网络(CNN)的参数优化方法著名:?本文是从MichaelNielsen的电子书NeuralNetworkandDeepLearning的深度学习那一章的卷积神经网络的参数优化方法的一些总结和摘录,并不是我自己的结论和做实验所得到的结果。我想Michael的实验结果更有说服力一些。本书在github上有中文翻译的版本,前言最近卷积神经网络(CNN)很火热,它在图像分类领域的卓越表现引起了大家的广泛关注。本文总结和摘录了MichaelNielsen的那本NeuralNetworkandDeepLearning一书中关于深度学习一章中关于提高泛化能力的一些概述和实验结果。力争用数据给大家一个关于正则化,增加卷积层/全连接数,弃权技术,拓展训练集等参数优化方法的效果。本文并不会介绍正则化,弃权(Dropout),池化等方法的原理,只会介绍它们在实验中的应用或者起到的效果,更多的关于这些方法的解释请自行查询。mnist数据集介绍本文的实验是基于mnist数据集合的,mnist是一个从0到9的手写数字集合,共有60,000张训练图片,10,000张测试图片。每张图片大小是28*28大小。我们的实验就是构建一个神经网络来高精度的分类图片,也就是提高泛化能力。提高泛化能力的方法一般来说,提高泛化能力的方法主要有以下几个:正则化增加神经网络层数使用正确的代价函数使用好的权重初始化技术人为拓展训练集弃权技术下面我们通过实验结果给这些参数优化理论一个直观的结果1.普通的全连接神经网络的效果我们使用一个隐藏层,包含100个隐藏神经元,输入层是784,输出层是one-hot编码的形式,最后一层是Softmax层。训练过程采用对数似然代价函数,60次迭代,学习速率η=0.1,随机梯度下降的小批量数据大小为10,没有正则化。在测试集上得到的结果是97.8%,代码如下:

>>>importnetwork3

>>>fromnetwork3importNetwork

>>>fromnetwork3importConvPoolLayer,FullyConnectedLayer,SoftmaxLayer

>>>training_data,validation_data,test_data=network3.load_data_shared()

>>>mini_batch_size=10

>>>net=Network([

FullyConnectedLayer(n_in=784,n_out=100),

SoftmaxLayer(n_in=100,n_out=10)],mini_batch_size)

>>>net.SGD(training_data,60,mini_batch_size,0.1,

validation_data,test_data)2.使用卷积神经网络—仅一个卷积层输入层是卷积层,5*5的局部感受野,也就是一个5*5的卷积核,一共20个特征映射。最大池化层选用2*2的大小。后面是100个隐藏神经元的全连接层。结构如图所示在这个架构中,我们把卷积层和chihua层看做是学习输入训练图像中的局部感受野,而后的全连接层则是一个更抽象层次的学习,从整个图像整合全局信息。也是60次迭代,批量数据大小是10,学习率是0.1.代码如下,

>>>net=Network([

ConvPoolLayer(image_shape=(mini_batch_size,1,28,28),

filter_shape=(20,1,5,5),

poolsize=(2,2)),

FullyConnectedLayer(n_in=20*12*12,n_out=100),

SoftmaxLayer(n_in=100,n_out=10)],mini_batch_size)

>>>net.SGD(training_data,60,mini_batch_size,0.1,

validation_data,test_data)经过三次运行取平均后,准确率是98.78%,这是相当大的改善。错误率降低了1/3,。卷积神经网络开始显现威力。3.使用卷积神经网络—两个卷积层我们接着插入第二个卷积-混合层,把它插入在之前的卷积-混合层和全连接层之间,同样的5*5的局部感受野,2*2的池化层。

>>>net=Network([

ConvPoolLayer(image_shape=(mini_batch_size,1,28,28),

filter_shape=(20,1,5,5),

poolsize=(2,2)),

ConvPoolLayer(image_shape=(mini_batch_size,20,12,12),

filter_shape=(40,20,5,5),

poolsize=(2,2)),

FullyConnectedLayer(n_in=40*4*4,n_out=100),

SoftmaxLayer(n_in=100,n_out=10)],mini_batch_size)

>>>net.SGD(training_data,60,mini_batch_size,0.1,

validation_data,test_data)这一次,我们拥有了99.06%的准确率。4.使用卷积神经网络—两个卷积层+线性修正单元(ReLU)+正则化上面我们使用的Sigmod激活函数,现在我们换成线性修正激活函数ReLU

f(z)=max(0,z),我们选择60个迭代期,学习速率η=0.03,,使用L2正则化,正则化参数λ=0.1,代码如下

>>>fromnetwork3importReLU

>>>net=Network([

ConvPoolLayer(image_shape=(mini_batch_size,1,28,28),

filter_shape=(20,1,5,5),

poolsize=(2,2),

activation_fn=ReLU),

ConvPoolLayer(image_shape=(mini_batch_size,20,12,12),

filter_shape=(40,20,5,5),

poolsize=(2,2),

activation_fn=ReLU),

FullyConnectedLayer(n_in=40*4*4,n_out=100,activation_fn=ReLU),

SoftmaxLayer(n_in=100,n_out=10)],mini_batch_size)

>>>net.SGD(training_data,60,mini_batch_size,0.03,

validation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论