演化計算多是人工智能的下一個熱點

 

 

演化計算--人工智能的下一個熱點

 

演化計算常常用到智能優化和機器學習當中,可是這種機器學習跟你們日常說的深度學習的機器學習不是很同樣。演化計算在機器人的腦體一體化設計中應該有至關大的用武之地。演化計算多是人工智能的下一個熱點。本文整理自2018深圳國際機器人與智能系統院士論壇上 IEEE Fellow 南方科技大學計算機科學與工程系主任姚新教授名爲《爲何要研究演化計算?》的演講稿。算法


1.jpg

IEEE Fellow南方科技大學計算機科學與工程系主任網絡

姚新教授機器學習


 

《爲何要研究演化計算?》jsp

你們可能不太知道南方科技大學下屬的計算機科學與工程系,該系是由2016年8月份開始設立,2017年咱們就有了第一批國家正式認可的本科畢業生,去年咱們還招了19位碩士生和21位博士生,一年半之後,咱們如今有了19位老師,將來計劃達到55位。學習

南方科技大學計算機科學與工程系的研究領域分五大塊,包括人工智能、數據科學、理論、系統與網絡、認知與自主系統。人工智能小組裏面有5位老師,我是其中的一位,其餘幾位老師都是來自不一樣的地方,背景也不徹底同樣,但都跟計算智能、神經演化有關係。除此以外,咱們還有一些來自五湖四海的博士。咱們主要從事不少機器學習、優化和它們交叉之間的研究工做,光學習不作優化是不全面的,學習的目的是用來作決策,因此須要把學習和優化結合在一塊兒。優化考慮的方面不少,如多目標優化、動態優化和不肯定環境中的優化等等。機器學習考慮較多的是機器學習、數據流的在線學習和不平衡類學習等。咱們另一個研究小組的課題是認知與自主系統,這裏面有硬件和軟件,硬件是無人機、羣體機器人;軟件是軟件機器人。測試

 

爲何研究演化計算?優化

首先,咱們來看看什麼是演化計算?我不知道這年頭還有多少人在本身寫程序,寫程序這個東西跟吃臭豆腐同樣,要麼特別喜歡、要麼特別恨它。你要是特別喜歡或者特別恨寫程序的話,有什麼感受呢?哪怕如今的計算機或者機器人聰明到如此程度,你一般會很使勁的敲鍵盤。爲何敲鍵盤呢?你寫一個什麼程序,不就是少一個逗號或者括號,編輯老是出錯。你們寫過程序就知道,空格有的編譯的時候不同,編譯總出錯,你就以爲這個很苦惱。你說人工智能智能到如今,人不多一樣的錯誤犯兩次,碰到這種人,這種人就無藥可救了,可是計算機有時候就很麻煩,你說不就是少一個逗號嗎,但實際上計算機不懂,因此計算機很是不靈活,還很是脆弱。人工智能

另外,制式與能力比較差。你們如今還有幾我的在用十年前的電腦?沒有,電腦三年換一次。人隨着年齡的增加愈來愈聰明,機器人和計算機過幾年必定要換掉。機器發展的道路和人發展的道路還不太同樣,天然系統能夠看做是一套計算系統,相比之下,天然系統中有一些特色的確很是好,但如今的計算機科學暫時還作不了,例如自我恢復功能,還有自適應能力等等。天然界有不少值得作計算機科學的人學習的地方,因此從天然界裏面找靈感也不是計算機科學專有的,工程界也常常從天然界找靈感,好比說飛行器,從鳥的飛行到雙固定機翼的飛機再到螺旋槳飛機,都是從鳥類的飛行中找尋靈感。spa

爲什麼要向大天然借鑑?天然系統的問題求解方法跟計算機的問題求解方法互補,並且一般解出來的還比較簡單,不是特別複雜。這就是爲何要對演化計算這種技術進行研究的緣由。實際上,這種研究並不簡單,而且不只針對演化計算,並且也對深度應用的神經網絡進行研究,而人工神經網絡也是受到大腦的啓發和影響,這個演化計算或者演化算法是經過生物的進化而來的。世界上全部的生物都是演化過來的,背後有必定的規律,哪怕從規律裏面找出萬分之一或者千分之一,就有可能對計算機設計帶來不一樣的思路,這是作演化計算的一個出發點。線程

 

演化計算是作什麼的?

下面舉四個例子進行說明。

第一個例子,喜歡作機器學習的人就把這個東西叫作機器學習,實際上它是數據驅動建模型。給你一大堆實驗數據,而後問你產生數據背後的抽象模型是什麼,你幫我找出來,就是從數據中找規律。以鋁合金材料的設計爲例,計算機科學是一個頗有趣的領域,咱們看鋁合金材料的設計,之前是建模,如今是儘可能用演化算法,儘可能減小在實驗室的時間。假設咱們知道合成這個鋁合金,能夠作初步的實驗,在實驗室裏面以必定的力量去拉它和壓它,失力之後看這個鋁錠變形的狀況,作實驗的專家能夠寫成一組方程組,這裏有四個方程組。這個例子裏面有6個材料的常數,這個材料常數是真正設計新材料你們特別想知道的值,實際上咱們不知道,這個值對材料科學家來講是材料,對作數學的計算機科學家來講至關於變量。我如今給你方程組,給你實驗的數據,說這個材料在實驗中是什麼表現行爲,你能不能把材料的常數找出來?這就是有點像解方程。解這個方程跟作計算機科學有什麼關係?跟演化算法有什麼關係?這個方程沒有解析解,只能用數字解,有一種辦法就是咱們把它變成一個優化的方法,找數字解的時候看方程的左邊和右邊的差異是多少,加入方程兩邊的差異爲零就找到了。怎麼找呢?我找一點軟件包,我去買一個世界上最好的軟件包,牛津大學出來的軟件包,把要找的6個變量的初始值給初始化,而後輸進化,你就發如今這個問題上你獲得的結果永遠跟你輸進去的初始值同樣,由於不少數字軟件包裏面作的假設條件在實際問題中是不成立的,這種條件下你就能夠用演化算法來作優化,這個優化就是解方程、找數字圖。這個找出來的解,對設計鋁錠、鋁合金來講是最好的,就是最精確的數字常數、材料常數。

