姓名:劉成龍 ?學號:16020199016
轉(zhuǎn)載自:https://www.jiqizhixin.com/articles/2018-10-15-19背捌,有刪節(jié)。
【嵌牛導讀】:機器學習的3個熱門專業(yè)術語
【嵌牛鼻子】:機器學習的熱門專業(yè)術語
【嵌牛提問】:關于機器學習洞斯,這三個專業(yè)術語你知道嗎毡庆?
【嵌牛正文】:
膠囊網(wǎng)絡Capsule Networks
膠囊網(wǎng)絡(Capsule Networks)是深度學習三巨頭之一的Geoffrey Hinton提出的一種全新的神經(jīng)網(wǎng)絡。最初發(fā)表在2017年的NIPS會議上:Dynamic Routing Between Capsules。膠囊網(wǎng)絡基于一種新的結(jié)構——膠囊(Capsule)么抗,通過與現(xiàn)有的卷積神經(jīng)網(wǎng)絡(CNN)相結(jié)合毅否,從而在一些圖像分類的數(shù)據(jù)上取得了非常優(yōu)越的性能。
何謂膠囊蝇刀?簡單來說螟加,膠囊就是將原有大家熟知的神經(jīng)網(wǎng)絡中的個體神經(jīng)元替換成了一組神經(jīng)元組成的向量,這些神經(jīng)元被包裹在一起吞琐,組成了一個膠囊仰迁。因此,膠囊網(wǎng)絡中的每層神經(jīng)網(wǎng)絡都包含了多個膠囊基本單元顽分,這些膠囊與上層網(wǎng)絡中的膠囊進行交互傳遞徐许。
膠囊網(wǎng)絡的主要特點是什么呢?與傳統(tǒng)CNN相比優(yōu)勢是什么呢卒蘸?下圖簡單比較了膠囊和傳統(tǒng)的神經(jīng)網(wǎng)絡中神經(jīng)元的不同雌隅。
兩者最大的不同在于,膠囊網(wǎng)絡中的神經(jīng)元是一個整體缸沃,包含了特征狀態(tài)的各類重要信息恰起,比如長度、角度趾牧、方向等检盼,而傳統(tǒng)的CNN里每個神經(jīng)元都是獨立的個體,無法刻畫位置翘单、角度等信息吨枉。這也就是為什么CNN通過數(shù)據(jù)增廣的形式(對于同一個物體,加入不同角度哄芜、不同位置的圖片進行訓練)貌亭,能夠大大提高模型最后的結(jié)果。
膠囊網(wǎng)絡能夠保證圖像中不同的對象(比如人臉中的鼻子认臊、眼睛圃庭、嘴巴)之間的相對關系不受角度改變的影響,這一特性來自于圖形圖像學的啟發(fā)失晴。對于3D圖像剧腻,人類的大腦能夠在不同的位置對于這個圖像都做出準確的判別。當我們以向量的形式將特性狀態(tài)封裝在膠囊中時涂屁,膠囊擁有狀態(tài)特性的長度(以概率形式加權編碼)以及狀態(tài)的方向(特征向量的方向)书在。因此對于膠囊來說,長度相同的特征胯陋,其方向也存在著變化蕊温,而這樣的變化對于模型訓練就正如不同角度的增廣圖像袱箱。
膠囊的工作原理是基于“囊間動態(tài)路由”的算法遏乔,這是一種迭代算法义矛。簡單地說,兩層之間的膠囊信息傳遞盟萨,會通過計算兩者之間的一種相關信息來決定下層的膠囊如何將自己的特征傳遞給上層的膠囊凉翻。也就是說,下層膠囊將其輸出發(fā)送給對此表示“同意”的上層膠囊捻激,利用輸入與輸出之間的點積相似性制轰,來更新路由間的系數(shù)。
跟傳統(tǒng)的CNN相比胞谭,當前的膠囊網(wǎng)絡在實驗效果上取得了更好的結(jié)果垃杖,但是訓練過程卻慢了很多,因此膠囊網(wǎng)絡依然很有很大的發(fā)展空間丈屹。
自動機器學習AutoML
在實際的AI應用中调俘,如果想讓機器學習獲得比較好的學習結(jié)果,除了對數(shù)據(jù)進行初步分析旺垒、處理彩库,可能還需要依賴領域知識對數(shù)據(jù)進行進一步的特征提取和特征選擇,然后根據(jù)不同的任務及數(shù)據(jù)特征選擇合適的機器學習模型先蒋,在訓練模型時還要調(diào)大量的超參數(shù)骇钦,嘗試各種tricks。整個過程中需要花費大量的人工和時間竞漾。因此眯搭,機器學習從業(yè)者都戲稱自己是“調(diào)參工程師”,稱自己的工作是“有多少人工就有多少智能”业岁。對于初入門的小白及大量普通開發(fā)者來說坦仍,機器學習工具比較難以掌握。
為了減少這些需要人工干預的繁雜工作叨襟,自動機器學習(Automatic?Machine Learning繁扎,簡稱AutoML)應運而生。它能自動選擇合適的算法模型以及調(diào)整超參數(shù)糊闽,并最終取得不錯的學習效果梳玫。簡單來說,自動機器學習過程就是用戶提供數(shù)據(jù)集右犹,確定任務目標提澎,之后的工作就交給AutoML來處理,用戶將會得到一個訓練好的模型念链。這大大降低了使用機器學習工具的門檻盼忌,讓機器學習工具的使用過程變得簡單积糯、輕松。
我們以AutoML里的一個子領域NAS(Neural Architecture Search谦纱,神經(jīng)網(wǎng)絡結(jié)構搜索)為例看成。顧名思義,NAS是自動搜索神經(jīng)網(wǎng)絡的結(jié)構跨嘉。傳統(tǒng)神經(jīng)網(wǎng)絡都是由人工設計的川慌,經(jīng)過長時間的演化迭代,從AlexNet到DenseNet祠乃,性能不斷上升梦重,效果也不斷提升。但正如前文所說亮瓷,神經(jīng)網(wǎng)絡結(jié)構的演化過程耗費了大量的人工琴拧。不同的基礎網(wǎng)絡結(jié)構,如AlexNet嘱支、VGG蚓胸、ResNet、DenseNet等需要深度學習的專業(yè)研究人員進行研究改進斗塘,而它們在具體任務上的應用又需要進一步調(diào)整相應的參數(shù)和結(jié)構赢织。
NAS旨在針對給定的數(shù)據(jù)集和學習任務,自動搜索出適用于該任務的好的網(wǎng)絡結(jié)構馍盟。決定一個神經(jīng)網(wǎng)絡“區(qū)別于其它網(wǎng)絡”的關鍵因素包括網(wǎng)絡結(jié)構里每層的運算操作(如不同種類于置、大小的卷積和池化操作)、每層的大小、層與層之間的連接方式、采用的激活函數(shù)等辜王。這些關鍵因素在傳統(tǒng)的人工設計的神經(jīng)網(wǎng)絡里都是固定的录语,但在自動搜索網(wǎng)絡結(jié)構里可能都是未知的恳邀。算法需要通過自動搜索進而最終決定一個神經(jīng)網(wǎng)絡的結(jié)構。
2016年Barret Zoph等人發(fā)表了Neural architecture search with reinforcement learning一文,文中提出了控制器-子網(wǎng)絡的框架,其中子網(wǎng)絡即我們要應用在目標任務上的網(wǎng)絡泊交,控制器則負責生成子網(wǎng)絡的結(jié)構。對于圖像類任務柱查,子網(wǎng)絡采用CNN廓俭,搜索其每層的運算操作和連接方式;對于文本類任務唉工,子網(wǎng)絡采用RNN時研乒,搜索其每層的激活函數(shù)和連接方式×芟酰控制器搜索出的子網(wǎng)絡結(jié)構在目標任務的數(shù)據(jù)驗證集上的性能則作為reward反饋給控制器雹熬,通過強化學習進行訓練宽菜,使得控制器經(jīng)過不斷的學習迭代生成更好的子網(wǎng)絡結(jié)構。但是這一工作使用了大量GPU資源竿报,耗費了一個月時間才得到了最后的結(jié)果铅乡。
隨后,有一系列的工作對NAS做出了改進:改進搜索空間(搜索單一block里的結(jié)構仰楚,之后堆疊多個block作為最終網(wǎng)絡)隆判、改進搜索算法(使用演化算法犬庇、梯度優(yōu)化等)僧界、提升搜索效率(通過參數(shù)共享等)等。這些工作提升了NAS本身的搜索效率和性能臭挽,同時搜索出的CNN網(wǎng)絡也在主要的數(shù)據(jù)集(CIFAR10捂襟、CIFAR100、IMAGENET)上取得了SOTA欢峰,超過了人工設計的網(wǎng)絡的性能葬荷。微軟亞洲研究院機器學習組發(fā)表在NIPS 2018上的工作Neural Architecture Optimization [1],利用網(wǎng)絡結(jié)構在驗證集上的性能對網(wǎng)絡的梯度信息來優(yōu)化網(wǎng)絡結(jié)構纽帖。首先將離散的網(wǎng)絡結(jié)構用編碼器轉(zhuǎn)換成連續(xù)空間里的向量宠漩,然后訓練了一個預測器來預測該向量(網(wǎng)絡結(jié)構)在驗證集上的性能,從而可以直接基于預測結(jié)果對該向量的梯度進行優(yōu)化懊直,生成更好的向量(網(wǎng)絡結(jié)構)扒吁,最后再通過解碼器解碼將生成的向量解碼成離散的網(wǎng)絡結(jié)構。我們的算法搜索出的CNN和RNN結(jié)構在相應任務(CIFAR10室囊、CIFAR100雕崩、PTB、Wikitext-2)上皆取得了超過其它NAS工作的最好性能融撞。
元學習Meta Learning
我們期待的通用人工智能的目標是讓人工智能像人一樣學會推理盼铁、思考,能快速學習尝偎。對于現(xiàn)實世界的很多問題饶火,人類之所以能夠快速學習是因為人類具有強大的思考推理能力以及學習能力。人類能夠利用以往學習到的知識經(jīng)驗來指導新知識的學習致扯,做到“觸類旁通”肤寝、“舉一反三”,這讓人類的學習行為變得十分高效急前。
元學習(Meta Learning)的目的就是研究如何讓機器學習系統(tǒng)擁有學習的能力醒陆,能夠更好、更高效地學習裆针,從而取得更好的學習效果刨摩。比如對于數(shù)據(jù)集寺晌,采取什么方式、什么順序澡刹、什么策略進行學習呻征,對于學習效果如何進行評測,這些都會影響到模型學習的效果罢浇。
微軟亞洲研究院機器學習組今年發(fā)表在NIPS 2018上的工作Learning to Teach with Dynamic Loss Functions [2]使用一個teacher model來指導student model(學習具體任務的模型)學習陆赋,讓student model在學習過程中動態(tài)利用學習到的不同的損失函數(shù)(loss function)來處理不同數(shù)據(jù)的學習,學習到的模型在相應任務上取到了很好的結(jié)果嚷闭。
參考文獻
[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