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

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

3天内不再提示

几十个令人惊讶的“机器进化”趣闻其中几则典型案例分享

zhKF_jqr_AI 来源:未知 作者:李倩 2018-04-16 15:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

进化是一切复杂且精妙的适应性行为的源泉,然而这种能力并不只是自然界生物的特权,再计算机环境下的人造物体也展现出了令人惊讶的“算法进化过程”。于是,来自美国、英国、法国等30多个学校和机构的研究人员们收集了几十个令人惊讶的“机器进化”趣闻,将其编写成论文。研究者Janelle Shane通过阅读选出了几则典型案例与大家分享,以下是对其进行的编译。

机器学习算法不像其他计算机程序。我们通常说的“编程”是指人类程序员明确告诉计算机做什么。在机器学习中,人类程序员仅仅给与算法需要解决的问题,让算法通过不断试错找到解决方案。

这种方法带来了不错的效果,机器学习算法也广泛地用于人脸识别、外语翻译、金融建模、图像识别、广告投放等领域。机器学习对互联网的影响已经十分广泛了,如果你每天都接触互联网,对这个词一定不陌生。

但是,机器学习算法并不总是那么有效。有时程序员会觉得算法确实没毛病,但是仔细检查后发现算法解决的问题根本不是原本要解决的那个。例如,我之前看到一个图像识别算法,它本应该识别其中的“羊”,但是却把“草地”当做了目标对象,认为“空空如也的绿地”是它的“羊”。

当机器学习算法不按照剧本解决问题时,程序员们有的时候会有点抓狂,但是大多数时候还算顺利。

所以,今年,一组来自世界各地的研究人员写了一篇有趣的论文,他们挑选了几十个“非常令人好奇和惊讶”的研究。这篇文章非常值得一读,但由于文章太长,我只挑选了其中最喜欢的几个案例。

“曲线”获胜

我们都知道,许多研究都喜欢用模拟生物研究如何生成不同形式的运动,或者怎样能让机器人生成新步态。

但是,如果你会翻滚,为啥还要用走的呢?在一个案例中,研究人员想让模拟机器人尽可能快地移动。但是他们并没有给机器人配备“双腿”,而是把它设计成一个高高的“塔”,这当然会倒下了……但是一些机器人就从中学会了“翻滚前进”。

没有腿的机器人摔倒了

如果能用撑杆跳,为啥还直接跳跃?另一个模拟机器人的案例是,研究人员想让它学会跳跃。但是程序员最初设计的跳跃高度是最高的那个模块。所以……机器人学会了让自己长得非常高。为了解决这个问题,程序员又将跳跃高度定义成最初最低的那个模块。然而,机器人因此“进化出”了一条细长的“腿”,伸向空中……

机器人用“长腿”前进,而不跳跃

黑掉矩阵,获取资源

潜在的能量并不是这些模拟机器人学会利用的唯一能量源。在研究中我们发现,一旦能量源可用,机器人的某个部分就会进化去使用它。

将浮点舍入误差作为能量源:在一次模拟中,机器人发现在计算力时的少量舍入误差可以作为额外运动时的能量。由此它们学会了快速地开关,以产生大量可免费利用的能量。当机器人以极快的速度游泳时,程序员们注意到了这个问题。

在碰撞地板时收集能量:另一个模拟实验也出现了相似的问题,机器人学会在碰撞地板时运用其中的数学问题。如果它们故意让自己倒地(首先它们会学会让自己实现这个动作),那么碰撞探测器会判断它们不应该摔倒,然后立即将其向上弹起。于是机器人学会在地板上快速地振动,通过反复碰撞产生额外的能量。

机器人在地板上振动向前行走

反弹飞行:在另一项实验中,跳跃式机器人发现了另一种碰撞检测bug。通过将身体的两部分碰撞到一起,它们可以推动自己冲向更高的地方。如果这项成果得以在现实中实现,那么商业航空将发生巨大变化。

