人工智能是如何處理數(shù)據(jù)的?

p.jpg

人工智能如何處理數(shù)據(jù)?如果把重點放在數(shù)據(jù)的處理方式上,那么長期共存的方式大概有兩種:  

特征學習(feature learning),又叫表示學習(representation learning)或者表征學習 。

特征工程(feature engineering),主要指對于數(shù)據(jù)的人為處理提取,有時候也代指“洗數(shù)據(jù)” 。

不難看出,兩者的主要區(qū)別在于前者是“學習的過程”,而后者被認為是一門“人為的工程”。用更加白話的方式來說,特征學習是從數(shù)據(jù)中自動抽取特征或者表示的方法,這個學習過程是模型自主的。而特征工程的過程是人為的對數(shù)據(jù)進行處理,得到我們認為的、適合后續(xù)模型使用的樣式。  

舉個簡單的例子,深度學習就是一種表示學習,其學習過程是一種對于有效特征的抽取過程。有用的特征在層層學習后抽取了出來,最終交給了后面的分類層進行預(yù)測。

一種比較不嚴謹?shù)庇^的理解可以是,假設(shè)一個n層的深度學習網(wǎng)絡(luò),那么輸入數(shù)據(jù)在被網(wǎng)絡(luò)逐層抽象化,靠前的層(1~k)學到了低階特征(low level features),中間層(k+1~m)學到了中階特征(middle level features),而靠后的層上(m+1~n-1)特征達到了高度的抽象化獲得了高階特征(high level features),最終高度的抽象化的特征被應(yīng)用于分類層(n)上,從而得到了良好的分類結(jié)果。

一個常用例子是說卷積網(wǎng)絡(luò)的前面幾層可以學到“邊的概念”,之后學到了“角的概念”,并逐步學到了更加抽象復雜的如“圖形的概念”。

下圖就給出了一個直觀的例子,即圖像經(jīng)過深度網(wǎng)絡(luò)學習后得到了高度抽象的有效特征,從而作為預(yù)測層的輸入數(shù)據(jù),并最終預(yù)測目標是一只貓。

人工智能是如何處理數(shù)據(jù)的?的圖2

另一個常見的例子就是下圖中,深度信念網(wǎng)絡(luò)(deep belief network)通過堆疊的受限玻爾茲曼機(Stacked RBM)來學習特征,和cnn不同這個過程是無監(jiān)督的。將RBF堆疊的原因就是將底層RBF學到的特征逐漸傳遞的上層的RBF上,逐漸抽取復雜的特征。比如下圖從左到右就可以是低層RBF學到的特征到高層RBF學到的復雜特征。在得到這些良好的特征后就可以傳入后端的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)進行學習。

人工智能是如何處理數(shù)據(jù)的?的圖3

換個不嚴謹?shù)陌自捳f法,深度學習的層層網(wǎng)絡(luò)可以從數(shù)據(jù)中自動學習到有用的、高度抽象的特征,而最終目的是為了幫助分類層做出良好的預(yù)測。而深度學習為什么效果好?大概和它能夠有效的抽取到特征脫不了關(guān)系。

當然,深度學習的一大特點是其對數(shù)據(jù)的分布式表示(distributed representation)(*也和稀疏性表示等其他特性有關(guān)),最直觀的例子可以是nlp中的word2vec,每個單詞不再是割裂的而互相有了關(guān)聯(lián)。類似的,不少網(wǎng)絡(luò)中的參數(shù)共享就是分布式表示,不僅降低了參數(shù)量需求也提高對于數(shù)據(jù)的描述能力。僅看分類層的話,深度學習和其他的機器學習似乎沒有天壤之別,但正因為有了種種良好的表示學習能力使其有了過人之處。

下圖直觀的對比了我們上文提到的兩種特征的學習方式,傳統(tǒng)的機器學習方法主要依賴人工特征處理與提取,而深度學習依賴模型自身去學習數(shù)據(jù)的表示。

人工智能是如何處理數(shù)據(jù)的?的圖4

綜上,機器學習模型對于數(shù)據(jù)的處理可以被大致歸類到兩個方向:  表示學習:模型自動對輸入數(shù)據(jù)進行學習,得到更有利于使用的特征(*可能同時做出了預(yù)測)。

