原標題:NIPS十大機器學習論文精選,從注意力機制到集成學習(附下載)
新智元編譯
來源:CSDN 授權轉載
作者:洪亮劼
【新智元導讀】NIPS是每年12月由NIPS基金會主辦的人工智慧和機器學習頂級會議,每年大會都吸引了機器學習、人工智慧、統計等領域的眾多國際專家前來參與。本文從NIPS 2016會議文章中精選出10篇有意思的文章,為讀者解惑。
在新智元公眾號回復【170331】,下載全部10篇論文
人工智慧和機器學習領域的學術論文汗牛充棟。每年的各大頂級會議、研討班錄用好幾千篇論文,即便是親臨現場也很難追蹤到所有的前沿信息。在時間精力有限的情況下,選擇精讀哪些論文,學習哪些熱門技術就成為了AI學者和從業人員所頭痛的問題。本欄目旨在要幫助大家篩選出有意思的論文,解讀出論文的核心思想,為精讀提供閱讀指導。
NIPS(Neural Information Processing Systems,神經信息處理系統進展大會)是每年12月由NIPS基金會主辦的人工智慧和機器學習頂級會議,每年大會都吸引了機器學習、人工智慧、統計等領域的眾多國際專家前來參與。筆者從NIPS 2016會議文章中精選出10篇有意思的文章,為讀者解惑。
Using Fast Weights to Attend to the Recent Past
亮點:在Short-Term Memory、Long-Term Memory以及LSTM之外,有什麼更好的Attention機制呢?
本文作者陣容豪華,有來自多倫多大學的Jimmy Ba、Google DeepMind的Volodymyr Mnih、Joel Leibo以及Catalin Ionescu,外加Geoffrey Hinton坐鎮。文章一開始講明了現在的問題,在傳統的Recurrent Neural Networks(RNN)領域,有兩種形式的Memory。這兩種Memory形式有不一樣的結構、目的和容量(Capacity)。Short-Term Memory直接通過Hidden Vector來存放信息,容量是O(H),這裡H是Hidden Units的數量。而另一方面,Long-Term Memory通過現在的輸入信息和Hidden Vector,來得到下一步的輸出信息以及新的Hidden Vector,總共的容量是O(H2)+O(IH)+O(HO),這裡I和O是輸入單元以及輸出單元的數量。另外一種比較傳統的Long Short-Term Memory Networks(LSTM)依然只擁有O(H)的處理Short-Term Memory的能力。文章的核心是想提出一種能夠更加有效地提供記憶的機制。當然,文章用了一小節從生理學的角度來講如何有這樣的啟發,不過這恐怕主要想把文章的立意拔高,其實和後面的主要模型部分並沒有直接的聯繫。簡單說來,這篇文章提出的模型基於傳統的RNN進行了這樣的改進:
下一步的Hidden Vector來自於兩個因素:
這個Fast Weights隨著時間的推移,會有一個衰減信息。
如何理解Fast Weights呢?直觀來說, Fast Weights是一個Attention機制,把現在的Hidden Vector和過去的任意Hidden Vector進行比較,通過Outer Product的結果來決定Attention的強度。有了這麼一種Attention機制,整個模型就能夠對過去類似的記憶進行回憶,產生一個可以對近期的信息進行綜合反應的效果。在穩定Fast Weights的目的下,文章還使用了Layer Normalization技術。文章的一些實驗結果驚人,比如在一個人造的數據集上,模型效果能夠很容易達到0錯誤率。而在MNIST的數據上做Visual Attention,提出的模型也能有非常不錯的效果。總之,這篇文章值得泛讀。對於研究Attention機制的讀者來說,是一個精讀的材料。
Learning Structured Sparsity in Deep Neural Networks
亮點:如何把前幾年盛行的Structured Sparisity和DNN結合?這篇文章給出了思路。
這篇文章來自匹茲堡大學的研究人員,核心內容非常清晰,那就是要引入Structured Sparsity到DNN來,使得最終的DNN有一個比較緊湊的表示,加快運算速度,同時能夠得到硬體友善的表現形式,讓硬體能夠比較快地執行。雖然之前已經有了一些工作來對DNN進行壓縮,但這篇文章的作者認為,這些壓縮方法(比如直接使用L1 Regularization),可能會讓網絡得到一些隨機(Random)的連結,使得內存訪問變得不常規(Iregular)。在這樣的情況下,新的模型,雖然表面上有很大的Sparsity,但是並沒有加快運算速度,有時候甚至還有減少。另外一種最近的思路,就是最近採用的Low-Rank Approximation方法。簡單說來這種方法為先訓練DNN,然後每層得到的Tensor被分解,並且被更小的Factor所替代逼近。這種方法的好處是能夠達到加速,壞處則是需要最終重新Fine-Tune模型的精度。顯然,這篇文章就是要解決上述缺點。文章作者把前幾年火熱的Structured Sparisty Learning(SSL)和DNN相結合。具體說來,就是採用了Group Lasso的方法來讓DNN的參數能夠結構化置0。在這篇文章裡,作者採用了三種方法:
懲罰(Penalizing)不重要的Filter和Channel:把一些Filter和Channel置0;
學習任意形狀的Filter:在2D空間上學習通過置0,達到學習任意形狀的要求;
縮短DNN的層數:徹底移除整個層,通過增加Shortcut的方法來達到不產生斷層的情況。
文章並沒有提供在SSL和DNN相結合的情況下的Learning算法。實驗部分非常詳實,用LeNet在MNIST、ConvNet和ResNet在CIFAR-10以及AlexNet在ImageNet上都做了實驗。總體的感覺是,在很多例子的情況下,更加Sparsity的DNN反而帶來了精度的提高。
Operator Variational Inference
亮點:知道Variational Inference中的KL Divergence有什麼問題嗎?這篇文章可以給你一些啟示。
這篇文章來自David Blei的實驗室。主旨相對比較直觀,但是細節非常Technical,核心思想是如何改進Variational Inference(VI)中的KL Divergence。眾所周知,VI的內涵是如何把一個Bayesian Inference問題轉換成為一個優化(Optimization)問題。在經典的設置下,找到或解出Posterior Distribution的過程,是一個在KL Divergence定義下,找到和真實Posterior Distribution相近的Variational Distribution的過程。這個過程存在兩個問題:
同時,在KL Divergence的假設下,Objective可能變為Infinite,當Variational Distribution的Support比真實的Posterior Distribution要大的情況下。為了解決這些問題,這篇文章提出了一個新的框架,叫做Operator Variational Objectives,該框架有三個組件:
傳統的基於KL Divergence的VI可以寫成這個新框架的一個特殊形式。文章基於這個新框架的優化過程則顯得很艱深。文章並沒有實際的實驗,如果你對VI有深入興趣,可以閱讀本文。相信大多數模型在今天選擇KL Divergence的情況下,這篇文章無法提供更多的實際意義上的幫助。不過,文章討論的KL Divergence的問題則可以作為參考。
Exponential Family Embeddings
亮點:是不是被各種Embedding模型弄得眼花繚亂?這篇文章統一了很多類似模型,提供了一個簡單框架。
這篇文章也來自David Blei的實驗室。文章的核心是如何把Word2Vec的思想給Generalize到其他應用場景,提供一個比較通用的模型框架。在這個新框架下,其他的很多類似模型都能夠歸納成為這個新框架的特殊形式。新的框架模型為Exponential Family Embedding(EF-EMB),其中包含三個要素:
首先,Context Function是定義如何把當前的數據點(Data Point)和一個Context裡面的其他數據點聯繫起來。這是一個建模的選擇。比如,對於Language Data來說,這個Context可以就是周圍的字;而對於Neural Data來說,這個Context則可以是周圍的Neuron;對於Shopping Data來說,這個Context則可能就是購物車裡的其他商品。其次,Conditional Exponential Family定義一個合適的Distribution,來解釋數據的產生過程。比如,對於Language Modeling來說,這個分布就是Categorical Distribution;而對於Real-Valued數據來說,則就是Gaussian Distribution。另外,在這個Conditional Exponential Family的定義裡,每一個Data Point有兩種Embeddings:Embedding Vector和Context Vector。通俗地講,也就是每個數據點分解成為了Embedding Vector和一組Context Vector(這個被上面的Context Function所定義)的乘積形式。第三個要素Embedding Structure定義在建模中,Embeddings是如何被共享(Shared)的。比如,對於Language Data來說,每一個詞只有唯一的Embedding Vector和唯一的Context Vector。還有其他的一些Setting裡,這兩者也可以是相同的。在定義了之前的這些結構以後,Objective Function則是Log Conditional Probability的加和,外加Log定義的Regularizer。文章討論了好幾個模型的例子。總之,現有的一些Embedding模型都很容易在這個框架下被重現。模型的Inference則採用了SGD。文章裡還討論了在SGD的情況下,如何得到類似於Negative Sampling的結果。總之,這篇文章很值得細看。一方面也是因為這裡面統一了很多關於Embedding模型的討論;另一方面,從軟體工程角度來說,也許也能夠設計和實現一個類型的模型框架。
The Generalized Reparameterization Gradient
亮點:Reparameterization Gradients是近期Variational Inference的重要進展之一,怎麼把其擴展呢?
Variational Inference(VI)是傳統上比較流行的解決Probabilistic Models的Posterior Inference(PI)的辦法。其核心思想是把逼近Posterior Distribution的問題轉換成為了一個解決KL Divergence的優化問題,從而利用現有的很多優化辦法來解決PI的問題。當Probabilistic Models符合Exponential Family的分布時,VI可以很容易利用Coordinate Ascent來解決。但在現實應用中,很多模型並不符合這樣的條件,因此,已有不少方法來探討如何解決VI在Non-conjugate情況下的實現。一般意義的思路是,用Monte Carlo的辦法獲得Variational Objective所對應的梯度(Gradient)的估計,然後利用這樣的估計來進行Stochastic Optimization,從而擬合Variational Parameters。在這樣的思路下,已經有了兩個主要的研究方向:Black-box VI和Reparameterization Gradients(RG)。RG的想法是把Latent Variable轉換成為一組輔助(Auxiliary)參數,使得新的參數不依賴於Variational Parameters。這樣一個操作能夠讓新的Variational Objective更加方便進行Gradient操作,從而達到簡化優化過程的目的。然而,RG的主要問題是,這樣的辦法並不有普遍性(General),只能對於簡單的Gaussian variational distribution有作用,而對於類似Gamma、Beta這樣的分布則需要進一步的近似處理(Approximation)。這篇文章想提供一個一般意義的RG。在這裡,我們不複述具體的細節,不過文章提出的算法核心是把Variational Parameter的梯度,拆成了三個部分:第一部分是通常的(RG);第二部分是一個Correction的Term,如果轉換後的Variational Distribution不依賴原來的Variational Parameter,那麼這個部分就會成為0;第三個部分,則是標準的Entropy的梯度。在這樣的算法下,文章展示了如何對Gamma、Log-normal以及Beta Distribution進行處理,使得這些分布能夠進行RG變換。同時,文章給出了一個普通意義下的優化算法。總體說來,這篇文章是把RG的實用型往前推了一步。
Can Active Memory Replace Attention
概要:Active Memory能夠替代Attention嗎?本文想要探討這樣的話題。不過,從結果看,答案是,不能。
這篇文章來自Google Brain的Lukasz Kaiser和Samy Bengio。文章的主旨是想使用一種叫做Active Memory的機制來替代Attention機制。文章通過擴展第一作者在ICLR 2016提出的一個Neural-GPU模型,使其擁有Active Memory的能力並且叫做Extended-Neural GPU,通過機器翻譯來展現該機制可與Attention匹敵。不過,讀者們需要注意,文中提出的Active Memory機制主要基於Convolution Operator,是否能夠擴展到其他模型,還需要進一步討論。文章最有價值的部分在於Attention機制以及Active Memory機制的討論。從模型的發展角度來說,文章指出,Attention機制的提出是要解決使用RNN來進行機器翻譯時,因為一個固定維度的Hidden Vector,導致翻譯效果下降,甚至在比較長的語句中翻譯效果進一步惡化。本質來說,Attention機制就是把這些中間結果組合起來,也就不僅僅是一個固定長度的隱含狀態,而是一個所謂的記憶(Memory)Tensor,在解碼的每一步,一個基於過去Memory的Distribution會被計算,然後解碼器(Decoder)的輸入是過去這些Memory的一個加權平均。因此,在這樣的機制下,解碼器可以對過去不同的細節進行關注,從而產生需要的字符。這套Attention機制已經被認為在機器翻譯之外,如圖形模型中有較好效果。文章認為Attention的局限在於其定義本身,也就是Attention定義中的Softmax。這個Softmax還是想關注過去Memory中的某一個單元。文章認為,這個局限使得在一些任務中,Attention機制完全無法完成相應的學習功能。是否能夠打破這個局限?文章認為Acitve Memory機制可以打破Attention的局限。簡單說來,Active Memory就是在解碼這個步驟依賴並且訪問所有的Memory,每一步解碼的Memory都不一樣。當然,這個機制在之前的Neural-GPU中已經提出來,並且在那篇文章中展現出了算法任務(Algorithmic Tasks)上的良好性能。但在傳統的機器翻譯任務上,這樣的模型效果並不理想。這篇文章就是想通過對模型進行小改進從而達到在機器翻譯任務上的進步。在這裡我們不複述模型的改進,因為感覺這個改進並不具備普遍適用性而是為了增強模型性能所做的Hack。不過,文章指出,作者的思路和Grid LSTM比較相似,有興趣的讀者可以去參考。在經歷了一系列Hack之後,新提出來的Extended Neural-GPU在機器翻譯這個任務上,與GRU+Attention有了相似的模型性能。對於Attention機制有興趣的讀者,可以精讀這篇文章。
Stein Variational Gradient Descent: A General Purpose Bayesian Inference Algorithm
摘要:Variational Inference的難點是沒有通用的算法模式,這篇文章也許是一個啟發。
眾所周知,Bayesian Inference的難點是如何對Posterior Distribution進行計算。在很長一段時間內Markov chain Monte Carlo (MCMC)是解決這類問題的有效工具。然而,MCMC的缺點是速度慢,並且很難判斷是否已經Converge。所以,這也是很多時候Variational Inference(VI)顯得要更加吸引人的原因,因為VI常常是一個Deterministic的算法,並且很多優化(Optimization)領域的工具都可以拿來使用。VI的問題是,對於不同的Model,一般需要進行單獨推導,並沒有統一的一般形式的算法來解模型。如何提出一個一般意義的算法對VI進行優化,是最近VI領域的熱門研究課題。這篇文章也是對該領域推動的一次嘗試。
文章提出的算法本身比較簡單,具有下面這幾個特點:
算法初始時從一個簡單的Distribution抽出一堆Particles(也可以認為是Samples)。
然後進行多次迭代,每次迭代時所有Particles都朝著減小KL Divergence的方向前進,這一步用作者的觀點說就是類似Gradient Descent的一種做法。
最後算法返回一堆Particles,它們已經可以代表Posterior Distribution了。
這個算法最關鍵的是第二步如何進行,簡單說來,涉及兩個部分:
其實文章的難點和深澀的地方是解釋為什麼這個流程是正確的算法,裡面涉及到所謂的Stein Identity以及Kernelized Stein Discrenpancy。這裡就不複述了,有興趣的讀者可以去留意原文。文章的實驗部分比較簡單,先對一個一維的Gaussian Distribution的情況做了Validation,確保可以運行。緊接著在Bayesian Logistic Regression和Bayesian Neural Network上面做了實驗,對比了一系列方法和數據集。總體看,提出的算法有兩大優勢:第一,準確度明顯高於其他算法,第二,速度大幅增加。對於這類新算法文章,可能還是希望能夠看到應用到更複雜的模型上以及更大的數據上。
Coresets for Scalable Bayesian Logistic Regression
摘要:在大規模機器學習的浪潮中,主要思路往往是改進算法本身來適應數據的增大。這篇文章則提出一個新穎的思路,來構建具有代表性的數據集,從而來擴展算法的規模。
這篇文章出自麻省理工(MIT)Tamara Broderick教授的實驗室。Tamara之前是Michael Jordan的學生,主要研究Bayesian Nonparametric模型。文章思路比較新穎,在傳統的把基於單機的Bayesian inference算法推廣到大數據的過程中,一般的思路往往是改進算法本身。比如文章提到了Streaming Variational Inference或者是Distributed MCMC等算法,都是要在經典的算法基礎上進行更改,適應大數據的應用場景。對於這樣的一般思路,文章認為這些改進後的算法往往缺乏理論的嚴格證明,並且也對算法的質量並沒有保證。這篇文章的觀察是基於這麼一個假設,那就是在大數據的情況下,數據本身往往是冗餘的。比如,在一個新聞事件爆發的時候,很多對於這個事件的報導都是相似的。這篇文章的根本思路是,嘗試改變數據集,而不是算法本身,來達到算法的大規模應用。文章採取了一個叫Coreset的概念,也就是一個加權的數據子集,用來逼近全集數據。Coreset這一概念已經在諸如K-means或者PCA等算法中得到研究,之前並沒有被應用到Bayesian的情況下。這篇本文是用Bayesian Logistic Regression來做例子。那麼,這個Coreset如何構建呢?
文章提出了這樣的算法:
首先要基於一個K-Clustering(後來的實驗中採用了K-means);
然後計算一個叫做Sensitivity的值,用來衡量每一個數據點是否冗餘,這個值越大,就越不冗餘;
把所有的Sensitivity重新Normalize,並且從Normalize之後的Weight裡面,Sample出一組數據,最後留下非零Weight的數據集。
文章對這個Coreset進行了嚴格的證明,這裡就不複述了。文章的實驗在生成的數據集以及真實數據集中都進行了對比。在好幾個數據集上,採用Coreset的算法能夠在幾千到幾萬這個數量級上很快達到普通算法在全集上的效果。不過,文章也留下了幾個非常根本的疑問,比如這個Coreset看上去是為Logistic Regression特殊構造的,不知道對於其他的算法該如何構造。另外,算法本身需要對數據進行K-Clustering,這對於大數據來說可能已經很難達到,於是整體的算法效率還有待考驗。不過這些不掩蓋這篇文章的新穎思路。
Data Programming: Creating Large Training Sets, Quickly
摘要:在很多機器學習的任務中,構建一個有標註的數據集可能是最消耗人工的步驟。這篇文章提出了一個叫Data Programming的理論來嘗試解決這個問題。
這篇文章來自史丹福大學的一批學者。他們想要解決這麼一個問題,那就是在很多機器學習的任務中,構建一個有標註的數據集可能是最消耗人工的步驟。如何能夠有效降低這步的時間和投入的精力,成了這篇文章的主題。文章提出了一個叫Data Programming的概念。簡單說來,在這個框架下,用戶提供一組Heuristic標註函數(Labeling Functions)。這些標註函數可以互相牴觸,可以重複,也可以依賴外部的Knowledge Base等。然後,文章提出的框架則學習各個標註函數之間的Correlation關係,從而可以利用多種標註函數,達到監督學習(Supervised Learning)的效果。文章採用Logistic Regression在Binary的分類問題上作為一個例子。每一個Heuristic標註函數擁有兩個參數,一個是控制有多大可能性標註一個對象,而另一個則是控制標註對象的準確度。於是學習這兩個參數就成為目標函數的主要部分。在所有的標註函數都是獨立的情況下,文章採用了最大似然(Maximum Likelihood Estimation)的方法估計到這兩個參數的取值。在已經得到了這兩個估計的情況下,作者們進一步利用原本的Logistic Regression來學習一個分類器。也就是說,整個框架分為兩個部分。當然,獨立的標註函數作用還是有限。文章提出了一個類似Markov Random Field的方式來處理各個標註函數之間的相互關係。在數據實驗中,基於Data Programming的方法不管是在人工Feature還是採取LSTM自動學習的Feature中都有很顯著的效果提升。這篇文章非常適合需要對Crowdsourcing進行學習和研究的學者。
Residual Networks Behave Like Ensembles of Relatively Shallow Network
摘要:殘差網為什麼能夠訓練深層次的網絡?這篇文章從集成學習(Ensemble Learning)的角度入手,給殘差網新的解釋。
這篇文章來自於康奈爾大學的學者,他們在這篇文章裡,主要是想從全新的,也就是集成學習(Ensemble Learning)的角度來解釋殘差網的成功。這篇文章的貢獻主要有以下三個方面:
文章展示了殘差網其實可以被看做是很多路徑(Path)的集合,而不僅僅是一個很深的網絡。
文章通過研究發現,這些路徑並不互相緊密擬合。同時,這些路徑表現出了集成學習的效果。
作者同時也研究了殘差網的Gradient問題,發現僅僅是短路徑對Gradient的傳播起了作用,而更深的路徑在訓練模型時並不是必須的。
文章的核心其實是把殘差網的所有層級之間的路徑全部展開(Unravel),從而可以展示出殘差網其實是很多變元(Variable)的路徑,也就是由路徑長短不一的網絡群組成。在這樣的啟示下,我們很容易發現,即便刪除殘差網的一些節點,這僅僅會影響非常多路徑中的一部分,但對整體路徑群並沒有特別大的影響。從這一點來說,殘差網和傳統的Feed-Forward網絡有很大的不同。作者做了幾組實驗來展示這種變元路徑對於殘差網的影響。首先,刪除殘差網中的Residual Module,並且比較了相同的行為在VGG網絡中的情況。效果是殘差網的性能並沒有得到根本的變化,而VGG的性能則大打折扣。進一步,作者刪除了殘差網中的多個Module,觀察到誤差進一步上升,從而發現模塊的個數和性能的相關性,得出殘差網有集成學習效應的結論。另外一個實驗,則是作者任意更換模塊的順序,結果驚人,殘差網居然對於部分的模塊交換有魯棒(Robust)效果。文章最後通過一些小的模擬實驗,驗證了關於Gradient的假設,並且展示了殘差網中真正起作用的路徑其實都相對較短。文章應該是打開了很多未來研究的話題,比如殘差網如果並沒有真正解決深度網絡的「深」(Deep)的問題,而是多樣性的路徑帶來了殘差網性能上的提升,那麼深度網絡究竟需不需要很深的結構呢?能不能訓練很多結構迥異的小網絡,或者是動態生成這些小網絡,然後依靠集成學習來達到殘差網的效果呢?這些都是未來可以探討的課題。
作者簡介:洪亮劼,Etsy數據科學主管,前雅虎研究院高級經理。長期從事推薦系統、機器學習和人工智慧的研究工作,在國際頂級會議上發表論文20餘篇,長期擔任多個國際著名會議及期刊的評審委員會成員和審稿人。
責編:何永燦,歡迎人工智慧領域技術投稿、約稿、給文章糾錯,請發送郵件至heyc@csdn.net
本文為《程式設計師》原創文章,未經允許不得轉載,更多精彩文章請訂閱《程式設計師》
(本文來源CSDN,經授權轉載,特此感謝!)
3月27日,新智元開源·生態AI技術峰會暨新智元2017創業大賽頒獎盛典隆重召開,包括「BAT」在內的中國主流 AI 公司、600多名行業精英齊聚,共同為2017中國人工智慧的發展畫上了濃墨重彩的一筆。
文字實錄:
訪問以下連結,回顧大會盛況:
責任編輯: