随想录(机器学习的生产应用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feixiaoxing/article/details/82077993

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

    从范围上讲,人工智能 > 机器学习 > 模式识别。最近机器学习愈演愈烈,特别是深度学习的发展,极大的推动了机器学习的应用。不管是图像、语言还是自动驾驶,很多方面,机器学习都发挥了巨大的作用。但是工业生产不同于学术研究,机器学习在生产中还是有一些问题需要注意一下。

1、数据的采集和标注

    不同于发表论文,现实生产中的机器学习用的数据更多,需要训练的数据也更多。这个时候仅仅依靠几千、几万个数据集是远远不够的,所以才会出现很多的数据采集公司。当然,数据采集过来之后还需要进行人工标注,这个时候标注的质量就变得非常重要。标注员的训练、数据的预标注处理就显得很有必要了。几十万、上百万份数据需要在短时间内完成,这不是一件轻松的事情。

2、正负样本的判定

    机器学习不仅要获得有效数据,还得判断什么是无效数据。所以,如何挑选负样本、怎样设计负样本就需要好好评估一下了。

3、平衡训练成本和正确率

    有些效果很好的学习算法,不一定适用于生产,因为性价比不高。比如,svm在大多数时候还没有决策树、逻辑回归好用。对于小的应用来说,基本的bayes、决策树、逻辑回归、随机森林这些算法已经基本可以满足使用了。只有人脸检测、人脸识别、自动驾驶这些场景复杂的应用,需要上深度学习,除了供给大量的数据之外,还需要很多的计算资源,这些都是成本。

4、客户端的优化

    通过gpu、fpga、cpu训练得到的模型一般都需要导入到嵌入式设备上。但是嵌入式设备一般资源都是有限的,且他们有严格的功耗要求。况且,除了智能应用之外,嵌入式soc还要处理其他的消息,比如网络、内存、数据库、图形显示等等。所以,如何在model大小、算法预测、流程处理方面进行改进和优化,这也是工业生产中必不可少的一件事情。而这在学术上根本不会进行考虑的。

5、参数调教

    不同厂家在算法层面的差异没有大家想象的那么大。最大的不同,我觉得更多体现在参数调教和客户服务方面。没有一种学习模型可以适用于所有的客户场景,所以相对于算法本身,根据现实生产环境灵活调节参数、分配权重、避免计算资源浪费,这或许是最为关键重要的一件事情。尤其是那些场景单一、固定的场合,或许算法本身优化的空间更多。

6、人工冗余处理

    机器学习总有失灵的时候。即使识别率可以达到95%以上,也会有看走眼的时候,所以这时候在软件层面添加人工冗余处理的逻辑就显得很有必要。

7、二次优化

    对于算法公司来说,提供SDK api很有可能是一次性买卖。但是如何改进自己的算法和效率,那么及时和集成厂商沟通、争取反馈,不管是应用层面还是客户数据层面,对算法和功能进行二次优化,这对于算法供应商来说都是重要的一门功课。

猜你喜欢

转载自blog.csdn.net/feixiaoxing/article/details/82077993
今日推荐