谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

tony.peng發表於2018-11-02
過去十年,谷歌在人工智慧領域的重重突破,有很大一部分和 Quoc Le 有關。這位出生在越南的谷歌研究員像是一個人工智慧的信徒,堅信機器學習能夠解決一切讓人煩惱的問題,即使存在失敗的可能性,他也樂在其中。AutoML 則是他最新的研究方向,也是被認為將改變整個深度學習發展程式的技術。正如此,我們希望從和 Le 的採訪中探尋圍繞在 AutoML 的真相和未來。

在這場一個小時的採訪裡,筆者印象最深刻的是下面的兩句話:1. 我們做到了自動化機器學習,之後就只是規模化的問題。2. 我預計未來兩年內,至少在計算機視覺領域內,最好的網路會是 AutoML 生成的,而不是人工設計的。

作為谷歌大腦的創始成員和 AutoML 的締造者之一,Quoc Le 算得上是人工智慧研究領域的原住民了。

2011 年在史丹佛大學讀博時,Le 和他的老師吳恩達以及谷歌大腦的研究人員一起,基於千萬張 YouTube 影象開發了一個能夠識別貓的無監督學習系統;2014 年,他將深度學習技術應用在自然語言理解任務上,提出了能將文字轉換為向量表徵、基於迴圈神經網路Seq2Seq 學習模型,將機器翻譯的前沿水平又向前推進了一步。這為谷歌之後在自然語言機器翻譯方面的突破奠定了基礎。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

自 2014 年以來,Le 開始將目光轉向了自動化機器學習(AutoML)。構建機器學習模型的過程需要反覆的人工調整:研究者會在初始的模型上嘗試不同的架構和引數,在資料集上評估模型的表現,再回頭進行修改;這個過程會反覆進行,直到達到最優。

Le 認為可以把它想成是一個試錯問題,繼而通過機器學習解決:「可以看看強化學習以及機器學習下圍棋的方式,基本上就是試錯。」

2016 年,Le 與一位谷歌研究者合作發表了一篇開創性的論文《Neural Architecture Search with Reinforcement Learning》。其核心思想類似於搭建積木:機器從一個定義空間中選取自己所需的元件來構建神經網路,然後使用一種試錯技術,也就是—強化學習—來提升其準確度。這種方法得到了令人驚喜的結果,機器所生成的模型的表現可媲美人工調節的最佳模型。

Le 的研究成果催生了 Google Cloud AutoML,能讓機器學習知識有限的開發者也能訓練出高質量的模型。不出所料,AutoML 迅速成為了今年最熱門的研究主題之一,科技巨頭與創業公司紛紛跟隨谷歌的腳步,投入這項新技術。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

Google Cloud 在今年年初發布了 AutoML 視覺,之後又釋出了 AutoML 翻譯和語言

機器之心近日視訊採訪了 Quoc Le 博士。這位謙遜的 36 歲越南裔人工智慧專家談到了他的靈感來源、AutoML 背後的技術和前方的道路及其在機器學習領域內扮演的重要新角色。這位站在許多變革性技術背後的人有怎樣的見解呢?請看後文。為了簡潔和明晰,採訪內容進行過適當編輯。

在即將於 11 月 9 日 於加利福尼亞州聖荷西舉辦的 AI Frontiers 會議上,Quoc Le 將發表主題為「使用機器學習自動化機器學習」的演講,特別將關注神經架構搜尋和自動資料增強 AutoAugment。

靈感

您在何時開始想要設計一種新的神經架構搜尋方法?是什麼啟發了你?

那是在大概 2014 年的樣子,這個過程隨時間逐漸發生的。我是一位機器學習工程師。當你一直以來都在做神經網路方面的工作時,你會意識到很多工作都需要人工調整,也就是人們說的「引數」——神經網路的層數、學習率、網路中所使用的層的型別。AI 研究者往往會根據某些原則開始調整,然後這些原則會隨時間變得不那麼有效,他們再嘗試不同的策略。