第二個小例子,前面講了優化,可是優化的時候每每有一個不成文的假設,優化的環境和須要優化的目標是一成不變的,可是實際生活中是會變的。你給我一個目標和指標讓我去作,我作一半把這個指標忽然改掉,說這個不行,實際過程當中是有可能發生的。例如在北方到了冬天,路上必定要撒鹽化凍,不一樣國家有不一樣的法律,如英國有一個法律,A路在兩個小時以內只要天氣預報說路面溫度2度如下必定要撒鹽。如今有一個具體的問題,我有車隊,有A路的路網,這個車隊怎麼把車派出去,使得兩小時以內把全部路網走一遍。這裏面各類各樣的限制條件就使得實際遇到的問題在運籌學或者數學書中找不到。數學中說的是:假設卡車的容量是Q,可是咱們看到的這個問題是一個政府、車隊不大,就11輛車,並且路況不能夠假設車以均勻的速度往前走,尤爲是冬天。你有11輛車,作一個調度,走一半就剩10輛車了,有1輛車壞掉了,可是你仍是要完成任務,怎麼動態地完成,用數學優化方法已經解決不了,咱們仍是用演化算法,從天然界來的靈感作的算法可以解決這個複雜性問題。

第三個小例子,說一下多目標優化。「多、快、好、省」是70年代的口號,你們喜歡說,可是很難作到,多、快、好、省,不能單看一個指標,要幾個指標同時知足,做爲決策者須要選擇各類各樣的折中方案,這就是多目標優化的一個很典型的場景。

一個具體的例子是無人駕駛系統。無人駕駛系統真正靠的是軟件在控制。你不管是買了一套軟件系統仍是本身開發一套軟件系統,你必須論證這套軟件系統是正確的。那就要作軟件證實,若是證實不了,就要作軟件測試,各類各樣的環境都要試,但一個關鍵點是,要想把全部可能性都作到是不可能的。在有限的資源和有限的時間裏,對大軟件系統的各個模塊進行測試,使得系統的測試準確率最大化,把有限的人和有限的錢分配到軟件的大模塊,目標是整個軟件準確率最高,這些都須要用到演化計算的方法。

 

演化計算與機器人有什麼關係?

最後講到演化計算跟機器人的關係,在這一領域,有一個分支叫演化機器人。世界上的生物,包括人類的大腦都是演化出來的。既然生物界的大腦能夠演化出來,爲何機器人不能夠演化出來?

用演化的方法設計機器人或許有一點好處,那就是能夠同時設計機器人的控制系統和機器人的形態。大部分時候作這兩個領域的研究是由不一樣學科的人,一部分作機器學習,一部分作機器人,但實際上應該把設計控制器和設計控制形態的小組結合在一塊兒,不該該分開。

給你們作一個模擬實驗,這是人工構造一個游泳的線圖,這個線圖一節一節的,每一節都同樣,除了有一個頭在左邊,一個尾巴在右邊,中間每一節都同樣。我要作一個很簡單的實驗,設計或者演化出來一個線圖,可以游泳,從A游到B,越快越好,可是我又不告訴這個線圖應該怎麼游泳。我這裏沒有額外的信息告訴這個線圖應該怎麼游泳,只是告訴你給你這個任務,你從A游到B,直線遊,遊得越快越好。這個線圖怎麼控制呢?線圖一節一節的,每一節都控制神經元運動,跟神經網絡的神經元的位置有關係,這個線圖上有圓孔,神經元分佈在圓孔的物理位置上。我演化出一個線圖,這個線圖原來什麼都不懂,就是從A到B,演化神經網絡上的控制器。另外一個實驗中,我人爲地把這個線圖左邊的線圖往右偏,不是本身偏的,人爲偏的,而右邊的線圖往左偏,伸不直。我作這個實驗,一樣的任務都是從A游到B,目標一樣,都是遊得越快越好,用的方法是用演化的方法。就是慢慢遊,哪一個遊得快,適者生存,就傳到下一代,一代一代慢慢傳。我想看這兩組實驗出來神經網絡的控制怎麼樣。你會發現很是有趣,在第一種狀況下,這個線圖沒有變的狀況下,形態仍是一開始直的時候,最後演化出來的神經網絡是右下角的圖,紅點是神經的位置,很是對稱。人根本沒有告訴它什麼東西,惟一反饋信息就是遊得快和慢。左上角是初始畫的線圖,怎麼遊是隨機的,一開始在水裏打轉轉。時間比較長,1190代之後,它找到一個很是快速的游泳線程。在第二種狀況下,我把這個線圖形態變掉,用這個虛線表明,這個神經網絡的結構正好補充了這個形態上的缺陷,看你是往左歪仍是往右歪。

 

參考:http://www.szrobot.org.cn/nd.jsp?id=564

相關文章
相關標籤/搜索