实现一个边缘机器学习项目到底有多难?

金色小蜜蜂 金色小蜜蜂     2022-12-25     775

关键词:

  实现一个边缘机器学习项目到底有多难?

  我们每天都要跟传感器打交道,如果你不相信的话,拿出手机,Google一下它里面配备了多少种传感器—加速度计,陀螺仪,压力传感器,……,或许还能发现很多你从未听过的名词。

  这些传感器输出的信号都是独特的。理解它信号的含义,对信号进行处理,都需要有专业背景和经验。如果你的机器学习模型需要的数据正好来自这些传感器,通常意味着,你需要雇佣熟知传感器并且具有信号处理能力的机器学习工程师。

  即便不考虑组建机器学习团队的成本和难度,进入项目开发流程,仍然还有很多难关需要克服,而这些经常成为被“忽略”的事实。

传统机器学习流程

  传统机器学习流程

  对于机器学习工程师来说,除了传统软件开发工具之外,他们还需要使用多套开发工具来创建ML模型。就算已经有像Jupyter Notebook这样比较强大并且相对成熟的工具,但其目前也还存在着极大的局限性。虽然针对机器学习开发的新平台和工具层出不穷,但是目前还没有一个端到端的解决方案,让工程师们可以实现整套流程,从创建项目开始,一直到在嵌入式芯片上运行机器学习模型。此外,这些工具也需要工程师们花费额外的精力和时间来学习,并且会增加项目的管理成本和硬件及软件成本。

  在开发机器学习模型的过程中,通常需要进行大量的实验来找到表现最好的模型,而且每一次不同的实验之间都可能存在很多变数。保证实验数据的可复现性非常重要,所以对于硬件,操作平台,模型配置,训练数据等等都需要做到精确的版本控制,这些都需要花费很多的精力和时间来完成。

  就像在传统软件开发过程中,开发人员们从来没有摆脱过Bug的困扰,在机器学习开发中,类似的问题依然存在。不同的是,传统软件开发人员已经建立了一套测试和debug的最佳方式,然而,这些方式并不适合机器学习。当机器学习模型失败时,通常没有信息显示失败的原因和改进的方向。除此之外,造成失败的还有可能是一些“其他”因素,包括糟糕的训练数据等等,这让问题更难被排除。

  有一个案例就是对这一问题最好的说明,Anders Arpteg在他与其他三位作者合著的《Software Engineering Challenges of Deep Learning》一文中提到,为了解决某个公司天气预测系统中重组后输出图像分辨率过低的问题,开发人员花费了2周时间,用不同的神经网络模型完成了几百次实验,才发现是由于pooling operation过于激进,导致分辨率在数据被编码之前就已经受损,而这一结果正是由于缺乏针对深度神经网络的debug调试工具。

  而且这篇文章也明确指出,在如何简单和高效地构建一个高质量的可用于生产的机器学习系统上仍然需要更多的研究和努力。

  从公司的角度来说,要构建一个复杂的机器学习模型,通常需要花费几天甚至几周的时间来训练,而且无法对结果做出预测,也无法预知如果模型出现问题,究竟需要花费多少时间来解决这些问题,那么构建这样一个模型的成本是非常高的。

  即便对于一个已经部署的可用于生产的机器学习系统来说,保障它处于最新状态也需要花费大量的时间和努力。因为对一个成熟的机器学习系统来说,它一般会依赖许多不同的pipelines,这些pipelines可能是用不同的程序语言,格式和结构系统实现的,它们的改变,增加或者移除,甚至被弃用都是很常见的情况,因此要确保检测系统和日志系统能获取到这些信息。但这些成本通常也是很多公司在进行项目规划时可能不会考虑到的。

  对于传统软件开发而言,一个相同的程序可以运行在不同的设备上,例如,Win10系统可以运行在成千上万台不同型号的电脑上(这里讨论的是理论可行性,不考虑为了让用户体验最优而要做的种种适配性工作),但是对于机器学习而言,通常每一种不同的设备都需要不同对待。

  以预测性维护为例,如果汽车厂商要为发动机加入预测性维护功能,那么即便有2种不同型号的汽车使用的是同一种发动机,从理论上来说,这2种车型的发动机数据都需要单独采集和处理,进行特征提取,然后再进行模型训练,调参等步骤。

  Qeexo在FingerSense(指关节技术)项目上也遇到过同样的问题,这项技术是在手机上执行机器学习推理,分辨手指、指关节等不同的输入方式,依靠的也是传感器数据。不同的手机型号会使用不同的硬件配置,一台手机上采集到的数据无法满足另一台不同型号手机的需求,所以每一个不同的手机型号都必须经历一次从采集数据开始到配置机器学习库的完整过程,再加上即便是同一个型号的手机,在很多部件也会使用多家供应商提供的不同产品,这又衍生出更多种不同的可能性。

  以上种种问题也从一定程度上解释了为什么眼下AI成为了大公司追逐的游戏,因为对于中小型企业来说,尝鲜成本极高,而且一旦做错决定就很有可能给公司带来极大的危险,所以如何规避或者降低风险也就成为了领导者们首先需要考虑的问题。

  也正是因为这些原因,自动化机器学习平台进入了很多公司的视野。将传统机器学习过程中的特征提取,模型选择,超参数优化,模型验证等等步骤通过自动化的方式来实现,极大地降低了普通企业在应用机器学习时的难度和所需的资源。Qeexo也基于自己的经验与需要,创建了Qeexo AutoML,利用传感器数据针对高度受限的环境快速创建机器学习解决方案。自动化机器学习到底是什么—这一问题,我们也会在之后的文章中进行详细的介绍。

