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


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

  • 特徵學習(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)上,從而得到了良好的分類結果。一個常用例子是說卷積網路的前面幾層可以學到「邊的概念」,之後學到了「角的概念」,並逐步學到了更加抽象複雜的如「圖形的概念」。下圖就給出了一個直觀的例子,即圖像經過深度網路學習後得到了高度抽象的有效特徵,從而作為預測層的輸入數據,並最終預測目標是一隻貓。

輸入數據通過網路後,抽取到了高維的抽象特徵,從而促進了分類結果。原圖[4]

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

換個不嚴謹的白話說法,深度學習的層層網路可以從數據中自動學習到有用的、高度抽象的特徵,而最終目的是為了幫助分類層做出良好的預測。而深度學習為什麼效果好?大概和它能夠有效的抽取到特徵脫不了關係。當然,深度學習的一大特點是其對數據的分散式表示(distributed representation)(*也和稀疏性表示等其他特性有關),最直觀的例子可以是nlp中的word2vec,每個單詞不再是割裂的而互相有了關聯。類似的,不少網路中的參數共享就是分散式表示,不僅降低了參數量需求也提高對於數據的描述能力。僅看分類層的話,深度學習和其他的機器學習似乎沒有天壤之別,但正因為有了種種良好的表示學習能力使其有了過人之處。下圖直觀的對比了我們上文提到的兩種特徵的學習方式,傳統的機器學習方法主要依賴人工特徵處理與提取,而深度學習依賴模型自身去學習數據的表示。

機器學習與深度學習對於特徵抽取的不同之處,原圖來源於[3]

綜上,機器學習模型對於數據的處理可以被大致歸類到兩個方向:

  • 表示學習:模型自動對輸入數據進行學習,得到更有利於使用的特徵(*可能同時做出了預測)。代表的演算法大致包括:
    • 深度學習,包括大部分常見的模型如cnn/rnn/dbn,也包括遷移學習等
    • 某些無監督學習演算法,如主成分分析(PCA)通過對數據轉化而使得輸入數據更有意義
    • 某些樹模型可以自動的學習到數據中的特徵並同時作出預測
  • 特徵工程:模型依賴人為處理的數據特徵,而模型的主要任務是預測,比如簡單的線性回歸期待良好的輸入數據(如離散化後的數據)

需要注意的是,這種歸類方法是不嚴謹的,僅為了直觀目的而已。並沒有一種劃分說a演算法是表示學習,而b演算法不是,只是為了一種便於理解的劃分。

因此,大部分的模型都處於純粹的表示學習和純粹的依賴人工特徵之間,程度不同而已,很少有絕對的自動學習模型。詳細的關於兩種處理數據方法的對比和歷史可以參考一篇最近的綜述論文 [2],更早也更經典的關於特徵學習的介紹可以參考論文 [1]。

那麼好奇的讀者會問:

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

答案是不一定的:1. 在數據量不夠的時候,自動特徵抽取的方法往往不如人為的特徵工程 2. 當使用者對於數據和問題有深刻的理解時,人工的特徵工程往往效果更好。

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

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

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

從某個角度來看,表示學習有「嵌入式的特徵選擇」(embedded feature selection)的特性,其表示學習嵌入到了模型中。舉個簡單的例子,決策樹模型在訓練過程中可以同時學習到不同特徵的重要性,而這個過程是建模的一部分,是一種嵌入式的特徵選擇。巧合的看,表示學習也是一種嵌入表示(embedded representation)。如維度壓縮方法PCA,也是一種將高維數據找到合適的低維嵌入的過程,前文提到的word2vec也是另一種「嵌入」。至於這種「嵌入」是否必須是高維到低維,不一定但往往是因為特徵被抽象化了。以上提到的兩種嵌入一種是對於模型的嵌入,一種是在維度上嵌入,主要是名字上的巧合。

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

首先對於模型選擇有一定的幫助:

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

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

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

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

