Software 2.0 时代,你准备好了吗?

  我有时会看到人们将神经网络称为“机器学习工具箱中的另一个工具”。他们有一些优点和缺点,他们在这里或那里工作,有时你可以用他们赢得 Kaggle 比赛。

  我有时会看到人们将神经网络称为“机器学习工具箱中的另一个工具”。他们有一些优点和缺点,他们在这里或那里工作,有时你可以用他们赢得 Kaggle 比赛。不幸的是,这种解释完全错过了森林中的树木。神经网络不仅仅是另一个分类器,它代表了我们如何编写软件的根本转变的开始。他们是 Software 2.0 时代。

  Software 1.0 的“经典堆栈”是我们所熟悉的 - 它是用诸如 Python、C ++ 等语言编写的。它是由程序员所编写的计算机的明确指令所组成。通过编写每行代码,程序员正在识别程序空间中的一个特定点,并使其具有一些需求的行为。

  相比之下, Software 2.0 是用神经网络权重编写的。没有人参与编写这个代码,因为有很多的权重(典型的网络可能有数百万),直接用权重编码是困难的(我曾试过)。相反,我们对一个理想的程序(例如对示例中的输入输出配对的一个数据集)的行为指定了一些约束,并使用我们处理的计算资源在程序空间中搜索满足约束条件的程序。在神经网络的情况下,我们将搜索限制在程序空间的一个连续的子集,在那里搜索过程可以有效使用反向传播和随机梯度下降(有点令人惊讶地)。

  事实证明,大部分现实世界的问题具有收集数据比明确编写程序要容易得多的性质。未来很大一部分程序员将不会维护复杂的软件库,编写错综复杂的程序或分析其运行时间。他们收集、清理、操纵、标记、分析和可视化提供给神经网络的数据。

  Software 2.0 不会取代 1.0(实际上,需要大量的 1.0 基础设施来训练和推理“编译” 2.0 代码),但它将占据 Software 1.0 当今所负责的越来越多的部分。让我们来看一些正在进行的过渡的例子,以便更具体一些:

  视觉识别过去是由工程特征所组成,在最终顶层是与机器学习有一些关系的(例如 SVM )。从那以后,我们开发了一个机制来发现更强大的图像分析程序(在 ConvNet 体系结构中),并且近期我们已经开始 寻找其中的体系结构 。

  语音识别过去涉及到大量的预处理、高斯混合模型和隐马尔可夫模型,但是 目前 几乎完全由神经网络组成。

  语音合成在历史上是用很多种拼接机制进行处理,但是现在最先进的模型是产生原始音频信号输出的大型虚拟网络(如  WaveNet )。

  机器翻译通常使用基于短语的统计技术进行处理,但是基于神经网络的翻译正在迅速占据主导地位。我最喜爱的架构是在 多语言设置 中训练的,在这样的架构中一个模型就可以从任何源语言翻译成任意目标语言,并且这个架构是在弱监督(或者 无监督 )设置下的进行训练的。

  机器人领域的一个悠久传统是将问题分解为传感、姿态估计、计划、控制和不确定性建模等模块并在中间表示上使用显式表示和算法。 我们目前还不是很清楚,但 加州大学伯克利分校 和  Google 的研究表明, Software 2.0 可能能够更好地表示所有这些代码。

  游戏游戏已经存在很长时间了,但是  AlphaGo Zero (一种观测棋牌的初始状态来下棋的卷积神经网络)如今已经成为了全世界下围棋最好的棋手。我期望在其他领域看到相似的结果,比如  DOTA 2 或 星际争霸 。

  你会注意到我上面列出的链接都涉及到谷歌的工作成果。这是因为谷歌是目前正处于重写他们自己的代码块来转变为 Software 2.0 代码的前沿。 “ One model to rule them all ”提供了 Software 2.0 代码的早期形式,也就是将各个领域的统计数据合并成对世界一致的理解。

  Software 2.0 的好处

  为什么我们更喜欢将复杂的程序移植到 Software 2.0 中呢?显然,一个简单的答案就是他们在实际中工作得更好。但是,还有很多其他方便的理由来选择这个堆栈。让我们来看看 Software 2.0的一些好处(比如:一个ConvNet)与 Software 1.0相比(比如:一个产品级的 C++ 代码库)。Software 2.0 是:

热门文章HOT NEWS
网址导航>>
中文科技资讯 科技魔方 高科技网 财经资讯网 汽车点讯 中国财经消费网 高端金融网 祥房网 中国新闻热线 家电资讯网 财经快讯网 中国财经热线网