TensorFlow学习笔记(三):Tutorial第二个例子-深入MNIST-卷积神经网络
来源:互联网 发布:淘宝代销靠谱吗 编辑:程序博客网 时间:2024/06/05 12:56
1. 卷积神经网络结构及与LeNet-5的区别
在网上找了一个卷积神经网络的教程,http://blog.csdn.net/zouxy09/article/details/8781543/
其实最好学习卷积神经网络的读本是Lecun的论文(http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf),在这篇论文里面较为详尽的解释了什么是卷积神经网络,并且阐述了为什么要卷积,为什么要降采样,RBF怎么用之类的。但是注意Lecun所做的卷积神经网络LeNet-5只是卷积神经网络的一种组合形式,具体使用的时候还要根据具体的需求调整。
TensorFlow教程里面使用的卷积神经网络的结构就和LeNet-5的不太一样。
1. 卷积过程完成后,TensorFlow这个实例没有使用传统的Sigmoid函数,而是用了ReLu(Rectified Linear Unit 修正线性函数)。ReLu就是对负输入输出0,对正数输出线性输出,这样就形成了单侧抑制。
2. 求取特征图后,要进行pooling(池化,其实叫降采样可能更好一点),TensorFlow用的是max-pooling,就是就特征图一区域里面的最大值,而LeNet-5里面用的就是mean-pooling。
3. TensorFlow经过若干的卷积和池化后接的是Softmax,而LeNet-5接的是RBF。
4. TensorFlow有两种卷积模式“VALID”和“SAME”,使用前一种模式的时候,计算过程中卷积核只会覆盖那些有值区域,所以算出的结果会比输入图像小,使用SAME模式时,卷积核也会覆盖那些图片外面的区域,保证计算出来的结果和输入图像的大小一样。
所以,在TensorFlow这个例子里面,它采用的模式是SAME,经过第一次卷积,使用了32种卷积核,计算出32张28*28的特征图,经过一次2*2大小的MAX Pooling,减为14*14,然后再经过第二次卷积,计算出64张14*14的特征图(每个图都用了两个卷积核),再经过一次MAX Pooling,得到7*7的图,将这个图输入到有7*7*64个输入,1024个输出的全连接神经网络,然后再加一个SoftMax层,就得到最后的10个概率值。
如果对比LeNet-5,不同的地方还是很多的。
在教程阐述网络结构的时候,有这样的一句话:“TensorFlow在卷积和池化上有很强的灵活性。我们怎么处理边界?步长应该设多大?在这个实例里,我们会一直使用vanilla版本。”。那么什么是Vanilla版本?也就是最一般,最正常的版本。
"Vanilla" is a common euphemism for "regular" or "without any fancy stuff."
2. Dropout是什么
Dropout是为了解决大规模深度学习的两个缺点:费时,过拟合而发明的一种方法。Dropout就是在不同的训练过程中随机扔掉一部分神经元。
操作过程如下:
在一次训练中:每个神经元有p的概率被选中为有效,如果被选为无效神经元,那么这次训练过程中不更新权值,也不参加神经网络的计算。
在验证中:每个神经元都要参加运算,但其输出要乘以概率p。教程中有一句“TensorFlow的tf.nn.dropout操作除了可以屏蔽神经元的输出外,还会自动处理神经元输出值的scale。所以用dropout的时候可以不用考虑scale。”,这里的scale就是指输出时要乘的这个概率。
这一篇文章解释了什么是Dropout:http://blog.csdn.net/stdcoutzyx/article/details/49022443
3. 什么是ADAM优化器
TensorFlow这个例子里面最后用了Adam优化器,而不是用的GradientDescent,Adam也是一种基于梯度下降的方法。这一篇文章有比较详细的叙述:http://www.cnblogs.com/xinchrome/p/4964930.html
- TensorFlow学习笔记(三):Tutorial第二个例子-深入MNIST-卷积神经网络
- TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门
- tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)
- TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅
- tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)(Deep MNIST for Experts)
- [TensorFlow]入门学习笔记(2)-卷积神经网络mnist手写识别
- tensorflow笔记:卷积神经网络用于MNIST识别
- Tensorflow学习笔记(三)——深入MNIST
- 【tensorflow学习】卷积神经网络CNN(mnist数据集)
- TensorFlow学习笔记(5)--实现卷积神经网络(MNIST数据集)
- 学习笔记TF057:TensorFlow MNIST,卷积神经网络、循环神经网络、无监督学习
- Tensorflow 02: 卷积神经网络-MNIST
- tensorflow,卷积神经网络与mnist
- 深度学习笔记——TensorFlow学习笔记(三)使用TensorFlow实现的神经网络进行MNIST手写体数字识别
- tensorflow13《TensorFlow实战Google深度学习框架》笔记-06-02mnist LeNet5卷积神经网络 code
- tensorflow 学习笔记9 卷积神经网络(CNN)实现mnist手写识别
- (四)Tensorflow学习之旅——MNIST分类的卷积神经网络CNN示例
- Tensorflow学习之实现卷积神经网络(三)
- HDU 1686 Oulipo
- 五大常用算法之三:贪心算法(转)
- Android:极光推送集成注意要点——解决:Get sdk version fail![获取sdk版本失败!]解决方案
- [编程题]由异或门引出的几道数组的算法题
- TreeSet&NavigableMap&NavigableSet源码解析 给jdk写注释系列之jdk1.6容器(8)
- TensorFlow学习笔记(三):Tutorial第二个例子-深入MNIST-卷积神经网络
- Python基础教程1-3章笔记
- 杭电-4857 逃生(拓扑排序+优先队列)
- 邻接表(链表)存图
- (一)表空间的概念
- kubernetes scheduler 模块分析
- Issure: Windows 80 端口被占用
- 五大常用算法之四:回溯法(转)
- HDU1874 畅通工程续