我關注了 ImageNet 競賽中的某些進展,也見證了谷歌的 Inception 網路的發展。我便開始思考我想做些什麼,但那時的想法還不清晰。我喜歡卷積網路,但我不喜歡一個關於卷積網路的事實:卷積網路中的權重並不彼此共享。所以我就想,也許我應該開發一種全新的機制,能真正學會如何在神經網路中共享權重

隨著我的工作推進,我對此的直觀理解也越來越多,我開始發現:研究者們所做的事情是將一些已有的構建模組組合到一起,然後嘗試它們的效果。他們看到準確度有一定提升。然後就說:「很好,也許我剛引入了一個好想法。試試看保留我剛剛引入的好東西,但用某些新東西替換舊有的部分會怎樣呢?」他們就這樣繼續這一過程,這個領域的專家可能會嘗試數百種架構。

在 2016 年左右,我當時在思考如果這個過程需要如此之多的試錯,那我們就應該使用機器學習來自動化,因為機器學習本身也是基於試錯的。可以看看強化學習以及機器學習下圍棋的方式,基本上就是試錯。

我研究了做成這件事將需要多少真正的計算資源。我的想法是,如果是一個人類,那可能會需要一百個網路來試錯,因為人類已經有大量直覺知識和大量訓練了。如果你使用演算法來做這件事,那你的速度可能會慢上一兩個數量級。我認為實際上慢一兩個數量級也不算太差,而且我們已經有充足的計算資源來做這件事了。所以我決定與一位培訓生(Barret Zoph,現在已是谷歌大腦的一位研究者)一起啟動這個專案。

我之前沒想到這會如此地成功。我當時認為我們能做到的最佳結果可能是人類水平的 80%。但這位培訓生非常優秀,他實際上做到了與人類媲美的水平。

許多人告訴我:「你花費了如此之多資源,就只為達到了人類水平?」但我從這個實驗中看到的是現在我們可以做到自動化機器學習。這只是一個規模問題。所以如果你的規模更大,你就能得到更好的結果。我們繼續開展了第二個專案,採用了甚至更大的規模並在 ImageNet 上進行了研究,然後開始得到了真正非常出色的結果。

您有這個想法有告訴 Jeff Dean 嗎?他是什麼反應?

嗯,他非常支援。實際上我也想感謝 Jeff Dean 在這個想法的初期所提供的幫助。

我記得在 2014 年,有一次和 Jeff 吃了一頓午餐,他也分享了非常類似的看法。他認為如果仔細瞭解那時候的深度學習研究者所做的事情,就會發現他們當時會花大量時間來在引數等方面調整架構。我們認為一定存在一種自動化這一過程的方法。Jeff 喜歡擴充套件和自動化困難的東西,這是大多數科技人員不願做的事情。Jeff 給我提供了鼓勵,我也最終決定去做這個。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

谷歌 AI 負責人 Jeff Dean

神經架構搜尋與您之前的研究有何不同?

這不同於我之前在計算機視覺領域的工作。這段研究經歷源自一個想法,並且也在隨時間成長。我也有過一些錯誤想法。比如,我曾想自動化和重建卷積,但那是個錯誤的直覺想法。也許我應該接受卷積,然後使用卷積來構建其它東西?這對我來說是一個學習過程,但不算太壞。

技術

研究者或工程師需要哪些種類的元件來構建神經網路模型?

因應用各異,確實會有所不同,所以我們先來看看計算機視覺領域——即使是在計算機視覺領域內也有很多事物。通常而言,卷積網路會有一個影象輸入,有一個卷積層,然後一個池化層,之後還有批歸一化。然後還有啟用函式,你還可以決定連線到新的層的 skip connection 等等。

在卷積模組內,你還有很多其它選擇。比如在卷積中,你必須決定過濾器的大小:1x1? 3x3? 5x5? 你還必須決定池化和批量大小的規格。至於 skip connection,你可以選擇從第一層到第十層,也可以選擇從第一層到第二層。所以需要做的決定非常多,也就存在大量可能的架構。可能性也許能達到數萬億,但人類現在只會檢查這些可能中的一小部分。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

