英國薩里大學金耀初教授:進化計算在人工智能領域的發展

專訪英國薩里大學金耀初教授:進化計算在人工智能領域的發展

 

 

做爲基於種羣的全局優化算法,進化算法(Evolutionary Algorithm)不須要目標函數的可解釋性,這些年在計算代價昂貴優化問題,多目標優化問題,魯棒優化問題等領域得到了普遍的應用和發展。算法

金耀初教授  英國薩里大學「計算智能」首席教授,是進化算法研究領域的國際領軍人物,在進化算法方面發表論文200餘篇,Google Scholar引用8800餘次。【運籌OR帷幄】的小編王源博士,很榮幸在金教授訪問東北大學流程工業綜合自動化國家重點實驗室時與金教授進行了面對面的深度學術交流,談一談「進化算法」 在人工智能研究領域的潛力以及將來發展。安全


 

 

嘉賓介紹網絡

金耀初(Yaochu Jin)目前爲英國薩里大學「計算智能」首席教授,IEEE Fellow。曾任中國教育部「長江學者獎勵計劃」講座教授,芬蘭國家創新局「Finland Distinguished Professor」,IEEE計算智能學會副主席(2014-2015)。目前是IEEE Transactions on Cognitive and Developmental Systems 主編,Complex & Intelligent Systems 共同主編,IEEE 傑出演講人(2013-2015,2017-2019)。在進化算法、機器學習等領域方面發表論文300餘篇,Google Scholar引用15000餘次,前後在近30個國際會議上做特邀大會或主題報告。榮獲2017年度「IEEE進化計算彙刊優秀論文獎」,201四、2016年度「IEEE 計算智能雜誌優秀論文獎」,「2017年世界進化計算大會最佳學生論文獎」以及「2014年計算智能理論國際研討會最佳學生論文獎」。他指導的博士學位論文獲「2018年度IEEE計算智能學會優秀博士論文獎」。研究方向涉及人工智能的多個領域,包括進化計算,多目標優化與決策,大數據、稀疏數據驅動的進化優化,多目標機器學習、安全機器學習,分佈式機器學習等及其在複雜工業過程、健康醫療及羣機器人等方面的應用。框架


 

 

訪:不少同窗對進化算法(EA)或多或少都有了解,您以爲EA和傳統的數學優化方法相比,其優點是什麼?或者說什麼樣的問題,EA的效果比較好。機器學習

金:進化算法和傳統的數學優化方法相比有什麼優點,首先須要知道進化算法與傳統優化方法有什麼區別。進化算法跟傳統優化方法最大的區別有兩個:一,進化算法是基於種羣的搜索;二,進化算法是隨機的搜索算法,它不須要梯度,也不須要解析的目標函數。因此它們主要的優點有如下幾個方面:1、進化算法適用於處理那些沒有解析目標函數和沒法獲得目標函數梯度信息的優化問題;2、由於進化算法是基於種羣的搜索方法,它們在一次運行中能夠獲得一組解,因此相對於傳統數學規劃方法,進化算法在求解多目標優化問題時具備優點;3、由於進化算法是隨機搜索方法,因此它們搜索全局最優解的能力比較強;4、進化算法的另外一個優點是它們能夠並行計算;5、進化算法還適用於解決同時有整數和連續變量的混合優化問題;6、進化算法處理不肯定性的能力也要比傳統的方法有優點。好比找魯棒最優解,因爲基於種羣的方法有着隱式的平均在裏面,哪怕不作特殊的處理,也有能力找到魯棒解。分佈式

訪:傳統的數學規劃方法對於多目標優化問題有沒有什麼解決方法?函數

金:傳統的數學規劃方法在解決多目標問題通常須要經過特定的方法將其轉換成單目標問題,一次求解也只能得到一個帕累託解。工具

訪:基於GPU的並行計算爲大數據,深度學習的興起提供了硬件保障。計算工具的革新不單是計算速度加快,也會爲新的算法在實際中的應用提供可能。多數EA先天就具有很好的能夠並行的特性。您如何看待並行計算的發展對EA會產生什麼樣的影響?性能

