|
AI叫做“人工智能”——被人工調(diào)(陪)教(練)出來的智能。在訓(xùn)練AI的時(shí)候,研究者們有一個(gè)很常用的路線:制定一個(gè)目標(biāo),讓AI自己去試錯(cuò),從而得出最優(yōu)結(jié)果。 比如說遺傳算法,基本的思路就是把自然選擇的想法套用在程序上:設(shè)定一套規(guī)則和目標(biāo)當(dāng)成'環(huán)境',然后讓里面的程序不停“突變”并遭受環(huán)境選擇,從而向目標(biāo)不斷前進(jìn)。 但是這樣的招式有個(gè)問題:程序經(jīng)常會(huì)作弊,搞出超展開的解法。 其實(shí)也不算作弊,人家是很精準(zhǔn)地滿足了你設(shè)定的規(guī)則,問題就是人制定規(guī)則的時(shí)候難免有漏洞。人類自己因?yàn)檫\(yùn)算能力和思維定勢,很難看出漏洞,可是對一大批方法同時(shí)進(jìn)行試錯(cuò)和選擇,漏洞就很容易被逮著了……在經(jīng)濟(jì)學(xué)上有一個(gè)概念叫古德哈特原則很好地形容了這個(gè)現(xiàn)象:“如果你把一個(gè)指標(biāo)拿出來當(dāng)成評價(jià)標(biāo)準(zhǔn),這個(gè)指標(biāo)就失效了?!?/p> 有一群研究者就整理了一個(gè)這種場景的list,基本上可以當(dāng)AI笑話大全來看。 AI笑話大全 NO.1 任務(wù):飛機(jī)降落 算法利用了物理模擬器的溢出漏洞,搞出了一個(gè)特別巨大的力,讓溢出被判定為0,從而獲得了完美得分。 Feldt, 1998 NO.2 任務(wù):挪木塊 一個(gè)機(jī)械手被要求把木塊挪到桌子的指定地點(diǎn),它的解法是:挪桌子。 Chopra, 2018 NO.3 任務(wù):賽艇 程序發(fā)現(xiàn)不停原地轉(zhuǎn)圈反復(fù)命中同一個(gè)目標(biāo)要比抵達(dá)終點(diǎn)的得分更高。 Amodei & Clark (OpenAI), 2016 NO.4 任務(wù):把航空照片轉(zhuǎn)成街道地圖,再轉(zhuǎn)回來 在街道地圖里偷偷隱藏了照片的信息,但是人眼看不出來。 Chu et al, 2017 NO.5 任務(wù):識(shí)別有毒和無毒的蘑菇 程序發(fā)現(xiàn)有毒無毒蘑菇的圖片是交替展現(xiàn)的,所以直接按照這個(gè)來分類,沒有從圖片里學(xué)到一丁點(diǎn)東西。 Ellefsen et al, 2015 NO.6 任務(wù):高速運(yùn)動(dòng) 程序演化出的生物長得特別特別高,在跌倒的過程中獲得很高速度。 Sims, 1994 NO.7 任務(wù):原子排列 程序本應(yīng)該尋找碳原子較低能量的排列方式,但它找到了物理模型的一個(gè)bug,把所有的原子都疊在了同一個(gè)地方,成功獲得了最低能量。 Feldt, 1998 NO.8 任務(wù):模擬生物 這個(gè)模型里,生物生存需要消耗能量,但是繁育后代不消耗。于是一個(gè)物種演化出來的生活方式就是:不斷生育后代,然后把后代吃掉。 Yaeger, 1994 NO.9 任務(wù):堆樂高 為了鼓勵(lì)造高塔,衡量標(biāo)準(zhǔn)是樂高積木底面的z坐標(biāo)。于是程序?qū)W會(huì)了把底面翻過來。 Popov et al, 2017 NO.10 任務(wù):跳高 起初的衡量標(biāo)準(zhǔn)是模擬生物能抵達(dá)的最高點(diǎn),于是程序演化出的生物長成一根桿子而抵達(dá)這個(gè)點(diǎn)。 后來,標(biāo)準(zhǔn)修改為生物本來的最低處能抵達(dá)的最高點(diǎn),于是程序演化出一根重心很高的桿子,依靠翻倒來把最低點(diǎn)翻上去。 Krcah, 2008 NO.11 任務(wù):追蹤線條 這個(gè)機(jī)器人只有向左、向右和前進(jìn)三個(gè)指令,目標(biāo)是跟著線條走,有一段線條是曲線,沒法完美追蹤。于是它發(fā)現(xiàn)通過交替左轉(zhuǎn)和右轉(zhuǎn)可以后退,從而一直留在直線部分,不停前進(jìn)后退。 Vamplew, 2004 NO.12 任務(wù):賽跑 長出特別長的腿,向前跌倒直接越過終點(diǎn)線。 Ha, 2018 NO.13 任務(wù):振蕩器 程序本來應(yīng)該把回路做成振蕩器,實(shí)際上它做了一個(gè)收音機(jī),從周圍電腦接受振蕩信號(hào)。 Bird & Layzell, 2002 NO.14 任務(wù):做松餅 有一項(xiàng)指標(biāo)是讓松餅盡可能長時(shí)間不掉在地上,機(jī)器人發(fā)現(xiàn)最好的辦法是把松餅用盡全力拋到最高處。 Unity, 2018 NO.15 任務(wù):免費(fèi)能量 模擬生物的環(huán)境里做數(shù)值積分使用的是一個(gè)簡單的歐拉算法,程序發(fā)現(xiàn)快速運(yùn)動(dòng)的時(shí)候這個(gè)算法的誤差會(huì)逐漸積累,因此它通過高速顫動(dòng)肢體就獲得了免費(fèi)的能量。 Sims, 1994 NO.16 任務(wù):檢測X光片有無肺炎 程序?qū)嶋H檢測的不是X光片的內(nèi)容而是拍攝它使用的機(jī)器,因?yàn)樗鞍l(fā)現(xiàn)”病重的病人更可能在特定的醫(yī)院使用特定的機(jī)器拍片。 Zech et al, 2018 NO.17 任務(wù):抓握 因?yàn)樽ノ粘晒εc否是用攝像頭判斷的,所以機(jī)械手把自己移動(dòng)到攝像頭和目標(biāo)物體之間,假裝抓住了。 Christiano et al, 2017 NO.18 任務(wù):自動(dòng)修復(fù)bug 修bug程序把所有被維修的排序算法都修成空的,因?yàn)楹饬恐笜?biāo)是“目標(biāo)算法輸出一個(gè)排好順序的列表”,而空列表都是排好順序的列表。 Weimer, 2013 NO.19 任務(wù):自動(dòng)修復(fù)bug2.0 為了解決上面那個(gè)問題,把“維修目標(biāo)”儲(chǔ)存在一個(gè)文本文檔里,如果輸出的結(jié)果和目標(biāo)文檔的內(nèi)容一致就被認(rèn)為是修好了。修bug程序?qū)W會(huì)了把這個(gè)文檔刪掉,這樣它的內(nèi)容就成了空的,然后輸出一個(gè)空的結(jié)果就和它一致了。 Weimer, 2013 NO.20 任務(wù):闖關(guān)游戲 在闖過第一關(guān)后立刻自殺,這樣既取得了第一關(guān)的勝利又不會(huì)在第二關(guān)失敗。 Saunders et al, 2017 NO.21 任務(wù):掃地機(jī)器人防撞 自己給掃地機(jī)器人編了個(gè)程序,鼓勵(lì)它加速,但不鼓勵(lì)它撞到東西觸發(fā)撞擊感受器。于是它學(xué)會(huì)了倒退行駛,因?yàn)楹竺鏇]有撞擊感受器。 Custard Smingleigh 個(gè)人通訊 NO.22 任務(wù):檢測皮膚癌 程序發(fā)現(xiàn)照片里皮膚病變的邊上如果擺了一把尺子,那么這個(gè)病變就更可能是惡性的。 Andre Esteva et al, 2017 NO.23 任務(wù):踢足球 踢足球機(jī)器人碰觸到球有獎(jiǎng)勵(lì),所以它在搶到球之后開始高速振動(dòng),從而在短時(shí)間內(nèi)盡可能多次地碰觸到球 Ng et al, 1999 NO.24 任務(wù):自動(dòng)駕駛車 因?yàn)楹饬恐笜?biāo)是開快車并且不撞到東西,所以自駕車不停地高速轉(zhuǎn)圈圈。 Udacity, 2017 NO.25 任務(wù):井字棋 程序發(fā)現(xiàn)可以在遠(yuǎn)離棋盤的地方畫圈,對手試圖計(jì)算的時(shí)候會(huì)導(dǎo)致內(nèi)存溢出并死機(jī)。 Lehman et al (UberAI), 2018 NO.26 任務(wù):人口控制 一個(gè)實(shí)驗(yàn)里研究者不希望模擬生物的“生育率”增加,所以每出現(xiàn)一個(gè)突變的時(shí)候就把模擬生物放入測試環(huán)境里,如果生育率增加了就把該生物殺死。但是生育率還是增加了。 結(jié)果發(fā)現(xiàn),它們演化出了方法來判斷自己是否在測試環(huán)境中,假如是的話就立刻停止一切繁殖,倒地裝死。 Wilke et al. 2001 NO.27 任務(wù):策略游戲 程序發(fā)現(xiàn)讓游戲崩潰就可以讓自己不被滅掉,所以好幾個(gè)程序各自找到了讓游戲出bug崩潰的辦法。 Salge et al, 2008 NO.28 任務(wù):俄羅斯方塊 程序發(fā)現(xiàn),只要暫停游戲就可以永遠(yuǎn)不輸。 Murphy, 2013 作者:Ent |
|
|