发现雅达利游戏中的bug:计算机游戏算法非常善于发现矩阵故障,人类通常会用这类故障进行高速裕兴。一种用于运行旧式雅达利游戏Q*bert的算法发现了一个前所未知的bug,即它可以在某个级别即将结束时执行一系列非常具体的动作,而不是升级到下个级别。这时所有的平台会快速闪烁,玩家可以积累大量分数。

Doom的算法还发现了一种特殊的动作组合,可以阻止敌人发射燃烧的火球。但是它只能在算法的梦幻版中发挥作用。如果你想玩梦幻版,可以点击这个网址:worldmodels.github.io

Q*bert玩家积累到了一个反常的分数,但它并没有做什么努力

运用浮点溢出使飞机降落:在另一个更加诡异的案例中,算法原本是用来计算如何给一架即将降落在航空母舰上的飞机施加一个最小的力。结果它发现,如果是加一个很大的力,它就会使该项目的内存溢出。虽然飞行员会因此丧生,但是系统却得到了最完美的分数。

破坏性地解决问题

有一些类似列表排序算法的温和方法,也能以非常邪恶的方式解决问题。

例如,有一种算法本身是用来对数字列表排序的,但是它却学会了删除列表,这样一来它在技术上就不是无序的了。

另一种算法应该是用于缩小它自己的答案和标准答案之间的差异,但它学会了找出答案存储的位置并删除了它,所以它就会得到一个完美的分数。(解决小林丸的测试)

1997年,几名程序员创建了一个算法,可以远程在无限大的棋盘上互相玩井字游戏。其中一个程序员并没有涉及算法的策略,而是让它们自己摸索获胜的方法。令人惊讶的是,算法开始赢得所有的游戏。事实证明,该算法的策略是将其置于非常远的地方,以便当其对手的计算机试图扩展棋盘时,巨大的棋盘会因内存消耗殆尽而崩溃。(如何在井字游戏中获胜)

结论

长久以来,人们都对机器进化存在误解,认为它们只不过在模仿。但是这些实验表明,当机器学习解决问题时,它可以产出非常巧妙甚至不可思议的解决方案。

生物进化也是如此,就像许多生物学家说的,生物体可以找到最奇怪的解决方法,以及利用最奇怪的能量源。所以作为程序员,我们必须非常小心,因为算法正在解决我们想要解决的问题。如果还有另外解决问题的方法,机器学习可能会很快地找到它。

但是也不必过于担心,机器学习是不会让人类灭亡的。如果“做一个非常美味的蛋糕”可以解决问题,并且比“毁灭人类”简单的话,机器学习一定会选择做蛋糕。

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

    关注

    213

    文章

    30580

    浏览量

    219530
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136230

