人工智能AI芯片与Maker创意接轨 (上)
近几年来人工智能(Artificial Intelligence, AI)喴的震天价响,吃也要AI,穿也要AI,连上个厕所也要来个AI智能健康分析,生活周遭食衣住行育乐几乎无处不AI,彷佛已经来到科幻电影中的那个世界,面对这波「智能」新浪潮,身为Maker的我们自然不能缺席。本文将分成上、中、下三篇介绍AI芯片的发展,以及Maker们如何使用AI芯片与创作接轨。
AI这个领域看似深不可测,大家都说你得先学个线性代数、机率再加上一堆理论以及看了就头疼的程序代码,再经过数年修练,就能小有成就。不过,大家请不必担心,这些难的部份就先交给聪明的数据科学家和工程师,Maker们只要应用他们开发出的源码及工具(SDK)发挥创意专心创作出更具「智能化」的作品,解决更多人们的需求即可。
打个比方,「就像学开车不必先懂得车子如何设计,只需到驾训班学基本原理、操作及交通安全规则就可上路了。」但是,如果你想精进驾驶技术,甚至当个专业赛车手或开发出专属的车子,这时就必须更了解车子的设计原理,并学着如何改车及用何种方式驾驶,如此才能发挥车子的最大效能。
从开车的例子来举例:AI芯片就如同引擎,计算能力等同于决定车子的马力,而算法(模型)就像车型,不同的车型有着不同用途、解决不同的问题,如果开着跑车要载货而开着货车要竞速,相信一定不会有好的结果。而大量的资料就像汽油,少了它车子肯定动不了。
接下来就从当下最热门的议题「人工智能芯片(AI Chip)」来切入,让大家能更进一步了解AI基本术语及观念,各家AI芯片技术到底有何不同及Maker们要如何运用这些资源来提升创作使其更智能化。
人工智能与深度学习
自1950年代「人工智能」一词被提出,但受限于硬件计算能力、算法可用性及数据集的数量,几经浮沈始终未能推出实用的结果。直到2012年Alex Krizhevsky 利用深度卷积神经网络(Deep Convolutional Neural Network, CNN)以大幅差距赢得知名影像分类ILSVRC大赛,大家才重新对人工智能重燃起希望。
2016年Google的「Alpha Go」完胜最难攻克的围棋,更是激起各国政府及普罗大众对人工智能的重视。听到「人工智能」这个名词,相信大家脑中一定浮现各种科幻电影的场景,想象着计算机已经可以取代人类完成各种需要大量思考才能完成的事,但现实上并非如此。
目前市面上说的人工智能,大多是指深度学习(Deep Learning, DL)算法所产生的结果,其实只是在找一个最佳函数解,而非真正具有像人的思考方式。
更进一步来说,如下图所示(Fig. 1),人工智能包含了机器学习(Machine Learning, ML),而其下又包含了有标准答案才能学习(训练)的监督式(Supervised)学习(分类、回归),没有标准答案可自动依数据属性分群的非监督(Unsupervised)式学习(聚类)及具奖惩机制找出最佳答案的增强式(Reforcement)学习(分类)。
深度学习只是由监督式学习下的神经网络(Neural Network, NN)所演化出来的,经过这几年不断的演化,目前已从只能处理监督式学习问题扩展到非监督式及增强式学习。因此,目前市售的AI芯片发展趋势多半锁定在处理深度学习类型问题,而非处理传统机器学习及真正人工智能的问题。
Fig. 1 人工智能、机器学习与深度学习关系(图片来源:OmniXRI整理绘制)
深度学习技术的应用
目前应用人工智能或者更精准地说,深度学习到底能解决什么问题呢?最常见的两大领域就是影像及语音
在影像方面,可对单张影像进行单一项目分类( Fig. 2a),但若影像中,同时出现二种类型对象时,那就很有可能分类错误或者同时归属到多个类别中。再来,可找出影像中多个对象并定位出来( Fig. 2b)。
若想要再更精准描绘出对象轮廓就必须进行语义分割(Fig. 2c),换句话说就是以像素等级的方式进行分类,把每个像素分到指定的分类中,此时仍无法区分出相同对象不同个体。最高等级就是实例分割(Fig.2 d),不仅能精准分割对象轮廓且能分割出不同个体。当然,这四类型的难度也是依序提高,所需付出的计算量也相对提高。
Fig. 2 常见影像应用人工智能使用情境(图片来源:OmniXRI整理绘制)
另一个较大应用的领域就是「语音」,首先要让计算机听懂我们在说什么,就必须正确地把语音变成文字(Fig. 3e),才能提供给后续的语言(意图)解读(Fig. 3g)。当然要听懂是谁在说话,而说话的情绪为何也是很重要的(Fig. 3f),在了解说话的内容后就必须产生回答,把通顺的句子合成为柔美的语音(Fig. 3h),才能完成一个完整的对话过程,不然就变成鸡同鸭讲。
除此之外,如文章翻译、影片摘要、股市分析、交通物流、医疗照护等,非影音领域的应用也都很适合以深度学习方式进行辨识及分析。
Fig. 3 常见语音应用人工智能使用情境(图片来源:OmniXRI整理绘制)
AI芯片的神经网络(NN)工作原理
为了能更进一步了解以深度学习为主的AI芯片到底要如何工作,首先要了解组成「神经网络(NN)」神经元的工作原理。
如下图(Fig. 4a)所示,每个神经元有n个输入值,每个输入值有一个权重(Weight)值,把所有输入值乘权重值加总起来,有时会另外加上一个偏置值(Bias)来调整,将得到的值再经过一个激活函数(Activation function)即可产生新的输出值。从另一个角度来看,相当于每个权重值决定对应的输入值对这个神经元的影响程度。
以Fig.4a为例,由左至右为推论(Inference),可得到算输出结果,过程中需要n个权重值加上1个偏置值,而这些值是需要经由训练(Training)而得。训练前须取得许多(越多越好)已知答案或称为标签(Label)的训练数据,假设输出值只有二种答案,是(1.0)或者不是(0.0)。
如果第一组输入数据已知答案为是(1.0),但经过推论后只得到0.6,则表示权重及偏置值不理想需要调整,此时利用根据差值(1.0 – 0.6 = 0.4)由右至左调整每个权重及偏置值,而至于调多少则随不同方式也有不同。
同样的步骤再输入第二组数据进行调整,直到所有训练数据都做过一轮(Epoch)。此时,大家可能会问这样就训练好了吗?我们还得拿出另一组未曾出现在训练资料中,但却已知答案的数据来进行验证,就如同学校老师教了许多内容,但要透过考试成绩才能知道学生是否学会了,如果分数不及格,就要重新训练加强磨练。
相同地,我们必须反复执行这些步骤直到验证数据都得到满意的答案,因此,可想而知所需来回的次数相当大,所以通常训练会需要设计什么时候停止,可选择成绩(正确率)到达某个门坎,或者不管成绩只考虑训练次数。这就好比学校的模拟考,虽然学生每次都考高分,但真正考试时成绩仍不理想,此时就得增加学习样本重新训练。
为了能处理更复杂的问题,一个神经元可扩展成一组简单(单层)神经网络,如Fig. 4b所示,会有输入层、隐藏层(Hidden Layer)及输出层,推论及训练的概念和一个神经元大致相同。若待解决问题更困难,如Fig. 4c所示,则可增加每一层的神经元或隐藏层数来解决。
Fig. 4 神经网络:(a)神经元工作原理;(b)简单(单层)神经网络;(c)复杂(深层)神经网络(图片来源:OmniXRI整理绘制)
深度学习的代表作–卷积神经网络(CNN)
不过,问题来了,当输入的数据为影像时,随便一张32*32的单色灰阶影像,就有高达1024个输入;若是彩色影像还要乘以三倍(R,G,B),如此庞大的网络,参数(权重、偏重值)数量实在多到难以计算。于是深度学习的代表作「卷积神经网络(CNN)」因此诞生了。
如 Fig. 5 所示,这是一个用来辨识手写数字(0~9)的案例(模型),称为「LeNet」,输入为32*32点单色灰阶影像,输出为0~9的机率。其中应用到一种名称「卷积」或「回旋积」的技巧,它让权重值可以共享,在 Fig. 5中显示的 C1层就是由六组 5*5的卷积核计算后的结果,则只需156((5*5+1)*6)个参数就够了。当输入点数降低到够少点数时再采用全连结(Full Connection)方式(如上图Fig. 4a, 4b),Fig. 5中的F6层。不过即便是如此,LeNet整个完整网络仍有六万个参数需要进行训练。
Fig. 5 神经网络:卷积神经网络(CNN,LeNet)(图片来源:OmniXRI整理绘制)
为了解决各种不同问题,于是各种不同的网络(Net)结构或模型(Model)被提出。从Fig. 6中可看出,横轴是计算量,每个乘法或加法就算一次运算(Operations, Ops),不同算法从数千万次到数百亿次的计算才能推论一笔数据,通常计算量和参数量(圆圈直径)有直接关系,参数量可能从数百万到数亿个。不过正确率和参数量及计算量则不一定有直接关连,对实际使用上来说当然希望找到计算量越低、正确率越高的模型,而正是AI科学家及工程师努力的方向。
Fig. 6 影像分类之神经网络之参数量、计算量及精确度比较图
对Maker而言只需根据需求(正确率、计算量)及计算时间找到一个够用的的模型及硬件平台(AI芯片)来用即可,就像只有几个纸箱的东西要搬,不必找一台货柜车或一台千万跑车来载。反之应用上若很在意正确率,则可能就要多浪费一些计算量(时间)及昂贵的硬件平台来换。
小结
由上述内容可知虽然运用深度学习神经网络可得到较理想的辨识结果,但所需付出的代价也同样非常惊人,光推论一笔数据就要计算数千万次到数百亿次,更不要说训练时要训练数万到数百万笔资料,数十到数千次循环周期(Epoch),所以如何加速训练及推论时间就成了最重要的工作。
为了完成这么庞大的工作,就必须有强悍运算能力的硬件平台。下一篇我们将继续介绍目前市面上的各类AI芯片,也会针对不同类型的芯片进行分析。
原文参考
https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247484263&idx=3&sn=e597c235807f75f608d41a009287c621&chksm=fb22e4a2cc556db4836c191bf2837e4531189881d109f2c22cf3187169eb714a264a57afd9b5&token=968588391&lang=zh_CN#rd
人工智能AI芯片与Maker创意接轨 (上)的更多相关文章
- 人工智能AI芯片与Maker创意接轨(下)
继「人工智能AI芯片与Maker创意接轨」的(上)篇中,认识了人工智能.深度学习,以及深度学习技术的应用,以及(中)篇对市面上AI芯片的类型及解决方案现况做了完整剖析后,系列文到了最后一篇,将带领各位 ...
- 人工智能AI芯片与Maker创意接轨 (中)
在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮.系列文来到了中篇,将详细介绍目前市面上的各 ...
- 一文看懂AI芯片竞争五大维度
下一波大趋势和大红利从互联网+让位于人工智能+,已成业界共识.在AI的数据.算法和芯片之三剑客中,考虑到AI算法开源的发展趋势,数据与芯片将占据越来越重要的地位,而作为AI发展支柱的芯片更是AI业的竞 ...
- 一文解读AI芯片之间的战争 (转)
2015年的秋天,北京的雨水比往年要多些,温度却不算太冷.这一年里,年仅23岁的姚颂刚刚拿到清华大学的毕业证书;32岁的陈天石博士毕业后已在中科院计算所待了整整8年;而在芯片界摸爬滚打了14年的老将何 ...
- 深度 | AI芯片终极之战
深度 | AI芯片终极之战 https://mp.weixin.qq.com/s?__biz=MzA4MTQ4NjQzMw==&mid=2652712307&idx=1&sn= ...
- Nvidia和Google的AI芯片战火蔓延至边缘端
AI 的热潮还在持续,AI 的战火自然也在升级.英伟达作为这一波 AI 浪潮中最受关注的公司之一,在很大程度上影响着 AI 的战局.上周在美国举行的 GTC 2019 上,黄仁勋大篇幅介绍了英伟达在 ...
- 人工智能--AI篇
AI背景 在当今互联网信息高速发展的大背景下,人工智能(AI)已经开始走进了千家万户,逐渐和我们的生活接轨,那具体什么是AI呢? 什么是人工智能(AI)? 人工智能:简单理解就是由人制造出来的,有一定 ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- 中国的规模优势,有望帮助AI芯片后来者居上?
芯片一直是个神奇的东西,表面上看是电脑.笔记本.智能手机改变了世界,其实,真正改变世界的硬件内核是芯片,芯片相关的技术才是科技界最实用.最浪漫的基础技术,也正因如此,谁掌握了芯片基础技术,谁就能立于 ...
随机推荐
- centos 增加网卡
CentOS 6添加网卡的方法 (2013-11-26 17:19:44) 转载▼ 标签: it 分类: Linux 前段时间安装了1台XEN server虚拟机,之前只用了1个网卡,ip是10.11 ...
- CSS盒子模型之CSS3可伸缩框属性(Flexible Box)
CSS盒子模型(下) 一.CSS3可伸缩框(Flexible Box) 可伸缩框属性(Flexible Box)是css3新添加的盒子模型属性,有人称之为弹性盒模型,它的出现打破了我们经常使用的浮动布 ...
- Ingress 暴露tcp端口
有一部分应用 需要暴露tcp端口,查看官方文档 https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/expo ...
- Spring Cloud Eureka 学习记录
SpringCloud版本 <groupId>org.springframework.cloud</groupId> <artifactId>spring-clou ...
- Python:基础知识(二)
常用模块 urllib2 :用于发送网络请求,获取数据 (Pyhton2中的urllib2工具包,在Python3中分拆成了urllib.request和urllib.error两个包.) json: ...
- Python读文件报错:SyntaxError: Non-ASCII character in file
打开city.py文件时报错 问题原因: 程序中的编码错误,python默认是acii模式,没有支持utf8.如果代码中有汉字 ,就会报错 解决方案: 源代码文件(city.py)第一行添加:#cod ...
- [原创]关于在VS解决方案下使用文件夹管理多个项目层次关系的说明
由于所创建的应用项目或类库项目较多,于是将这些类库放到一个文件夹下.在VS解决方案下确实能看到一个文件夹下多个类库项目这种层次关系.如下图所示: 但打开“我的电脑”,看到的只有类库,并未看到维护层次关 ...
- B. A Leapfrog in the Array
http://codeforces.com/problemset/problem/949/B Dima is a beginner programmer. During his working pro ...
- NYOJ 36 LCS(最长公共子序列)
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=36 最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB ...
- 404 Note Found队Beta4
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组 ...