0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾十個令人驚訝的“機器進化”趣聞其中幾則典型案例分享

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-04-16 15:09 ? 次閱讀

進化是一切復(fù)雜且精妙的適應(yīng)性行為的源泉,然而這種能力并不只是自然界生物的特權(quán),再計算機環(huán)境下的人造物體也展現(xiàn)出了令人驚訝的“算法進化過程”。于是,來自美國、英國、法國等30多個學(xué)校和機構(gòu)的研究人員們收集了幾十個令人驚訝的“機器進化”趣聞,將其編寫成論文。研究者Janelle Shane通過閱讀選出了幾則典型案例與大家分享,以下是對其進行的編譯。

機器學(xué)習(xí)算法不像其他計算機程序。我們通常說的“編程”是指人類程序員明確告訴計算機做什么。在機器學(xué)習(xí)中,人類程序員僅僅給與算法需要解決的問題,讓算法通過不斷試錯找到解決方案。

這種方法帶來了不錯的效果,機器學(xué)習(xí)算法也廣泛地用于人臉識別、外語翻譯、金融建模、圖像識別、廣告投放等領(lǐng)域。機器學(xué)習(xí)對互聯(lián)網(wǎng)的影響已經(jīng)十分廣泛了,如果你每天都接觸互聯(lián)網(wǎng),對這個詞一定不陌生。

但是,機器學(xué)習(xí)算法并不總是那么有效。有時程序員會覺得算法確實沒毛病,但是仔細檢查后發(fā)現(xiàn)算法解決的問題根本不是原本要解決的那個。例如,我之前看到一個圖像識別算法,它本應(yīng)該識別其中的“羊”,但是卻把“草地”當做了目標對象,認為“空空如也的綠地”是它的“羊”。

當機器學(xué)習(xí)算法不按照劇本解決問題時,程序員們有的時候會有點抓狂,但是大多數(shù)時候還算順利。

所以,今年,一組來自世界各地的研究人員寫了一篇有趣的論文,他們挑選了幾十個“非常令人好奇和驚訝”的研究。這篇文章非常值得一讀,但由于文章太長,我只挑選了其中最喜歡的幾個案例。

“曲線”獲勝

我們都知道,許多研究都喜歡用模擬生物研究如何生成不同形式的運動,或者怎樣能讓機器人生成新步態(tài)。

但是,如果你會翻滾,為啥還要用走的呢?在一個案例中,研究人員想讓模擬機器人盡可能快地移動。但是他們并沒有給機器人配備“雙腿”,而是把它設(shè)計成一個高高的“塔”,這當然會倒下了……但是一些機器人就從中學(xué)會了“翻滾前進”。

沒有腿的機器人摔倒了

如果能用撐桿跳,為啥還直接跳躍?另一個模擬機器人的案例是,研究人員想讓它學(xué)會跳躍。但是程序員最初設(shè)計的跳躍高度是最高的那個模塊。所以……機器人學(xué)會了讓自己長得非常高。為了解決這個問題,程序員又將跳躍高度定義成最初最低的那個模塊。然而,機器人因此“進化出”了一條細長的“腿”,伸向空中……

機器人用“長腿”前進,而不跳躍

黑掉矩陣,獲取資源

潛在的能量并不是這些模擬機器人學(xué)會利用的唯一能量源。在研究中我們發(fā)現(xiàn),一旦能量源可用,機器人的某個部分就會進化去使用它。

將浮點舍入誤差作為能量源:在一次模擬中,機器人發(fā)現(xiàn)在計算力時的少量舍入誤差可以作為額外運動時的能量。由此它們學(xué)會了快速地開關(guān),以產(chǎn)生大量可免費利用的能量。當機器人以極快的速度游泳時,程序員們注意到了這個問題。

在碰撞地板時收集能量:另一個模擬實驗也出現(xiàn)了相似的問題,機器人學(xué)會在碰撞地板時運用其中的數(shù)學(xué)問題。如果它們故意讓自己倒地(首先它們會學(xué)會讓自己實現(xiàn)這個動作),那么碰撞探測器會判斷它們不應(yīng)該摔倒,然后立即將其向上彈起。于是機器人學(xué)會在地板上快速地振動,通過反復(fù)碰撞產(chǎn)生額外的能量。

機器人在地板上振動向前行走

反彈飛行:在另一項實驗中,跳躍式機器人發(fā)現(xiàn)了另一種碰撞檢測bug。通過將身體的兩部分碰撞到一起,它們可以推動自己沖向更高的地方。如果這項成果得以在現(xiàn)實中實現(xiàn),那么商業(yè)航空將發(fā)生巨大變化。

發(fā)現(xiàn)雅達利游戲中的bug:計算機游戲算法非常善于發(fā)現(xiàn)矩陣故障,人類通常會用這類故障進行高速裕興。一種用于運行舊式雅達利游戲Q*bert的算法發(fā)現(xiàn)了一個前所未知的bug,即它可以在某個級別即將結(jié)束時執(zhí)行一系列非常具體的動作,而不是升級到下個級別。這時所有的平臺會快速閃爍,玩家可以積累大量分數(shù)。

