揭開谷歌 AutoML 的神秘面紗
在推出AutoML時,谷歌首席執行官Sundar Pichai在博客中寫道:「設計神經網路是非常耗時的,其對專業知識的極高要求使得只有小部分科研人員和工程師才能參與設計。這就是我們創建AutoML方法的原因,有了它,神經網路也可以設計神經網路。我們希望AutoML能夠擁有現在一些博士擁有的能力,並可以在三到五年內使眾多開發人員也能通過 AutoML 設計神經網路,滿足其特定的需求。」
谷歌首席執行官Sundar Pichai表示,我們都需要設計自己的神經網路
谷歌的人工智慧負責人Jeff Dean表示,100倍的計算力可以取代人類機器學習專家,他以需要龐大計算力的神經架構搜索為案例來解釋了這一點。(在他的TensorFlow DevSummit大會主旨演講視頻中大約23:50左右)
這引發了許多問題的討論:眾多開發人員需要「設計神經網路,滿足其特定的需求」(引自Pichai的願景),或是否有一種行之有效的方法可以使得神經網路可以廣泛適用於同一類問題的解決?巨大的計算能力真的可以取代人類機器學習專家嗎?
在評估谷歌的聲明時,應當牢記,如果我們被說服,相信有效使用深度學習技術的關鍵是提高計算能力,谷歌將從中利益,因為在這一領域,谷歌明顯遙遙領先。如果這是真的話,我們可能都需要購買谷歌的產品。就其本身而言,這並不意味著谷歌的說法都是錯誤的,但很好地了解他們的聲明背後隱藏的經濟動機是有必要的。
在之前的文章中,我介紹了AutoML的歷史,解釋了什麼是神經架構搜索,並指出對於許多機器學習項目,設計或選擇架構遠不是最困難,最耗時或最痛苦的問題。在今天的帖子中,我想特別關注Google的AutoML本身,這是一個廣受關注的產品,並試圖解決以下問題:
? 什麼是AutoML?
? 什麼是遷移學習?
? 神經架構搜索與遷移學習:兩種截然相反的方法
? 需要更多證據
? 為什麼谷歌的AutoML備受追捧?
? 我們如何解決機器學習專家短缺的問題?
什麼是AutoML?
儘管AutoML領域已經發展了很多多年(包括開源AutoML庫,研討會,研究,和比賽),但在2017年5月,Google仍將其神經架構搜索稱之為AutoML。在谷歌I/O大會上發布的博客聲明中,谷歌首席執行官Sundar Pichai寫道:「這就是我們創建AutoML方法的原因,有了它,神經網路也可以設計神經網路。」;Google AI研究人員Barret Zoph和Quoc Le寫道:「通過我們的方法(我們稱之為「AutoML」)中,神經網路控制器可以提出一個「子」模型架構...」
Google於2018年1月推出機器學習產品- Cloud AutoML。到目前為止,它只有一個公開可用的服務AutoML Vision,AutoML Vision是一種識別或分類圖像中對象的API。根據產品頁面的描述,Cloud AutoML Vision依賴於兩種核心技術:遷移學習和神經架構搜索。既然我們已經介紹過了神經架構搜索,現在讓我們看一下遷移學習,了解一下它與神經架構搜索之間的關係。
關於谷歌的AutoML和神經架構搜索的一小部分的頭條新聞
注意:Google Cloud AutoML還有一個仍然處於alpha測試狀態的拖放式ML產品。我在2個月前申請訪問它,但至今還沒有收到谷歌的回復。我計劃在它發布後開貼寫一篇文章。
什麼是遷移學習?
遷移學習是一種強大的機器學習技術,通過利用已經在類似的大型數據集上訓練過的預訓練模型,可以讓人們使用較小數據集或較低的計算能力獲得最先進的結果。因為通過遷移學習方式學習的模型不需要從頭學習,所以與不使用遷移學習的模型相比,它通常可以以更少的數據和計算時間達到更高的準確度。
遷移學習是我們在整個免費的碼農實用深度學習課程中使用的核心技術 - 我們的學生不斷地將其應用到生產過程中,無論是在自己的創業公司還是財富500強公司。雖然比起神經架構搜索,遷移學習似乎「不那麼吸引人」,但有人已經在利用遷移學習技術實現突破性的學術成果,例如Jeremy Howard 和 Sebastian Ruder將遷移學習應用於NLP,在6個數據集上完成了最佳分類。同時,遷移學習技術也是在OpenAI中該領域進一步研究的基礎。
神經架構搜索與遷移學習:兩種截然相反的方法
遷移學習的基本思路是將神經網路架構泛化以解決相似類型的問題:例如,許多圖像與其他類型的圖像具有相同的基本特徵(例如角,圓形,狗臉或輪子)。 相比之下,神經架構搜索解決問題的基本理念恰恰相反:每個數據集都有一個獨特的,高度專門化的架構。
來自Matthew Zeiler和Rob Fergus的例子,圖像分類器習得的4個特徵:角,圓圈,狗臉和輪子
當神經架構搜索發現新架構時,你必須從頭開始學習該架構的權重,而使用遷移學習方法時,你可以直接使用預先訓練的模型的現有權重。從這個意義上說,你不能同時使用神經架構搜索和遷移學習解決同一問題:如果你正在學習一個新的架構,你需要為它訓練新的權重; 而如果你通過預訓練模型遷移學習,則無法對架構進行任何實質性更改。
當然,你可以將遷移學習應用於通過神經架構搜索方法習得的架構(我認為這是一個好主意!)。 這僅需要少數研究人員使用神經架構搜索並將他們找到的模型開源。在可以使用遷移學習解決問題時,沒有必要讓所有機器學習從業者都使用神經架構搜索方法。 然而,Jeff Dean的主題演講,Sundar Pichai的博客文章,Google Cloud的宣傳材料和媒體報道都表明了相反的觀點:每個人都需要能夠直接使用神經架構搜索。
神經架構搜索有哪些好處?
神經架構搜索有助於尋找新的架構!谷歌的AmoebaNet是通過神經架構搜索學習的,並且fast.ai對此進行了改進,學習進程加快的同時改變了訓練過程中圖像的尺寸。AmoebaNet已成為在單台機器上訓練ImageNet最便宜的方式!
AmoebaNet設計時沒有考慮具有擴展能力的獎勵函數,因此它不能像ResNet一樣擴展到多台機器,但是針對不同性質的可很好擴展的神經網路在未來是很有可能被自動學習出來的。
需要更多證據
目前還沒有證據表明每個數據集最好使用自己的自定義模型建模,而不是微調現有模型。 由於神經結構搜索需要更大的訓練集,因此對於較小的數據集來說尤其如此。甚至谷歌自己的一些研究也使用的是可遷移技術,而不是為每個數據集尋找新的架構,例如NASNet(博客文章),它在Cifar10上學習了一個架構模塊,然後使用模塊為ImageNet創建了一個架構。我還沒有聽說過任何機器學習比賽獲勝者使用的是神經架構搜索。
此外,我們不知道谷歌推廣的需要計算力的神經架構搜索方法是否具有顯著的優越性。 例如,最近有一些論文,如高效神經架構搜索(ENAS)和可微架構搜索(DARTS),提出了更有效的演算法。 DARTS僅需4個GPU工作天數就可學會架構,而NASNet則需1800個GPU工作天數,AmoebaNet則為3150個GPU工作天數(都曾在Cifar-10中學習,精確度相同)。 Jeff Dean是ENAS論文的作者,他在論文中提出了一種計算力低1000倍的技術,這似乎與他在一個月後在TF DevSummit大會上強調使用計算力高100倍的方法不一致。
為什麼谷歌的AutoML備受追捧?
鑒於上述限制,為什麼谷歌AutoML的有用性還沒有經過驗證(至少到目前為止),就被如此追捧? 我認為有以下幾個原因:
1. 谷歌的AutoML更加突顯了一個營利性公司設立學術性研究實驗室可能遭遇的一些風險。在這種環境下,人們很容易圍繞有趣的學術研究創造產品,而不評估它們是否滿足實際需求。許多人工智慧初創企業也正是如此,例如MetaMind或Geometric Intelligence,它們被收購時甚至還沒有推出一樣產品。我對創業公司創始人的建議是不要直接將你的博士論文投入生產,也不要只招聘學術研究人員。
2. 谷歌擅長營銷。許多門外漢認為人工智慧是一個難以接近和令人生畏的領域,他們認為自己沒有辦法去評估這些聲明,特別是像谷歌這樣久負盛名的公司所發表的聲明。 許多記者也是如此,甚至不加批判地將谷歌的廣告宣傳寫成了炙手可熱的文章。 我會定期與那些不從事機器學習領域的人交談,他們從未使用過任何Google ML產品,對這些產品十分感興趣,但又說不出什麼名堂。
舉一個谷歌吹捧其成就的誤導性報道的典型例子:谷歌人工智慧研究人員曾發布了一篇名為「使用深度學習技術來重建真正的人類基因組」的文章,將自己的工作與諾貝爾獎獲得者的發現相提並論(狂妄自大!),該文章被Wired選中刊登。然而,約翰斯·霍普金斯大學生物醫學工程,計算機科學和生物統計學的傑出教授Steven Salzberg駁斥了谷歌的帖子。 Salzberg指出,這項研究實際上並沒有重建人類基因組,而「僅僅是對現有軟體的一些改進,甚至可能還沒有改進多少。」許多其他基因組學研究人員都贊同Salzberg的觀點。
谷歌正在進行一些了不起的工作,但如果我們不必篩選如此多的誤導性炒作來弄清楚什麼是合理的,那麼它所做的工作也會更容易得到承認。
3. 如果我們被說服,相信有效使用深度學習技術的關鍵是提高計算能力,谷歌將從中獲益,因為在這一領域,谷歌明顯遙遙領先。AutoML通常需要大量的計算,例如要學習AmoebaNet,谷歌需要在450 個K40 GPU上訓練7天(相當於3150個GPU工作天數)。
雖然工程師和媒體經常痴迷於計算能力或其他一些更龐大的東西,但歷史表明,創新往往是在約束和創造力的基礎上產生的。 Google使用龐大的計算力處理海量數據; 我們當前生活在資源有限的受約束的世界中,這種方法真的可以泛化以解決我們面臨的問題嗎?
創新是以不同的方式來解決問題,而不是把事情做大。 fast.ai最近在斯坦福大學DAWNBench比賽中取得的成功就證明了這一點。
如何解決機器學習專家短缺的問題?
回到Jeff Dean在TensorFlow DevSummit主旨演講中提出的關於機器學習從業者全球短缺的問題,我們可以另一個角度來解決這個問題。我們可以通過以下幾種方法消除使用深度學習技術的最大障礙:
1. 使深度學習更容易使用
2. 為深度學習去神秘化
3. 為資金不足無法使用雲GPU的人增加訪問許可權
使深度學習更容易使用
研究如何使深度學習更容易使用能夠產生巨大的影響,能夠更快更簡單地訓練出更好的網路。 現已成為標準做法的一些發現包括:
? Dropout允許對較小的數據集進行訓練而不會過度擬合。
? Batch normalization可以加快訓練速度。
? Rectified linear units有助於避免梯度爆炸。
一些旨在提高易用性的最新研究包括:
? 學習速率查詢器使訓練過程更加穩定。
? 超級收斂可加快訓練速度,減少了計算資源。
? 現有架構的「Custom heads」可以更輕鬆地重用架構來解決一系列問題(例如,修改用於分類的ResNet,以便查找邊界框或進行樣式遷移),
以上發現均未涉及計算能力;相反,所有這些都是使用創造性的方式來解決問題。
為深度學習去神秘化
另一個障礙是許多錯誤觀念讓人們相信深度學習不適合他們:錯誤地認為他們的數據規模太小,他們沒有接受正規的教育或沒有相關背景,或他們的計算能力不夠。很多人相信,只有機器學習領域博士才能夠使用深度學習技術,許多公司因無力僱用專家而放棄往這方面發展。然而,事實上,公司不僅可以將他們已有的員工培訓為機器學習專家,這甚至是一種更可取的做法,因為你現有的員工已經擁有你從事的領域的專業知識!
我認為,對於與我交談過的絕大多數人來說,進入深度學習的門檻遠遠低於他們的預期:僅需一年的編碼經驗和訪問GPU的許可權。
增加訪問許可權:谷歌 Colab Notebooks
雖然雲GPU(每小時約50美分)的成本在我們許多人的預算範圍內,根據我定期與世界各地學生的聯繫來看,有些學生完全無法承擔任何GPU的使用。 在某些國家/地區,即使他們有錢,銀行和信用卡方面的規定也會使他們難以使用AWS等服務。谷歌Colab Notebooks是一個解決方案! Colab Notebooks提供了一個Jupyter筆記本環境,無需設置即可使用,完全在雲端運行,並允許用戶訪問免費GPU(儘管不允許長時間使用GPU)。 它們還可用於創建包含在互動式環境中運行的代碼示例的文檔。 谷歌Colab Notebooks在實現深度學習大眾化方面的作用甚至超過了AutoML; 也許這將成為未來谷歌營銷機器的更好選擇。
TAG:雷鋒網 |