在我们探索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++标准模板库从入门到精通

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

2.跟老菜鸟学C++

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

3. 跟老菜鸟学python

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

4. 在VC2015里学会使用tinyxml库

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

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协议

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

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

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

AI学习之路(4): TensorFlow是什么相关推荐

  1. AI 学习之路——轻松初探 Python 篇(三)

    喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态 这是「AI 学习之路」的第 3 篇,「Python 学习」的第 3 篇 Python 字符串使用和 C 语言比较类似,但还有一些我们值 ...

  2. AI 学习之路——轻松初探 Python 篇(一)

    喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态 这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇 前言 1. Python 篇的组织结构 不管是学习人工智能还是 ...

  3. AI学习之路(19)TensorFlow里的矩阵乘法

    如果对矩阵的知识有点遗忘,有点陌生,有点想不起来,请先看看这个网页: http://blog.csdn.net/caimouse/article/details/55001181 基础知识已经补过了, ...

  4. AI学习之路(3): 牛刀小试之线性回归

    当阿法狗在围棋界展开大规模战斗之后,所有人都倒下了.可见人工智能的威力无限,正像<射雕英雄传>里的九阴真经,谁掌握了它,那么谁就是华山论剑里的第一人物了.我们也能学习人工智能吗?我们也能开 ...

  5. AI学习之路(14): 张量的平方计算

    tf.square(x, name=None) 计算x的平方,像(y = x * x = x^2). 参数: x: 一个张量或者SparseTensor.必须有下面之一的类型:half, float3 ...

  6. 零基础AI人工智能的学习之路-从0到1-浅谈

    文章目录 0.背景 0.1. 知己 0.2. 知彼 1.if转行,这些文章可以参考学习 2.学习之路 2.1 个人学习之路 2.2 推荐的学习之路 3.推荐学习利器 3.1 Kagge 3.2 菜鸟教 ...

  7. AI开发者大会之AI学习与进阶实践:2020年7月3日《如何转型搞AI?》、《基于AI行业价值的AI学习与进阶路径》、《自动机器学习与前沿AI开源项目》、《使用TensorFlow实现经典模型》

    AI开发者大会之AI学习与进阶实践:2020年7月3日<如何转型搞AI?>+<无行业不智能:基于AI行业价值的AI学习与进阶路径>.<自动机器学习与前沿AI开源项目> ...

  8. Unity3D学习之路——AI小坦克

    Unity3D学习之路--AI小坦克 作业要求: 坦克对战游戏 AI 设计 从商店下载游戏:"Kawaii" Tank 或 其他坦克模型,构建 AI 对战坦克.具体要求 使用&qu ...

  9. 学习难?求职难?90分钟点亮你的AI求职之路!

    人工智能作为近几年最火热的新兴行业,在求职市场上备受瞩目,薪资高,个人发展空间大.然而在学习和求职上,很多同学都遇到这些问题: 1.信心满满的自学AI的你,是否思路乱成一团,没有方向,日渐迷茫? 2. ...

最新文章

  1. UILabel显示带颜色边的文字
  2. 我们已经不用AOP做操作日志了!
  3. python操作sqlserver如何判断删除的数据不存在_Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法...
  4. 解决vscode中golang插件依赖安装失败问题
  5. DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
  6. 【Flink】Flink checkpoint expired before completing
  7. python爬取邮件内容_Python实现获取邮箱内容并解析的方法示例
  8. mongodb driver c#语法
  9. i686和x86_64的区别
  10. java gprs通信教程_S7-1200 GPRS通讯快速入门
  11. Kaggle:Home Credit Default Risk 特征工程构建及可视化(2)
  12. 1033 旧键盘打字 (20 分)
  13. 大白菜读取linux硬盘,大白菜的linux之旅,文件操作首探
  14. 初学C语言 :输入华氏温度,输出摄氏温度并保留两位小数,计算格式:C=5/9(F−32)
  15. 成都市计算机企业管理学校,成都2021年计算机管理院校排行榜
  16. java开发——什么时候使用枚举类型?为什么要用枚举类型?
  17. Gartner发布5G网络基础设施魔力象限报告
  18. 白鸦谈“以用户为中心的设计”
  19. 由频谱重构时域信号:直观理解Griffin Lim算法
  20. Android圆盘控件,DiscView 圆盘控件 动态展示百分比等数据 @codeKK Android开源站

热门文章

  1. matlab整数型规优化箱,matlab解决整数规划问题(蒙特卡洛法)
  2. Centos LNMP 一键安装教程
  3. war包放到webapps下,启动tomcat,tomcat正常,却无法加载项目
  4. Java程序设计吃显卡吗_3D建模和渲染吃CPU还是显卡?专业显卡和游戏显卡的区别...
  5. 安装 pnpm 出现 : 无法加载文件 D:\node\node_global\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft. 解决办法
  6. LeetCode三道脑筋急转弯编程题
  7. 搜索结果【高亮显示】
  8. 把 ChatGPT 加入 Flutter 开发,会有怎样的体验?
  9. Mac版 Android Studio自带模拟器无法联网解决方案
  10. 数仓建模—建模方法论(范式建模、维度建模)