Doom的算法還發(fā)現(xiàn)了一種特殊的動作組合,可以阻止敵人發(fā)射燃燒的火球。但是它只能在算法的夢幻版中發(fā)揮作用。如果你想玩夢幻版,可以點擊這個網(wǎng)址:worldmodels.github.io

Q*bert玩家積累到了一個反常的分數(shù),但它并沒有做什么努力

運用浮點溢出使飛機降落:在另一個更加詭異的案例中,算法原本是用來計算如何給一架即將降落在航空母艦上的飛機施加一個最小的力。結(jié)果它發(fā)現(xiàn),如果是加一個很大的力,它就會使該項目的內(nèi)存溢出。雖然飛行員會因此喪生,但是系統(tǒng)卻得到了最完美的分數(shù)。

破壞性地解決問題

有一些類似列表排序算法的溫和方法,也能以非常邪惡的方式解決問題。

例如,有一種算法本身是用來對數(shù)字列表排序的,但是它卻學(xué)會了刪除列表,這樣一來它在技術(shù)上就不是無序的了。

另一種算法應(yīng)該是用于縮小它自己的答案和標準答案之間的差異,但它學(xué)會了找出答案存儲的位置并刪除了它,所以它就會得到一個完美的分數(shù)。(解決小林丸的測試)

1997年,幾名程序員創(chuàng)建了一個算法,可以遠程在無限大的棋盤上互相玩井字游戲。其中一個程序員并沒有涉及算法的策略,而是讓它們自己摸索獲勝的方法。令人驚訝的是,算法開始贏得所有的游戲。事實證明,該算法的策略是將其置于非常遠的地方,以便當其對手的計算機試圖擴展棋盤時,巨大的棋盤會因內(nèi)存消耗殆盡而崩潰。(如何在井字游戲中獲勝)

結(jié)論

長久以來,人們都對機器進化存在誤解,認為它們只不過在模仿。但是這些實驗表明,當機器學(xué)習(xí)解決問題時,它可以產(chǎn)出非常巧妙甚至不可思議的解決方案。

生物進化也是如此,就像許多生物學(xué)家說的,生物體可以找到最奇怪的解決方法,以及利用最奇怪的能量源。所以作為程序員,我們必須非常小心,因為算法正在解決我們想要解決的問題。如果還有另外解決問題的方法,機器學(xué)習(xí)可能會很快地找到它。

但是也不必過于擔心,機器學(xué)習(xí)是不會讓人類滅亡的。如果“做一個非常美味的蛋糕”可以解決問題,并且比“毀滅人類”簡單的話,機器學(xué)習(xí)一定會選擇做蛋糕。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    211

    文章

    28557

    瀏覽量

    207687
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8428

    瀏覽量

    132834