php现在不好找工作了,我是该转到go还是java,听说php学java还是有一定难度的,到底有多难?

...经验建议,让自己有个适应期,要想快速学会还是建议找一个专业适合自己的教育机构进行学习。千锋教育讲师均来自一线大厂兼具项目实战与教学经验,学科大纲紧跟企业需求,拥有国内一体化教学管理及学员服务,总部位于... 查看详情

软件系统开发到底有多难?

 开发一个手机系统是一个比较庞大的工程,不仅需要雄厚的资金,还需要一支过硬的开发团队。谷歌把安卓2.3到进化安卓4.0版本,源代码没有改变,只是修改和增加了部分功能,源代码还是原来的配方,但仅仅只是修改就耗... 查看详情

复制一个何同学到底有多难?光有知识还不够,这一点很关键

...何同学的初期目标,用无线电圈跟随设备移动,实现了苹果没能推向市场的随手放置无线充电。然后他为桌子赋予更多意义,有了生动有趣的交互界面,可以记录待办事项、提醒喝水 查看详情

字节的面试题到底有多难?大厂为何都注重算法?我们该如何应对?

给定一个单链表的头节点head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)大家有没有一脸懵逼的感... 查看详情

成为阿里p7java架构师到底有多难?java逻辑非运算规则

...viceMesh作为ServiceMesh技术探索和实践的先行者,全球第一个真正的ServiceMesh项目Linkerd负责人、Buoyant公司创始人兼CEOWilliamMorgan第一次完整地阐述了ServiceMesh。按照WilliamMorgan的定义,ServiceMesh是一个致力于解决服务间通信的基... 查看详情

阿里的spring框架面试题到底有多难?

...讲静态代理模式的优点及其瓶颈?对Java接口代理模式的实现原理的理解?如何使用Java反射实现动态代理?Java接口代理模式的指定增强?谈谈对Cglib类增强动态代理的实现?SpringAOP相关问题什么是AOP?pointcut,advice,Joinpoint是什... 查看详情

基于机器学习的边缘检测器

...预测图像中每个像素属于对象边界的概率。我想用opencv来实现这个技术。有人知道或知道 查看详情

机器不学习:cnn入门讲解1-什么是卷积

...化了一下,变成如下图所示:我们会发现,锐化后的图像边缘细节的对比度加大了。然后我强调边缘,变成如下图所示:强调边缘之后,图像边缘细节变的高亮,非边缘图像变动暗淡或者模糊,边缘被突出。我说你们,能不能别... 查看详情

(转)统计学和机器学习到底有什么区别?-机器学习研究会订阅号

...ot;萨金特曾经说过人工智能其实就是统计学,只不过用了一个很华丽的辞藻。 萨金特在世界科技创新论坛上表示,人工 查看详情

手机+卫星,到底有多难?

作者|小枣君来源| 鲜枣课堂这几天,关于卫星手机的新闻又火了。根据媒体报道,9月6日即将发布的华为Mate50系列手机,将具备“卫星通信能力”,在没有网络的地方,可通过卫星系统发送紧急短信。无独有... 查看详情

手机+卫星,到底有多难?

这几天,关于卫星手机的新闻又火了。根据媒体报道,9月6日即将发布的华为Mate50系列手机,将具备“卫星通信能力”,在没有网络的地方,可通过卫星系统发送紧急短信。无独有偶,另有小道消息声称... 查看详情

手机+卫星,到底有多难?

这几天,关于卫星手机的新闻又火了。根据媒体报道,9月6日即将发布的华为Mate50系列手机,将具备“卫星通信能力”,在没有网络的地方,可通过卫星系统发送紧急短信。无独有偶,另有小道消息声称... 查看详情

手机+卫星,到底有多难?

这几天,关于卫星手机的新闻又火了。根据媒体报道,9月6日即将发布的华为Mate50系列手机,将具备“卫星通信能力”,在没有网络的地方,可通过卫星系统发送紧急短信。无独有偶,另有小道消息声称... 查看详情

机器学习理论基础到底有多可靠?

Datawhale干货 作者:AidanCooper,编译:机器之心本文约4600字,建议阅读5分钟本文介绍了机器学习理论的重要性。知其然,知其所以然。机器学习领域近年的发展非常迅速,然而我们对机器学习理论的理解还... 查看详情

数据挖掘和机器学习之间到底什么关系?

 首先我认为没有必要给两个词划定一个明确的界限,不妨从字面意思理解就足够了。 数据挖掘——首先是有一定量的数据作为研究对象,挖掘--顾名思义,对一些东西进行深度的研究、对比、甄别等工作,最终从中间找... 查看详情

机器学习的建议

...始入手一个机器学习项目的时候,应该着手于如何将快速实现机器学习算法,并立刻使用交叉验证的数据集合进行验证,计算出损失值(J_cv),而不是在一开始设计的时候就考虑很多的因素,比如是否需要更多的特征,或者需要更多的样本... 查看详情

项目如期完成是有多难?

...。然后就是有一堆的理由来说明为什么失败。今天又看到一个数据说73%的软件项目是失败的。并且当前正在进行的项目中,有超过50%的正在走向失败,而有一些项目已经有了走向失败的趋势。​不管怎么看,软件项目... 查看详情

自己做一台3d打印机到底有多难?(附教程)

?   微博:小样儿老师2015初识3D打印技术,即快速成形技术,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术,3D打印机则出现在上世纪90年代中期,即一... 查看详情