分享一篇关于AGI的短文:苦涩的教训

学习强化学习之父、加拿大计算机科学家理查德·萨顿( Richard S. Sutton )2019年的经典文章《The Bitter Lesson(苦涩的教训)》。

文章指出,过去70年来AI研究走过的最大弯路,就是过于重视人类既有经验和知识,而他认为最大的解决之道是摒弃人类在特定领域的知识、利用大规模算力的方法,才是通往AGI路径的方向

理查德·萨顿

过去70年人工智能研究领域最重要的一堂课,是只有通用计算方法(蛮力计算 brute-force)最终是最有效的,而且优势很大——因为摩尔定律,每单位计算成本持续呈指数下降。大多数人工智能研究都是假设Agent可用的计算量是恒定的(在这种情况下,利用人类知识将是提高性能的唯一方法之一),但是,在稍长的时间里看,可用的计算量必然会大大增加。

为了在短期内获得改善,研究人员试图启用本领域内的现存人类知识,但长远来看,唯一重要的是利用算力。基于人类知识的方法往往很复杂,不太适合利用好通用算力。有许多人工智能研究人员迟迟未能学习这个苦涩的教训的例子,回顾这些年的一些最突出的例子是很有启发性的。

在电脑国际象棋中,1997年击败世界冠军卡斯帕罗夫的方法基于大量的深度搜索。当时,许多计算机国际象棋研究人员对此感到失望,他们一直致力于利用人类对国际象棋特殊结构的理解的方法。当一种更简单的基于搜索的方法,结合特殊的硬件和软件,取得了更大的成功时,这些基于人类知识的国际象棋研究人员没有虚心接受失败。他们反驳道,“粗暴的”搜索可能这次赢了,但这不是一种通用的策略,而且也不是人们玩国际象棋的方式。这些研究人员希望基于人类的行棋思路获胜,当它没有获胜时他们感到失望。

在电脑围棋中,也出现了类似的研究进展,只是比国际象棋晚了20年。最初的巨大努力是避免用蛮力搜索,而是想办法利用人类知识(一千年的棋谱),或游戏的特殊特征,但是所有这些努力都被证明是无关紧要的。更糟糕的是,一旦有效地进行了大规模搜索,这些努力都是负向的。还有一点,通过自我对弈学习价值函数的方法,对于围棋和其他许多游戏而言都非常重要,尽管学习在1997年首次击败国际象棋的世界冠军的程序中并不起重要作用。

学习和搜索是利用大规模计算的人工智能研究中最重要的两类技术在计算机围棋中,与计算机国际象棋一样,研究人员最初的努力是利用人类的理解(以减少搜索量),后来才通过搜索和学习取得更大的成功。

在语音识别方面,20世纪70年代有一场由美国国防部高级研究计划局赞助的早期竞赛。参赛者挖空心思,使用了一系列利用人类知识的招术,包括对单词、音素、人类声道等的理解。另一方面,还有一些更统计学的方法,它们基于隐马尔可夫模型(HMMs)做了更多的计算。再次,统计学方法胜过基于人类知识的方法。这导致自然语言处理领域出现了一个重大变化,几十年来,统计学和计算逐渐主导了这一领域。语音识别中最近深度学习的兴起是这一持续发展的最新一步。

深度学习方法甚至更少地依赖于人类知识,使用更多的计算,加上在巨大的训练集上的学习,来产生更好的语音识别系统。正如游戏中一样,研究人员总是试图制造出研究人员认为自己的大脑运作方式的系统——他们试图把这些知识放入他们的系统中——但最终证明是适得其反,也是研究人员时间的巨大浪费,因为通过摩尔定律,大规模计算变得可行,而且能得到很好的利用。

在计算机视觉/CV领域,也有类似的模式。早期的方法将视觉理解为寻找边缘、广义圆柱体或基于SIFT特征进行处理。但今天这一切都被抛弃了。现代的深度学习神经网络仅使用卷积和某些不变性的概念,并且表现得更好。

这是一个重要的教训。纵观整个AI 人工智能领域,我们仍然没有彻底地学习到这个教训,因为我们仍在犯同样的错误。为了看清这一点并有效地抵制它,我们必须理解这些错误的吸引力。我们必须学习苦涩的教训,即把我们认为的思维方式构建到系统中是行不通的。

