使用tensorflow构建一个卷积神经网络

作者: 机器学习之路 2018-08-27 17:05:48

一、卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现,主要包括卷积层(convolutional layer)和池化层(pooling layer),主要应用于图像、视频、时间序列信号、音频信号、文本数据等。

一般的卷积神经网络都是由多个卷积层组成,每个卷积层主要包括以下几个部分:

1、图像会通过多个不同的卷积核进行滤波,并加偏置,提取出图像的局部特征,每一个卷积核都会映射一个新的2D图像。

2、将前面的卷积核的滤波输出结果,并使用非线性的激活函数进行处理。最常用的激活函数有ReLU函数以及它的变种,还有tan函数,以前最常用的激活函数是sigmoid函数。

3、对激活函数的结果进行池化操作(***池化、平均池化),目的是为了达到降采样,将2×2的图片降为1×1。最常用的是***池化,可以保留图像的显著特征,并提升模型的畸变容忍能力,提高模型的鲁棒性。

二、使用tensorflow构建一个卷积神经网络

通过tensorflow来构建一个卷积神经网络并将其应用在MNIST手写数据集上,***可以得到一个99%以上的准确率。这个模型主要包含四层:

***层:卷积层,卷积核的大小为5×5,一共包含32个卷积核,步长为1,padding为SAME使得输出图片的大小和输入一致。

第二层:卷积层,卷积核的大小为5×5,一共包含64个卷积核, 步长核填充方式和上一层卷积层一样。

第三层:全连接层,输入7×7×64,输出一个1024维的向量,并使用dropout使得部分节点失活来防止过拟合。

第四层:softmax层,输入是一个1024维的向量,输出一个10维的向量。

1、***层卷积层

***层卷积层的输入是一个28×28×1的图片,图片的宽高都是28,图片通道为1,通过卷积层之后的输出为28×28×32,然后通过***池化,输出为14×14×32。

2、第二层卷积层

第二层卷积层的输入是14×14×32,通过卷积之后的输出是14×14×64,然后通过***池化之后的输出为7×7×64。

3、第三层全连接层

第三层的输入是一个7×7×64的向量,所以要在计算之前对第二层卷积层的结果进行reshap操作,全连接层通过ReLU激活函数之后,再对其进行dropout操作。

4、第四层softmax层

第四层的输入是一个1024维的向量,输出是一个10维向量,表示属于0-9数字的概率。

5、权重的初始化

在卷积神经网络中,权重的初始化很重要,这里我们使用的是一个截断的正态分布函数来参数权重,并保证参数的标准差为0.1。 截断的正态分布是指如果函数随机产生的值与均值的差值大于两倍的标准差,那这个值将会被重新生成,来保证初始化权重的值不会相差太大。

6、初始化截距

截距的值都初始化为0.1

7、卷积函数

卷积的步长为1,填充方式是SAME,来保证卷积的输入和输出的大小一致。

8、***池化函数

***池化的横向和纵向的步长都为2,使得输出图片大小为输入图片大小的一半,达到降采样的目的。

完整代码:

https://github.com/steelOneself/tensorflow_learn/blob/88f614508081d8c3a926ea000966aa8d1ac35440/MNIST_examples/CNNMNIST.py

tensorflow 神经网络 图像处理
上一篇:全球AI芯片投资版图公开,机会都在这五大场景 下一篇:什么是自注意力机制?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?

2019年,机器学习框架之争进入了新阶段:PyTorch与TensorFlow成为最后两大玩家,PyTorch占据学术界领军地位,TensorFlow在工业界力量依然强大,两个框架都在向对方借鉴,但是都不太理想。

大数据文摘 ·  2019-10-11 23:18:15
2019年较热门的5大深度学习课程

今天,我们将和大家盘点一下,当下较流行的深度学习资源/课程,可以帮助你们提升深度学习技能。

猿哥 ·  2019-09-26 05:16:24
像堆乐高一样:从零开始解释神经网络的数学过程

模型的训练、调参是一项非常费时费力的工作,了解神经网络内部的数学原理有利于快速找出问题所在。本文作者从零开始,一步一步讲解了训练神经网络时所用到的数学过程。

机器之心 ·  2019-07-12 07:26:26
60年技术简史,带你读懂AI的前世今生

关于人工智能有很多的定义,它本身就是很多学科的交叉融合,不同的人关注它的不同方面,因此很难给出一个大家都认可的一个定义。我们下面通过时间的脉络来了解AI的反正过程。

佚名 ·  2019-07-08 13:40:22
什么?神经网络还能创造新知识?

本文通过神经网络透明原则来揭示其“黑盒知识”,为此来检验一个布尔异或函数的神经网络。

读芯术 ·  2019-07-02 13:37:23
掌握这十大机器学习方法,你就是圈子里最靓的崽

为揭开机器学习的神秘面纱,帮助新手学习该领域的核心概念,本文会介绍十种不同的机器学习方法,包括简单描述和可视化等,并一一举例说明。

读芯术 ·  2019-06-14 13:46:01
不懂卷积神经网络?别怕,看完这几张萌图你就明白了!

这篇文章用最简明易懂的方式解释了卷积神经网络(CNN)的基本原理,并绕开了里面的数学理论。

佚名 ·  2019-05-17 15:48:16
Python数据科学:神经网络

本次只是一个简单的神经网络入门,涉及神经元模型和BP神经网络。这里简单了解一下机器学习的三要素,分别是模型、策略与算法。

小F ·  2019-05-07 19:12:28
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载