设定一套规则和目标当成环境,然后让里面的程序不停“突变”并遭受环境选择,从而向目标不断前进。
其实也不算作弊,人家是很精准地满足了你设定的规则,问题就是人制定规则的时候难免有漏洞。人类自己因为运算能力和思维定势,很难看出漏洞,可是对一大批方法同时进行试错和选择,漏洞就很容易被逮着了……在经济学上有一个概念叫古德哈特原则很好地形容了这个现象:“如果你把一个指标拿出来当成评价标准,这个指标就失效了。”
算法利用了物理模拟器的溢出漏洞,搞出了一个特别巨大的力,让溢出被判定为0,从而获得了完美得分。(Feldt, 1998
程序发现不停原地转圈反复命中同一个目标要比抵达终点的得分更高。(Amodei & Clark (OpenAI), 2016
程序发现有毒无毒蘑菇的图片是交替展现的,所以直接按照这个来分类,没有从图片里学到一丁点东西。(Ellefsen et al, 2015
程序演化出的生物长得特别特别高,在跌倒的过程中获得很高速度。(Sims, 1994
程序本应该寻找碳原子较低能量的排列方式,但它找到了物理模型的一个bug,把所有的原子都叠在了同一个地方,成功获得了最低能量。(Feldt, 1998
起初的衡量标准是模拟生物能抵达的最高点,于是程序演化出的生物长成一根杆子而抵达这个点。
一根重心很高的杆子,依靠翻倒来把最低点翻上去。(Krcah, 2008)
这个机器人只有向左、向右和前进三个指令,目标是跟着线条走,有一段线条是曲线,没法完美追踪。
程序本来应该把回路做成振荡器,实际上它做了一个收音机,从周围电脑接受振荡信号。(Bird & Layzell, 2002
有一项指标是让松饼尽可能长时间不掉在地上,机器人发现最好的办法是把松饼用尽全力抛到最高处。(U
模拟生物的环境里做数值积分使用的是一个简单的欧拉算法,程序发现快速运动的时候这个算法的误差会逐渐积累,因此它通过高速颤动肢体就获得了免费的能量。(Sims, 1994
程序实际检测的不是X光片的内容而是拍摄它使用的机器,因为它“发现”病重的病人更可能在特定的医院使用特定的机器拍片。(Zech et al, 2018)
因为抓握成功与否是用摄像头判断的,所以机械手把自己移动到摄像头和目标物体之间,假装抓住了。(Christiano et al, 2017
修bug程序把所有被维修的排序算法都修成空的,因为衡量指标是“目标算法输出一个排好顺序的列表”,而空列表都是排好顺序的列表。(Weimer, 2013
为了解决上面那个问题,把“维修目标”储存在一个文本文档里,如果输出的结果和目标文档的内容一致就被认为是修好了。
在闯过第一关后立刻自杀,这样既取得了第一关的胜利又不会在第二关失败。(Saunders et al, 2017
自己给扫地机器人编了个程序,鼓励它加速,但不鼓励它撞到东西触发撞击感受器。
程序发现照片里皮肤病变的边上如果摆了一把尺子,那么这个病变就更可能是恶性的。(Andre Esteva et al, 2017
踢足球机器人碰触到球有奖励,所以它在抢到球之后开始高速振动,从而在短时间内尽可能多次地碰触到球(Ng et al, 1999
因为衡量指标是开快车并且不撞到东西,所以自驾车不停地高速转圈圈。(Udacity, 2017
程序发现可以在远离棋盘的地方画圈,对手试图计算的时候会导致内存溢出并死机。(Lehman et al (UberAI), 2018
一个实验里研究者不希望模拟生物的“生育率”增加,所以每出现一个突变的时候就把模拟生物放入测试环境里,如果生育率增加了就把该生物杀死。
程序发现让游戏崩溃就可以让自己不被灭掉,所以好几个程序各自找到了让游戏出bug崩溃的办法。(Salge et al, 2008
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
请输入你的在线分享代码
额 本文暂时没人评论 来添加一个吧
发表评论