關於機器學習,你應該知道的3個熱門專業術語

微软研究院AI头条發表於2018-10-15

編者按:如果你是剛入門機器學習的AI探索者,你知道什麼是膠囊網路嗎?AutoML和元學習又是什麼?為了幫大家節省查閱晦澀難懂的論文的時間,我們邀請微軟亞洲研究院機器學習組實習生吳酈軍、羅人千幫大家用最通俗的語言解釋了這三個機器學習領域的熱門詞彙,趕緊收藏吧!

膠囊網路Capsule Networks

膠囊網路(Capsule Networks)是深度學習三巨頭之一的Geoffrey Hinton提出的一種全新的神經網路。最初發表在2017年的NIPS會議上:Dynamic Routing Between Capsules。膠囊網路基於一種新的結構——膠囊(Capsule),通過與現有的卷積神經網路(CNN)相結合,從而在一些影像分類的資料上取得了非常優越的效能。

何謂膠囊?簡單來說,膠囊就是將原有大家熟知的神經網路中的個體神經元替換成了一組神經元組成的向量,這些神經元被包裹在一起,組成了一個膠囊。因此,膠囊網路中的每層神經網路都包含了多個膠囊基本單元,這些膠囊與上層網路中的膠囊進行互動傳遞。

關於機器學習,你應該知道的3個熱門專業術語

膠囊網路的主要特點是什麼呢?與傳統CNN相比優勢是什麼呢?下圖簡單比較了膠囊和傳統的神經網路神經元的不同。

關於機器學習,你應該知道的3個熱門專業術語

兩者最大的不同在於,膠囊網路中的神經元是一個整體,包含了特徵狀態的各類重要資訊,比如長度、角度、方向等,而傳統的CNN裡每個神經元都是獨立的個體,無法刻畫位置、角度等資訊。這也就是為什麼CNN通過資料增廣的形式(對於同一個物體,加入不同角度、不同位置的圖片進行訓練),能夠大大提高模型最後的結果。

膠囊網路能夠保證影像中不同的物件(比如人臉中的鼻子、眼睛、嘴巴)之間的相對關係不受角度改變的影響,這一特性來自於圖形影像學的啟發。對於3D影像,人類的大腦能夠在不同的位置對於這個影像都做出準確的判別。當我們以向量的形式將特性狀態封裝在膠囊中時,膠囊擁有狀態特性的長度(以概率形式加權編碼)以及狀態的方向(特徵向量的方向)。因此對於膠囊來說,長度相同的特徵,其方向也存在著變化,而這樣的變化對於模型訓練就正如不同角度的增廣影像。

膠囊的工作原理是基於“囊間動態路由”的演算法,這是一種迭代演算法。簡單地說,兩層之間的膠囊資訊傳遞,會通過計算兩者之間的一種相關資訊來決定下層的膠囊如何將自己的特徵傳遞給上層的膠囊。也就是說,下層膠囊將其輸出傳送給對此表示“同意”的上層膠囊,利用輸入與輸出之間的點積相似性,來更新路由間的係數。

跟傳統的CNN相比,當前的膠囊網路在實驗效果上取得了更好的結果,但是訓練過程卻慢了很多,因此膠囊網路依然很有很大的發展空間。

自動機器學習AutoML

在實際的AI應用中,如果想讓機器學習獲得比較好的學習結果,除了對資料進行初步分析、處理,可能還需要依賴領域知識對資料進行進一步的特徵提取和特徵選擇,然後根據不同的任務及資料特徵選擇合適的機器學習模型,在訓練模型時還要調大量的引數,嘗試各種tricks。整個過程中需要花費大量的人工和時間。因此,機器學習從業者都戲稱自己是“調參工程師”,稱自己的工作是“有多少人工就有多少智慧”。對於初入門的小白及大量普通開發者來說,機器學習工具比較難以掌握。

為了減少這些需要人工干預的繁雜工作,自動機器學習(Automatic Machine Learning,簡稱AutoML)應運而生。它能自動選擇合適的演算法模型以及調整引數,並最終取得不錯的學習效果。簡單來說,自動機器學習過程就是使用者提供資料集,確定任務目標,之後的工作就交給AutoML來處理,使用者將會得到一個訓練好的模型。這大大降低了使用機器學習工具的門檻,讓機器學習工具的使用過程變得簡單、輕鬆。

