亚博_主页

Andrej. Kar亚博 APPpathy发文谈:这不仅仅是分类器, 这是一种新的软件开发思想.

2018-10-08 19:32:45  by亚博国际

 Andrej.  Kar亚博 APPpathy发文谈:这不仅仅是分类器, 这是一种新的软件开发思想.

亚博体育特 AI 科技评论按:有越来越多的传统编程语言(C 、C ++、Java )等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧.那么传统程序员和深度学习专家对编程的软件的看法一样吗?计算机软件会在深度学习时代发生什么新的变化吗?

近日,计算机视觉领域大牛之一、李飞飞高徒、曾在OpenAI 任研究科学家、现任特斯拉AI 总监的 Andrej Karpathy 就发表了一篇博客,介绍了他眼中深度学习带来的"软件2.0" 的全新开发思维.他相信这不仅是重要的软件开发变化趋势,正需要所有人都正视它、仔细思考它的优缺点.

雷锋网 AI 科技评论把Andrej Karpathy 的这篇博客全文翻译如下.

软件2.0 来了

有时候我会碰到这样的人,他们把看作"机器学习工具箱里的一个新工具".深度学习有优点也有缺点,它们在挺多场景下都能发挥作用,有时候也能用深度学习在Kaggle 的比赛中获胜.

然而不幸的是,这种观点其实是一叶障目不见泰山.并不仅仅是一类新的分类器,它们标志着人类编写软件的方式开始发生根本性的改变.这就是"软件2.0" (Software 2.0 ).

"软件1.0" 中经典的一层层结构大家都已经非常熟悉了,编写它们用的是Python 、C ++等等语言,包含的也就是程序员显式地写下的计算机命令.每写下一行代码,程序员就把程序空间中的某个具体的点定义为了一个需要的行为.

"软件2.0" 则截然不同,它的呈现方式是的权重.人类程序员没法自己动手编写这类代码,因为它们是一大堆权重(典型的中可能有上百万个权重),直接把代码写成权重很困难(我试过).实际上的做法是,人们对一个理想的程序的行为设定一些限制(比如通过带有成对的输入输出样本的数据集),然后用手头的计算资源在程序空间中搜索,找到一个能符合那些限制的程序.以为例,我们把搜索过程限定在程序空间的一个连续的子集当中,在这个子集里我们可以用反向传播和最速梯度下降的方法把搜索过程变得高效(有时候极为高效).

事实上,真实世界中的很多问题都有这样一种特性