分享一篇关于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.rhkb.cn/news/319401.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter笔记:美工设计.导出视频到RIVE

Flutter笔记 美工设计.导出视频到RIVE - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28…

目标跟踪—卡尔曼滤波

目标跟踪—卡尔曼滤波 卡尔曼滤波引入 滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。是根据观察某一随机过程的结果,对另一与之有关的随机过程进行估计的概率理论与方法。 历史上最早考虑的是维纳滤波,后来R.E.卡…

原生IP和住宅IP有什么区别?

原生IP和住宅IP在多个方面存在显著的区别。 从定义和来源来看,原生IP是指未经NAT(网络地址转换)处理的真实、公网可路由的IP地址,它直接从互联网服务提供商(ISP)获得,而不是通过代理服务器或VP…

【MATLAB】解决不同版本MATLAB出现中文乱码的问题

解决不同版本MATLAB出现中文乱码的问题 方法1:更改保存类型为GBK方法2:记事本打开方法3:Notepad参考 低版本matlab打开高版本Matlab的.m文件时,出现中文乱码问题。比如下图: 出现原因为: 编码格式不统一问…

批量抓取某电影网站的下载链接

思路: 进入电影天堂首页,提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面,提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

Ansys Speos|进行智能手机镜头杂散光分析

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光,是在光学设计中无意产生的,会降低相机系统的光学性能。 在本例中,光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计,并使用…

A Bug‘s Life (并查集)

//新生训练 #include <iostream> #include <algorithm> using namespace std; const int N 5000; int p[N], sz[N]; int n, m; int find(int x) {if (p[x] ! x)p[x] find(p[x]);return p[x]; } int main() {int T;scanf("%d", &T);for (int k 1; …

RabbitMQ之顺序消费

什么是顺序消费 例如&#xff1a;业务上产生者发送三条消息&#xff0c; 分别是对同一条数据的增加、修改、删除操作&#xff0c; 如果没有保证顺序消费&#xff0c;执行顺序可能变成删除、修改、增加&#xff0c;这就乱了。 如何保证顺序性 一般我们讨论如何保证消息的顺序性&…

Flask教程3:jinja2模板引擎

文章目录 模板的导入与使用 模板的导入与使用 Flask通过render_template来实现模板的渲染&#xff0c;要使用这个方法&#xff0c;我们需要导入from flask import rander_template&#xff0c;模板中注释需放在{# #}中 模板的第一个参数为指定的模板文件名称&#xff0c;如自定…

gige工业相机突破(一,准备资源)

gige相机能不能绕开相机生产商提供的sdk&#xff0c;而直接取到像&#xff1f; 两种办法&#xff0c;第一&#xff0c;gige vision2.0说明书&#xff0c;第二&#xff0c;genicam 首先你会去干什么事&#xff1f; 好几年&#xff0c;我都没有突破&#xff0c;老虎吃天&#x…

鸿蒙开发仿咸鱼TabBar

鸿蒙开发自定义TabBar&#xff0c;实现tabBar 上中间按钮凸起效果 第一步、定义数据模型 export default class TabItemData{defaultIcon: ResourceselectedIcon: Resourcetitle: stringisMiddle: booleanconstructor(defaultIcon:Resource, selectedIcon:Resource, title:st…

5分钟速通大语言模型(LLM)的发展与基础知识

✍️ 作者&#xff1a;哈哥撩编程&#xff08;视频号同名&#xff09; 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 &#x1f3c6; 推荐专栏&#xff1a; &#x1f3c5; 程序员&#xff1a;职场关键角色通识宝…

Rust web简单实战

一、使用async搭建简单的web服务 1、修改cargo.toml文件添加依赖 [dependencies] futures "0.3" tokio { version "1", features ["full"] } [dependencies.async-std] version "1.6" features ["attributes"]2、搭…

Java发送请求-http+https的

第一步&#xff1a;建议ssl连接对象&#xff0c;信任所有证书 第二步&#xff1a;代码同时支持httphttps 引入源码类 是一个注册器 引入这个类&#xff0c;和它的方法create 注册器&#xff0c;所以对http和https都进行注册&#xff0c;参数为id和item&#xff0c;其中http的…

WebAssembly 入门教程 c++、python编译wasm

WebAssembly 入门 了解 wasm 使用场景&#xff0c;复杂对象传递和经验法则。 简介 WebAssembly 是一种新的编码方式&#xff0c;可以在现代的网络浏览器中运行。它是一种低级的类汇编语言&#xff0c;具有紧凑的二进制格式&#xff0c;可以接近原生的性能运行&#xff0c;并…

c#学习基础1

一、复杂数据类型 1&#xff09;概述 2&#xff09;枚举 1.基本概念 枚举是一个比较特别的存在&#xff0c;它是一个被命名的整形常量的集合&#xff0c;一般用它来表示状态&#xff0c;类型等 1.1申明枚举和申明枚举变量 1.2申明枚举语法 2.在哪里申明枚举 3.枚举的使用 4…

【网络编程下】五种网络IO模型

目录 前言 一.I/O基本概念 1.同步和异步 2.阻塞和非阻塞 二.五种网络I/O模型 1.阻塞I/O模型 2.非阻塞式I/O模型 ​编辑 3.多路复用 4.信号驱动式I/O模型 5. 异步I/O模型 三.五种I/O模型比较​编辑 六.I/O代码示例 1. 阻塞IO 2.非阻塞I/O 3.多路复用 (1)select …

Llama 3 安装使用方法

Llama3简介&#xff1a; llama3是一种自回归语言模型&#xff0c;采用了transformer架构&#xff0c;目前开源了8b和70b参数的预训练和指令微调模型&#xff0c;400b正在训练中&#xff0c;性能非常强悍&#xff0c;并且在15万亿个标记的公开数据进行了预训练&#xff0c;比ll…

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(…

Postman的一些使用技巧

Postman 是一个流行的 API 开发工具&#xff0c;用于设计、开发、测试、发布和监控 API。在现代web开发中使用非常广泛。后端开发必备而且必会的工具。 目录 1.配置环境变量 2.动态变量 3.脚本 4.测试 5.模拟 6.监控 7.集合运行器 8.响应保存 9.请求历史 10.同步请求…