【專訪】英國薩里大學金耀初教授:看進化計算在人工智能領域的未來發展 - 知乎

這個是2018年10月份做的一個採訪,不知道爲何近期被知乎給刪掉了。然後我又讀了一遍當初這篇採訪,雖然過去2年多了但是收穫依然頗多。故此重發一次作爲備份,另外沒有看過的小夥伴也可以讀一讀。

編者按

作爲基於種羣的全局優化算法,進化算法(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進化計算彙刊優秀論文獎”,2014、2016年度“IEEE 計算智能雜誌優秀論文獎”,“2017年世界進化計算大會最佳學生論文獎”以及“2014年計算智能理論國際研討會最佳學生論文獎”。他指導的博士學位論文獲“2018年度IEEE計算智能學會優秀博士論文獎”。研究方向涉及人工智能的多個領域,包括進化計算,多目標優化與決策,大數據、稀疏數據驅動的進化優化,多目標機器學習、安全機器學習,分佈式機器學習等及其在複雜工業過程、健康醫療及羣機器人等方面的應用。

採訪正文

1 進化算法 vs 數學優化方法

問:很多同學對進化算法(EA)或多或少都有了解,您覺得EA和傳統的數學優化方法相比,其優勢是什麼?或者說什麼樣的問題,EA的效果比較好。

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

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

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

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

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

問:這是一個普遍現象,比如對基於數學規劃的優化的關注度遠遠低於機器學習。大家都知道機器學習,但只有少部分人知道數學規劃的優化。

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

2 數據驅動的優化問題

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

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

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

金:做研究一般可以分爲兩類,即問題驅動的研究和理論驅動的研究。從整體做研究來說,兩個都是必要的,一方面研究的問題要從應用中來,要提煉問題。有什麼樣的問題,才做什麼樣的研究。另一方面,研究要到實際問題中去,實際應用有什麼問題我們解決什麼問題。離線數據驅動的優化更多的是問題驅動的優化,是數據驅動優化問題中比較特殊的一類問題。爲什麼要做離線數據優化?因爲有一類像生產過程的優化這樣的優化問題,我們無法邊優化邊做驗證,因爲做驗證會打亂工廠的生產過程;還有一類資源優化問題也只能做離線數據優化,因爲資源優化問題的數據是來源於日常生活,並且是獨立於優化過程而產生的,無法在優化過程中採集想要的數據。這兩類問題都必然需要考慮離線數據驅動優化的問題和挑戰。

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

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

3 進化算法與人工智能的交叉

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

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

第一、進化算法更適合解決非凸問題。比如機器學習中採用加權法把不同的學習目標加在一起,如果是凸優化問題,梯度法的效果比較好。但如果是非凸問題,通過加權以後其實是解決不了的。這種情況下,進化計算有其獨特優勢。

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

第三、進化算法可以實現多目標學習。傳統機器學習往往把不同的目標整合成一個單目標問題。但是進化計算非常適合解決多目標優化問題。如果我們把多目標優化引入機器學習就可以實現多目標學習。早在2006年的時候我就編輯過一本書,叫作《Multi-Objective Machine Learning》, 是斯普林格出版社出版的,就是將多目標優化的思想引入到機器學習。

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

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

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

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

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

問:那我們試驗中怎麼知道這個模型是不是可解釋性的?

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

4 進化算法社區的一些侷限性

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

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

問:benchmark還是很有意義的,不可能完全拋棄,在各領域其實都有類似的benchmark,這個也不單單只是進化計算的一個特殊的問題。

金:對。之所以大家都在說進化計算的主要原因,在於進化計算的benchmark太抽象了。總之,進化計算在人工智能研究中的巨大潛力還沒有被開發出來,公衆對進化計算的認知度仍然不高。其實現實生活中是存在很多進化計算典型的應用場景的。最後謝謝你的採訪。

致謝

本次採訪到此結束,非常感謝金老師能參與這次採訪並給我們作出了精彩的回答。一篇採訪稿的製作需要耗費大量的人力物力去完成,在此我們感謝參與前期問題策劃和負責參與採訪工作的楊翠娥同學,感謝後期錄音稿整理和文字校對工作的劉強同學和楊翠娥同學。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章