此處我們想再次強調的是,這個不是一個嚴謹的科學劃分,是一種直觀的理解。如果所使用的模型擁有對於數據的簡化、特徵表示和抽取能力,我們都可以認為它是有表示學習的特性。至於哪個模型算,哪個模型不算,不必糾結這點。而狹義的特徵工程指的是處理缺失值、特徵選擇、維度壓縮等各種預處理手段,而從更大的角度看主要目的是提高數據的表示能力。對於數據的人為提煉使其有了更好的表達,這其實是人工的表示學習

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


[1] Representation Learning: A Review and New Perspectives

[2] An overview on data representation learning: From traditional feature learning to recent deep learning

[3] Log Analytics With Deep Learning and Machine Learning - XenonStack

[4] Adam Coates, Deep Learning for Vision


AI處理數據主要是通過數據挖掘數據分析

一、數據挖掘(Data mining),又譯為資料探勘、數據採礦。它是資料庫知識發現(Knowledge-Discovery in Databases,簡稱KDD)中的一個步驟。數據挖掘一般是指從大量的數據中通過演算法搜索隱藏於其中信息的過程。數據挖掘通常與計算機科學有關,並通過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實現上述目標。

利用數據挖掘進行數據處理常用的方法主要有分類、回歸分析、聚類、關聯規則、特徵、變化和偏差分析、Web頁挖掘等, 它們分別從不同的角度對數據進行挖掘。

分類。分類是找出資料庫中一組數據對象的共同特點並按照分類模式將其劃分為不同的類,其目的是通過分類模型,將資料庫中的數據項映射到某個給定的類別。如一個汽車零售商將客戶按照對汽車的喜好劃分成不同的類,這樣營銷人員就可以將新型汽車的廣告手冊直接郵寄到特定的客戶手中,從而大大增加了商業機會。

回歸分析。回歸分析方法反映的是資料庫中屬性值在時間上的特徵,產生一個將數據項映射到一個實值預測變數的函數,發現變數或屬性間的依賴關係。

聚類。聚類分析是把一組數據按照相似性和差異性分為幾個類別,其目的是使得屬於同一類別的數據間的相似性儘可能大,不同類別中的數據間的相似性儘可能小。

關聯規則。關聯規則是描述資料庫中數據項之間所存在的關係的規則。即根據一個事務中某些項的出現可導出另一些項在同一事務中也出現,即隱藏在數據間的關聯或相互關係。

特徵。特徵分析是從資料庫中的一組數據中提取出關於這些數據的特徵式,這些特徵式表達了該數據集的總體特徵。如營銷人員通過對客戶流失因素的特徵提取,可以得到導致客戶流失的一系列原因和主要特徵,利用這些特徵可以有效地預防客戶的流失。

變化和偏差分析。偏差包括很大一類潛在有趣的知識,如分類中的反常實例,模式的例外,觀察結果對期望的偏差等,其目的是尋找觀察結果與參照量之間有意義的差別。在企業危機管理及其預警中,管理者更感興趣的是那些意外規則。意外規則的挖掘可以應用到各種異常信息的發現、分析、識別、評價和預警等方面。

Web頁挖掘。隨著Internet的迅速發展及Web 的全球普及, 使得Web上的信息量無比豐富,通過對Web的挖掘,可以利用Web 的海量數據進行分析,收集政治、經濟、政策、科技、金融、各種市場、競爭對手、供求信息、客戶等有關的信息,集中精力分析和處理那些對企業有重大或潛在重大影響的外部環境信息和內部經營信息,並根據分析結果找出企業管理過程中出現的各種問題和可能引起危機的先兆,對這些信息進行分析和處理,以便識別、分析、評價和管理危機。

二、數據分析是數學與計算機科學相結合的產物,是指用適當的統計分析方法對收集來的大量數據進行分析,提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。在實際生活應用中,數據分析可幫助人們作出判斷,以便採取適當行動。