一種常見的卷積架構

您的第一篇 AutoML 相關論文是《Neural Architecture Search (NAS) with Reinforcement Learning(使用強化學習的神經架構搜尋)》。自那以後,您的團隊已經採用了進化演算法並開始使用漸進式神經架構搜尋。您能詳細談談這些改進背後的思路嗎?

在原來的論文中,我們是從強化學習開始的,因為我們直覺上認為這類似於人類的處理方法,也就是可以使用試錯。但我很好奇,所以我說:「好吧,試試進化方法怎麼樣?」我們做了很多實驗並取得了一些成功,並且認識到這個過程可以使用進化來完成,所以我們修改了核心演算法。

更大的一個改變是使用了 ENAS(高效神經架構搜尋)。過去,當你生成了大量架構時,每個架構的訓練和評估都相對於前一代是獨立的。所以一般不會共享任何先驗知識或資訊。假設說你確實開發了一種共享機制,你可以從之前訓練的網路繼承某些權重,然後就可以更快速地訓練。所以我們就這樣做了。

基本而言,我們的想法就是創造一個包含了所有可能性的巨型網路,然後在該網路中搜尋一條路徑(以最大化在驗證集上的預期獎勵),這就是所要尋找的架構。某些權重會在下一次實驗中得到重複使用。所以會有很多權重共享。因為這種方法,我們實際上能實現很多個數量級的加速。原始的 NAS(神經架構搜尋)演算法要更靈活得多,但成本太高了。ENAS 基本上是一種更快的新演算法,但限制也更多一點。

原始的 NAS 演算法可以生成更優的架構以及更好的引數、更好的資料增強策略、更好的啟用函式、更好的初始化等等。目前我們只成功將這種新的 ENAS 演算法用在了架構方面,還沒用到資料增強以及優化方面。

您的意思是其它引數是人類決定的?

我們將架構搜尋和資料增強確定為人類專家很難設計的兩個關鍵領域。所以一旦你做對了這兩件事,就能實現大量成果。其餘的只用常見的優化技術和標準的實踐方法即可。我們只關注能提供最大效益的元件的自動化。

ENAS 是一個很近期的進展。儘管我們還在做大量黑箱中的實驗,但這個研究方向進展很快。

我聽說有一家創業公司正使用一種名叫生成式合成(generative synthesis)的技術。另外還有使用 GAN 的?不同的搜尋演算法各有哪些優缺點?

我不確定有誰真在用 GAN 來做架構生成。我認為這是可能的,但我不是很瞭解。

進化和強化學習具有相似的通用性,但同樣,如果你不做任何假設,它們的速度會非常慢。所以人們發展出了漸進式神經架構搜尋的思想,即先搜尋一個小元件,然後再不斷增添。我認為這是一個非常好的想法。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

神經架構搜尋概況

說到 ENAS,基本而言核心思想就是權重共享。你想開發一個大架構,然後找到一條路徑。ENAS 基於一些其它思想,比如 one-shot architecture search,也就是構建多個模型,然後想辦法在它們之間共享權重。我認為強化學習和進化方法的優勢是它們非常靈活。它們可用於機器學習流程中任何元件的自動化。但它們也成本高昂。ENAS 和漸進式架構搜尋等大多數針對特定方面的演算法都會有某些前提假設,所以它們的通用性和靈活性更差,但它們一般速度更快。我對 GAN 方面不太瞭解。我認為人們會使用 GAN 來生成更好的影象,但我不認為人們會使用 GAN 來生成更好的架構。

遷移學習在 AutoML 技術中扮演怎樣的角色?

遷移學習有兩種型別。第一種是架構遷移學習,比如找到一個在影象識別資料集上的好架構之後再遷移用於目標檢測。另一種遷移學習權重遷移學習——如果你在公共資料集上訓練你的網路,你會得到一個結果,然後再在你自己的資料集上再訓練該網路。

