边缘智能的发展现状与开发方法
1.边缘智能的概念
边缘计算的定义
边缘计算是一种将主要处理和数据存储放在网络的边缘节点的分布式计算形式。(ISO/IEC)
边缘智能
边缘智能是具备机器学习和高级网络功能的边缘计算(IEC:边缘智能白皮书)
2.边缘VS云
3.边缘智能的类型
①边缘收集数据,云端训练+推理(适用于大部分智能音箱,部分收音机)
②边缘收集数据+推理,云端训练(端云结合,适用于大部分智能设备
③边缘收集数据加推理,分布式边缘训练(适用于联邦学习)
边缘测的训练方法:联邦学习
1.隐私问题,联邦学习可以不把你的数据共享出去。
2.监管需要,保护用户的私有数据,使用联邦学习可以将模型下发到用户侧进行训练。
3.解决数据孤岛问题,如:互联网企业和银行间不可能进行数据共享,模型使用联邦学习可以在各家企业、银行的私有数据上进行训练。
4.工程障碍,数据量太大,网络连接昂贵,速度慢或者不可靠等,采用联邦学习可以避免这些问题
④边缘在线学习+推理
4.边缘智能的算力基础-AI芯片
由图可以近年来AI芯片主要运用于服务器和智能手机行业,根据未来的趋势发展,汽车和监控等行业的运用也是相当可观。
5.芯片性能VS芯片计算量
TOPS是Tera Operations Per Second的缩写(每秒十的十二次操作数)
计算量单位MACs 图中可以看出在深度网络中,卷积层的计算量占绝大部分,所以一般来说解决了卷积层的问题基本就解决了深度网络的计算问题。
6.边缘智能应用开发现状
①芯片异构化的条件下如何有效利用算力
②开发生态碎片化,产品如何快速选型/适配/迁移
③算法、芯片级硬件、应用强耦合,分工协同难度大
④如何进一步降低算法端计算成本,从而提升产品在市场上的竞争力
7.模型加速
权值量化
①量化:对数据用低精度的方式保存和计算。如从32位浮点数转换为8位的整数
②量化的基础:采用低精度的计算对推理的结果影响很小。低精度的数据可以并行计算。低精度的数据占用存储空间和传输带宽更小。
③量化原理:训练好的深度网络是对噪声和扰动鲁棒性强。大部分训练好的权重都落在一个很小的区间内。
④量化对精度会有一定程度的影响,所以对于某些对精度要求高的网络需要在量化后通过量化重训练把模型变成更适合int8推理的模型
网络剪枝
原因:神经网络的参数量非常多,而其中大部分的参数在训练好之后都会集中在0附近,对整个网络的贡献非常小。
目的:把对网络贡献很小的节点从网络中删除,从而使网络变得稀疏,需要存储的参数量变少。
副作用:模型的精度会有所下降。冗余的参数可能是神经网络鲁棒性强的原因,因此剪完枝模型的鲁棒性也会有所损失。
知识蒸馏
使用轻量的紧凑小网络在模型训练的时候加入在原数据集上已经训练并收敛的大网络作为外部的监督信息,使小网络能够拟合大网络,最终学习到与大网络类似的函数映射关系。