金:十多年前我在本田工做時,我就用進化算法解決圖像處理方面的問題,但計算時間很長。若是可以並行處理,包括CPU和GPU,它的速度就會增長不少,使得進化算法用於解決這類的問題更具可行性。可是另外一方面,每每有的時候是人的觀念問題。好比之前作圖像處理,人們以爲用進化計算解決這類問題時間很長,可是如今咱們用深度學習解決圖像處理問題時間也很長;再好比往往談到進化計算就會被問有沒有理論證實,可是大部分深度學習算法和機器學習方法也沒法在理論上證實,它們必定可以找到全局最優。可是人們卻立刻接受了深度學習。因此這更可能是須要一種觀念上的突破。還有進化計算領域的研究者沒有進行有效的宣傳,公衆對進化計算的瞭解遠遠低於對通常機器學習的瞭解。最近有一個很好的變化,包括像OpenAI這些早期作進化計算的人,他們如今把進化計算用在機器學習裏面解決各類問題。因此進化計算在人工智能的角色正慢慢被接受,其絕大的潛力也慢慢會顯現。學習

訪:這是一個廣泛現象,好比對基於數學規劃的優化的關注度遠遠低於機器學習。你們都知道機器學習,但只有少部分人知道數學規劃的優化。

金:沒錯,其實機器學習算法說到底大部分都是梯度法及其變形,像牛頓法,梯度降低法,登山法等等。另外,加強學習其實質就是一種動態規劃方法。

訪:數據驅動的優化是進化優化的一個重要方向,那麼數據驅動優化問題主要有哪些難點?帶有約束的多目標數據驅動優化問題是怎麼解決的?存在哪些難點?

金:雖然作進化計算的研究者都知道進化算法適合解決沒有解析目標函數的優化問題(也叫黑箱優化問題),但大多數進化算法在設計時,每每假設目標函數是已知的。相對而言,咱們在數據驅動的進化優化方面的研究及應用是作的比較多而且比較早的。爲何作數據驅動的優化?由於在現實世界中有不少優化問題沒法用解析的數學公式來描述,其性能的優劣只能作仿真或實驗來驗證。通常的進化優化算法須要解決的挑戰主要在於問題中含有不少局部極優、大規模、多目標、強約束以及不肯定量,而數據驅動的優化首先必然面對來自數據方面的挑戰。好比數據有各類類型,如小數據、大數據、異構數據,數據可能包含不少噪聲,還有數據缺失、流數據、數據保密等問題,因此數據科學所涉及的主要挑戰在數據驅動的優化中也必然會涉及,而機器學習中有不少處理這些數據挑戰的有效方法。但必需要強調的是,咱們拿這些數據是用來解決優化問題的,不是作建模的。優化和建模之間的區別在於建模是爲了擬合數據,而優化是爲了引導優化算法更快的找到最優解。因此二者的目的不徹底同樣,因爲這個不一樣,數據驅動的優化也給機器學習帶來了一些新的挑戰。因此,數據驅動的進化優化是一個涉及數據科學、機器學習和進化計算的交叉學科,它的挑戰既有來自數據自己的一些挑戰,也有爲解決優化問題給機器學習帶來的一些新的挑戰。

訪:離線數據優化是您最早提出來的,這類問題它有什麼重大的意義?

金:作研究通常能夠分爲兩類,即問題驅動的研究和理論驅動的研究。從總體作研究來講,兩個都是必要的,一方面研究的問題要從應用中來,要提煉問題。有什麼樣的問題,才作什麼樣的研究。另外一方面,研究要到實際問題中去,實際應用有什麼問題咱們解決什麼問題。離線數據驅動的優化更多的是問題驅動的優化,是數據驅動優化問題中比較特殊的一類問題。爲何要作離線數據優化?由於有一類像生產過程的優化這樣的優化問題,咱們沒法邊優化邊作驗證,由於作驗證會打亂工廠的生產過程;還有一類資源優化問題也只能作離線數據優化,由於資源優化問題的數據是來源於平常生活,而且是獨立於優化過程而產生的,沒法在優化過程當中採集想要的數據。這兩類問題都必然須要考慮離線數據驅動優化的問題和挑戰。