原文標題:注意!你的算法正在偷偷進化——機器進化趣聞集錦(附論文)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    用OPA656搭一跨阻放大電路,希望得到輸出在mV或V量級的電壓怎么操作?

    了。請問一下,要實現(xiàn)這個電路功能,RF的阻值大概應(yīng)該取多大?是否還應(yīng)該并聯(lián)一電容,那么這個電容又該大概取多大呢?我的輸入端是光電元件,電容大概在幾十個pF。新手希望得到指點,謝謝!
    發(fā)表于 09-18 07:34

    在焊接電路或者測試時,TLV3502經(jīng)常被損壞怎么處理?

    在焊接電路或者測試時,TLV3502經(jīng)常被損壞。損壞現(xiàn)象是:芯片的電源到地發(fā)生短路現(xiàn)象,電源到地的電阻只有幾十個Ohm。 請問其原因是什么?之前有沒有類似的問題發(fā)生過?如何避免這類問題。 我都不敢測試了。
    發(fā)表于 09-13 08:33

    服務(wù)器數(shù)據(jù)恢復(fù)—硬盤出現(xiàn)壞扇區(qū)導(dǎo)致網(wǎng)站服務(wù)器宕機的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺linux操作系統(tǒng)服務(wù)器上跑了幾十個網(wǎng)站,服務(wù)器上只有一塊SATA硬盤。 服務(wù)器故障: 服務(wù)器突然宕機,嘗試再次啟動失敗。將硬盤拆下檢測,發(fā)現(xiàn)存在壞扇區(qū)。
    的頭像 發(fā)表于 09-12 12:02 ?261次閱讀

    INA333無法采樣怎么解決?

    現(xiàn)在輸入端接的是扭力傳感器,信號幅度從幾十個uv到幾個mv之間變化。目前扭力傳感器波形比較正常。扭力觸感器用來測量電機旋轉(zhuǎn)時候扭力?,F(xiàn)在問題是 只要連接上扭力觸感器,電機堵轉(zhuǎn)停止時候,INA輸出
    發(fā)表于 08-05 07:26

    stm32wb55在串口發(fā)送大量數(shù)據(jù)時BLE會大概率斷開連接,為什么?

    DMA發(fā)送,中斷方式也試過了,都會影響 測試發(fā)現(xiàn)如果只發(fā)幾十個字節(jié)則沒有問題。但我必須要整包發(fā)出去,,,不知道為什么不阻塞還會影響cpu2的藍牙連接 另外,發(fā)送大量數(shù)據(jù)是藍牙連接需要的時間也大幅增加 請大佬解答,謝謝
    發(fā)表于 05-20 06:04

    具有十個解碼輸出的進位計數(shù)器/除法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有十個解碼輸出的進位計數(shù)器/除法器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-17 10:47 ?0次下載
    具有<b class='flag-5'>十個</b>解碼輸出的<b class='flag-5'>十</b>進位計數(shù)器/除法器數(shù)據(jù)表

    DMA串口1發(fā)送接收,感覺好占CPU,這正常嗎?

    DMA不是不不占CPU嗎,調(diào)試時,PC發(fā)幾十個數(shù)據(jù)到STM32F429,MDA接收,主循環(huán)有定時亮滅LED燈,只要DMA已接收數(shù)據(jù),燈明顯會停頓下,且接收到的數(shù)據(jù)未做解包,單純MDA接收數(shù)據(jù)放到緩存理,設(shè)置空閑中斷USART_CR1_IDLEIE, 感覺很不正常....
    發(fā)表于 05-09 06:51

    stm32f429 can1通訊使用hal發(fā)送數(shù)據(jù)不穩(wěn)定怎么解決?

    stm32f429 can1通訊,使用hal庫配置工程,發(fā)送數(shù)據(jù)不穩(wěn)定,發(fā)送幾十個包才有一倆正常發(fā)送,但是使用標準庫就可以正常發(fā)送數(shù)據(jù),也很穩(wěn)定,研究兩天了也沒有解決,這是什么問題呢。
    發(fā)表于 04-02 06:04

    上海交大研發(fā)成功全自動液態(tài)生物芯片系統(tǒng)

    據(jù)悉,液態(tài)生物芯片適用于核酸及蛋白標記物測定,具備大檢測通量與高度靈活性,可以同時應(yīng)對單管樣品中幾十個目標物的分析,極大地提高了檢測工作的效率。
    的頭像 發(fā)表于 03-26 10:28 ?511次閱讀

    求助:我設(shè)計了一頻率連續(xù)可調(diào)的方波轉(zhuǎn)正弦波的電路,想請問大家這個有申請專利的價值嗎?

    。尤其是響應(yīng)速度,現(xiàn)在能做到在幾個到幾十個周期內(nèi)完成鎖定。這個AGC電路還可以調(diào)整相應(yīng)的電阻電容以適應(yīng)不同的頻率段。不過這個電路需要方波時鐘才能達到上述要求,不然會降低精度和響應(yīng)速度,但這也限制了該電路的用途。 我現(xiàn)在想請教大家該電路還能用于那些應(yīng)用場景,有沒有申請專利的價值? 謝謝
    發(fā)表于 03-14 14:54

    STM32L071的ADC,接了一10K電阻,為什么會有自帶幾十mv的電壓?

    [td] STM32L071的ADC,接了一10K電阻,為什么會有自帶幾十mv的電壓?電路如圖所示,采樣率79.5 時鐘16M
    發(fā)表于 03-14 07:32

    PC端連接STLINK_V3MINI,電流為90-110mA,這個電流正不正常?如何排查?

    怎樣測的電流? STLINK-V3Mini有連接什么嗎?一MCU正常運行有幾十個mA應(yīng)該屬于正常范圍。
    發(fā)表于 03-08 07:54

    AD7656在沒有輸入信號時,測量輸入端都會有mV至幾十mV的電壓,怎么消除呢?

    像之前用AD7705那位朋友一樣。我用AD7656,完全按照手冊設(shè)計。參考電壓、電源電壓都接了0.1uF和1uF電容。 在沒有輸入信號時,測量輸入端都會有mV至幾十mV的電壓,怎么消除呢?
    發(fā)表于 02-22 07:27

    為什么TC397對外設(shè)賦值這么慢?

    現(xiàn)在遇到了一問題,再給GTM.ATOMX.CHX的SR0或SR1賦值時一句賦值語句的周期要130ns左右,相當于幾十個指令周期;而TI的DSP芯片對相應(yīng)PWM寄存器賦值一條語句執(zhí)行時間只有ns,只占一
    發(fā)表于 02-05 09:05

    Linux下常見的十幾款CPU監(jiān)控工具

    今天浩道跟大家分享運維工作中,Linux下常見的十幾款CPU監(jiān)控工具,你可能只會用到其中某些,但是個人覺得作為一資深運維,你要知道有這些工具可以監(jiān)控CPU。
    的頭像 發(fā)表于 01-22 09:19 ?2498次閱讀
    Linux下常見的<b class='flag-5'>十幾</b>款CPU監(jiān)控工具