讓我們假設這樣的情況:我們想做鮮花檢測。ImageNet 有大約 100 萬張影象,包含花的影象有大約 1000 張。你可以根據 ImageNet 找到最佳的架構,然後複用這些權重;或者你可以直接取一個 Inception V3 這樣的先進模型,然後在 ImageNet 上訓練,再在花上遷移學習,之後複用其權重。SOTA 方法是隻遷移權重,因為大多數人都不做架構生成。你必須先讓你的 Inception V3 或 ResNet 在 ImageNet 上訓練。完成這個訓練之後,你再做微調。

我想說的是,實際上你既需要架構遷移學習,也需要權重遷移學習;兩者可以通過如下方式結合起來:

  • 結合方法一:首先做架構遷移學習,然後再做權重遷移學習

  • 結合方法二:直接在你的資料集上進行架構搜尋,並在 ImageNet 上做權重遷移學習

  • 結合方法三:直接使用 ResNet 和權重遷移學習。這是當前最佳的方法。

  • 結合方法〇:只在你的目標資料集上進行架構搜尋,不做遷移學習

因資料集不同,適用的結合方法也不同,因為有的資料集更大,有的則更小。不同的結合方式是在資料集的不同側面發揮作用。

我預測未來幾年,組合方法〇(即純粹的架構搜尋)將能得到質量更好的網路。我們在這一領域做了大量研究,我們知道這種方法實際上更好。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

Quoc Le 在接受機器之心視訊採訪期間進行板書

麻省理工學校和上海交通大學的一篇研究論文提出了一種路徑層面的網路到網路變換(arXiv: 1806.02639),您怎麼看?

這是個很棒的思路。在我決定研究架構搜尋時我就想過嘗試這一思路:首先從一個優良的初始架構開始,然後修改再修改,總是盡力做到越來越好。但我感覺這有點點胸無大志,我希望能做些更雄心勃勃的事情!

寫論文的一大好處是當我們發表時,我們會發現很多人都有一樣的哲學思想。而且他們確實對這些演算法進行了修改,我們實際上也能從這些研究思想中學到東西,幫助改進我們自己的研究。

AutoML 的哪些部分仍需人類干預?

我們還必須做一些設計搜尋空間的工作。在架構搜尋方面,可以使用進化、強化學習或這種高效的演算法。但我們也必須定義一個卷積網路或全連線網路的構建模組所處的空間。有些決定還是必須人來做,因為目前 AutoML 的計算能力有限。我們並不能直接搜尋一切,因為那樣的話搜尋空間就太大了。因為這樣的原因,我們必須設計一個帶有所有可能性的更小的搜尋空間。

深度學習仍然是一種黑箱技術。AutoML 能幫助使用者更好地理解模型嗎?

我們能得到一些見解。比如,這樣的搜尋過程會生成很多看起來類似的架構。你可以檢查這些架構,然後識別出特定的模式。你也可以得出一些直覺理解,幫助你瞭解哪種架構對你的資料集而言最好。比如在 ImageNet 上,由 AutoML 發現的網路的層中通常都有多個分支(不同於每層僅有一個或少量分支的更傳統的網路)。在分支的層面上看,很難解釋發生了什麼。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

ImageNet 中,目標和影象的尺寸各有不同。有時候巨大醒目的目標出現在影象正中,有時候影象中的目標非常小,比如一個小零件。所以你會有不同大小的過濾器。通過組合不同的分支,能得到更好的結果。我們會繼續研究這個問題。

AutoML 的挑戰和未來

您認為 AutoML 研究目前所面臨的最大難題是什麼?

我認為未來兩年中最大的難題將是如何讓搜尋更高效,因為我認為很多人都不想使用一百個 GPU 來解決某個小資料集的問題。所以尋找能在降低成本的同時又不影響質量的方法會成為一個非常重大的問題。

第二個大難題是如何降低設計搜尋空間所需的人力工作。因為現在的搜尋空間中具有某些先驗的知識,所以即使我們宣稱我們用 AutoML 做一切工作,特定的先驗知識元素仍會進入搜尋空間。我認為這還不夠理想,我也想研究這個問題。