代表的算法大致包括: 深度學習,包括大部分常見的模型如cnn/rnn/dbn,也包括遷移學習等 某些無監(jiān)督學習算法,如主成分分析(PCA)通過對數(shù)據(jù)轉(zhuǎn)化而使得輸入數(shù)據(jù)更有意義 某些樹模型可以自動的學習到數(shù)據(jù)中的特征并同時作出預(yù)測 特征工程:模型依賴人為處理的數(shù)據(jù)特征,而模型的主要任務(wù)是預(yù)測,比如簡單的線性回歸期待良好的輸入數(shù)據(jù)(如離散化后的數(shù)據(jù)) 需要注意的是,這種歸類方法是不嚴謹?shù)模瑑H為了直觀目的而已。并沒有一種劃分說a算法是表示學習,而b算法不是,只是為了一種便于理解的劃分。 

 因此,大部分的模型都處于純粹的表示學習和純粹的依賴人工特征之間,程度不同而已,很少有絕對的自動學習模型。

那么好奇的讀者會問:

 

 1. 是不是自動的特征抽取(表示學習)總是更好? 

 答案是不一定的:

  1. 在數(shù)據(jù)量不夠的時候,自動特征抽取的方法往往不如人為的特征工程。

  2. 當使用者對于數(shù)據(jù)和問題有深刻的理解時,人工的特征工程往往效果更好。

 一個極端的例子是,在kaggle比賽中的特征工程總能帶來一些提升,因此人工的特征抽取和處理依然有用武之地。  

同時也值得注意,表示學習的另一好處是高度抽象化的特征往往可以被應(yīng)用于相關(guān)的領(lǐng)域上,這也是我們常說的遷移學習(transfer learning)的思路。比如有了大量貓的圖片以后,不僅可以用于預(yù)測一個物體是不是貓,也可以用于將抽取到的特征再運用于其他類似的領(lǐng)域從而節(jié)省數(shù)據(jù)開銷。 

 2. 特征學習(表示學習),特征工程,特征選擇,維度壓縮之間有什么關(guān)系?  

從某個角度來看,表示學習有“嵌入式的特征選擇”(embedded feature selection)的特性,其表示學習嵌入到了模型中。

舉個簡單的例子,決策樹模型在訓練過程中可以同時學習到不同特征的重要性,而這個過程是建模的一部分,是一種嵌入式的特征選擇。

巧合的看,表示學習也是一種嵌入表示(embedded representation)。如維度壓縮方法PCA,也是一種將高維數(shù)據(jù)找到合適的低維嵌入的過程,前文提到的word2vec也是另一種“嵌入”。至于這種“嵌入”是否必須是高維到低維,不一定但往往是因為特征被抽象化了。以上提到的兩種嵌入一種是對于模型的嵌入,一種是在維度上嵌入,主要是名字上的巧合。

 3. 理解不同數(shù)據(jù)處理方法對于我們有什么幫助? 

 首先對于模型選擇有一定的幫助:  當我們數(shù)據(jù)量不大,且對于數(shù)據(jù)非常理解時,人為的特征處理也就是特征工程是合適的。比如去掉無關(guān)數(shù)據(jù)、選擇適合的數(shù)據(jù)、合并數(shù)據(jù)、對數(shù)據(jù)做離散化等。 當數(shù)據(jù)量較大或者我們的人為先驗理解很有限時,可以嘗試表示學習,如依賴一氣呵成的深度學習,效果往往不錯。

4. 為什么有的模型擁有表示學習的能力,而有的沒有?  

這個問題需要分模型討論。以深度學習為例,特征學習是一種對于模型的理解,并不是唯一的理解,而為什么泛化效果好,還缺乏系統(tǒng)的理論研究。 

5. 特征工程指的是對于數(shù)據(jù)的清理,和學習有什么關(guān)系?  

此處我們想再次強調(diào)的是,這個不是一個嚴謹?shù)目茖W劃分,是一種直觀的理解。如果所使用的模型擁有對于數(shù)據(jù)的簡化、特征表示和抽取能力,我們都可以認為它是有表示學習的特性。

至于哪個模型算,哪個模型不算,不必糾結(jié)這點。而狹義的特征工程指的是處理缺失值、特征選擇、維度壓縮等各種預(yù)處理手段,而從更大的角度看主要目的是提高數(shù)據(jù)的表示能力。對于數(shù)據(jù)的人為提煉使其有了更好的表達,這其實是人工的表示學習。 

來源:圖靈人工智能

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP