首页 > 新闻中心 > 酒店行业动态

ag贵宾会-ag旗舰厅官方网站|专题 | 脑芯编:窥脑究竟,结网造芯

发布时间:2025-02-21 17:48:29    次浏览

9月份时,机器之心曾发文章宣布「机器之心」和「矽说」将共同推出系列文章「脑芯编」,揭秘类脑芯片的过去、如今与将来。本文是此专题的第二篇,窥脑究竟,结网造芯。 〈二〉几重卷积几重生蜘蛛结网,是为了捕食昆虫;蜘蛛侠结网,是为了拯救世界;码农 Data Scientist (~ds~) 结网,是为了——换一个角度看世界,英语叫做: Representation。如果你只想知道一个关于神经网络的常识,我认为上面这个单词是最不应该错过的。就像每个学模拟电子学的人,其实归根结底就是学了两个字——放大。话接上回,我们说到,通过一系列乘累加和非线性激活函数,我们就可以实现一个神经元。而关键的问题就是如何把神经元们连起来。解决这个问题之前,我们先要明白神经网络的作用——通过一系列线性和非线性的变化重新将输入信息映射成为表达事物的本质的简化特征。如果你觉得上面一句的每个字都认识,却不知道他在说什么,那么我们来看一个经典的例子——人类的视觉皮层(Visual Cortex)。视觉皮层, 一场生物与 AI 的伟大握手码农老师的生物课又来了……你有没有想过当你看到生命中一个重要的人的时候,比如说基友(码农怎么会有妹纸?),你是看到是他/她的鼻子,眼睛,脸上的痘痘,昨晚熬夜的黑眼圈……但是这些东西最后都只留下了一个映像——我面基了。可是你有没有想过从你看到图像,到你得到的结论,无数的信息都已经没有过滤,你的脑子完成了一次将 4K3D 图像压缩成两个字的过程,到底发生了什么事? 这个过程就是从信息经过视觉皮层(神经网络??)的过程。从前到后,他经过了几站:(1)始发站——视网膜,比较像是一个电子系统的传感器,用来接收信号;(2)快速交流道——LGN,他是将左右眼看到的信号重新编码后传递给视觉皮层,像是一个电子系统中的主控处理器与总线(请原谅我不说 LGN 的中文,因为说了你也记 不住);(3)第一站——主视觉区 V1,第一层神经网络,司「边界检测(Edge Detection)」一职,这可能是神经元数量最丰富的一个区域;(4)第二站——次视觉区 V2,第二层神经网络,司「基础特征提取」一职,归纳视觉信号的形状、大小、颜色、频率…… (5)第三站——V3,司「位置「,也是个过渡区,一条线上你有些站你不知道为什么会停~(6)第四站——V4/V5(MT)分支,深度神经网络,各司「色彩/运动」;(6)V4 分支终点站 1——换乘 inferotemporal Cortex,近深度智能 TE 区,司」目标识别「~~~终于终于我认出基友来了,撒花~~(7)V5 分支终点站 2——换乘 Parietal Cortex, 进深度智能 MST 区,司「空间运动分析」。视觉皮层可能是目前为止人类认识的最透彻的大脑部分,不过,好像建立在无数的活体实验上。。。即使如此,还是有很多未知的空间亟待生物学家探索。 不知道读到这里,对人工智能略有了解的你有没有觉得这堂生物课在哪里见过?先做边界检测,在再做特征提取,在进行分类识别,这不就是大名鼎鼎的C N NLeNet/VGG/AlexNet卷积,让加速成为一种可能其实在神经网络领域里,目前为止唯一能算的上前所未有成功的就是 CNN(Convolution Neural Network,卷积神经网络)。最早的 CNN 可以追溯到 98 年 Yann LeCun 的一篇如何识别手写数字的 paper,这里出现了第一个 CNN 的雏形 LeNet: 从结构上来,CNN 继承了视觉皮层中对信号处理「层」的概念,虽然不是那么的 100% 的吻合,但是 CNN 的初级层往往用来做「边界检测」这样的简单的特征提取,而在深度层重新组合初级层的信息成为抽象的再表达(Representation), 最后交给事件的发生的相关概率归纳出事物的本质。另外,一个比较不太准确的趋势是神经元的数量随层的深度逐渐减少,但是单个神经元的粗壮程度(输入数量)随层的深度逐渐增加。视觉皮层也具有相似的规律,V1 的数量多,但是结构比较简单,但到了 V4/V5,链接变得很复杂,但占的区域却比 V1 小的多。然而,这些都不做电路的人重点。对于硅工们而言 CNN 获得巨大成功的原因在于 它极大地节省了神经网络的硬件开销 使神经元为单位作加速器成为了可能 (1)CNN 定义了一种更高能效的元操作——卷积核关于卷积是什么,大家可以去参考一篇《一文读懂卷积神经网络》(广泛地转载于各大公众号间),下图是我目前看到的最形象的卷积描述。该图片源自网络,感谢原 gif 作者其本质就是对于一个区块,判断和自己系数组成的「基」区块的相似程度,得到的分数越高就越相似。这样,当一种「基区块」被赋予一种特征是,即使用于整张图片的特征提取,他的系数也是固定的,因此大量的系数加载操作可以被省略。同时,一个固定大小的「卷积核」成为了比「乘累加」更高阶、更高效的原子操作,在现代计算机体系结构中,实现越复杂,但操作越固定的加速器,其效率和速度的提升也就越大。(2)Pooling——是垃圾就要扔掉CNN 网络的另一个巨大贡献就是在卷积层和层之间,设置了一个」垃圾箱「,把上一层产生的无效信息都扔掉,避免了超大规模的数据传输和存储。大家把这叫做 Pooling,我又要来吐槽那个中国人给他取了个」池化「的名字,虽然我也找不到更好的名字,但根本无法帮助理解。Pooling 的策略很多,最常见的是 max pooling 就是留个最大的,然后又其他都扔掉。(3)「乱撸」?(ReLU)LeNet 后期发展到 AlexNet 后,激活函数也从 sigmoid 变成了 ReLu,他们的图形曲线大概如下所示。用脚趾头也知道,Relu 操作的实现就是把符号位为负置 0 就好了。至于 sigmoid 么,传承自经典机器学习回归理论,是 e 指数的除法操作,编译后简直就是一场噩梦,我们先把他当作一个古老的神话就好了。 以上种种硬件实现的简化,加上 CNN 的巨大胜利,都当让硅工们看到了直接从电路角度优化的角度切入人工智能芯片的可能。但是,也发现了一个问题,传统的硬件加速的算法往往是做死的,比如椭圆加密,浮点乘除等等。但是 CNN 的元操作——卷积核——虽然模式固定,但是其每一层的卷积核数量和层数却是纷繁复杂,固定的硬件并不能实现网络的可塑性(structural plasticity)?那该怎么办?下一次,我们先来回顾下 CPU 的发展历程,看看现代处理器的」形与令「。「几重卷积几重生」——你看懂神经网络的卷积了?还有「重生」呢~限于篇幅,只能等番外了。就到这里,且听下回分解。〈三〉梦里不问形与令世界上有两种管家一种是 Batman 的 Alfred能服务能做饭能伪装能打架狠起来超人也不是干不过另一种是天朝的大内总管掌印秉笔,啥事不会老大又吩咐了就去传个话你脑子里的 CPU 是哪一种?有了神经元,知道了怎么把神经元连成网络,这个系列终于进入了主题——怎么实现神经网络。如果在这个问题上加一个条件,那就是「怎样用芯片实现神经网络的计算」?在回答这个问题以前,让我们先去拜访两位长者——Alan Turing 和 John Von Neumann,目前大家公认的计算机之父。话说前者才是真的「苟利国家生死以,岂因祸福避趋之」,详见卷福主演的奥斯卡获奖电影《模仿游戏》。 图灵-冯-诺依曼架构为了表达对大师的尊敬,我起了个很干脆的标题。大师之所以是大师,是因为他们定义了在 80 年前定义了通用计算机的数学模型和体系结构。在这过去的 80 年里,任何试图推翻这些结构的「投机」分子几乎都没什么好下场。但是,总有人希望推翻这个架构。先简单的描述下两位长者干了什么。Alan Turing 在 1936 年提出了一种具有普适性的逻辑计算模型,证明通过有限状态机完成输入数据的操作,可以实现任意复杂的逻辑运算。图灵机本身描述的场景在现在看来已经没什么意义,但是他第一次完整的定义普适计算机体系机构——一卷很长很长的带子(infinite length tape)通过一个有磁头 (head) 的有限状态表 (finite state table) 进行读取/处理/改写的机器。 图灵机:带子、磁头和状态机9 年后,Von Neumann 把带子改叫做「Memory」,状态表叫做「CPU」,磁头改叫做「Connection (Bus)」,换了一副图,就有了史称「冯诺依曼架构」的现代计算机体系结构。 教科书上会说这个结构有啥特点,这是让你背的。其实很简单,图灵-冯诺依曼架构最大的特点是把计算任务分为了 2 个部分——数据存储 (memory) 和数据处理 (processor)。处理器几乎不能存数据,存储器几乎不能算数据。两部分用一种连接方式 (bus) 按一定规则通信。泾渭分明的特点让冯诺依曼架构处理事情起来特别有条理,就像「男主外女主内」的家庭角色分配一样,在硬件资源极度受限的情况下,成为了自动化发展的中坚力量。冯诺依曼架构有一个升级版,叫做哈佛 (Harvard) 架构,把存储空间分为了指令 (instruction) 存储和数据存储,对应不一样的操作。目前的主流嵌入式微处理器基本采用这个架构,但 Anyway 这并不重要。冯诺依曼架构在过去的 60 年称霸人间,如果这项专利申请成功的话,这一定是史上最赚钱的专利。可是,冯诺依曼架构在经历了各种法院撕逼后,被判定为一项没有收益人的专利……(Youyou Tu 和青蒿素在这面前简直不值一提)成也萧何 – x86 的不可一世虽然冯老爷子在自己的架构下发明了人类第一台计算机,ENIAC 和 EDVAC,但诺依曼的真正崛起还是要归功于 x86。如果你不知道 80x86 是什么,那只能说明我们已经有代沟了,嗯,很深深的代沟。Intel 自 1978 年推出 8086 后,x86 体系架构就一直是电脑(上到服务器,下到平板电脑)核心处理芯片的不二选择。 Intel x86 i7 版图顺便做个普及,在冯诺依曼架构下,每个处理器会干的事情是有限制的,通常这个限制叫做指令集。它规定 CPU 的基本操作,没有指令集 (instruction set) 定义的复杂操作可以通过基本操作的组合来完成,比如指令集里没有乘法,那我们可以通过一定数量的加法来完成。在冯老爷子的机构里,谁的指令集越大,可以访问的存储空间越大,谁就越牛逼。x86 的指令集从 8086 到 i7 不断扩张与膨胀,最终成为了一个会算双精单精、矢量图像,多核多线程多 Cache 的巨无霸。简单的说,到 2013 年的时候,史上最强 core 已经无所不能了。可是历史不断在重演一幕就是,当绝顶高手号称要独孤求败的时候,不知道哪里窜出来的毛小伙子可能一个起手式就把你撂倒了。圣经里大卫王这么干掉了 Goliath,《倚天屠龙记》里,张无忌这么称霸了光明顶。那谁是 x86 的张无忌呢?移动设备,RISC 的春天独孤求败的 x86 其实有个致命的缺陷——能效,通俗地说就是「做一次」要花费的能量。可是每块肌肉都很发达的 muscleman 总是要比一般人多吃几碗饭吧。我们现在能买到的 i7 即使在省电模式也要消费超过 47W 的功耗。本省 47W 不算什么,但是苹果乔大叔的出现,让 47W 一下子很麻烦。Iphone/Ipad 和一系列手持的充电设备对瓦级以上的功耗是非常敏感的!x86 的功耗导致它「充电 2 小时使用 5 分钟」的悲惨结局。肌肉男瘦身变成筋肉男的必然的命运。这时,x86,或者说是 intel 的张无忌出现了—ARM Cortex RISC. 所谓 RSIC 就是精简指令集(Reduced Instruction Set),他能干的事情很有限,但是他的功耗低。X86 在其巅峰时期无数次地战胜过 RISC,以至于 ARM 出现时并有没足够重视他,那时候 Intel 还在和 AMD 抢 64 位 x86 的主导权呢。为什么无数次败下阵来的 RISC 可以最终成功呢?因为这次,他寻找到了一个 partner——加速器。在移动端的应用设备里,其实也有很对需要强大计算消耗的进程,这是 RISC 本省无法胜任的。但是,实际应用上,往往这些进程是有固定的模式和使用场景的。比如手机在通话时的语音编解码,拍照时的图像 处理(俗称「美颜」)和无线通信是的编解码。对于这样一个经常重复,且模式固定的高通量计算,可以在总线上加入一个专用模块(ASIC)加速,在处理专用任务是 ASIC 的能效又比通用处理器高很多。下图就是 ARM 有名的产品之一 A9,除了 CPU 外,它的浮点与超标量计算(NEON)都被移到了 CPU 外(一般来说,这不能算作加速器) 这就是开头的那个故事,你每天充的电不够「超人」吃的,与只能换个块头小,但是能够指挥其他人的总管。败也萧何 – 冯诺依曼瓶颈「泾渭分明,靠总线连」的冯诺依曼架构带来了单核/少核时代计算机的春天,但冯诺依曼架构的致命缺陷——冯诺依曼瓶颈——也悄悄地增长。随着摩尔定律的发展,远距离的搬移大规模数据早已取代了计算本身,成为制约高效计算的重要瓶颈,对于 x86 结构,有太多指令可以直接穿过总线访问存储空间。在 RISC+加速器的体系结构里,总线作为「总管」和「内务府」、「上书房」、「御膳房」间的桥梁,更是好不吃紧。当瓶颈出现在通信上时,冯诺依曼架构就体现出了它垂垂老矣的一面。这个问题,在实时处理的人工智能场景下显得格外突出,信号从入到出,都是按照是数据流 (Data flow) 的传输模式一帧一帧地来。这一特征在类脑的神经网络实现中就更加明显。如果每一个卷积的系数都要去云深不知处的存储海洋里去寻找,那神经元的处理效率会非常低。简单地说:谁脑子 TM 的是一半纯记忆一半纯分析的呢?脑子么,都是左右开工的。边走边忘,雁过留痕,却也是旧相识,恢复不出来一个一毛一样的。所以,摆在类脑芯面前的路有三条:(1) 采用冯诺依曼经典架构,把神经元计算写在指令集里,反正是超人,技多不压身;(2) 采用 RISC+神经元/神经网络加速器,给「总管」再开个府呗;(3) 放弃冯诺依曼架构,完全分布式硬件,像「数据流「一样的风骚走位。这三个选项都有不错的代表,我们慢慢来。梦里不问形与令,你知道计算机形(体系结构)和令(指令集)了么?©本文由机器之心发布,转载请联系本公众号获得授权。?------------------------------------------------加入机器之心(全职记者/实习生):hr@almosthuman.cn投稿或寻求报道:editor@almosthuman.cn广告商务合作:bd@almosthuman.cn