这一苦涩的教训是基于历史观察,即

1)人工智能研究人员经常试图把知识构建到他们的代理系统中,

2)这在短期内总是有帮助的,并且对研究人员来说是个人满意的,但

3)从长远来看,它总会达到一个瓶颈,甚至会阻碍进一步的进展,

4)最终的突破性进展是通过一种相反的方法——基于搜索和学习的大规模堆算力——而获得的。

从这一苦涩的教训中应该学到的一件事是通用方法的巨大力量,即随着可用算力的增加,这些方法仍然可以继续扩展。似乎可以以这种方式无限扩展的两种方法是搜索和学习

从这个苦涩的教训中学到的第二个普遍点是,人类心智的实际内容是极其复杂的,我们不应该再试图找到简单的方法来思考心智的内容,比如简单地思考空间,物体,多个代理或对称性。所有这些都是任意的、内在复杂的外部世界的一部分。它们不应该被构建,因为它们的复杂性是无止境的;相反,我们应该构建可以找到和捕获这种任意复杂性的元方法这些方法的关键是它们可以找到良好的近似值,但算法应该是基于我们的方法(如学习),而不是我们已经学到的知识。我们希望AI Agent 能够像我们人类一样去发现,而不是在系统里集成我们已经发现的知识。

原文:The Bitter Lesson

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/592618.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Photoshop中图像编辑的基本操作

Photoshop中图像编辑的基本操作 Photoshop中调整图像窗口大小Photoshop中辅助工具的使用网格的使用标尺的使用注释工具的使用 Photoshop中置入嵌入式对象Photoshop中图像与画布的调整画布大小的修改画布的旋转图像尺寸的修改 Photoshop中撤销与还原采用快捷键进行撤销与还原采用…

Leetcode—422. 有效的单词方块【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—422. 有效的单词方块 实现代码 class Solution { public:bool validWordSquare(vector<string>& words) {int row words.size();for(int i 0; i < row; i) {// 当前这一行的列数int col words[i].length(…

HTML_CSS学习:浮动

一、浮动简介 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>浮动_简介</title><style>div{width: 600px;height: 400px;background-color: #1c80d9;}img{float:…

c++多线程基础

简介 c多线程基础需要掌握这三个标准库&#xff1a;std::thread, std::mutex, and std::async。 1. Hello, world #include <iostream> #include <thread>void hello() { std::cout << "Hello Concurrent World!\n"; }int main() {std::thread…

如何获得 FHE Circuit Privacy

参考文献&#xff1a; [AJL12] Asharov G, Jain A, Lpez-Alt A, et al. Multiparty computation with low communication, computation and interaction via threshold FHE[C]. EUROCRYPT 2012: 483-501[DS16] Ducas L, Stehl D. Sanitization of FHE Ciphertexts[C]. EUROCRY…

连接和使用vCenter Server嵌入式vPostgres数据库

vCenter Server 早期支持内嵌(embedded)和外部(external)数据库,内嵌数据库就是vPostgres,基于VMware Postgres数据库(PostgreSQL数据库),外部数据库用的多的是Oracle数据库和SQL Server数据库。因为早期使用内嵌的PostgreSQL数据库只能用于小型环境,比如仅支持几十台…

EPAI手绘建模APP颜色、贴图、材质、样式

⑦ 颜色选择页面 1) 颜色环选色。 图 65 颜色选择器-颜色环 2) RGB选色。 图 66 颜色选择器-RGB 3) HSL选色。 图 67 颜色选择器-HSL 4) 国风颜色库选色。 图 68 颜色选择器-国风 5) CSS颜色库选色。 图 69 颜色选择器-CSS 6) 历史颜色&#xff1a;保存最近使用的多个颜色&…

Python设计模式 - 单例模式

定义 单例模式是一种创建型设计模式&#xff0c; 其主要目的是确保一个类只有一个实例&#xff0c; 并提供一个全局访问点来访问该实例。 结构 应用场景 资源管理&#xff1a;当需要共享某个资源时&#xff0c;例如数据库连接、线程池、日志对象等&#xff0c;可以使用单例模…

电路板/硬件---器件

