當前位置:
首頁 > 最新 > 人工智慧是如何處理數據的?

人工智慧是如何處理數據的?

人工智慧如何處理數據?如果把重點放在數據的處理方式上,那麼長期共存的方式大概有兩種:

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

特徵工程(feature engineering),主要指對於數據的人為處理提取,有時候也代指「洗數據」 。

不難看出,兩者的主要區別在於前者是「學習的過程」,而後者被認為是一門「人為的工程」。用更加白話的方式來說,特徵學習是從數據中自動抽取特徵或者表示的方法,這個學習過程是模型自主的。而特徵工程的過程是人為的對數據進行處理,得到我們認為的、適合後續模型使用的樣式。

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

一種比較不嚴謹但直觀的理解可以是,假設一個n層的深度學習網路,那麼輸入數據在被網路逐層抽象化,靠前的層(1~k)學到了低階特徵(low level features),中間層(k+1~m)學到了中階特徵(middle level features),而靠後的層上(m+1~n-1)特徵達到了高度的抽象化獲得了高階特徵(high level features),最終高度的抽象化的特徵被應用於分類層(n)上,從而得到了良好的分類結果。

一個常用例子是說卷積網路的前面幾層可以學到「邊的概念」,之後學到了「角的概念」,並逐步學到了更加抽象複雜的如「圖形的概念」。

下圖就給出了一個直觀的例子,即圖像經過深度網路學習後得到了高度抽象的有效特徵,從而作為預測層的輸入數據,並最終預測目標是一隻貓。

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

換個不嚴謹的白話說法,深度學習的層層網路可以從數據中自動學習到有用的、高度抽象的特徵,而最終目的是為了幫助分類層做出良好的預測。而深度學習為什麼效果好?大概和它能夠有效的抽取到特徵脫不了關係。

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

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

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

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

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

那麼好奇的讀者會問:

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

答案是不一定的:

在數據量不夠的時候,自動特徵抽取的方法往往不如人為的特徵工程。

當使用者對於數據和問題有深刻的理解時,人工的特徵工程往往效果更好。

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

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

2. 特徵學習(表示學習),特徵工程,特徵選擇,維度壓縮之間有什麼關係?

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

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

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

3. 理解不同數據處理方法對於我們有什麼幫助?

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

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

這個問題需要分模型討論。以深度學習為例,特徵學習是一種對於模型的理解,並不是唯一的理解,而為什麼泛化效果好,還缺乏系統的理論研究。

5. 特徵工程指的是對於數據的清理,和學習有什麼關係?

此處我們想再次強調的是,這個不是一個嚴謹的科學劃分,是一種直觀的理解。如果所使用的模型擁有對於數據的簡化、特徵表示和抽取能力,我們都可以認為它是有表示學習的特性。

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

寫在最後是,這篇回答僅僅是一種對於機器學習中數據處理方法的理解,並不是唯一正確的看法。有鑒於機器學習領域的知識更迭速度很快,個人的知識儲備也有限,僅供參考。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT大家談 的精彩文章:

谷歌AI已能預測你的死亡時間,準確率達95%,你信嗎?

TAG:IT大家談 |