人工智能芯片·脑芯编 | 窥脑究竟,织网造芯

<序>

你信不信有一天,硅工造的芯片会写诗?

如果信,

那说好的“诗三百,一言以蔽之,思无邪”

还真的是“无邪”么?

如果不信,请读下面这一首:

昨夜神风送层云,几重卷积几重生

梦里不问形与令,烛台簇华照单影

真北路头初相见,一见泰坦误终身

半入豪门寻极乐,日起地平寒武竞

如果要给这诗一个赏析,大概可以是一个忧伤的故事。

天边云的变换复杂,而我却是半梦半醒,我在想一个人,想第一次和他相见,想他的风流倜傥,想他的英雄飒爽。

如果你是个文科生,或许你会嘲笑这首连平仄都不满足的劣质诗歌,

韵脚也押的有些蹩脚,故事更是为赋新词强说愁。

如果你是理科男,或许对这种思春的小情怀不以为然。

不过,那是因为你们并没有看懂这首诗。

因为这诗暗藏了一个密码,藏着人工智能遇到摩尔定律后蹭出的火花。

另外,这诗不是人工智能的产物,只是矽说在这个人工智能横行的年代里特有的小情怀。

但可能在不远的将来,人工智能将会开车,会翻译,会调情,也会写下更美的篇章。想解开这个人工智能与集成电路的秘密?关注矽说,找到“脑芯编”的推送,我们一句一句地读下去。

〈一〉

昨夜神风送层云

在我读书的时候,人工智能(Artifical Intelligence, AI)从来就是CS (Computer Science)的天下,哪有电路撺掇的份。那时候的码农们或许会挂着机器学习数据挖掘支持向量机,压缩感知……但从来没有一次,电路的突破是由人工智能推动的。可是在今天,如果你打开半导体行业的利好消息,有多少不是和人工智能,深度学习相关的?

过去一个月,光在半导体巨头们发生的人工智能的故事就足以吊足大家的胃口。何况,这还是只是很多硅工心目中的人工智能元年。

是什么导致了半导体行业”AI一出惊天下“的巨大改变?矽说推出“脑芯编”系列,为你揭秘类脑芯片的过去,现在与未来。

从人工智能到神经网络
神经网络

在人工智能改变半导体行业之前,在AI领域发生过一场“华山论剑”,耗时数载,最终以“深度学习神经网络(Deep Learning Neural Network)”一统江湖落下帷幕。该过程腥风血雨,而主角“神经网络”的遭遇更堪比张无忌、杨过,历经少年时的悲惨遭遇,被无数号称时代“大侠”嗤之以鼻,但终究是主角光环加持,加之得外家指点,十年一剑终成大器,号令天下,谁敢不从。

本篇对这里其中的故事,按下不表,有好事者,可以去各处搜搜,剧情精彩不容错过。但是这里还是要感谢,在神经网络经历最寒冬的时候,一众大牛如 Yann LeCun (读作杨雷昆,不是严立春!!), Geoffrey Hinton等的默默坚守,才有神经网络的今天。不过他们也早已是Facebook / Google的首席科学家,如今功成名就,也是吾等小辈无法企及的高度。

Yann LeCun,   Geoffrey Hinton

神经网络在人工智能领域,属于机器学习一路的分支。所谓机器学习,就是让电脑经过学习后代替人脑做出判断,理解,甚至诀定(还记得赢了李世石的AlphaGo么?)而所谓深度学习和浅学习的区别在于设计者是否告诉电脑的学习策略。最常见的例子是大家电子邮件系统里的垃圾邮件分类,一般一份邮件是否是垃圾邮件,在于它是否满足一些标准,比如是不是群发的,有没有叫你买东西的广告,是不是图片占有比例很高,然后发信人有没有被举报过等等……这些标准都是一个个特征,如果一种机器学习方法规定了学习的特征与策略,那就是浅学习,如果没有规定,需要算法本身去挖掘策略,那就是深度学习