原文标题:注意!你的算法正在偷偷进化——机器进化趣闻集锦(附论文)

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Type-C接口Displayport Interpair skew的测试原理和方法

    有客户反馈DIsplayport HBR测试中Interpair skew的测量项目fail得比较异常,就是固定的某条lane与其他lane之间的测试值不通过,并且偏差很大,都到几十个UI了,并且固定在某个通道,但是又没有头绪为什么。
    的头像 发表于 11-30 10:29 853次阅读
    Type-C接口Displayport Interpair skew的测试原理和方法

    功能安全测试典型问题三

    北汇信息作为国内外众多OEM的第三方认证测试服务商,积累了大量的测试服务经验,分享三功能安全测试典型问题。
    的头像 发表于 10-20 08:42 1523次阅读
    功能安全测试<b class='flag-5'>典型</b>问题三<b class='flag-5'>则</b>

    车载以太网测试典型问题三

    北汇信息作为国内外众多OEM的第三方认证测试服务商,积累了大量的测试服务经验,分享三车载以太网测试典型问题。
    的头像 发表于 10-11 15:42 1755次阅读
    车载以太网测试<b class='flag-5'>典型</b>问题三<b class='flag-5'>则</b>

    STM32H725VGH3时钟通过tim3采集频率,在不同的压强下会与正确的频率相差几十到200hz左右,为什么?

    STM32H725VGH3芯片内部时钟通过tim3采集频率,在不同的压强下,会与正确的频率相差几十到200hz左右,同时输出的频率非常的不稳定,会有赫兹到几百赫兹的波动,而通过机器采集到的频率是很
    发表于 07-29 09:48

    某老板上了码垛机器人后解放了劳动力一年回本省出了几十个w

    自动化
    jf_73817765
    发布于 :2025年07月12日 10:24:40

    继电器不能弹开是什么原因?想找师傅解惑。

    我有几十个取电开关,都是继电器不能弹开,导致开关不能正常使用。 单独拆下继电器,施加一12伏电压,继电器正常能弹开。 我把4.000的晶振换新,以前有两开关,换新晶振就没问题了,但是后面的
    发表于 06-08 19:37

    Agilent安捷伦DSO-X 91604A示波器开机报错维修步骤详解

    近期北京某院校送修一台Agilent安捷伦DSO-X 91604A示波器,报修故障是开机有几十个报错,PLL工作不正常,采集板报错等,基线出不来,也没法测试。接下来安泰测试科技为大家分享本维修案例。
    的头像 发表于 05-26 17:52 637次阅读
    Agilent安捷伦DSO-X 91604A示波器开机报错维修步骤详解

    成功设计符合EMC/EMI设计要求的十个技巧

    成功设计符合EMC/EMI测试要求的十个技巧1.保持小的环路当存在一磁场时,一由导电材料形成的环路充当了天线,并且把磁场转换为围绕环路流动的电流。电流的强度与闭合环路的面积成正比。因此,应尽
    发表于 04-15 13:46

    慧明电子亮相2025新视听全国巡展济南站

    近日,备受瞩目的2025新视听全国巡展济南站在鲁能贵和洲际酒店顺利举行。本次展会吸引了几十个专业视听品牌齐聚一堂,共同展示了最新的音视频技术和产品,为山东地区的观众带来了一场别开生面的视听盛宴。
    的头像 发表于 03-18 10:32 1069次阅读

    LSM6DS3TRC读取加速度数据不对是哪里的问题?

    LSM6DS3TRC初始化后,读取加速度(理论应是 0,0,1000),得出的加速度慢慢上升变化,读取几十个(每次读取都是判断XDLA位是否为1)后的加速度值才是正确的。这个什么原因?如附图是慢慢变化上升的加速度(只打印了Z轴的)。
    发表于 03-13 06:10

    STM32U083进行外部计数只能计数8000多一点,为什么?

    背景: 使用LPTIME1进行计数。 LPTIMER配置如下: 时钟配置如下: 使用过LSE;PCLK配置,计数还是一样的 实际计数只能计数到8000多;使用信号发生器产生9KHz脉冲,计数就变成几十个了。 清除count的值是通过同步清除的 请问大佬们,有遇到这样的问题吗?
    发表于 03-12 06:21

    ADS1248增益设1之外的数值时,转换结果不对是哪里出了问题?

    增益升高的比例。 请问这是什么原因? ADS工作时采用内部参考2.048V,输入信号大概在mV到几十mV之间。
    发表于 02-07 06:41

    用ADS1246采样信号遇到的问题求解答

    是采样MV信号会跳2字,但是采样PT100信号会跳几十个字,我换了一克AD芯片,采样出来的值就不跳,我想问下只是信号的问题,还是AD的问题
    发表于 01-24 06:33

    参考ADS1274EVM电路设计了一块ADS1274的数据采集板,SPI始终读不出数据是怎么回事?

    外部中断等待DYDR变低,延时几十个微秒; 2、SPI发送缓冲器写1Byte数据(建立SPI时序),再读SPI接收缓冲器,读回值(接收缓冲器)始终为0。
    发表于 01-23 06:07

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    中取得了令人瞩目的效果。 阅读感悟 从传统的手动编程到借助大模型实现智能化、自主化,从单一模态的交互到多模态信息的深度融合,再到扩散模型的应用,机器人控制技术正在以惊人的速度进化。这不仅让机器
    发表于 12-29 23:04