zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

AI学习之路(4): TensorFlow是什么

AI学习 什么 Tensorflow
2023-09-14 09:10:42 时间

在我们探索TensorFlow之前,先来聊一下金庸的小说,在它的小说《笑傲江湖》里,剑宗和气宗是华山派的两个派别,也就是说剑宗和气宗同属于华山派,剑宗认为在武学之中剑术最重要,而气宗则认为在武学之中气功最重要,在华山派的历史上这两派一直是争论不休,互相指责对方是邪说,而那种认为剑术和气功同样重要的说法更是同时被两派指责为邪说。

同样,在AI领域,也一直分为两派,一派认为全部数据处理计算太复杂,不能使用神经网络的方式来做AI,应该采用人工编码的方式来实现,早期的人工智能就是写一大堆规则在 数据库里来进行决策;另一派则认为全部数据都用来抽取特征,用来计算,经过多层的神经网络,就可以像人的大脑一样:神经元的连接。

同样,在人们看AI能否实现来也分为两派, 1956年,几个计算机科学家相聚在达特茅斯会议(Dartmouth Conferences),提出了“人工智能”的概念。其后,人工智能就一直萦绕于人们的脑海之中,并在科研实验室中慢慢孵化。之后的几十年,人工智能一直在两极反转,或被称作人类文明耀眼未来的预言;或者被当成技术疯子的狂想扔到垃圾堆里。坦白说,直到2012年之前,这两种声音还在同时存在。

人工智能,其实已经几十年过去了,到了目前这个阶段,才开始大放异彩。最早,我们所谓人工智能就是自动地计算加减乘除,接着下象棋,比如IBM的深蓝,目前是下围棋,可见与人们看到电影的机器人还是有很大的差距。随着新一轮深度学习的人工智能的出现,能把围棋这么复杂的事情都干好了,又来到了一个新时代。

Google DeepMind的阿法狗打败了韩国的围棋大师李世乭九段。在媒体描述DeepMind胜利的时候,将人工智能(AI)、机器学习(machine learning)和深度学习(deep learning)都用上了。


机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
机器学习直接来源于早期的人工智能领域。传统算法包括决策树学习、推导逻辑规划、聚类、强化学习和贝叶斯网络等等。众所周知,我们还没有实现强人工智能。早期机器学习方法甚至都无法实现弱人工智能。

人工神经网络(Artificial Neural Networks)是早期机器学习中的一个重要的算法,历经数十年风风雨雨。神经网络的原理是受我们大脑的生理结构——互相交叉相连的神经元启发。但与大脑中一个神经元可以连接一定距离内的任意神经元不同,人工神经网络具有离散的层、连接和数据传播的方向。神经网络是调制、训练出来的,时不时还是很容易出错的。它最需要的,就是训练。2012年吴恩达(Andrew Ng)教授在Google实现了神经网络学习到猫的样子等等。吴教授的突破在于,把这些神经网络从基础上显著地增大了。层数非常多,神经元也非常多,然后给系统输入海量的数据,来训练网络。在吴教授这里,数据是一千万YouTube视频中的图像。吴教授为深度学习(deep learning)加入了“深度”(deep)。这里的“深度”就是说神经网络中众多的层。

那么本文的主角TensorFlow是什么意思呢?别人都说人如其名,那么先从这个名字开始,来了解一下这个名称由来。虽然我不能像街边算命先生一样测算,但是可以由它的创始人来说一下,这更加贴切。


Tensor(张量)意味着N维数组。1维时就是向量,2维时就是矩阵;通过图像可以代表更高维的数据流,比如,图像可以用三维张量(行,列,颜色)来表示。
Flow(流)意味着基于数据流图的计算。有许多运算(图中的节点)应用在数据流上。
张量从图象的一端流动到另一端,这就是“TensorFlow”。“边”代表张量(数据),节点代表运算处理。

这是发明人解释,我们来看看在物理领域里的解释:

张量(tensor)理论是数学的一个分支学科,在力学中有重要应用。张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具。张量之所以重要,在于它可以满足一切物理定律必须与坐标系的选择无关的特性。张量概念是矢量概念的推广,矢量是一阶张量。张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。

其实要了解TensorFlow,通过下面这个动画来看,就更加清楚它的事实本质了:


张量(Tensor)是表示向各个节点流动的数据结构,Flow(流)意味着基于数据流图的计算,TensorFlow即为张量从图的一端流动到另一端。

到这里,应该明白了TensorFlow是什么了吧!


1. C++标准模板库从入门到精通 

2.跟老菜鸟学C++

3. 跟老菜鸟学python

4. 在VC2015里学会使用tinyxml库

5. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

6.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

7.在VC2015里使用protobuf协议

8.在VC2015里学会使用MySQL数据库