机器学习依然奇货可居,但不是只有博士才能玩得转

【AI100 导读】AI100 正在播出 Jeremy Howard 教授讲授的 Fast.ai 课程。最近,Fast.ai 的另一位创始人 Rachel Thomas 发表了一篇文章,强调了,也可以说是重申了她和 Jeremy Howard 对于 AI 教育的看法——只要方法对路,任何有决心和毅力的人都可以学会深度学习。

上周我收到两个截然相反的观点:一个对机器学习的自动化感到激动,另一个则对研究机器学习需花费多年深表担忧。这两个问题如下:

问题 1:我听说谷歌云宣布企业能够轻松、快速地在 ML/NLP API 构建数据。以下说法是否正确:“机器学习和数据提交谷歌云——未来就在眼前,谷歌已实现自然语言处理和语言技术的进步,用户可通过 API 享受这些服务。这项秘密技术已经商业化,您可以利用它构建您自己的秘密技术。该秘密技术是否离我们越来越近?”

问题 2:从事机器学习方面的工作是否要求获得相关领域的博士学位?在开始研读机器学习之前,是否必须先学数学,完成微积分、线性代数和概率/统计学的全套大学课程,然后再学习C/C++ 语言、并行与分布式程序设计(如 CUDA,MPI,OpenMP)。根据 Hacker News 网站上的一个热门评论,即使在完成以上学习之后,还必须先后在 plain C、MPI 或 CUDA、Numpy 上练习应用机器学习算法,最后才能在 Theano 或 TensorFlow 上应用。