在統計學領域,有些人將數據分析劃分為描述性統計分析、探索性數據分析以及驗證性數據分析;其中,探索性數據分析側重於在數據之中發現新的特徵,而驗證性數據分析則側重於已有假設的證實或證偽。

探索性數據分析:是指為了形成值得假設的檢驗而對數據進行分析的一種方法,是對傳統統計學假設檢驗手段的補充。

定性數據分析:又稱為「定性資料分析」、「定性研究」或者「質性研究資料分析」,是指對諸如詞語、照片、觀察結果之類的非數值型數據的分析。

大量的數據分析需求都與特定的應用相關,需要相關領域知識的支持。通用的數據挖掘工具在處理特定應用問題時有其局限性,常常需要開發針對特定應用的數據分析系統。因此數據分析系統設計的第一步是對特定應用的業務進行深入地分析與研究,總結歸納分析思路並細分出所需的分析功能。

數據分析主要包含下面幾個功能:

數據分析是組織有目的地收集數據、分析數據,使之成為信息的過程。這一過程是質量管理體系的支持過程。在產品的整個壽命周期,包括從市場調研到售後服務和最終處置的各個過程都需要適當運用數據分析過程,以提升有效性。

在實用中,數據可為AI提供基礎要素,可幫助AI作出判斷,以便AI進行學習。例如,來自馬薩諸塞州總醫院和哈佛醫學院放射科的研究人員使用卷積神經網路來識別 CT圖像,基於訓練數據大小來評估神經網路的準確性。隨著訓練規模的增大,精度將被提高。

今天的大多數深度學習是監督的或半監督的,意味著用於訓練模型的所有或一些數據必須由人標記。 無監督的機器學習是 AI 中當前的 「聖杯」,因為可以利用原始未標記的數據來訓練模型。 廣泛採用深度學習可能與大數據集的增長以及無人監督的機器學習的發展有關。然而,我們認為大型差異化數據集(電子健康記錄,組學數據,地質數據,天氣數據等)可能是未來十年企業利潤創造的核心驅動力。

參考 IDC 報告,全世界創造的信息量預計到 2020 年將以 36%的複合年增長率增長,達到 44 澤位元組( 440 億 GB)。連接的設備(消費者和工業領域),機器到機器通信和遠程感測器的增加和組合可以創建大型數據集, 然後可以挖掘洞察和訓練自適應演算法。

AI之所以擁有人的思維,人的智慧,其核心在於AI可以通過海量的數據進行機器學習和深度學習。擁有的數據越多,神經網路就變得越有效率,意味著隨著數據量的增長,機器語言可以解決的問題的數量也在增長。移動手機、物聯網、低耗數據存儲的成熟和處理技術(通常在雲端)已經在數量、大小、可靠數據結構方面創造了大量的成長。例如:

5G 的首次展示將最適當地加速數據可被獲取和轉移的機率。根據 IDC 的數字領域報告,到 2020 年,每年數據量將達到 44ZB(萬億 G),5 年內年複合增長率達到 141%,暗示我們剛開始看到這些科技可以達到的應用場景。

數據(Data)是指對事實、概念或指令的一種表達形式,可由人工或自動化裝置進行處理。數據處理(data processing)是對數據的採集、存儲、檢索、加工、變換和傳輸,貫穿於社會生產和社會生活的各個領域。數據經過解釋並賦予一定的意義之後,便成為信息。

人工智慧出現之前,傳統數據的處理主要包括了8個方面:

通過這個8方面,從大量的、可能是雜亂無章的、難以理解的數據中抽取並推導出對於某些特定的人們來說是有價值、有意義的數據。傳統意義上的數據處理離不開軟體的支持,每次處理數據大概都需要使用至少三次軟體,這對人力物力都是一種極大的浪費。

而在AI時代,數據的處理就變得簡單多了,就拿最近比較熱門的車聯網來說。