电阻 电阻作用 电阻在电路中扮演着重要的角色&#xff0c;其作用包括&#xff1a; 限制电流&#xff1a;电阻通过阻碍电子流动的自由而限制电流。这是电阻最基本的功能之一。根据欧姆定律&#xff0c;电流与电阻成正比&#xff0c;电阻越大&#xff0c;通过电阻的电流就越小。…

OpenCV(六) —— Android 下的人脸识别

本篇我们来介绍在 Android 下如何实现人脸识别。 上一篇我们介绍了如何在 Windows 下通过 OpenCV 实现人脸识别&#xff0c;实际上&#xff0c;在 Android 下的实现的核心原理是非常相似的&#xff0c;因为 OpenCV 部分的代码改动不大&#xff0c;绝大部分代码可以直接移植到 …

Pytorch: nn.Embedding

文章目录 1. 本质2. 用Embedding产生一个10 x 5 的随机词典3. 用这个词典编码两个简单单词4. Embedding的词典是可以学习的5. 例子完整代码 1. 本质 P y t o r c h \mathrm{Pytorch} Pytorch 的 E m b e d d i n g \mathrm{Embedding} Embedding 模块是一个简单的查找表&#…

【多变量控制系统 Multivariable Control System】(3)系统的状态空间模型至转换方程模型(使用Python)【新加坡南洋理工大学】

一、转换式 二、系统的状态空间模型 由矩阵A, B, C, D给出&#xff1a; 三、由状态空间模型转化为转换方程模型 函数原型&#xff08;版权所有&#xff1a;scipy&#xff09;&#xff1a; def ss2tf(A, B, C, D, input0):r"""State-space to transfer functi…

【netty系列-03】深入理解NIO的基本原理和底层实现(详解)

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

SpringCloud Alibaba Nacos简单应用(三)

文章目录 SpringCloud Alibaba Nacos创建Nacos 的服务消费者需求说明/图解创建member-service-nacos-consumer-80 并注册到NacosServer8848创建member-service-nacos-consumer-80修改pom.xml创建application.yml创建主启动类业务类测试 SpringCloud Alibaba Nacos 创建Nacos 的…

鸿蒙通用组件Image简介

鸿蒙通用组件Image简介 图片----Image图片支持三种引用方式设置图片宽高设置图片缩放模式设置图片占位图设置图片重复样式设置图片插值效果 图片----Image Image主要用于在应用中展示图片 Image($r(app.media.app_icon)).width(150) // 设置宽.height(150) // 设置高.objectF…

使用docker-compose编排lnmp(dockerfile)完成wordpress

文章目录 使用docker-compose编排lnmp&#xff08;dockerfile&#xff09;完成wordpress1、服务器环境2、Docker、Docker-Compose环境安装2.1 安装Docker环境2.2 安装Docker-Compose 3、nginx3.1 新建目录&#xff0c;上传安装包3.2 编辑Dockerfile脚本3.3 准备nginx.conf配置文…

redis集群-主从机连接过程

首先从机需要发送自身携带的replid和offset向主机请求连接 replid&#xff1a;replid是所有主机在启动时会生成的一个固定标识&#xff0c;它表示当前复制流的id&#xff0c;当从机第一次请求连接时&#xff0c;主机会将自己的replid发送给从机&#xff0c;从机在接下来的请求…

docker部署nginx并配置https

1.准备SSL证书&#xff1a; 生成私钥&#xff1a;运行以下命令生成一个私钥文件。 生成证书请求&#xff08;CSR&#xff09;&#xff1a;运行以下命令生成证书请求文件。 生成自签名证书&#xff1a;使用以下命令生成自签名证书。 openssl genrsa -out example.com.key 2048 …

【Java探索之旅】内部类 静态、实例、局部、匿名内部类全面解析

文章目录 &#x1f4d1;前言一、内部类1.1 概念1.2 静态内部类1.3 实例内部类1.4 局部内部类1.5 匿名内部类 &#x1f324;️全篇总结 &#x1f4d1;前言 在Java编程中&#xff0c;内部类是一种强大的特性&#xff0c;允许在一个类的内部定义另一个类&#xff0c;从而实现更好的…

Vue3-element-plus表格

一、element-plus 1.用组件属性实现跳转路由 <el-menu active-text-color"#ffd04b" background-color"#232323" :default-active"$route.path" //高亮 text-color"#fff"router><el-menu-item index"/article/channe…
最新文章