訪:您和本田公司有過合做,將多目標優化應用到汽車的設計上去,這類問題每每是多目標的,並且還須要進行計算流體力學仿真,傳統的數學優化很難求解。EA在解決這類問題有什麼優點,同時EA在解決這類實際問題的時候有什麼難點?

金:有不少實際問題涉及空氣動力學優化,像汽車優化、一級方程式賽車的優化、飛機發動機的優化、機翼的優化,以及飛機機體的優化。此外大型碼頭的設計也會涉及到流體動力學仿真,由於須要模擬海浪以及氣候狀況。還有像智能建築,也須要使用空氣動力學模擬大氣的流動以及溫度的變化等狀況。在現實中有一大類須要涉及複雜的流體動力學(包括空氣動力學)的優化,這一類優化問題的特色是無法用解析的數學公式來描述這些優化問題的目標函數,須要用基於數據驅動的方法來求解。它的難度在於一方面沒有明確的目標函數,另外一方面作仿真和作實驗都很耗時或耗錢,因此只能用少許的數據來作優化,即小數據驅動的優化。基於小數據驅動的優化具備很大的挑戰性,須要將進化算法與先進的機器學習方法(如半監督學習、遷移學習等)進行有機結合。另外,遷移優化方法也是解決小數據驅動優化的有效方法。還有一點我要強調的是優化問題的描述。在解決實際問題時,問題描述自己每每是很複雜的。咱們在作飛機噴氣式發動機優化時,就曾經面臨過這樣的問題。發動機葉片優化中,最重要的目標函數是壓力損失最小化。咱們當時就用進化計算將壓力損失最小化,結果很好,因而就交給空氣動力學專家。可他們說咱們得到的優化設計無法用,由於雖然它的壓力損失很小,但因爲它的空氣出口每一個點上空氣壓力變化很是大,很不均勻,在實際使用時很容易損壞葉片。爲解決這個問題,咱們又增長了一個目標,即出口空氣壓力的差別最小化。再好比車輛的設計,在產品設計過程是分不少階段的,不可能在優化設計的時候,一開始就把全部的設計變量和設計目標都考慮進去,這不現實。通常說來,在不一樣的設計階段須要考慮不一樣的變量和目標函數。好比在概念設計階段,把大的框架定下來,把某些設計參數定好,這時所使用的仿真工具的精度能夠相對低一些,而後對每一個部件進行優化,這時設計變量可能會發生改變,目標也可能會發生變化,所選擇的仿真工具的精度須要高一些。而第三階段涉及每一個零件的設計,相比第二階段更細微,所關注的自變量和目標函數又會改變。相比解決實際問題,目前進化優化領域的基準測試問題(benchmark)都比較籠統的,無論是大規模優化測試問題或高維多目標測試問題,每每會假設有幾千個決策變量,有幾十個目標一塊兒優化。這都是比較理想化、簡單化的描述,而在實際中,問題怎麼描述,在什麼階段用什麼決策變量和目標函數,哪些做爲約束條件來處理都須要針對具體狀況考慮。因此問題描述自己在求解實際複雜優化問題中有着很是重要的做用。

訪:EA和如今很火的機器學習,深度學習有哪些交叉研究。EA能否作爲機器學習優化問題的求解算法?深度神經網絡是否能夠替代進化計算經常使用的高斯模型或代理模型(使用深度神經網絡)?