A:在各种夸张宣传以及“只有天才才能研究人工智能”的警告面前,人们感到迷惑是完全可以理解的。对于新闻工作者而言,人工智能是个很难报道的题目,不幸的是失实报道到处可见。例如:文章(https://smerity.com/articles/2017/deepcoder_and_ai_hype.html)针对媒体曲解 DeepCoder 的一个近期案例分析进行了论述。

这两个问题的答案都是:否。表面上,它们听起来像是截然不同。但是,它们的思路相同——许多从事机器学习领域的人都倾向于:

  1. 说服你购买他们的多用途机器学习 API(他们都动机不纯,只是想获得人才收购)。

  2. 说服你相信他们从事的工作相当复杂、困难并且从业门槛高,非一般人可以理解。(最近有关这个常见话题的一篇 reddit 戏仿文在经过投票后跃居机器学习版面头条:A super harsh guide to machine learning,https://www.reddit.com/r/MachineLearning/comments/5z8110/d_a_super_harsh_guide_to_machine_learning/)

的确,机器学习领域正在快速进步,但是你必须学会编码才能高效地使用这项技术。学习我们的免费在线课程 Practical Deep Learning for Coders ,http://course.fast.ai/(AI100 已推出该课程),仅需70 个小时,你即可高效地使用深度学习技术。

为什么“机器学习即服务”(MLaaS)在实践上令人失望

多用途机器学习 API 似乎是个不错的主意,但是该技术方面还未成熟。现有的API 面向的对象过于局限而不能被广泛应用,或者在尝试拓宽应用范围后表现不佳。我同意 Flightcaster and Prismatic 前创始人和 DataCollective VC 合伙人 Bradford Cross 的观点,他最近写道许多人工智能公司在尝试开发客户需要并且愿意购买的产品时遭遇的失败:“仅仅因为人工智能十分重要,相关领域的从业人员就认为自己引领所有的人类进步,这种态度是错误的。这股傲慢的风潮使人们看不清当前局势:每个人都在人云亦云地谈论着技术动向,而无人关心客户需求以及企业的经济意义。”(笔者强调)

Cross 还说,“机器学习即服务这个想法已经提出了近10 年,但是这期间越来越被唱衰。它未实现的根本问题是:懂行的人只使用开源,而不懂行的人即使使用 API 也无法进行开发。很多非常聪明的朋友都落入了这个陷阱中。行业巨头为了壮大他们的机器学习团队而进行收并,例如:IBM 收并了 Alchemy API,英特尔收并了 Saffron,Salesforce 收并了 Metamind。但是,一些陷入困境的公司仍受到诱惑,将机器学习模式附加在 API 功能后以赚取唾手可得的利润。亚马逊、谷歌和微软都试图将 MLaaS 层作为他们云服务的一部分进行销售。我还未见过创业公司或大公司在开源下使用 API,但更多的是使用人工智能,由于我观察样本很小,结论仍存疑问。

谷歌云是否为答案?

谷歌在将帮助推广学习领域方面表现不佳。这并不是因为谷歌意图不良——而是因为它服务器太多、现金太多且数据太多,而无暇顾及大多数人所面临的挑战,帮助他们以有限的预算(AWS 花费速增!)以及数据集充分利用有限的 GPU。谷歌大脑技术性过高,无法被普通开发者利用。

例如,TensorFlow 是一种低级语言,但是谷歌在发行时似乎并不知晓这一点,也不知如何销售。TensorFlow 的设计者本可以使用更加标准的面向对象的方法(例如 PyTorch 就很好),但是他们谨遵谷歌传统,为谷歌创造新的规则。

因此如果谷歌甚至无法设计一个 数据科学家可轻易使用的数据库,那么它又怎么能创造出能使普通人用来解决日常问题的技术呢?

Hacker News 计划:“在 plain C 和 CUDA 上先后应用算法,最后再在 Numpy/MATLAB 上应用”

为什么 Hacker News 的投稿人经常作出有关机器学习的糟糕建议?虽然机器学习背后的理论从高级数学上借鉴了不少,但是机器学习的实际应用需要的实践知识大不相同。作为一名数学博士,相对于构建实际工作模型,精通数学在机器学习方面并无多大用处。

Hacker News 评论区刊载的思路的害处在于:

  • 完全错误。

  • 好的教育激发对深层概念的学习。借用 Paul Lockhart 在《数学家的感叹》(Mathmatician’s Lament,https://www.maa.org/external_archive/devlin/LockhartsLament.pdf) 中的比喻,如果让小孩长年学习音乐理论,期间不允许他们唱歌或弹乐器,他们便会放弃学习音乐。

  • 好的教育不会过分将学习材料复杂化。如果您真正理解什么东西,您就能以用易于理解的方式对其进行解释。在对“开发者深度学习实践课程”进行了几周的研究后,Jeremy Howard 在 Excel 中应用了几种不同的现代优化技巧(通常被认为是一个复杂的课题)以使这项技巧更加清晰。

正如我数周前所写的那样:相比将一位深度学习领域的专家插入到你的机构中,在你的组织中挑选一名领域专家并教授他深度学习的知识更为容易。深度学习专业的博士毕业生不太可能像你最能干的员工那样,拥有广泛的相关经验,他们更有可能多解决有趣的工程问题感兴趣,而不是对具有重大商业意义的问题保存紧密关注。

“通过我们多年来在众多行业将机器学习应用于解决一系列问题的经验,我们总是看到一些组织机构对他们现有内部人才的重视程度和投资力度不足。在大数据浪潮的背景下,这意味着这些公司将他们的钱花在聘请外部咨询上。当今“深度学习排他性”虚假宣传风潮的掀起意味着搜寻如凤毛麟角般的深度学习专家,通常经营状况不佳的深度学习创业公司需向这些专家支付昂贵的费用。

停止夸张宣传(当你不是深度学习专家时)

计算机语言家 Dan Simonson 撰写了一本答疑手册(http://blog.thedansimonson.com/?p=461)评价 NLP、ML 和 AI 并鉴别虚假宣传:

  • 是否有现存培训数据?如果没有,他们如何获取这些数据?

  • 他们的应用程序开发过程中是否有一个评价流程?

  • 他们提议的应用程序是否依赖特定人工智能元件拥有空前高的性能?

  • 提议的解决方案是否依赖经过证明的可靠事件?

  • 如果使用预装人工智能元件,他们是否制定有明确的计划,对从使用这些元件到获得重要的应用程序输出进行规划。

作为一名自然语言处理研究人员,Simonson 对现今人工智能领域取得的成就感到高兴,但是他指出,当人们利用从业人员与公众之间的知识差距谋利时,整个行业就受到伤害。

深度学习研究人员 StephenMerity (就职于 Salesforce/Metamind)发表了一篇命名贴切的文章《是深度学习而不是魔法:破除人工智能虚假宣传需问的简单问题》(It’s ML, not magic: simple questions you should ask to help reduce AI hype,https://smerity.com/articles/2016/ml_not_magic.html)。他列出的问题包括:

  • 需要多少培训数据?

  • 这项工作是否可以不受监督(即不标示例子)?

  • 系统能否根据词汇名称进行预测?“例如,如果我说“我的朋友 Rudinyard 对我很刻薄”—— 许多人工智能系统无法回答“谁对我很刻薄?”,因为它的词汇库没有 Rudinyard 这个词。

  • 准确性如何随着输入内容长度的增加而下降?

  • 该模型性能的稳定性是否会随着时间的推移而变化?

Merity 还提醒道,评价模型时通常使用处理和制作程度很高的有限数据集,结论并不能反映日常处理中的实际数据。

这对你来说意味着什么?

如果你是一位有志向的机器学习从业者:恭喜你!你不需要取得博士学位,你不必从CUDA 或 MPI 开始编写算法。如果你拥有一年的编码经验,我们推荐你试试开发者深度学习实践课程(Practical Deep Learning for Coders,http://course.fast.ai/),或者考虑一下我们关于《如何成为数据科学家》(how to become a data scientist,http://www.fast.ai/2017/03/01/changing-careers/)的建议。

如果你在科技领域工作,想要创立使用机器学习的公司:恭喜你!你不必从OpenAI 聘请难找并且昂贵的人工智能博士生。为你的开发人员的成长和进步提供相应的资源和时间。着重研究某一特定领域(与该领域的专家合作),开发出该领域人们需要且能够使用的产品。

这是 Ask-A-Data-Scientist 建议专栏最新一期。请将你关于数据科学的疑问发送至 [email protected]

本文作者 Rachel Thomas 是 Fast.ai 的创始人及深度学习研究员。

本文已获作者授权,转载需得到本公众号同意。


编译:AI100

原文链接:http://www.fast.ai/2017/03/17/not-commoditized-no-phd/


相关推荐