但我可以告訴你,AutoML beta 版的質量已經很好了,谷歌雲的人也很滿意。我不能說產品的細節,但我認為質量已經很好。而且接受情況也很棒。

谷歌AutoML創造者Quoc Le:未來最好的人工智慧模型將由機器生成

參閱機器之心文章:https://www.jiqizhixin.com/articles/2018-02-06-23

在 AutoML 的魯棒性提升方面是否還有機會?

一般而言,當我們做 AutoML 時,我們會有另外一個驗證資料集。這樣我們就可以不斷在那個資料集上進行驗證來評估質量。魯棒性實際上已經是 AutoML 的目標函式的一部分。現在在新增約束方面,事實證明 AutoML 有能力做到,比如製作對對抗噪聲更魯棒的模型,或將其它外部約束條件新增進 AutoML 中。這是一種非常棒的能力,因為很多時候當你有新的約束條件時,人類很難找到將其植入到模型中的方法。但是 AutoML 可以使用一個獎勵函式作為準確度和魯棒性之間的權衡。然後進化,最後會找到一個在準確度和穩健性之間有良好權衡的模型。

說個案例。我們之前有位研究者在研究如何設計出更好的網路來防禦對抗樣本。我們在 CIFAR-10 上進行了小規模的實驗。他找到了一個對對抗攻擊非常穩健的網路,由於之前最佳。這個結果非常好,能做到這一點的原因是人類很難直觀地想出一種防禦攻擊的方法。但 AutoML 不在乎,它只是嘗試了一些網路,然後其中一個網路不知怎的本身就具有防禦攻擊的機制。

有辦法有效地比較目前市面上的這些各不相同的 AutoML 解決方案嗎?

可以做到。只要你有一個任務,你就應該單獨建立一個資料集。你將其輸入 AutoML,然後它會得出某些預測模型,然後你在你的測試集上評估這些預測模型——這個測試集應該被看作是你的基準集。在基準集上的準確度是衡量模型表現的好標準。我不能過多地評論我們的方法與市面上其它方法的比較情況,但我認為人們都可以自己去看去比較。

您認為 AutoML 能夠生成下一代顛覆性網路架構嗎,類似 Inception 或 ResNet?

我認為它已經做到了。我們近期使用了架構搜尋來尋找可用於移動手機的更好的網路。這是一個很艱難的領域,很多人都在研究。超過 MobileNet v2 是很困難的,這是現在的行業標準。我們生成了一個顯著更優的網路,在移動手機上同樣速度下好 2%。

而這僅僅是個開始。我認為這樣的事還會繼續發生。我預計未來兩年內,至少在計算機視覺領域內,最好的網路會是生成的,而不是人工設計的。

您怎麼看待圍繞 AutoML 的炒作?

我很難評論圍繞 AutoML 的炒作,但當我看到很多人都想使用機器學習時,我認為在幫助機器學習更廣泛可用方面還存在很大的能做出成績的空間。特定的技術可能比其它一些技術炒得更凶,但我認為隨著時間推移,我們能帶來影響的領域將非常廣闊。

很少有研究者能在機器學習領域多次取得突破。您是如何維持自己的創造力的?

首先,出色的研究者有很多,他們都非常有創造力,工作非常出色,所以我並不特殊。對於我自己,我有一些我一直很好奇並想要解決的問題,而且我非常熱愛解決這些問題。我只是跟隨著自己的好奇心併為世界帶來了積極的影響。這是好奇心與毅力的結合。我也會在週末踢足球,而且我愛好園藝。我不知道這是否有助於我的研究工作,但這確實能幫助我放鬆身心。

我不得不問:您如何應對失敗?

如果你熱愛,那你就會堅持不懈去追尋,對吧?我非常熱愛機器學習。教機器如何學習是一種做計算機程式設計的新方法:不用再寫程式了,可以教機器來做。我從根本上喜歡這個概念。所以即便遭遇失敗時,我也樂在其中!

相關文章