0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Atari:AI发展史上的关键词

DPVg_AI_era 来源:未知 作者:李倩 2018-06-06 18:02 次阅读

Ted Dabney(左一)和Pong游戏机

雅达利(Atari)公司的联合创始人Ted 逝世。“雅达利”这个名字,是人工智能历史上一个不可忽视的关键词。

那个花了250美元创办Atari(雅达利)的人,Ted Dabney,上个月去世了。

Ted Dabney(全名SamuelF. "Ted"Dabney)可能没有与他一起创办雅达利的诺兰·布什内尔(Nolan Bushnell)出名,但当年风靡世界的经典游戏Pong,就是出自Ted Dabney等人之手。

Pong开创了街机视频游戏的历史,也让Atari成为一代游戏的巨人,甚至还吸引了乔布斯等人的加入。

更重要的是,Atari系列游戏不仅丰富了几代人的童年生活,在计算机史上也功不可没:DeepMind已经能够操作49款雅达利游戏,OpenAI强化学习游戏库中也包含了大量的雅达利游戏。

Atari:AI发展史上的关键词

“Atari”是AI发展史上一个不可绕过的关键词。AI达到乃至超越人类水平的领域,最开始便来自雅达利。

Ted Dabney帮助发明的Atari游戏Pong!,是被AI攻克的游戏的常客,你能在网上搜到很多构建玩Pong!的AI的教程

2013年12月,DeepMind宣布他们研发的AI玩Atari游戏Breakout(见下)超过了人类水平,这是DeepMind取得的首个突破之一。与Pong!类似,Breakout是一款单人的乒乓游戏,也即对着墙打乒乓。在Breakout当中,人类玩家或者AI,用横板(屏幕底部的红色粗线条)左右移动接住球(中间的红点),并用这个球撞击并消除屏幕上方像素构成的“墙”,消除完毕后过关。

Breakout,最先被AI攻克的Atari游戏之一

Breakout的动作简单,而且能即时得到反馈,非常适于神经网络,也因此,DeepMind的AI玩Breakout的成绩,是专业人类玩家能达到的最好成绩的十倍以上。

Atari游戏,蒙特祖玛的复仇(montezuma revenge)

而其他游戏就没有那么简单。在另一款Atari游戏“蒙特祖玛的复仇”(见上)中,目标是找到埋在充满危险机关的金字塔里的宝藏。要达到目标,玩家必须达成许多个次级的小目标,例如找到打开门的钥匙。

这个游戏的反馈也不像“Breakout”那么即时,比如在一个地方找到的钥匙,也有可能打开另一个地方的门。最终找到宝藏的奖励,是之前的数千次动作的结果。这意味着网络很难将原因和结果联系起来。与玩“Breakout”的突出表现相反,神经网络目前在“蒙特祖玛的复仇”游戏中进展艰难。

DeepMind的启示:智能应该完全从经验中学习

视频游戏对 AI 的作用并非只是作为现实世界的模拟。不同的游戏需要不同的技能,这一事实有助于研究人员理解智能问题。

不过,这又带来了一个难题——神经网络只能一次玩一个游戏。例如,为了玩“Breakout”,必须要忘掉玩“Pong!”时学会的所有知识。这种遗忘是人工神经网络本身的性质,也是人工神经网络与真正的人类大脑相区别的地方。人工神经网络通过在全系统调整组成它们的虚拟神经元之间连接的强度来学习。一旦改变了要学习的任务,旧的网络连接就会逐渐被重写。

但是,进展也在发生,DeepMind 在2017年3月份发表论文,称已经解决了DNN“灾难性遗忘”的问题,DeepMind研究员让网络就像真正的人类大脑一样,能一次掌握许多个游戏。这是迁移学习——在一个上下文中使用从另一个上下文学会的行为模式的能力——这是 AI 研究中的一个热门话题

DeepMind研究,学习两项任务过程的示意图:使用EWC算法的深层神经网络能够学习玩一个游戏,然后转移它学到的玩一个全新的游戏。

但即便掌握了迁移学习,构建可以用的人工智能仍然是一些零散的活动。研究人员真正希望得到的,是如何系统地进行这些活动的一种基本的理论。这种理论的一个候选,被称为具身认知(embodied cognition)的理论认为,智能应该完全从经验中学习,而不是试图将智能从头开始设计到一个程序里。

现实世界是最大的游戏场

DeepMind 的创始人Demis Hassabis 认为,重要的事情是得确保虚拟机器人不会作弊。它只能使用虚拟的传感器可以收集到的信息进行导航。如果一个机器人要在“蒙特祖玛的复仇”或者“侠盗猎车手”游戏中学习度过重重危险,它必须得自己弄明白自己在游戏环境里的位置,处理当时“看到”的事情,而不能问运行游戏的计算机它在那个坐标。这是 DeepMind 教程序学习玩游戏采用的方式。