金:首先這是個很好的問題,我先回答後面的問題。就是說,機器學習在優化中的做用。由於把機器學習和進化計算相結合會有兩個方向,有兩種可能的結合。我先講第二種可能性,即怎麼用機器學習幫助進化計算。其實咱們前面講的基於數據驅動的優化,幾乎都是這個方向的。好比用深度學習能夠用來處理大數據,半監督學習,遷移學習能夠拿來解決小數據驅動的優化問題,增量學習能夠用來解決時變數據驅動的優化問題等等,這些都是使用機器學習技術幫助進化計算來更快、更好的的求解優化問題。如今在回答另外一個問題, 及如何用進化計算來提高機器學習的性能,甚至對傳統的機器學習的方法進行革命性的變革?首先,我既從事進化計算的研究,也作了不少機器學習方面的研究。我常常強調機器學習本質上就是一個優化問題,機器學習中的偏差函數或損失函數就是目標函數。你們也都知道,在機器學習中,爲了考慮其餘目的,好比正則化,稀疏化等等,就分別會把正則化或稀疏的要求有一個超參數累加到損失函數中去。總而言之就是使用加權的方法把不一樣的目標合成一個目標。因此,機器學習就是一個優化問題,且本質上是一個多目標優化問題。爲了解決這個優化問題,機器學習大多采用梯度法及其變形算法。因此把進化算法用在機器學習有如下三方面的優點。

第1、進化算法更適合解決非凸問題。好比機器學習中採用加權法把不一樣的學習目標加在一塊兒,若是是凸優化問題,梯度法的效果比較好。但若是是非凸問題,經過加權之後實際上是解決不了的。這種狀況下,進化計算有其獨特優點。

第2、傳統的機器學習算法只可以用於參數優化。用梯度方法來進行神經網絡的結構優化就比較難了。雖說能夠經過各類變換,梯度法也能在必定程度上解決神經網絡的結構優化問題,可是它不是最有效的方法。相比之下,進化計算作結構優化頗有效。事實上,爲了解決大規模深度網絡的結構優化問題,還能夠借鑑生物發育機制,將進化算法與發育模型相結合。

第3、進化算法能夠實現多目標學習。傳統機器學習每每把不一樣的目標整合成一個單目標問題。可是進化計算很是適合解決多目標優化問題。若是咱們把多目標優化引入機器學習就能夠實現多目標學習。早在2006年的時候我就編輯過一本書,叫做《Multi-Objective Machine Learning》, 是斯普林格出版社出版的,就是將多目標優化的思想引入到機器學習。

要理解多目標學習的好處是什麼,首先須要理解傳統機器學習方法的侷限性在哪裏,傳統機器學習中將多個目標整合成一個目標,必需要用到超參數。而超參數又須要用戶去肯定,因此很難肯定一個最優的超參數。。把多個目標組合成單個目標至少有兩個侷限性:一是你只能獲得一個模型。而這個模型是好仍是很差,你事先是不知道的。 二是若是這個問題是非凸問題,那你調超參數是沒有用的。相反,若是咱們採用多目標學習, 用帕累託優化的思想,咱們就能夠獲得不一樣的模型。而不一樣的模型就能知足用戶不一樣的需求。 好比,咱們想獲得可解釋性好且精度高的模型,這個可能很難。若是咱們把精度高當作一個是目標,把可解釋性好當作另一個目標,也就是把精度和可解釋性做爲兩個不一樣的目標,而後咱們用進化多目標算法同時優化機器學習模型的結構和參數,最後咱們就能夠獲得一系列的模型。這些模型中有些是可解釋性好的模型,雖說他的精度不必定很是高。但它能夠解釋,能夠描述數據裏所蘊含的知識,對於要求解釋性強的用戶來講這個就足夠了。若是咱們要求是精度高的模型,咱們就去挑那些精度特別高的模型。其實最精確的模型就是模型的複雜性跟問題的複雜性是最匹配的那個模型。總之,當咱們用進化多目標算法解決機器學習問題是就能夠獲得一系列的模型,這些模型中有些多是可解釋性最好的,有些多是精度最高的,而有一些可能就是過擬合的。當你看到全部的不一樣模型的時候你就能夠挑選其中若干個。這個就是用進化算法來解決機器學習帶來的一大優點。總的來講把進化運算用來幫助機器學習不只僅是說我可以讓它學的更好,並且是給它提供了更多的可能性。同時能夠用來作參數優化,結構優化,還能考慮模型的可解釋性、安全性等。

訪:其實加正則化項就是防止一些過擬合,它會產生一些稀疏的特性,若是產生一些稀疏的特性,是否是就意味着說這個模型有必定的可解釋性。