我們以AutoML裡的一個子領域NAS(Neural Architecture Search,神經網路結構搜尋)為例。顧名思義,NAS是自動搜尋神經網路的結構。傳統神經網路都是由人工設計的,經過長時間的演化迭代,從AlexNet到DenseNet,效能不斷上升,效果也不斷提升。但正如前文所說,神經網路結構的演化過程耗費了大量的人工。不同的基礎網路結構,如AlexNet、VGG、ResNet、DenseNet等需要深度學習的專業研究人員進行研究改進,而它們在具體任務上的應用又需要進一步調整相應的引數和結構。

關於機器學習,你應該知道的3個熱門專業術語

NAS旨在針對給定的資料集和學習任務,自動搜尋出適用於該任務的好的網路結構。決定一個神經網路“區別於其它網路”的關鍵因素包括網路結構裡每層的運算操作(如不同種類、大小的卷積和池化操作)、每層的大小、層與層之間的連線方式、採用的啟用函式等。這些關鍵因素在傳統的人工設計的神經網路裡都是固定的,但在自動搜尋網路結構裡可能都是未知的。演算法需要通過自動搜尋進而最終決定一個神經網路的結構。

2016年Barret Zoph等人發表了Neural architecture search with reinforcement learning一文,文中提出了控制器-子網路的框架,其中子網路即我們要應用在目標任務上的網路,控制器則負責生成子網路的結構。對於影像類任務,子網路採用CNN,搜尋其每層的運算操作和連線方式;對於文字類任務,子網路採用RNN時,搜尋其每層的啟用函式和連線方式。控制器搜尋出的子網路結構在目標任務的資料驗證集上的效能則作為reward反饋給控制器,通過強化學習進行訓練,使得控制器經過不斷的學習迭代生成更好的子網路結構。但是這一工作使用了大量GPU資源,耗費了一個月時間才得到了最後的結果。

隨後,有一系列的工作對NAS做出了改進:改進搜尋空間(搜尋單一block裡的結構,之後堆疊多個block作為最終網路)、改進搜尋演算法(使用演化演算法、梯度優化等)、提升搜尋效率(通過引數共享等)等。這些工作提升了NAS本身的搜尋效率和效能,同時搜尋出的CNN網路也在主要的資料集(CIFAR10、CIFAR100、IMAGENET)上取得了SOTA,超過了人工設計的網路的效能。微軟亞洲研究院機器學習組發表在NIPS 2018上的工作Neural Architecture Optimization [1],利用網路結構在驗證集上的效能對網路的梯度資訊來優化網路結構。首先將離散的網路結構用編碼器轉換成連續空間裡的向量,然後訓練了一個預測器來預測該向量(網路結構)在驗證集上的效能,從而可以直接基於預測結果對該向量的梯度進行優化,生成更好的向量(網路結構),最後再通過解碼器解碼將生成的向量解碼成離散的網路結構。我們的演算法搜尋出的CNN和RNN結構在相應任務(CIFAR10、CIFAR100、PTB、Wikitext-2)上皆取得了超過其它NAS工作的最好效能。

元學習Meta Learning

我們期待的通用人工智慧的目標是讓人工智慧像人一樣學會推理、思考,能快速學習。對於現實世界的很多問題,人類之所以能夠快速學習是因為人類具有強大的思考推理能力以及學習能力。人類能夠利用以往學習到的知識經驗來指導新知識的學習,做到“觸類旁通”、“舉一反三”,這讓人類的學習行為變得十分高效。

元學習(Meta Learning)的目的就是研究如何讓機器學習系統擁有學習的能力,能夠更好、更高效地學習,從而取得更好的學習效果。比如對於資料集,採取什麼方式、什麼順序、什麼策略進行學習,對於學習效果如何進行評測,這些都會影響到模型學習的效果。

關於機器學習,你應該知道的3個熱門專業術語

微軟亞洲研究院機器學習組今年發表在NIPS 2018上的工作Learning to Teach with Dynamic Loss Functions [2]使用一個teacher model來指導student model(學習具體任務的模型)學習,讓student model在學習過程中動態利用學習到的不同的損失函式(loss function)來處理不同資料的學習,學習到的模型在相應任務上取到了很好的結果。

參考文獻

[1] Renqian Luo, Fei Tian, Tao Qin, Tie-Yan Liu, Neural Architecture Optimization, NIPS 2018

[2] Lijun Wu, Fei Tian, Yingce Xia, Tao Qin, Tie-Yan Liu, Learning to Teach with Dynamic Loss Functions, NIPS 2018

相關文章