dev-reading/fe

软件 2.0

justjavac opened this issue · 0 comments

今日阅读:Software 2.0

作者 Andrej Karpathy,特斯拉人工智能部门主管,斯坦福博士


以前

我们将神经网络作为“机器学习工具箱中的另一种工具”。但是,这种解释只见树木,不见树林。神经网络不是软件开发的另一种分类,它们代表了我们编写软件的根本性转变的开始。它们是软件
2.0(Software 2.0)。

软件 1.0

软件 1.0 是用 Python、C++ 等语言编写的,是由一条一条的计算机指令组成。通过编写每行代码,程序员可以确定程序使用的资源:内存、CPU、外设、……等等。

软件 2.0

软件 2.0 是用神经网络权重编写的。

不过,没有人参与这段代码的编写过程,因为权重有很多,并且直接用权重进行编码是很困难的。

那么如何编写呢?我们对一个理想程序的行为指定一些约束,并使用可用的计算资源来搜索程序空间中满足约束条件的程序。

我们不是直接编写程序,而是编写一些约束条件,通过采集足够多的数据来进化出(探索出)我们的程序。

未来

大部分程序员不再需要维护复杂的软件库,编写复杂的程序,或者分析程序的运行时间。他们需要收集、整理、操作、标记、分析和可视化提供给神经网络的数据。

软件 2.0 不会取代 1.0(实际上,需要大量的 1.0 基础架构来进行训练和推断,以“编译” 2.0 代码),但是它将会越来越多地接管软件 1.0 的任务。

热评

有了软件 2.0,程序员以后面对的就是 bug 2.0