人工智能深度学习神经网络与Soc芯片的关系算法
在运算能力方面,CPU是不如GPU的,FPGA也不合适。谷歌研发出的TPU芯片,就是专门针对人工智能神经网络的运算。服务器
人工智能的算法在往下走,在逐渐下降要求;嵌入式的芯片在往上走,在逐渐提高性能,这两个很快会会师,会结合在一块儿,诞生出一个在嵌入式系统里面能跑的东西,这就意味着落地了。网络
这是一个比较深度的问题。人工智能是须要一个强大的计算能力的,要多强大呢?如今人工智能的实现原理主要是进行计算,以前所说的学习也是进行计算的过程,也是须要大量的运算。运算能力直接决定学习的速度,若是运算能力不好,可能两年都学不完;若是计算能力很好,可能一天就学完了。就跟人类大脑思考能力决定了学习能力同样,有的人十岁就已经上大学了,有的人二十都还考不上,这就是看大脑的运算能力有多强。人工智能神经网络的运算主要是卷积运算。什么是卷积运算?就是线性代数的一些矩阵运算,这些矩阵运算还会涉及到一些浮点数,因此须要海量的运算性能。是呈指数级的增加的,如今的CPU根本算不动,在运算能力方面,CPU是不如GPU的,FPGA也不合适。FPGA适合要求实时性,要求并行运算方面的,CPU适合作控制,GPU才适合作运算,因此目前人工智能的研究大多数都是用GPU加速运算的。构建一我的工智能的研究平台的时候,显卡的重要性比CPU还重要,买个显卡就须要七八千,甚至一万多,而买个CPU,最多也就两三千块,CPU已经慢慢的不如GPU了。目前总的来讲,CPU,GPU,FPGA都不是特别适合人工智能,真正适合人工智能的下一代芯片目前还在研发当中,譬如谷歌研发出的TPU芯片,就是专门针对人工智能神经网络的运算,针对卷积运算的特征推出的,它天生适合作人工智能的运算。未来会有愈来愈多的新的芯片推出,那跟学习嵌入式的同窗有什么关系呢?想一下,若是出了一个新的芯片,是否是须要移植,是否是须要开发各类底层软件,是否是须要移植开发各类底层的开发系统,是否是要作各类底层的工做,这就是嵌入式领域须要作的一些事情。ide
芯片厂商也会有很大的变更。你们可能没关注到,其实有发生不少故事的,如今老牌芯片巨头Intel压力就很是大,前两年他们搞物联网,推出了安腾那一套,折腾了好几年,结果什么都没有折腾出来。移动领域也完全被arm压下去了。人工智能开始发展以后,Intel就很是着急,去年仍是今年就花了好几十亿收购人工智能方面的公司。Intel跟微软都面临很大的压力。如今跟人工智能最接近的芯片领域的是nVidia(英伟达,作显卡的)。他成了领军人物,人工智能方面最好的显卡就是他们家出的。就是由于GPU比CPU更重要了,他们作的是GPU,他们就异军突起成为了领军人物,这是一个有意思的事情,前几年的时候仍是个名不见经传的小公司。还有高通这几年也成长的很是快,前后收购了freescale,NXP,CSR等,也成了一个芯片巨头,但高通的这些更加趋向于工业级的,若是是作的工业,作的汽车里面的控制等等这些东西,可能用这几家芯片更加合适一点。还有一些国产的芯片厂商,像华为海思,瑞芯微,MTK等也有不少积累,也有了突破机会,未来也有可能绽开异彩。国产芯片这几年也不错,不要以为只有外国的才厉害,中国这些年其实也有作不少厉害的东西。性能
人工智能发展路径未来是怎么一个路径?大概是怎么一回事,怎么去弄,是怎么样的一个构成?现阶段更多的人工智能主要是在服务器级的一个计算机上,所谓服务器级的计算机是指什么呢?CPU就不用说了,确定至少是I7,要么就是E开头的,比I开头的还厉害的那些。都是最厉害的芯片,最厉害的CPU。显卡呢,入门级的都是五六千块的,通常都是一两万的,还有好多技术都是双显卡,四显卡,八显卡。还有几百个显卡集成在一块儿,串并联在一块儿,构成一个超级显卡矩阵。显卡上面的显存都是好几十个GB,整个电脑配内存都是32G,64G,这种级别的就叫服务器级计算机(用来打游戏超爽,呵呵)。如今都是在这种计算机上学习和测试研究,更多的是一种研究状态,还只是在科研领域,离落地还有一段距离。现阶段的人工智能还在玩这些,为何人工智能从下围棋开始玩呢?由于下围棋是纯理论的,不须要落地。像AlphaGo下棋的时候,旁边都是有人的,当他运算出一个结果的时候,还须要有人替他落子,他本身是没有手的,他没有落地,他只有一个大脑。现阶段在服务器级别里面去运算的人工智能很显然是没法落地的,把这类的人工智能装在一个车上面怎么可能装得下呢,光他的耗电量车都扛不住。因此说若是想要人工智能落地,就须要优化算法,减小资源消耗。原来的内存须要12G,如今争取看6G能不能,可能再过两年,争取4G就能够了,2G就能够了。算法优化了,能源消耗就会变少;能源消耗变少以后,就能够部署到嵌入式当中了,也就能够落地了。这都是慢慢来的,要先在服务器里面玩清楚了,而后才会去优化算法,把它部署到嵌入式系统当中。嵌入式系统也在快速发展,譬如说nVidia,在今年三月份推出的JetsonTX2,它是一个开发板,它是一个芯片,是一个GPU。GPU是目前惟一一个能解决人工智能领域的嵌入式芯片的方案。TX2很是厉害,它比目前现有的跑人工智能的芯片的算法都要快。之后相似于这种的芯片也会愈来愈多,也就是说人工智能的算法在往下走,在逐渐下降要求;嵌入式的芯片在往上走,在逐渐提高性能,这两个很快会会师,会结合在一块儿,诞生出一个在嵌入式系统里面能跑的东西,这就意味着落地了。那么这个过程须要多久呢?也就是一两年,两三年的事儿,如今已经开始在慢慢的落地了。nVidia的TX2就有跟沃尔沃合做开发自动驾驶方面的东西,可能沃尔沃以后开发出的新一代的高端车型就具备自动驾驶功能。其实已经开始在落地了,只是目前还只有一些巨头在作,大部分的公司尚未这个资格去玩那些。国外也有一些***,一些爱好者,技术比较厉害的一些人在树莓派3等的一些典型的嵌入式系统上面去玩人工智能,例如在弄自动驾驶的一些demo。树莓派3的性能很通常,这种性能想去跑人工智能的东西就须要算法极其简化,离使用还差很远,但也是一些能够用来玩的东西。以后朱老师也会推出这么一些能够玩的东西,在资源受限的开发板上去玩一些人工智能方面的应用,这些东西是无法真的上路的,但能够学到基本的原理,把整个流程能够弄清楚。国外有少部分人在玩这个,资源都是英文的,国内尚未。微软有一个小组试图在单片机上实现人工智能,连嵌入式系统都没搞明白,就想在单片机上面搞事情,我以为这是不靠谱的,是不看好的。在一些高性能的嵌入式设备上去跑一跑还有可能,在树莓派3上都压力山大,在单片机上就更不靠谱了。总结下来就是人工智能的发展对芯片相关开发人员是一大利好,只要是跟芯片底层开发相关的,对于他们来讲,迎来了一个春天。嵌入式也是面临一波行情的,朱老师本身也产生了不少想法,也有想作跟人工智能有关的,固然,是结合嵌入式领域去发挥的一些东西。学习嵌入式的同窗其实有不少事能够去作的,像自动驾驶就能够作,老师会在以后推出的专题再详细说明。学习