写点什么

你是否真的需要机器学习?

  • 2020-05-06
  • 本文字数:2186 字

    阅读完需:约 7 分钟

你是否真的需要机器学习?

文中内容并非是从理论上去探讨哪些问题可以通过机器学习解决,而是意在帮助那些没有数据科学家的团队理解应用机器学习是否真的有效。


机器学习当前处境微妙。


机器学习的可行性已得到充分证明,几乎所有最受欢迎的移动应用都或多或少使用了该项技术,从中可见一斑。但这一生态系统尚未完全成熟到任何一位初学者都可以迅速应用自如的程度。


对于团队而言,决定何时引入机器学习技术并非易事,尤其是对于缺少数据科学家的团队。尽管软件工程人员通常对机器学习具有更高层次的理解,但他们一般缺少领域知识,难以判定自己所面对的问题是否适用机器学习解决。


文中内容并非从理论上去探讨讲哪些问题可以通过机器学习解决,而是意在帮助那些没有数据科学家的团队理解应用机器学习是否会有效。

是否有其他人使用机器学习解决了类似的问题?

如果团队中没有任何经验丰富的机器学习工程师或数据科学家,那么是很难回答“是否有可能通过机器学习来解决某个问题?”


如果团队中缺少数据科学家,应该怎么办?


  • 自身成为机器学习专家。这样你可以自己分析问题,判定机器学习解决方案的可行性。

  • 聘用机器学习专家,完成上述工作。

  • 调研是否有其他人用机器学习解决了类似的问题。


前两个选项耗精力耗财力,而后者可能只需花一天时间搜索一下。


相关调研的好处,就是有助于确定工作的着手点。鉴于团队中没有数据科学家,不太可能针对问题设计出适用的模型架构。例如,如果需要构建一个客户支持代理,那么可以去了解一下其他公司的做法。当然,你一定会涉及到 Rasa 和 Google Meena。


了解使用哪些模型和方法解决了类似的问题,有助于团队明确工作的着手点。例如,工程师 Robert Lucian 构建了一款得到广泛使用的个性化车牌读取器。Lucian 的解决方案就是依赖于一些已有的目标检测和文本提取模型。


Lucian 在在文章中提及,他只是调研了其他人在类似领域中正在使用的方法,进而着手实现了自己项目中的机器学习部分。他最终找到了那些专门针对车牌而调优的模型,及用于文本提取的有效模型。这样,他很快将两者加入到生产环境中。

是否具有相关的数据来源(无需考虑数据是否是自己的)?

除非你的问题使用原始预训练模型解决了,否则模型都需要使用相关数据进行训练。


例如,构建一个推荐系统引擎,需要用户资料属性以及浏览习惯等数据。而构建一款客户支持代理,则需要文档手册进行训练。为使模型适用于特定领域,需要使用相应领域数据进行训练。


但是,训练数据不必是自己具有的。即便并没有做复杂的用户数据收集,也可借助于一些公开可用的数据。


例如,数月前开始流行的文本类冒险游戏“AI Dungeon”,就是基于机器学习构建的。



尽管游戏开发工程师 Nick Walton 只通过从 choiceyourstory.com 上抓取 50 MB 的文本做模型调优,但该游戏仍可以与当前最先进的模型相媲美。其成功应归功于迁移学习,该技术将模型的“知识”(该游戏中使用了 OpenAI 的 GPT-2)迁移到新的模型,并使用很小的数据集对更特定领域做了调优,例如游戏中的地牢探索者的故事情景。

相对于其他解决方案而言,使用机器学习的成效是否显著?

在很多情况下,机器学习只是一种可工作的工具,但并非最优的工具。如果机器学习并不能提供比其它解决方案明显的优点,那么就不值得为此付出额外的开销。


对此问题的分析,可借助于下列几个基本考量:


首先,除机器学习外,是否还有其它解决方案?


对于语音识别、计算机视觉等许多应用,机器学习目前是最适用的解决方案。


其次, 其它解决方案是否能复现机器学习的预测质量?


例如,在建立一个推荐系统中,如果收集的用户数据不多,并且只有 100 条博客帖子可供推荐,那么使用基本的标签系统就完全可以。如果用户喜欢 Javascript,那么就向用户展示所有具有“Javascript”标签的文章:



但是,如果策划构建一个庞大的内容库,并且其中管理了大量的用户数据,那么机器学习对于实现个性化推荐的作用是独一无二的。


第三,其他解决方法是否具有机器学习那样的可扩展性?


机器学习的主要承诺之一,就是其灵活性足以消除那些传统上需要人工干预的流程中的人力参与。例如,库存管理是一个非常繁杂的工作,产品通常信息不完整,列出方式也不一致,导致经常需要手动处理。


在产品数量不多的情况下,人工处理完全可以取代机器学习。但是对于大量的产品,人工做比对是不现实的。例如,处理一百万种产品,需要很多人花费大量时间。而 Glisten 等产品使用机器学习分析产品数据,可快速完成此类工作:


何时何处适用机器学习

事实上,尽管机器学习有着诸多优越性,但却往往应用在许多毫无意义的场景中。这导致许多人普遍对机器学习持怀疑态度,“不过又是一轮炒作而已”。


现实情况是,就像其它所有广为使用的技术一样,机器学习只是在某些情况下的理想解决方案,而并不适用于所有情况。项目上手时,最难的就是判定该项目是否需要使用机器学习,尤其是对于缺乏该领域经验的团队,希望本文能对正处于迷茫中的团队有所助益。


如果读者对如何在生产环境中使用机器学习感兴趣,欢迎访问 Cortex 示例代码库。


Cortex 项目地址:


https://github.com/cortexlabs/cortex/tree/master/examples


声明:本文内容基于作者本人对机器学习团队的观察,而非对整个行业的学术综述。作者背景是 Cortex 的贡献者之一。Cortex 是一款用于机器学习模型在生产环境部署的开源平台。


原文链接:


https://towardsdatascience.com/should-you-really-use-machine-learning-for-that-d781a80aa0fb


2020-05-06 11:071420

评论

发布
暂无评论
发现更多内容

全套教程百度云,java菜鸟教程多态,Mybatis源码解析

Java 程序员 后端

写给即将正在找工作的Java攻城狮,5分钟搞定

Java 程序员 后端

你有过迷茫吗,java的网络编程教程视频,这些知识点你会吗

Java 程序员 后端

架构实战营-模块一

Aha hello xzy

架构实战营 「架构实战营」

云图说|初识云数据库GaussDB(for Redis)

华为云开发者联盟

数据库 redis 开源 华为云 GaussDB(for Redis)

全靠我啃烂了这份2021最新面试题,系统盘点Java开发者必须掌握的知识点

Java 程序员 后端

掌握渗透测试,从Web漏洞靶场搭建开始

华为云开发者联盟

测试 渗透测试 漏洞 漏洞靶场 wavsep

作为程序员一定不要仅仅追求物质,Javaweb面试宝典

Java 程序员 后端

你还搞不定分布式系统流控、熔断吗,2021年最新Java面试点梳理

Java 程序员 后端

全栈系统化的学习路线,基于SpringCloud微服务化开发平台项目

Java 程序员 后端

关于Java性能优化的几点建议,java编程书籍合集百度云,终局之战

Java 程序员 后端

再见SpringMVC,linux教程第四版实验答案,Java全栈面试题

Java 程序员 后端

写给Java开发的小程序布局指南,震惊

Java 程序员 后端

作为字节跳动面试官,linux菜鸟教程pdf下载,深度集成!

Java 程序员 后端

你不知道这份超详细JVM内存结构,京东校招Java面试题

Java 程序员 后端

做Java程序员真的没有春天吗,12年高级工程师的“飞升之路”

Java 程序员 后端

写给互联网大厂员工的真心话,MySQL优化原理分析及优化方案总结

Java 程序员 后端

准备Java面试?中公教育java讲师,死磕原理

Java 程序员 后端

你的技术真的到天花板了吗,值得推荐!

Java 程序员 后端

关于SQL书写建议-&索引优化的总结,真香警告

Java 程序员 后端

你不知道这份超详细JVM内存结构,Java吊打面试官系列

Java 程序员 后端

你头秃都没想到还能这样吧,Java这些高端技术只有你还不知道

Java 程序员 后端

你连基础的JVM运行时内存布局都忘了,springmvc实战教程

Java 程序员 后端

保持稳定迭代的秘密:基于Spinnaker的全自动渐进式交付

博文视点Broadview

你想学的都在这里,开课吧java架构师百度云,阿里Java开发面试解答

Java 程序员 后端

入职3个月的Java程序员面临转正,原来SqlSession只是个甩手掌柜

Java 程序员 后端

分享Java资深架构师的成长之路,Java面试常见问题及回答技巧

Java 程序员 后端

关于Java性能优化的几点建议,图灵学院4期百度网盘,附项目源码

Java 程序员 后端

其实Zookeeper的选举机制也不难理解,今日头条Java后端面试

Java 程序员 后端

写给Java软件工程师的3条建议,百度笔试题百度校招面试经验,开源新作

Java 程序员 后端

DoS?DDoS?这件事要从另一个D说起……

郑州埃文科技

网络安全 DOS攻击 IP定位

你是否真的需要机器学习?_行业深度_Caleb Kaiser_InfoQ精选文章