TensorFlow实现神经网络入门篇

2017 年 11 月 19 日 机器学习研究会

如果你一直关注数据科学/机器学习,你就不能错过深度学习和神经网络的热潮。互联网公司正在寻找这方面的人,而且从竞赛到开源项目,都有巨额奖金。 


如果你对深度学习所提供的前景感到兴奋,但是还没有开始,在这里或许是你开始的第一步。 


在这篇文章中,我将介绍TensorFlow。阅读本文后,你将能够理解神经网络的应用,并使用TensorFlow解决现实生活中的问题,本文中的代码是用Python编写的,Python最近的火爆也和深度学习有关。



1:何时使用神经网络?


有关神经网络和深度学习的更详细的解释, 请看这里。其“更深”版本正在图像识别,语音和自然语言处理等诸多领域取得巨大突破。


现在的主要问题是何时使用神经网络?关于这点,你必须记住一些事情:


1.1:神经网络需要大量的信息数据来训练。


将神经网络想象成一个孩子。它首先观察父母如何走路。然后它才会独立行走,并且每走一步,孩子都会学习如何执行特定的任务。如果你不让它走,它可能永远不会学习如何走路。你可以提供给孩子的“数据”越多,效果就越好。


1.2:当你有适当类型的神经网络来解决问题时。


每个问题都有自己的难点。数据决定了你解决问题的方式。例如,如果问题是序列生成,递归神经网络更适合,而如果它是一个图像相关的问题,你可能会采取卷积神经网络。


1.3:硬件要求对于运行深度神经网络模型是至关重要的。


神经网络很早以前就被“发现”了,但是近年来,神经网络一直在发光,这是因为计算能力的强大。如果你想用这些网络解决现实生活中的问题,准备购买一些高性能硬件吧!


2:如何解决神经网络问题?


神经网络是一种特殊类型的机器学习(ML)算法。因此,与每个ML算法一样,它遵循数据预处理,模型构建和模型评估等常规ML工作流程。我列出了一个如何处理神经网络问题的待办事项清单。


1.检查神经网络是否可以提升传统算法。


2.做一个调查,哪个神经网络架构最适合即将解决的问题。


3.通过你选择的语言/库来定义神经网络架构。


4.将数据转换为正确的格式,并将其分成批。


5.根据你的需要预处理数据。


6.增加数据以增加规模并制作更好的训练模型。


7.将数据批次送入神经网络。


8.训练和监测训练集和验证数据集的变化。


9.测试你的模型,并保存以备将来使用。


本文中,我将重点关注图像数据。让我们先了解一下,然后再研究TensorFlow。


图像大多排列为3D阵列,尺寸指的是高度,宽度和颜色通道。例如,如果你现在截取了你的电脑的屏幕截图,则会首先将其转换为3D数组,然后将其压缩为PNG或JPG文件格式。


虽然这些图像对于人来说是相当容易理解的,但计算机很难理解它们。这种现象被称为语义鸿沟。我们的大脑可以查看图像,并在几秒钟内了解完整的图片。另一方面,计算机将图像视为一组数字。


在早期,人们试图把图像分解成像“模板”这样的“可理解的”格式。例如,一张脸总是有一个特定的结构,这个结构在每个人身上都有所保留,比如眼睛的位置和鼻子,或我们的脸的形状。但是这种方法并不可行,因为当要识别的对象的数量增加时,“模板”就不会成立。


2012年,深度神经网络架构赢得了ImageNet的挑战,这是一个从自然场景中识别物体的重大挑战。


那么人们通常使用哪种库/语言来解决图像识别问题?一个最近的一项调查发现,最流行的深度学习库是Python提供的API,其次是Lua中,Java和Matlab的。最流行的库是:


Caffe


DeepLearning4j


TensorFlow


Theano


Torch


让我们来看看TensorFlow所提供的功能。 什么是TensorFlow?


“TensorFlow是一个使用数据流图进行数值计算的开源软件库。图中的节点表示数学运算,而图边表示在它们之间传递的多维数据阵列(又称张量)。灵活的体系结构允许你使用单个API将计算部署到桌面、服务器或移动设备中的一个或多个CPU或GPU。



如果你之前曾经使用过numpy,那么了解TensorFlow将会是小菜一碟!numpy和TensorFlow之间的一个主要区别是TensorFlow遵循一个“懒惰”的编程范例。它首先建立所有要完成的操作图形,然后当一个“会话”被调用时,它再“运行”图形。构建一个计算图可以被认为是TensorFlow的主要成分。要了解更多关于计算图的数学构成,请阅读这篇文章。


TensorFlow不仅仅是一个强大的神经网络库。它可以让你在其上构建其他机器学习算法,如决策树或k最近邻。


使用TensorFlow的优点是:


1.它有一个直观的结构,因为顾名思义,它有一个“张量流”。 你可以很容易地看到图的每一个部分。


2.轻松地在CPU / GPU上进行分布式计算。


3.平台灵活性。你可以在任何地方运行模型,无论是在移动设备,服务器还是PC上。


3:典型的“张量流”


每个库都有自己的“实施细节”,即按照其编码模式编写的一种方法。例如,在执行scikit-learn时,首先创建所需算法的对象,然后在训练集上构建一个模型,并对测试集进行预测。例如:



正如我刚才所说,TensorFlow遵循一个“懒惰”的方法。


在TensorFlow中运行程序的通常工作流程如下所示:


1.建立一个计算图。这可以是TensorFlow支持的任何数学操作。


2.初始化变量。


3.创建会话。


4.在会话中运行图形。

 

5.关闭会话。


接下来,让我们写一个小程序来添加两个数字!





转自:云栖社区


完整内容请点击“阅读原文”

登录查看更多
10

相关内容

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。 最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
浅显易懂的分布式TensorFlow入门教程
专知
7+阅读 · 2018年6月22日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
基于Numpy实现神经网络:反向传播
论智
5+阅读 · 2018年3月21日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
新手|TensorFlow实现神经网络入门篇!
全球人工智能
9+阅读 · 2017年11月17日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
【推荐】(TensorFlow)RNN入门
机器学习研究会
9+阅读 · 2017年10月10日
神经网络理论基础及 Python 实现
Python开发者
6+阅读 · 2017年7月15日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
7+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年5月5日
Arxiv
27+阅读 · 2018年4月12日
Arxiv
4+阅读 · 2018年3月30日
Arxiv
11+阅读 · 2018年1月11日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关资讯
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
浅显易懂的分布式TensorFlow入门教程
专知
7+阅读 · 2018年6月22日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
基于Numpy实现神经网络:反向传播
论智
5+阅读 · 2018年3月21日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
新手|TensorFlow实现神经网络入门篇!
全球人工智能
9+阅读 · 2017年11月17日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
【推荐】(TensorFlow)RNN入门
机器学习研究会
9+阅读 · 2017年10月10日
神经网络理论基础及 Python 实现
Python开发者
6+阅读 · 2017年7月15日
相关论文
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
7+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年5月5日
Arxiv
27+阅读 · 2018年4月12日
Arxiv
4+阅读 · 2018年3月30日
Arxiv
11+阅读 · 2018年1月11日
Arxiv
27+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员