雷锋网按:本文作者痴笑,矽说(微信号:silicon_talks)主笔。
你信不信有一天,硅工造的芯片会写诗?
如果信,
那说好的“诗三百,一言以蔽之,思无邪”,
还真的是“无邪”么?
如果不信,请读下面这一首:
如果要给这诗一个赏析,大概可以是一个忧伤的故事。
天边云的变换复杂,而我却是半梦半醒,我在想一个人,想第一次和他相见,想他的风流倜傥,想他的英雄飒爽。
如果你是个文科生,或许你会嘲笑这首连平仄都不满足的劣质诗歌,韵脚也押的有些蹩脚,故事更是为赋新词强说愁。
如果你是理科男,或许对这种思春的小情怀不以为然。
不过,那是因为你们并没有看懂这首诗。
因为这诗暗藏了一个密码,藏着人工智能遇到摩尔定律后蹭出的火花。
另外,这诗不是人工智能的产物,只是矽说在这个人工智能横行的年代里特有的小情怀。
但可能在不远的将来,人工智能将会开车,会翻译,会调情,也会写下更美的篇章。想解开这个人工智能与集成电路的秘密?关注雷锋网后期更新,我们一句一句地读下去。
〈一〉昨夜神风送层云
在我读书的时候,人工智能(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)连得不对。这短短四个字,虽说的轻巧,但要找到连连看的窍门,着实花费了多少人的青春?关于怎么连,各位看官先别着急,且听脑芯编下回分解。
作为脑芯编的开篇,今天就到这里,所谓“神风送层云”指的就是集成电路的下一个增长点或许就在在人工智能领域取得巨大成功的神经网络硬件实现上。
特别鸣谢复旦大学脑芯片研究中心提供技术咨询,欢迎有志青年报考。