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

运筹OR帷幄發表於2018-10-15

編者按:作為基於種群的全域性最佳化演算法,進化演算法(Evolutionary Algorithm)不需要目標函式的可解釋性,這些年在計算代價昂貴最佳化問題,多目標最佳化問題,魯棒最佳化問題等領域獲得了廣泛的應用和發展。

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

1、嘉賓介紹

金耀初(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計算智慧學會優秀博士論文獎”。研究方向涉及人工智慧的多個領域,包括進化計算,多目標最佳化與決策,大資料、稀疏資料驅動的進化最佳化,多目標機器學習、安全機器學習,分散式機器學習等及其在複雜工業過程、健康醫療及群機器人等方面的應用。

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

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

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

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

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


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

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

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

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

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

訪:離線資料最佳化是您最先提出來的,這類問題它有什麼重大的意義?


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


金:對。之所以大家都在說進化計算的主要原因,在於進化計算的benchmark太抽象了。

總之,進化計算人工智慧研究中的巨大潛力還沒有被開發出來,公眾對進化計算的認知度仍然不高。其實現實生活中是存在很多進化計算典型的應用場景的。

最後謝謝你的採訪。

運籌OR帷幄
運籌OR帷幄

『運籌OR帷幄』是大資料人工智慧時代的運籌學,普及運籌學和最佳化理論,及其在人工智慧和供應鏈中的應用。

相關文章