人工智能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芯片后来者居上?
芯片一直是个神奇的东西,表面上看是电脑.笔记本.智能手机改变了世界,其实,真正改变世界的硬件内核是芯片,芯片相关的技术才是科技界最实用.最浪漫的基础技术,也正因如此,谁掌握了芯片基础技术,谁就能立于 ...
随机推荐
- 按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”
import java.util.ArrayList; import java.util.Scanner; public class Text { @SuppressWarnings("re ...
- 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...
- ethereumjs/ethereumjs-common-3-test
查看test能够让你更好滴了解其API文档的使用 ethereumjs-common/tests/chains.js const tape = require('tape') const Common ...
- 把外置sd卡映射为内置sd卡地一个目录
教程:1.已root机器运行re浏览器2.在/sdcard卡上创建目录sd-ext3.找到/etc/rc.local,长按选编辑4.拉到文件最后,在最后一行exit 0前行添加: (sleep ...
- mac电脑iTerm2链接linux服务器断线解决方案
问题 用windows链接linux服务器,方式很多,我最经常用的是xshell.但是xshell没有mac版,那用mac电脑,比较好的命令行软件是什么呢?我用的是iTerm2 ,这个功能确实蛮强大, ...
- centos下安装myrocksdb
承接上一篇,https://www.cnblogs.com/lunyu/p/10190364.html .编译安装myrocks的整个过程,特别是第2步和第7步,让人冗长难耐.因此编译安装成功后省去这 ...
- scala字段权限问题
1.对象私有字段 1)private class Counter(num: Int) { private var value = 0 def increment() = { value += 1 } ...
- MvcPager.js在特定业务场景下的问题解决
用到了MvcPager.js,在一个常见的场景中出现了不能POST表单数据的问题,场景描述如下: 日期:2012-12-12 编号:***** ...
- Android ListView demo
创建一个空的 Activity 相对应的layout文件会自动创建: ?xml version="1.0" encoding="utf-8"?> < ...
- ELK批量删除索引
一.存在问题 用了一段时间elk发现如果索引长时间不删除,elk会越来越慢,重启elasticsearch服务器节点之前同步时间也会很长 二.解决方法(定期删除索引) 1.在elasticsearch ...