車聯網一個系統通過在車輛儀錶台安裝車載終端設備,就對車輛所有工作情況和靜、動態信息的採集、存儲並發送。車聯網系統分為三大部分:車載終端、雲計算處理平台、數據分析平台,根據不同行業對車輛的不同的功能需求實現對車輛有效監控管理。車輛的運行往往涉及多項開關量、感測器模擬量、CAN信號數據等等,駕駛員在操作車輛運行過程中,產生的車輛數據不斷回發到後台資料庫,形成海量數據,由雲計算平台實現對海量數據的「過濾清洗」,數據分析平台對數據進行報表式處理,供管理人員查看。


現階段來說,與其說人工智慧如何處理數據,不如說人如何處理數據。

【人工智慧沒你想像中高級,從數學上來說無非是y=f(x)的映射,只不過這個f比較複雜罷了,由多種多樣的權值和網路結構構成】

所以說不如問人如何處理數據。

現階段人處理數據,以圖像數據為例【語音之類的我不熟悉,不敢妄言】。無非就是對圖片做預處理,用專業的詞來說叫做數據增廣,對圖片做一系列平移,旋轉,對稱,縮放,切割等操作。來擴展數據規模。

如此以來,可以提高神經網路的準確率,畢竟數據的類型變多了。

所謂處理數據也就無非如此。


不知道怎麼處理數據的,但是知道現在男生討論妹子都會來一句,照片不可信,有素顏嗎?反正我就是這樣。。


這個問題很寬泛。從頭到尾的過程都可以說到。下面僅簡要介紹。

數據預處理。比如我現在在做的文本分類(和相似度),為了提高模型性能,在把語料餵給模型之前要處理掉一些 stop word(比如英語中 a an on upon 等,中文 的,吧,地 等),對於 word2vec 或者 bag of words 這種依賴詞頻表示的模型會有大的影響。為了使模型更集中於一些特徵詞,也會做 stemming,去除後綴僅保留詞根,一般針對英語語料。中文還涉及到分詞。不過以上都是 NLP 界幾乎已經解決的問題,有現成的方案可以用。可以參看吳軍《數學之美》。

訓練過程。已有的模型非常多。通俗概括,樸素貝葉斯方法基於預測數據的各個特徵在訓練數據中出現的概率的乘積,取最大值為預測分類。k-NN 計算預測坐標系內數據周圍 k 個數據中佔比最大的分類,以此為預測結果。非監督學習,還有其它比如 AdaBoost 等的一些方法很難一句話說明白,這裡不贅述。

另外再說神經網路,玩了一段時間的東西。(只有全連接層的二分類)你可以把它看成一個函數,輸入值是 n 維向量,輸出值是 0 和 1,代表它是不是屬於某個分類。我寫過一篇小介紹,不妨看一下。https://medium.com/@lalxyy/research-progress-and-application-of-convolutional-neural-network-f443394533e7 ,可能需要梯子。


我聽說AI是模仿人類高級神經活動的,所以斗膽回答一下

人類學習的過程是新突觸建立的過程,在接收到A、B兩個存在一定關係的信息時,會將接受到這兩種不同信息的中樞神經元細胞間產生突觸。

與之類比就是,接收到兩個信息,可能是基於某種原理累計其相關性的過程吧。

謝謝邀請,可惜才疏學淺只能回答到這一程度,如果有錯誤之處,歡迎指正。


推薦閱讀:

如何通俗理解beta分布?
從[0,1]區間內任取一點,取到任意一點的概率都是0嗎?
從所有有理數中隨機抽取一個,抽中是整數的概率是多少?為什麼呢?
如何用簡單的例子解釋什麼是 Generalized Method of Moments (GMM)?
有沒有可能相關係數很高,可是兩組數據其實並沒有關係?(即便從圖上看也是如此)

TAG:人工智慧 | 數據挖掘 | 科技 | 統計學 | 機器學習 |