在虚拟世界里的AI可以做很多事情,虚拟机器人是没有重量的,也没有各种部件,因此不需要维护。要改变它的技术参数也不需要拆开它,敲几下键盘就可以了。它的环境也可以轻松改变。一台计算机,一次就可以运行数千个这样的模拟,让大量虚拟机器人一次又一次地尝试任务,每次尝试都是在学习。这是一种大规模的测试,而且允许学习过程被监视和理解,根本就不使用真实的机器。

AI攻克的Atari游戏(部分,列表还在增加中……)

AI攻克的Atari游戏,以及其他视频游戏,还在不断扩展。最后,也是最重要的,视频游戏等虚拟世界,其中所发生的一切,都是现实世界的预演。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26431

    浏览量

    264036
  • 人工智能
    +关注

    关注

    1776

    文章

    43841

    浏览量

    230590

原文标题:Atari联合创始人去世,为什么游戏对AI很重要?

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电阻柜的发展史

    电阻柜发展史
    的头像 发表于 03-08 15:22 116次阅读

    测测这10个AI关键词你清楚几个?第4个今年最火

    原文标题:测测这10个AI关键词你清楚几个?第4个今年最火 文章出处:【微信公众号:微软科技】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 12-21 08:15 264次阅读
    测测这10个<b class='flag-5'>AI</b><b class='flag-5'>关键词</b>你清楚几个?第4个今年最火

    #2023,你的 FPGA 年度关键词是什么? # PWM模块更新

    之前的因为一些问题发的code有点问题,这次把更新之后code发了出来,虽然也不是很完善但是初步还是可以用的; 对应的code如下: `timescale 1ns / 1ps modulecreat_PWM ( inputwireclk,//系统时钟为100MHz inputwirerst,//系统复位 inputwirekey_flag1,//占空比上调 inputwirekey_flag2,//占空比下调 inputwirekey_flag3,//频率上调 inputwirekey_flag4,//频率下调 output regPWM ); //PWM波形频率选择 reg [1:0] Frequency_seting; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) Frequency_seting <= 2\'b00; else if( (Frequency_seting == 2\'b11) && (key_flag3==1\'b1) ) Frequency_seting <= 2\'b00; else if( (Frequency_seting == 2\'b00) && (key_flag4==1\'b1) ) Frequency_seting <= 2\'b11; else if( key_flag3==1\'b1 ) Frequency_seting <= Frequency_seting + 1\'b1; else if( key_flag4==1\'b1 ) Frequency_seting <= Frequency_seting - 1\'b1; else Frequency_seting <= Frequency_seting; //PWM波形的频率设定 reg [23:0] Frequency_CNT_MAX; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) Frequency_CNT_MAX <= 24\'d9_999; else case( Frequency_seting ) 2\'b00 : Frequency_CNT_MAX <= 24\'d9_999; 2\'b01 : Frequency_CNT_MAX <= 24\'d99_999; 2\'b10 : Frequency_CNT_MAX <= 24\'d999_999; 2\'b11 : Frequency_CNT_MAX <= 24\'d9_999_999; default : Frequency_CNT_MAX <= 24\'d9_999; endcase //PWM频率生成计数器模块 reg [23:0] counter; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) counter <= 0; else if( counter == Frequency_CNT_MAX) counter <= 0; else counter <= counter + 1\'b1; //占空比调节模块,步进为10% reg [23:0] duty_counter; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) duty_counter <= Frequency_CNT_MAX/2; else if( key_flag1 == 1\'b1 ) duty_counter <= duty_counter + (Frequency_CNT_MAX/10); else if( key_flag2 == 1\'b1 ) duty_counter <= duty_counter - (Frequency_CNT_MAX/10); else duty_counter <= duty_counter; //生成PWM always @(posedge clk or negedge rst) if( rst == 1\'b0 ) PWM <= 1\'b0; else if( duty_counter <= counter ) PWM <= 1\'b1; else PWM <= 1\'b0; endmodule 对应的测试用的testbench如下: `timescale 1ns/1ns module tb_creat_PWM(); //****************** Parameter and Internal Signal *******************// //wire define wirePWM; //reg define reg clk; reg rst; reg key_flag1; reg key_flag2; reg key_flag3; reg key_flag4; //***************************** Main Code ****************************// initial begin clk = 1\'b1; rst <= 1\'b0; key_flag1 <= 1\'b0; key_flag2 <= 1\'b0; key_flag3 <= 1\'b0; key_flag4 <= 1\'b0; #201; rst <= 1\'b1; #200; key_flag1 <= 1\'b1; #100; key_flag1 <= 1\'b0; #20000000; key_flag1 <= 1\'b1; #100; key_flag1 <= 1\'b0; #20000000; #20000000; $stop; end // creator clk always #10 clk <= ~clk; //*************************** Instantiation **************************// creat_PWMcreat_PWM_inst ( .clk ( clk), .rst ( rst), .key_flag1 ( key_flag1 ), .key_flag2 ( key_flag2 ), .key_flag3 ( key_flag3 ), .key_flag4 ( key_flag4 ), .PWM ( PWM) ); endmodule 对应的原始code中的参数如果修改一下是可以大幅缩短仿真时间,但是一时没有想起对应的修改模块内部变量的方法,后面找到后再进行补充。 写的还是感觉比较差劲,只能说说慢慢进步吧,自己也是自学不久。
    发表于 12-12 10:47

    #2023,你的 FPGA 年度关键词是什么? # PWM模块基础设计

    由于今天连续多次无法发布该文章,心态真的是崩了,由于基础的PWM比较简单,此次先给大家展示个半成品,完整状态对应的PWM频率、占空比均可调节,对应的模块结构图如下: 对应的基本code如下: modulecreat_PWM ( inputwireclk, //系统时钟为50MHz inputwirerst, inputwirekey_flag1, inputwirekey_flag2, output regPWM ); parameter Frequency_CNT_MAX = 16\'d49_999; //输出PWM为1KHz,1ms=5000*20ns //PWM频率生成计数器模块 reg [15:0] couter; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) couter <= 0; else if( couter == Frequency_CNT_MAX ) couter <= 0; else couter <= couter + 1\'b1; //占空比调节模块 reg [15:0] duty_counter; always @(posedge clk or negedge rst) if( rst == 1\'b0 ) duty_counter <= 16\'d24_999; else if( key_flag1 == 1\'b1 ) duty_counter <= duty_counter + 16\'d49; else if( key_flag2 == 1\'b1 ) duty_counter <= duty_counter - 16\'d49; else duty_counter <= duty_counter; //生成PWM always @(posedge clk or negedge rst) if( rst == 1\'b0 ) PWM <= 1\'b0; else if( duty_counter <= Frequency_CNT_MAX ) PWM <= 1\'b1; else PWM <= 1\'b0; endmodule 由于是第一次在电子发烧友上发文章,体验感觉真的不太友好,希望能够把文章的自动保存功能给加上,否则没有备份真的让人不开心
    发表于 12-06 21:56

    #2023,你的 FPGA 年度关键词是什么? #

    FPGA 年度关键词,我的想法是“标准化”;今年的工作中遇到了不少同事的issues,本身都是小问题或者很细节的东西但是却反复出现问题,目前想到的最好的办法是做好设计规则的标准化才能避免,不知道大家有没有更好的建议?
    发表于 12-06 20:31

    你不知道的FPC,它的发展史竟然是这样的!

    你不知道的FPC,它的发展史竟然是这样的!
    的头像 发表于 11-15 10:48 451次阅读

    打卡有好礼!FPGA开发者技术社区每日打卡活动来啦!!

    区,大步迈向FPGA新发展新力量! FPGA技术社区每日有奖打卡正式开启,参与每日打卡即可获得开发板福利~ 活动要求: 一、每月指定一个打卡关键词,回帖打卡需加上本月打卡关键词 例如
    发表于 11-06 18:28

    AT32上实现关键词语音识别(KWS)

    AT32上实现关键词语音识别(KWS)本文基于此开源模型和代码,在AT32 MCU 上对KWS 效果进行展示。
    发表于 10-26 07:45

    OpenHarmony AI框架开发指导

    server端加载插件是采用dlopen方式,只支持在/usr/lib路径进行,因此插件在编译so时,需要在编译配置文件中指定输出路径为/usr/lib。 2、命名规范 SDK命名规则:领域_关键词&
    发表于 09-19 18:54

    关键词分析(2)#Python数据分析

    编程python
    未来加油dz
    发布于 :2023年09月02日 18:29:02

    DOS/Windows 操作系统的发展史

    来说说微软的DOS和Windows系列的发展史
    的头像 发表于 08-01 18:41 1014次阅读
    DOS/Windows 操作系统的<b class='flag-5'>发展史</b>

    中国信通院发布“2023云计算十大关键词

    ”,解读云计算产业发展重要趋势。十大关键词分别是:应用现代化、一云多芯、分布式云、低/无代码、软件工程、系统稳定性、云原生安全、云优化治理、中小企业上云、超算/智算服
    的头像 发表于 07-31 23:44 459次阅读
    中国信通院发布“2023云计算十大<b class='flag-5'>关键词</b>”

    . 基于关键词的内容可视化#大数据

    大数据
    未来加油dz
    发布于 :2023年07月18日 13:49:10

    TinyML变得简单:关键词识别(KWS)

    电子发烧友网站提供《TinyML变得简单:关键词识别(KWS).zip》资料免费下载
    发表于 07-13 10:20 2次下载
    TinyML变得简单:<b class='flag-5'>关键词</b>识别(KWS)

    Arduino Atari朋克合成器

    电子发烧友网站提供《Arduino Atari朋克合成器.zip》资料免费下载
    发表于 06-30 11:14 0次下载
    Arduino <b class='flag-5'>Atari</b>朋克合成器