作為谷歌大腦的創始成員和 AutoML 的締造者之一,Quoc Le 算得上是人工智能研究領域的原住民了。
2011 年在斯坦福大學讀博時,Le 和他的老師吳恩達以及谷歌大腦的研究人員一起,基于千萬張 YouTube 圖像開發了一個能夠識别貓的無監督學習系統;2014 年,他将深度學習技術應用在自然語言了解任務上,提出了能将文本轉換為向量表征、基于循環神經網絡的 Seq2Seq 學習模型,将機器翻譯的前沿水準又向前推進了一步。這為谷歌之後在自然語言機器翻譯方面的突破奠定了基礎。

自 2014 年以來,Le 開始将目光轉向了自動化機器學習(AutoML)。建構機器學習模型的過程需要反複的人工調整:研究者會在初始的模型上嘗試不同的架構和超參數,在資料集上評估模型的表現,再回頭進行修改;這個過程會反複進行,直到達到最優。
Le 認為可以把它想成是一個試錯問題,繼而通過機器學習解決:「可以看看強化學習以及機器學習下圍棋的方式,基本上就是試錯。」
2016 年,Le 與一位谷歌研究者合作發表了一篇開創性的論文《Neural Architecture Search with Reinforcement Learning》。其核心思想類似于搭建積木:機器從一個定義空間中選取自己所需的元件來建構神經網絡,然後使用一種試錯技術,也就是—強化學習—來提升其準确度。這種方法得到了令人驚喜的結果,機器所生成的模型的表現可媲美人工調節的最佳模型。
Le 的研究成果催生了 Google Cloud AutoML,能讓機器學習知識有限的開發者也能訓練出高品質的模型。不出所料,AutoML 迅速成為了今年最熱門的研究主題之一,科技巨頭與創業公司紛紛跟随谷歌的腳步,投入這項新技術。
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 給我提供了鼓勵,我也最終決定去做這個。
谷歌 AI 負責人 Jeff Dean
神經架構搜尋與您之前的研究有何不同?
這不同于我之前在計算機視覺領域的工作。這段研究經曆源自一個想法,并且也在随時間成長。我也有過一些錯誤想法。比如,我曾想自動化和重建卷積,但那是個錯誤的直覺想法。也許我應該接受卷積,然後使用卷積來建構其它東西?這對我來說是一個學習過程,但不算太壞。
技術
研究者或工程師需要哪些種類的元件來建構神經網絡模型?
因應用各異,确實會有所不同,是以我們先來看看計算機視覺領域——即使是在計算機視覺領域内也有很多事物。通常而言,卷積網絡會有一個圖像輸入,有一個卷積層,然後一個池化層,之後還有批歸一化。然後還有激活函數,你還可以決定連接配接到新的層的 skip connection 等等。
在卷積子產品内,你還有很多其它選擇。比如在卷積中,你必須決定過濾器的大小:1x1? 3x3? 5x5? 你還必須決定池化和批量大小的規格。至于 skip connection,你可以選擇從第一層到第十層,也可以選擇從第一層到第二層。是以需要做的決定非常多,也就存在大量可能的架構。可能性也許能達到數萬億,但人類現在隻會檢查這些可能中的一小部分。
一種常見的卷積架構
您的第一篇 AutoML 相關論文是《Neural Architecture Search (NAS) with Reinforcement Learning(使用強化學習的神經架構搜尋)》。自那以後,您的團隊已經采用了進化算法并開始使用漸進式神經架構搜尋。您能詳細談談這些改進背後的思路嗎?
在原來的論文中,我們是從強化學習開始的,因為我們直覺上認為這類似于人類的處理方法,也就是可以使用試錯。但我很好奇,是以我說:「好吧,試試進化方法怎麼樣?」我們做了很多實驗并取得了一些成功,并且認識到這個過程可以使用進化來完成,是以我們修改了核心算法。
更大的一個改變是使用了 ENAS(高效神經架構搜尋)。過去,當你生成了大量架構時,每個架構的訓練和評估都相對于前一代是獨立的。是以一般不會共享任何先驗知識或資訊。假設說你确實開發了一種共享機制,你可以從之前訓練的網絡繼承某些權重,然後就可以更快速地訓練。是以我們就這樣做了。
基本而言,我們的想法就是創造一個包含了所有可能性的巨型網絡,然後在該網絡中搜尋一條路徑(以最大化在驗證集上的預期獎勵),這就是所要尋找的架構。某些權重會在下一次實驗中得到重複使用。是以會有很多權重共享。因為這種方法,我們實際上能實作很多個數量級的加速。原始的 NAS(神經架構搜尋)算法要更靈活得多,但成本太高了。ENAS 基本上是一種更快的新算法,但限制也更多一點。
原始的 NAS 算法可以生成更優的架構以及更好的超參數、更好的資料增強政策、更好的激活函數、更好的初始化等等。目前我們隻成功将這種新的 ENAS 算法用在了架構方面,還沒用到資料增強以及優化方面。
您的意思是其它參數是人類決定的?
我們将架構搜尋和資料增強确定為人類專家很難設計的兩個關鍵領域。是以一旦你做對了這兩件事,就能實作大量成果。其餘的隻用常見的優化技術和标準的實踐方法即可。我們隻關注能提供最大效益的元件的自動化。
ENAS 是一個很近期的進展。盡管我們還在做大量黑箱中的實驗,但這個研究方向進展很快。
我聽說有一家創業公司正使用一種名叫生成式合成(generative synthesis)的技術。另外還有使用 GAN 的?不同的搜尋算法各有哪些優缺點?
我不确定有誰真在用 GAN 來做架構生成。我認為這是可能的,但我不是很了解。
進化和強化學習具有相似的通用性,但同樣,如果你不做任何假設,它們的速度會非常慢。是以人們發展出了漸進式神經架構搜尋的思想,即先搜尋一個小元件,然後再不斷增添。我認為這是一個非常好的想法。
神經架構搜尋概況
說到 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 和權重遷移學習。這是目前最佳的方法。
- 結合方法〇:隻在你的目标資料集上進行架構搜尋,不做遷移學習。
因資料集不同,适用的結合方法也不同,因為有的資料集更大,有的則更小。不同的結合方式是在資料集的不同側面發揮作用。
我預測未來幾年,組合方法〇(即純粹的架構搜尋)将能得到品質更好的網絡。我們在這一領域做了大量研究,我們知道這種方法實際上更好。
Quoc Le 在接受機器之心視訊采訪期間進行闆書
麻省理工學校和上海交通大學的一篇研究論文提出了一種路徑層面的網絡到網絡變換(arXiv: 1806.02639),您怎麼看?
這是個很棒的思路。在我決定研究架構搜尋時我就想過嘗試這一思路:首先從一個優良的初始架構開始,然後修改再修改,總是盡力做到越來越好。但我感覺這有點點胸無大志,我希望能做些更雄心勃勃的事情!
寫論文的一大好處是當我們發表時,我們會發現很多人都有一樣的哲學思想。而且他們确實對這些算法進行了修改,我們實際上也能從這些研究思想中學到東西,幫助改進我們自己的研究。
AutoML 的哪些部分仍需人類幹預?
我們還必須做一些設計搜尋空間的工作。在架構搜尋方面,可以使用進化、強化學習或這種高效的算法。但我們也必須定義一個卷積網絡或全連接配接網絡的構模組化塊所處的空間。有些決定還是必須人來做,因為目前 AutoML 的計算能力有限。我們并不能直接搜尋一切,因為那樣的話搜尋空間就太大了。因為這樣的原因,我們必須設計一個帶有所有可能性的更小的搜尋空間。
深度學習仍然是一種黑箱技術。AutoML 能幫助使用者更好地了解模型嗎?
我們能得到一些見解。比如,這樣的搜尋過程會生成很多看起來類似的架構。你可以檢查這些架構,然後識别出特定的模式。你也可以得出一些直覺了解,幫助你了解哪種架構對你的資料集而言最好。比如在 ImageNet 上,由 AutoML 發現的網絡的層中通常都有多個分支(不同于每層僅有一個或少量分支的更傳統的網絡)。在分支的層面上看,很難解釋發生了什麼。
在 ImageNet 中,目标和圖像的尺寸各有不同。有時候巨大醒目的目标出現在圖像正中,有時候圖像中的目标非常小,比如一個小零件。是以你會有不同大小的過濾器。通過組合不同的分支,能得到更好的結果。我們會繼續研究這個問題。
AutoML 的挑戰和未來
您認為 AutoML 研究目前所面臨的最大難題是什麼?
我認為未來兩年中最大的難題将是如何讓搜尋更高效,因為我認為很多人都不想使用一百個 GPU 來解決某個小資料集的問題。是以尋找能在降低成本的同時又不影響品質的方法會成為一個非常重大的問題。
第二個大難題是如何降低設計搜尋空間所需的人力工作。因為現在的搜尋空間中具有某些先驗的知識,是以即使我們宣稱我們用 AutoML 做一切工作,特定的先驗知識元素仍會進入搜尋空間。我認為這還不夠理想,我也想研究這個問題。
但我可以告訴你,AutoML beta 版的品質已經很好了,谷歌雲的人也很滿意。我不能說産品的細節,但我認為品質已經很好。而且接受情況也很棒。
在 AutoML 的魯棒性提升方面是否還有機會?
一般而言,當我們做 AutoML 時,我們會有另外一個驗證資料集。這樣我們就可以不斷在那個資料集上進行驗證來評估品質。魯棒性實際上已經是 AutoML 的目标函數的一部分。現在在添加限制方面,事實證明 AutoML 有能力做到,比如制作對對抗噪聲更魯棒的模型,或将其它外部限制條件添加進 AutoML 中。這是一種非常棒的能力,因為很多時候當你有新的限制條件時,人類很難找到将其植入到模型中的方法。但是 AutoML 可以使用一個獎勵函數作為準确度和魯棒性之間的權衡。然後進化,最後會找到一個在準确度和穩健性之間有良好權衡的模型。
說個案例。我們之前有位研究者在研究如何設計出更好的網絡來防禦對抗樣本。我們在 CIFAR-10 上進行了小規模的實驗。他找到了一個對對抗攻擊非常穩健的網絡,由于之前最佳。這個結果非常好,能做到這一點的原因是人類很難直覺地想出一種防禦攻擊的方法。但 AutoML 不在乎,它隻是嘗試了一些網絡,然後其中一個網絡不知怎的本身就具有防禦攻擊的機制。
有辦法有效地比較目前市面上的這些各不相同的 AutoML 解決方案嗎?
可以做到。隻要你有一個任務,你就應該單獨建立一個資料集。你将其輸入 AutoML,然後它會得出某些預測模型,然後你在你的測試集上評估這些預測模型——這個測試集應該被看作是你的基準集。在基準集上的準确度是衡量模型表現的好标準。我不能過多地評論我們的方法與市面上其它方法的比較情況,但我認為人們都可以自己去看去比較。
您認為 AutoML 能夠生成下一代颠覆性網絡架構嗎,類似 Inception 或 ResNet?
我認為它已經做到了。我們近期使用了架構搜尋來尋找可用于移動手機的更好的網絡。這是一個很艱難的領域,很多人都在研究。超過 MobileNet v2 是很困難的,這是現在的行業标準。我們生成了一個顯著更優的網絡,在移動手機上同樣速度下好 2%。
而這僅僅是個開始。我認為這樣的事還會繼續發生。我預計未來兩年内,至少在計算機視覺領域内,最好的網絡會是生成的,而不是人工設計的。
您怎麼看待圍繞 AutoML 的炒作?
我很難評論圍繞 AutoML 的炒作,但當我看到很多人都想使用機器學習時,我認為在幫助機器學習更廣泛可用方面還存在很大的能做出成績的空間。特定的技術可能比其它一些技術炒得更兇,但我認為随着時間推移,我們能帶來影響的領域将非常廣闊。
很少有研究者能在機器學習領域多次取得突破。您是如何維持自己的創造力的?
首先,出色的研究者有很多,他們都非常有創造力,工作非常出色,是以我并不特殊。對于我自己,我有一些我一直很好奇并想要解決的問題,而且我非常熱愛解決這些問題。我隻是跟随着自己的好奇心并為世界帶來了積極的影響。這是好奇心與毅力的結合。我也會在周末踢足球,而且我愛好園藝。我不知道這是否有助于我的研究工作,但這确實能幫助我放松身心。
我不得不問:您如何應對失敗?
如果你熱愛,那你就會堅持不懈去追尋,對吧?我非常熱愛機器學習。教機器如何學習是一種做計算機程式設計的新方法:不用再寫程式了,可以教機器來做。我從根本上喜歡這個概念。是以即便遭遇失敗時,我也樂在其中!