新闻资讯
AI - TensorFlow
AI
(Artificial Intelligence)人工智能及机器学习(Machine Learning)最近大热,Google - Deep Mind的AlphaGo踢馆人类所向披靡,最终宣布正式进入智能时代1.0。我们今天也来体验学习一下Google的人工智能项目。
1. Jeff Dean
老传统,我们先来看看这位Google TensoFlow的主要负责人,在加州山景城除了拉里佩奇Larry Page和布林Sergey Brin,Google数一数二,被用来打造下一代Google核心大脑的(Google Brain)的头号人物Jeff Dean。
列一下大神的大作,颤抖一下吧:
-
Google MapReduce
-
Google BigTable
-
Google Spanner
-
Google AdSense
-
Google Translate
-
Google Brain
-
LevelDB
-
TensorFlow
够重量级了吧,说其影响了第三代互联网及第四代也不夸张,开启了互联网大数据及人工智能时代。
Jeff Dean于2009年当选美国工程院院士。
2. Artificial Neural Networks, ANNs
在开始介绍TensorFlow之前我们先看一个TensorFlow的Online Playground,在线神经网络(Artificial Neural Networks,ANNs)!
http://playground.tensorflow.org
神经网络(NNs)主要模仿动物神经网络,进行分布式并行算法的数学模型。
神经网络最大的魔力,在于不需要用各种特征用来输入给机器学习系统,如上图事例,只需要输入最基本的x1, x2, 只要给予足够多层的神经网络和神经元,神经网络会自己组合出最有用的特征。
总体来说,神将网络需要大量神经元(节点)及:
-
每个神经元可以通过输出/激励函数(Activation Function)来计算来自其它相邻神经元的加权输入值
-
计算模型可以依靠大量数据训练
-
成本函数(Cost Function):定量评估对于给定输入值的输出结果离正确值的偏移,用于评估计算的精准
-
学习算法(Learning Algorithm):根据Cost Function的结果,自学,纠错
有了上述的核心,就有点智能感觉了,可以计算评估,并且可以递归自我学习。
3. TensorFlow Overview
TensorFlow是Google研发的第二代人工智能学习系统。官网描述,TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
Tensor即张量,N维数组,Flow代表基于数据流图的计算,TensorFlow的计算就是张量从图的一端流动到另一端的并行计算。
张量:
TensorFlow架构灵活,可做到多平台并行计算,如台式机,服务器,云端,移动设备等,同时又可以充分发挥多核CPU或者GPU的强大并行计算能力。
CPU v.s. GPU
科普一下CPU与GPU的差别吧,为什么GPU会在深度学习时代又火了起来。
设计架构:
可以看出CPU的设计目标是处理不同数据类型,支持大量逻辑判断,分之跳转及中断处理;而GPU则诞生于目标处理大量图形图像(游戏),即大规模类型统一,相互依赖的数据,同时不需要被打断的纯计算环境,所以在架构设计上,GPU采用了数量众多的计算单元和超长流水线,仅保留简单控制逻辑,甚至省去了Cache。
所以,GPU天生具备大规模精良并发计算能力,而CPU的计算能力则只是很小一部分。大多数台式机甚至包括服务器,其CPU多核也没有超过2位数,每个核也包含了大量缓存及逻辑运算单元;GPU则称之为重核,如512核甚至上千之多。CPU被称之为Latency Oriented Cores, 而GPU则称之为Throughput Oriented Cores。
所以,不难看出为什么在深度学习领域,GPU为何能炙手可热,GPU最适合:
-
计算密集型程序(Compute-Intensive),其大部分时间花在寄存器,几乎没有延时,而内存及SSD的延时则不可同日而语(达上百倍,千倍差异)
-
并行计算程序,上百核同时做同样事情
有了上述的铺垫,不能看出对于Tensor张量的计算处理,GPU简直是张量计算的天堂。
TensorFlow特征
TensorFlow并不是一个严格的神经网络,只要你可以抽象为数据流图,便可以使用TensorFlow来构建计算。
TensorFlow用C++来编写,目前版本提供的API相对低阶,确实是C/C++风格,任君打造。当然也提供暴露了深度学习中流行的Python接口,及其它Google自己的Go, Java, Lua, Javascript, R等。
回复列表