金:對,就這個意思啊。就是前面講到的那些有一些模型是可解釋的,而那些模型每每就是複雜度相對比較低的模型。

訪:但就是精度稍微低了一點?

金:對,由於這些模型抓住事情的本質,抓住了主要矛盾。數據中包含了一大堆的信息,有些是主要的,有些是次要的,有些甚至是噪音。一個高精度的模型必然是學習數據中的全部東西。反而,一個精度不是過高、複雜度低一些的模型就能夠抓住問題本質。好比以前咱們使用多目標學習方法作過一個乳腺癌診斷的問題。這個問題有9個變量,而咱們用多目標學習得到的模型中其中最最簡單的一個只用到其中一個變量(病理指標),它卻能正確地對90%的數據進行分類,那就足夠了,況且從這個簡單的模型中咱們能夠提取兩條很是簡單、能夠解釋的規則。

訪:那咱們試驗中怎麼知道這個模型是否是可解釋性的?

金:回答這個問題就涉及到可解釋性的定量問題,也就是咱們怎麼定義可解釋性。我在90年底的時候作過模糊系統的可解釋性。由於最先的模糊是人總結出來的,很容易解釋。後來出現了神經網絡,進化計算,就有了數據驅動的模糊規則生成方法。也就是說用數據來產生模糊規則,而不是像過去同樣靠專家總結。但後來發現用數據驅動的方法產生的這些模糊規則用戶不能理解,由於這些純粹是使用數據進行自適應的。 爲了解決這個問題,咱們提出「模糊規則的可解釋性問題」。經過提出了一些模糊規則可接受性的量化指標,而後採用多目標進化方法來產生可解釋的模糊規則。

訪:一些不瞭解進化計算的研究者和初入這個方向的研究者可能會產生「EA就是在一大堆benchmark上跑跑,實際上沒有什麼用」,「EA的研究就是使勁作實驗而後結果比別人好0.001就開始灌水」等觀點。如何看待這些觀點?EA的研究將來的發展趨勢是什麼?但願能給想進入EA研究領域的人一些建議。

金: 我的以爲,討論這個問題時,咱們要公平。什麼叫公平?不要只盯着着說進化計算這樣,由於機器學習也同樣,不少其餘領域也同樣。其實很早就有學者批評機器學習中的這種狀況,比方說拿了一組數據,而後開始拼性能。因此若是說只有計劃計算領域纔有這個問題,我以爲不公平。那爲何你們對機器學習感受沒有那麼明顯?由於機器學習中的測試問題大都是圖像,如人臉識別問題,會給人感受是在解決一個真實的問題。相反,進化計算的測試問題全是一堆目標函數。人臉識別是一種看得見的問題,但說到底他也是測試問題。而進化計算中的測試問題是抽象的問題,因此給人的感受不是一個真實的問題。因此,大部分機器學習和進化計算解決的問題都是測試問題,都是benchmark。另外一個方面,咱們進化計算的研究者也須要更多的傾聽這種批評的聲音,作更「看得見、摸得着」的測試問題。進化計算領域的研究應該更多的以實際應用爲驅動。好比作數據驅動的優化。但作數據驅動的優化就沒有作純粹benchmark問題那麼簡單了。並且有時候沒辦法驗證解的好壞。咱們如今正往這方面努力,但願能從實際問題中提煉出一些數據,好比空氣動力學優化的例子。由於你讓每一個學生都運行這個很耗時的計算流體力學仿真是不現實的,那麼能不能事先用仿真工具產生一些數據供你們使用?同時,咱們應該設計一些更接近現實問題benchmark。

訪:benchmark仍是頗有意義的,不可能徹底拋棄,在各領域其實都有相似的benchmark,這個也不僅僅只是進化計算的一個特殊的問題。

金:對。之因此你們都在說進化計算的主要緣由,在於進化計算的benchmark太抽象了。

總之,進化計算在人工智能研究中的巨大潛力尚未被開發出來,公衆對進化計算的認知度仍然不高。其實現實生活中是存在不少進化計算典型的應用場景的。

最後謝謝你的採訪。

相關文章
相關標籤/搜索