深度学习正在吞噬软件
Tips
原文作者: Pete Warden
原文地址:Deep Learning is Eating Software
几个星期前,当我和Andrej Karpathy一起喝酒的时候,我们讨论了我们认为机器学习在未来几年内的发展方向。Andrej抛出了“软件2.0”这个词,我立刻就嫉妒了,因为它抓住了我每天在数百个项目中看到的过程。我一直保持沉默,直到得到他的博客,但现在我也想扩展我的想法。
模式是现有的软件项目使用明确的编程逻辑进行数据处理,负责维护的团队发现他们可以用深度学习的解决方案取代它。 我只能指出我们已经公开的字母表中的例子,比如upgrading search ranking,data center energy usage, language translation以及solving Go,但这些在内部并不罕见。 我所看到的是,几乎所有具有重大逻辑的数据处理系统都可以通过应用现代机器学习来显着改善。
如果用这些术语来说,这听起来可能不那么戏剧化,但是这对我们如何构建软件是一个根本性的改变。 开发人员不必编写和维护错综复杂,层次分明的逻辑关系,而必须成为教师,培训数据的管理者和结果分析师。 这与我在学校所教授的编程有很大的不同,但让我最兴奋的是,一旦工具发展起来,它应该比传统的编码更容易获得。
这个过程的本质是提供大量的输入示例,以及对输出的期望。这并不需要与传统编程相同的技术技能,但它确实需要对问题领域有深入的了解。这意味着,软件的用户将能够在构建它的过程中扮演更直接的角色。从本质上讲,用户正在编写自己的用户故事,并将其输入到机器中以构建他们想要的内容。
Andrej在他的文章中重点关注了音频和语音识别等领域,但实际上我认为这会对更多领域产生影响。 经典的“机器学习:技术债务的高利息信用卡”标识了一个非常常见的模式,即机器学习系统嵌入到深层软件中。 我所看到的是,通过用深度学习模式替换整个堆栈,问题越来越得到解决! 以类比为切入点,这就像将所有债务合并为一笔较低的单笔贷款。 单一模型比一组深度互联的模块更容易改进,维护变得更容易。 对于许多大型系统来说,没有人可以声称自己实际上在做什么,所以在调试或控制方面并没有真正的损失。
我知道这听起来更像是对深度学习的宣传,如果我没有看到每天发生的过程,我也很难接受,但这是真实的。比尔·盖茨(Bill Gates)曾说过:“大多数人高估了自己一年所能做的事情,却低估了他们十年后能做的事情”,这就是我对传统软件的替代态度。随着知识在开发者社区中传播,将会有很长一段时间的增长,但在10年里,我预测大多数软件作业都不会涉及编程。正如Andrej所记忆的那样,“(深度学习)比你更好!”