演化計算可能是人工智能的下一個熱點
文:中國傳動網2018年第二期
演化計算經常用到智能優化和機器學習當中,但是這種機器學習跟大家平常說的深度學習的機器學習不是很一樣。演化計算在機器人的腦體一體化設計中應該有相當大的用武之地。演化計算可能是人工智能的下一個熱點。本文整理自2018深圳國際機器人與智能系統院士論壇上IEEEFellow南方科技大學計算機科學與工程系主任姚新教授名為《為什么要研究演化計算?》的演講稿。
大家可能不太知道南方科技大學下屬的計算機科學與工程系,該系是由2016年8月份開始設立,2017年我們就有了第一批國家正式承認的本科畢業生,去年我們還招了19位碩士生和21位博士生,一年半以后,我們現在有了19位老師,未來計劃達到55位。
南方科技大學計算機科學與工程系的研究領域分五大塊,包括人工智能、數據科學、理論、系統與網絡、認知與自主系統。人工智能小組里面有5位老師,我是其中的一位,其他幾位老師都是來自不同的地方,背景也不完全一樣,但都跟計算智能、神經演化有關系。除此之外,我們還有一些來自五湖四海的博士。我們主要從事很多機器學習、優化和它們交叉之間的研究工作,光學習不做優化是不全面的,學習的目的是用來做決策,所以需要把學習和優化結合在一起。優化考慮的方面很多,如多目標優化、動態優化和不確定環境中的優化等等。機器學習考慮較多的是機器學習、數據流的在線學習和不平衡類學習等。我們另外一個研究小組的課題是認知與自主系統,這里面有硬件和軟件,硬件是無人機、群體機器人;軟件是軟件機器人。
為什么研究演化計算?
首先,我們來看看什么是演化計算?我不知道這年頭還有多少人在自己寫程序,寫程序這個東西跟吃臭豆腐一樣,要么特別喜歡、要么特別恨它。你要是特別喜歡或者特別恨寫程序的話,有什么感覺呢?哪怕現在的計算機或者機器人聰明到如此程度,你通常會很使勁的敲鍵盤。為什么敲鍵盤呢?你寫一個什么程序,不就是少一個逗號或者括號,編輯總是出錯。大家寫過程序就知道,空格有的編譯的時候不一樣,編譯總出錯,你就覺得這個很苦惱。你說人工智能智能到現在,人很少同樣的錯誤犯兩次,碰到這種人,這種人就無藥可救了,但是計算機有時候就很麻煩,你說不就是少一個逗號嗎,但實際上計算機不懂,所以計算機非常不靈活,還非常脆弱。
另外,制式與能力比較差。大家現在還有幾個人在用十年前的電腦?沒有,電腦三年換一次。人隨著年齡的增長越來越聰明,機器人和計算機過幾年一定要換掉。機器發展的道路和人發展的道路還不太一樣,自然系統可以看作是一套計算系統,相比之下,自然系統中有一些特點的確非常好,但現在的計算機科學暫時還做不了,例如自我恢復功能,還有自適應能力等等。自然界有很多值得做計算機科學的人學習的地方,所以從自然界里面找靈感也不是計算機科學專有的,工程界也經常從自然界找靈感,比如說飛行器,從鳥的飛行到雙固定機翼的飛機再到螺旋槳飛機,都是從鳥類的飛行中找尋靈感。
為何要向大自然借鑒?自然系統的問題求解方法跟計算機的問題求解方法互補,而且通常解出來的還比較簡單,不是特別復雜。這就是為什么要對演化計算這種技術進行研究的原因。實際上,這種研究并不簡單,并且不僅針對演化計算,而且也對深度應用的神經網絡進行研究,而人工神經網絡也是受到大腦的啟發和影響,這個演化計算或者演化算法是通過生物的進化而來的。世界上所有的生物都是演化過來的,背后有一定的規律,哪怕從規律里面找出萬分之一或者千分之一,就有可能對計算機設計帶來不同的思路,這是做演化計算的一個出發點。
演化計算是做什么的?
下面舉四個例子進行說明。
第一個例子,喜歡做機器學習的人就把這個東西叫做機器學習,實際上它是數據驅動建模型。給你一大堆實驗數據,然后問你產生數據背后的抽象模型是什么,你幫我找出來,就是從數據中找規律。以鋁合金材料的設計為例,計算機科學是一個很有趣的領域,我們看鋁合金材料的設計,以前是建模,現在是盡量用演化算法,盡量減少在實驗室的時間。假設我們知道合成這個鋁合金,可以做初步的實驗,在實驗室里面以一定的力量去拉它和壓它,失力以后看這個鋁錠變形的情況,做實驗的專家可以寫成一組方程組,這里有四個方程組。這個例子里面有6個材料的常數,這個材料常數是真正設計新材料大家特別想知道的值,實際上我們不知道,這個值對材料科學家來說是材料,對做數學的計算機科學家來說相當于變量。我現在給你方程組,給你實驗的數據,說這個材料在實驗中是什么表現行為,你能不能把材料的常數找出來?這就是有點像解方程。解這個方程跟做計算機科學有什么關系?跟演化算法有什么關系?這個方程沒有解析解,只能用數字解,有一種辦法就是我們把它變成一個優化的方法,找數字解的時候看方程的左邊和右邊的差別是多少,加入方程兩邊的差別為零就找到了。怎么找呢?我找一點軟件包,我去買一個世界上最好的軟件包,牛津大學出來的軟件包,把要找的6個變量的初始值給初始化,然后輸進化,你就發現在這個問題上你得到的結果永遠跟你輸進去的初始值一樣,因為很多數字軟件包里面做的假設條件在實際問題中是不成立的,這種條件下你就可以用演化算法來做優化,這個優化就是解方程、找數字圖。這個找出來的解,對設計鋁錠、鋁合金來說是最好的,就是最精確的數字常數、材料常數。
第二個小例子,前面講了優化,但是優化的時候往往有一個不成文的假設,優化的環境和需要優化的目標是一成不變的,但是實際生活中是會變的。你給我一個目標和指標讓我去做,我做一半把這個指標突然改掉,說這個不行,實際過程中是有可能發生的。例如在北方到了冬天,路上一定要撒鹽化凍,不同國家有不同的法律,如英國有一個法律,A路在兩個小時之內只要天氣預報說路面溫度2度以下一定要撒鹽。現在有一個具體的問題,我有車隊,有A路的路網,這個車隊怎么把車派出去,使得兩小時之內把所有路網走一遍。這里面各種各樣的限制條件就使得實際遇到的問題在運籌學或者數學書中找不到。數學中說的是:假設卡車的容量是Q,但是我們看到的這個問題是一個政府、車隊不大,就11輛車,而且路況不可以假設車以均勻的速度往前走,尤其是冬天。你有11輛車,做一個調度,走一半就剩10輛車了,有1輛車壞掉了,但是你還是要完成任務,怎么動態地完成,用數學優化方法已經解決不了,我們還是用演化算法,從自然界來的靈感做的算法能夠解決這個復雜性問題。
第三個小例子,說一下多目標優化。“多、快、好、省”是70年代的口號,大家喜歡說,但是很難做到,多、快、好、省,不能單看一個指標,要幾個指標同時滿足,作為決策者需要選擇各種各樣的折中方案,這就是多目標優化的一個很典型的場景。
一個具體的例子是無人駕駛系統。無人駕駛系統真正靠的是軟件在控制。你無論是買了一套軟件系統還是自己開發一套軟件系統,你必須論證這套軟件系統是正確的。那就要做軟件證明,如果證明不了,就要做軟件測試,各種各樣的環境都要試,但一個關鍵點是,要想把所有可能性都做到是不可能的。在有限的資源和有限的時間里,對大軟件系統的各個模塊進行測試,使得系統的測試準確率最大化,把有限的人和有限的錢分配到軟件的大模塊,目標是整個軟件準確率最高,這些都需要用到演化計算的方法。
演化計算與機器人有什么關系?
最后講到演化計算跟機器人的關系,在這一領域,有一個分支叫演化機器人。世界上的生物,包括人類的大腦都是演化出來的。既然生物界的大腦可以演化出來,為什么機器人不可以演化出來?
用演化的方法設計機器人或許有一點好處,那就是可以同時設計機器人的控制系統和機器人的形態。大部分時候做這兩個領域的研究是由不同學科的人,一部分做機器學習,一部分做機器人,但實際上應該把設計控制器和設計控制形態的小組結合在一起,不應該分開。
給大家做一個模擬實驗,這是人工構造一個游泳的線圖,這個線圖一節一節的,每一節都一樣,除了有一個頭在左邊,一個尾巴在右邊,中間每一節都一樣。我要做一個很簡單的實驗,設計或者演化出來一個線圖,能夠游泳,從A游到B,越快越好,但是我又不告訴這個線圖應該怎么游泳。我這里沒有額外的信息告訴這個線圖應該怎么游泳,只是告訴你給你這個任務,你從A游到B,直線游,游得越快越好。這個線圖怎么控制呢?線圖一節一節的,每一節都控制神經元運動,跟神經網絡的神經元的位置有關系,這個線圖上有圓孔,神經元分布在圓孔的物理位置上。我演化出一個線圖,這個線圖原來什么都不懂,就是從A到B,演化神經網絡上的控制器。另一個實驗中,我人為地把這個線圖左邊的線圖往右偏,不是自己偏的,人為偏的,而右邊的線圖往左偏,伸不直。我做這個實驗,同樣的任務都是從A游到B,目標同樣,都是游得越快越好,用的方法是用演化的方法。就是慢慢游,哪個游得快,適者生存,就傳到下一代,一代一代慢慢傳。我想看這兩組實驗出來神經網絡的控制怎么樣。你會發現非常有趣,在第一種情況下,這個線圖沒有變的情況下,形態還是一開始直的時候,最后演化出來的神經網絡是右下角的圖,紅點是神經的位置,非常對稱。人根本沒有告訴它什么東西,唯一反饋信息就是游得快和慢。左上角是初始畫的線圖,怎么游是隨機的,一開始在水里打轉轉。時間比較長,1190代以后,它找到一個非常快速的游泳線程。在第二種情況下,我把這個線圖形態變掉,用這個虛線代表,這個神經網絡的結構正好補充了這個形態上的缺陷,看你是往左歪還是往右歪。
這里面有三個很淺顯的道理:第一點,不同的形態需要不同的神經網絡。大家假如構造一個機器人控制器,你一定要考慮這個機器人控制器是用輪子還是用腳,是用兩個輪子、三個輪子、四個輪子還是八個輪子;假如用腳,是兩只腳還是八只腳,這個腳長在頭上還是長在下面,這個形態跟你的神經網絡怎么設計非常有關系。第二點,這個演化過程是腦體一塊設計的,一塊設計出來的系統就比分開設計更有效。第三點,整個過程驅動就是演化算法,沒有數據,沒有一百萬幅圖像或者視頻,是一種非常不一樣的形式。
綜上所述,有三點需要總結:第一,演化計算經常用在智能優化和機器學習當中,但是這種機器學習跟大家平常說的深度學習的機器學習是很不一樣。第二,演化計算在機器人的腦體一體化設計中應該有相當大的用武之地。第三,演化計算可能是人工智能的下一個熱點。人們都希望盡量少做事,但是回報最高,演化計算正是能夠達到這一目的的一項技術,不需要數據和標號,不需要對確或錯誤指令,只要就把任務交給我,就能夠進行演化計算。
中傳動網版權與免責聲明:
凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

關注伺服與運動控制公眾號獲取更多資訊

關注直驅與傳動公眾號獲取更多資訊

關注中國傳動網公眾號獲取更多資訊
- 運動控制
- 伺服系統
- 機器視覺
- 機械傳動
- 編碼器
- 直驅系統
- 工業電源
- 電力電子
- 工業互聯
- 高壓變頻器
- 中低壓變頻器
- 傳感器
- 人機界面
- PLC
- 電氣聯接
- 工業機器人
- 低壓電器
- 機柜