英国萨里大学金耀初教授:进化计算在人工智能领域的发展
專訪英國薩里大學金耀初教授:進化計算在人工智能領域的發展
?
?
作為基于種群的全局優化算法,進化算法(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計算智能學會優秀博士論文獎”。研究方向涉及人工智能的多個領域,包括進化計算,多目標優化與決策,大數據、稀疏數據驅動的進化優化,多目標機器學習、安全機器學習,分布式機器學習等及其在復雜工業過程、健康醫療及群機器人等方面的應用。
?
?
訪:很多同學對進化算法(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太抽象了。
總之,進化計算在人工智能研究中的巨大潛力還沒有被開發出來,公眾對進化計算的認知度仍然不高。其實現實生活中是存在很多進化計算典型的應用場景的。
最后謝謝你的采訪。
轉載于:https://www.cnblogs.com/tsingke/p/10504037.html
總結
以上是生活随笔為你收集整理的英国萨里大学金耀初教授:进化计算在人工智能领域的发展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阅读王概凯老师架构漫谈系列总结
- 下一篇: OpenGL运用辅佐库创立规矩几许目标