这是我参与「第四届青训营 」笔记创作活动的第8天
端智能技术演进与实践
本堂课内容
- 什么是端智能技术?
- 端智能是什么
- 为什么要做端智能
- 端智能的发展历程
- 端智能技术实践案例
- 手写数字识别
- 左右手智能识别和应用
- 端智能工程师学习路线
知识点介绍
什么是端智能技术
端智能是把机器学习和深度学习算法模型应用和部署到端设备上,简而言之就是把训练好的模型拿到边缘设备上发挥它的作用,这里的设备不仅仅局限于手机这类移动设备,物联网loT设备等边缘设备也算。
例如:抖音换装特效;离线文字识别;肢体检测;手势识别
端智能的优势
- 低延迟、实时性高
- 保护隐私
- 端设备算力越来越强大
- 可离线
- 低成本
端智能和云智能的关系
端智能不是云智能的替代品,是云端机器学习的衍生品。
端侧机器学习框架
- Google:TensorFlow Lite、ML Kit
- Meta:Pytorch Mobile、Pytorch Live
- Apple:CoreML
- 腾讯:NCNN、TNN
- 阿里:MNN
端智能技术实践案例
手写数字识别
需要开发一个App,支持输入数字0~9进行识别
解决方案:通过训练一个可以识别手写数字的机器学习模型,并将此模型部署应用到APP之中,实现手写输入识别的过程。
需要进行数据的收集、模型的设计,之后需要在训练环境之中训练写好的模型。
在端智能领域的模型部署阶段,在移动端部署的模型是经过修改后的轻量模型,核心就是让移动端可以顺利的加载所需的模型。
左右手使用手机识别
通过检测用户是左利手还是右利手来动态改变APP的整体交互界面,达到用户操作时候最大的舒适程度。
解决方案:可以通过手指在屏幕滑动时候的轨迹来判断左右手。这是一个二分类的机器学习模型。
端智能工程师学习路线
整个端智能的设计之中概括为以下几个流程
- 架构:需要发现问题,并且设计解决方案
- 算法:需要收集数据、设计算法、 训练模型,并且将模型转化为移动设备支持的模式
- 工程:需要将模型部署、并且收集预测的样本,来帮助推理预测,最后反馈到业务逻辑上
入门需要了解端智能的基本知识,掌握移动端的开发相关的知识和机器学习的基础知识;
之后可以通过推理引擎、模型管理、端云协同等基础来解决业务问题
个人总结
通过本次课程的介绍,了解到了端智能的相关知识:
- 端智能和以往的人工智能有区别也有联系,端智能主打的是低延时的小规模计算,来帮助用户达到更好的体验效果,所以一般部署的模型需要经过修改压缩,以达到手机所拥有的机能。
- 端智能主打实时反应,与云智能相辅相成,面对一些小型的运算可以通过端来完成,而较大数据量的运算交给云来完成
- 端智能面对的挑战主要是不同的操作系统和不同的硬件的适配问题,还有移动端的算力问题,这些都需要靠优化模型来解决