所以,深度学习的一大隐忧就是——人类并不知道算法本身究竟在想什么?所以如果哪天他在他负责的算法下隐藏了一个暗算/统治人类的bug,那我们就被彻底奴役了。

不过,所谓“庄生晓梦迷蝴蝶”,人类自己究竟是不是被另外一个物种开发出来的一种新智慧呢?然后,那个物种是不是已经被我们灭绝了呢?我们并没有答案。

码农老师教的生物课

为了弄清这横扫千军的神经网络,首先让我们来上一堂不污的生物课。既然叫神经网络,那起源就是生物脑科学。很久以前,人们发现一个单神经细胞(也叫神经元)包括输入(树突dendrites),激活判断(细胞核nucleus),输出(轴突axon)和与下一个神经元的连接关系(突触synapse)。如果用数学抽象出来过程,就是把一堆输入经过线性组合以后经过一个阈值判断,然后输出给下一级。这样一个简单的神经元就形成。把足够多个神经元连起来就能实现神经网络了。

上面两个图就是真实的神经元和它的数学模型。不过我还是要吐槽下:

谁起的中文?

树突与突触傻傻分不清 

从上述神经元的提出,到许多仿生的算法结构的研究,如多层感知

(Multilayer Perceptron) ,脉冲神经元(Spiking Neural)之类的,经过了一个甲子的时间,特别但都没没什么巨大的成功,原因有两个:

(1)当时的集成电路计算规模与资源远没有达到面向实际应用的需求,仔细去研究神经元的数学模型,会发现每个神经元有若干个权重和成累加计算 。他对应汇编可以大致是如下流程:

累加器清零                        (mov)

循环开始                            (branch)

从存储器中加载权重          (load)

从存储器/外设中加载输入   (load)

权重 乘以 输入                    (multiply)

累加                                    (add)

判断是否重新循环              (goto)

激活函数                             (??)

输出 存储                           (store)

对于一个N输入的神经元要走N个循环,这对于上个世纪的单核单线程的CPU,实在是操作难度太复杂。这也就是为什么当流水线与并行处理 不断壮大的近十年,神经网络的发展得到了迅猛发展。

(2)连得不对。这短短四个字,虽说的轻巧,但要找到连连看的窍门,着实花费了多少人的青春?关于怎么连,各位看官先别着急,且听脑芯编下回分解。

作为脑芯编的开篇,今天就到这里,所谓“神风送层云”指的就是集成电路的下一个增长点或许就在在人工智能领域取得巨大成功的神经网络硬件实现上。

产业人工智能芯片
相关数据
激活函数技术
Activation function

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

阿尔法围棋技术
AlphaGo

阿尔法围棋是于2014年开始由英国伦敦Google DeepMind公司开发的人工智能围棋程序。AlphaGo是第一个打败人类职业棋手的计算机程序,也是第一个打败围棋世界冠军的计算机程序,可以说是历史上最强的棋手。 技术上来说,AlphaGo的算法结合了机器学习(machine learning)和树搜索(tree search)技术,并使用了大量的人类、电脑的对弈来进行训练。AlphaGo使用蒙特卡洛树搜索(MCTS:Monte-Carlo Tree Search),以价值网络(value network)和策略网络(policy network)为指导,其中价值网络用于预测游戏的胜利者,策略网络用于选择下一步行动。价值网络和策略网络都是使用深度神经网络技术实现的,神经网络的输入是经过预处理的围棋面板的描述(description of Go board)。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

多层感知器技术
Multilayer Perceptron

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

摩尔定律技术
Moore's law

摩尔定律是由英特尔创始人之一戈登·摩尔提出来的。其内容为:积体电路上可容纳的电晶体数目,约每隔两年便会增加一倍;经常被引用的“18个月”,是由英特尔首席执行官大卫·豪斯所说:预计18个月会将芯片的性能提高一倍。

神经元技术
neurons

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

感知技术
perception

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

数据挖掘技术
Data mining

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

支持向量机技术
Support Vector Machines

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

推荐文章