數據科學的基本內容

大數據

作者:鄂維南

什么是數據科學?它和已有的信息科學、統(tǒng)計學、機器學習等學科有什么不同?作為一門新興的學科,數據科學依賴兩個因素:一是數據的廣泛性和多樣性;二是數據研究的共性?,F代社會的各行各業(yè)都充滿了數據,這些數據的類型多種多樣,不僅包括傳統(tǒng)的結構化數據,也包括網頁、文本、圖像、視頻、語音等非結構化數據。數據分析本質上都是在解反問題,而且通常是隨機模型的反問題,因此對它們的研究有很多共性。例如,自然語言處理和生物大分子模型都用到隱馬爾科夫過程和動態(tài)規(guī)劃方法,其最根本的原因是它們處理的都是一維隨機信號;再如,圖像處理和統(tǒng)計學習中都用到的正則化方法,也是處理反問題的數學模型中最常用的一種。

數據科學主要包括兩個方面:用數據的方法研究科學和用科學的方法研究數據。前者包括生物信息學、天體信息學、數字地球等領域;后者包括統(tǒng)計學、機器學習、數據挖掘、數據庫等領域。這些學科都是數據科學的重要組成部分,只有把它們有機地整合在一起,才能形成整個數據科學的全貌。

如何用數據的方法研究科學

用數據的方法研究科學,最典型的例子是開普勒關于行星運動的三大定律。開普勒的三大定律是根據他的前任,一位叫第谷的天文學家留給他的觀察數據總結出來的。表1列出的觀測數據是行星繞太陽一周所需要的時間(以年為單位)和行星離太陽的平均距離(以地球與太陽的平均距離為單位)。從這組數據可以看出,行星繞太陽運行的周期的平方和行星離太陽的平均距離的立方成正比,這就是開普勒第三定律。

大數據

開普勒雖然總結出他的三大定律,但他并不理解其內涵。牛頓則不然,他用牛頓第二定律和萬有引力定律把行星運動歸結成一個純粹的數學問題,即一個常微分方程組。如果忽略行星之間的相互作用,那么各行星和太陽之間就構成了一個兩體問題,我們很容易求出相應的解,并由此推導出開普勒的三大定律。

牛頓運用的是尋求基本原理的方法,它遠比開普勒的方法深刻。牛頓不僅知其然,而且知其所以然。所以牛頓開創(chuàng)的尋求基本原理的方法成為科學研究的首選模式,這種方法的發(fā)展在20世紀初期達到了頂峰,在它的指導下,物理學家們提出了量子力學。原則上講,我們在日常生活中看到的自然現象都可以從量子力學出發(fā)得到解釋。量子力學提供了研究化學、材料科學、工程科學、生命科學等幾乎所有自然和工程學科的基本原理,這應該說是很成功的,但事情遠非這么簡單。狄拉克指出,如果以量子力學的基本原理為出發(fā)點去解決這些問題,那么其中的數學問題就太困難了。因此必須妥協(xié),對基本原理作近似。

盡管牛頓模式很深刻,但對復雜的問題,開普勒模式往往更有效。例如,表2中形象地描述了一組人類基因組的單核苷酸多態(tài)性(Single Nucleotide Polymorphism, SNP)數據。研究人員在全世界挑選出1064個志愿者,并把他們的SNP數據數字化,即把每個位置上可能出現的10種堿基對用數字表示,對這組數據做主成分分析(PCA)——一種簡單的數據分析方法,其原理是對數據的協(xié)方差矩陣做特征值分解,可以得到圖1所示的結果。其中橫軸和縱軸分別代表第一和第二奇異值所對應的特征向量,這些向量一共有1064個分量,對應1064個志愿者。值得注意的是,這組點的顏色所代表的意義。由此可見,通過最常見的統(tǒng)計分析方法——主成分分析,可以從這組數據中展示出人類進化的過程。

大數據

大數據

圖1 對SNP數據做主成分分析的結果[1]

如果采用從基本原理出發(fā)的牛頓模式,上述問題基本是無法解決的,而基于數據的開普勒模式則行之有效。開普勒模式最成功的例子是生物信息學和人類基因組工程,正因為它們的成功,材料基因組工程等類似的項目也被提上了議程。同樣,天體信息學、計算社會學等也成為熱門學科,這些都是用數據的方法研究科學問題的例子。而圖像處理是另一個典型的例子。圖像處理是否成功是由人的視覺系統(tǒng)決定的,要從根本上解決圖像處理的問題,就需要從理解人的視覺系統(tǒng)著手,理解不同質量的圖像對人的視覺系統(tǒng)會產生什么樣的影響。當然,這樣的理解很深刻,而且也許是我們最終需要的,但目前看來,它過于困難也過于復雜,解決很多實際問題時并不會真正使用它,而是使用一些更為簡單的數學模型。

用數據的方法研究科學問題,并不意味著就不需要模型,只是模型的出發(fā)點不一樣,不是從基本原理的角度去尋找模型。以圖像處理為例,基于基本原理的模型需要描述人的視覺系統(tǒng)以及它與圖像之間的關系,而通常的方法可以是基于更為簡單的數學模型,如函數逼近的模型。

如何用科學的方法研究數據

用科學的方法研究數據主要包括數據采集、數據存儲和數據分析。本文將主要討論數據分析。

數據分析的中心問題

比較常見的數據有以下幾種類型。

表格:最為經典的數據類型。在表格數據中,通常行代表樣本,列代表特征;點集(point cloud):很多數據都可以看成是某空間中的點的集合;時間序列:文本、通話和DNA序列等都可以看成是時間序列。它們也是一個變量(通常是時間)的函數;圖像:可以看成是兩個變量的函數;視頻:時間和空間坐標的函數;網頁和報紙:雖然網頁或報紙上的每篇文章都可以看成是時間序列,但整個網頁或報紙又具有空間結構;網絡數據:網絡本質上是圖,由節(jié)點和聯系節(jié)點的邊構成。

除了上述基本數據類型外,還可以考慮更高層次的數據,如圖像集、時間序列集、表格序列等。

數據分析的基本假設是觀察到的數據都是由某個模型產生的,而數據分析的基本問題就是找出這個模型。由于數據采集過程中不可避免會引入噪聲,因此這些模型都是隨機模型。例如,點集對應的數據模型是概率分布,時間序列對應的數據模型是隨機過程,圖像對應的數據模型是隨機場,網絡對應的數據模型是圖模型和貝葉斯模型。

通常我們對整個模型并不感興趣,而只是希望找到模型的一部分內容。例如我們利用相關性來判斷兩組數據是否相關,利用排序來對數據的重要性進行排名,利用分類和聚類將數據進行分組等。

很多情況下,我們還需要對隨機模型作近似。最常見的方法是將隨機模型近似為確定型模型,所有的回歸模型和基于變分原理的圖像處理模型都采用了這種近似;另一類方法是對其分布作近似,例如假設概率分布是正態(tài)分布或假設時間序列是馬爾科夫鏈等。

數據的數學結構

要對數據作分析,就必須先在數據集上引入數學結構?;镜臄祵W結構包括度量結構、網絡結構和代數結構。

度量結構。在數據集上引進度量(距離),使之成為一個度量空間。文本處理中的余弦距離函數就是一個典型的例子。網絡結構。有些數據本身就具有網絡結構,如社交網絡;有些數據本身沒有網絡結構,但可以附加上一個網絡結構,例如度量空間的點集,我們可以根據點與點之間的距離來決定是否把兩個點連接起來,這樣就得到一個網絡結構。網頁排名(PageRank)算法是利用網絡結構的一個典型例子。代數結構。把數據看成向量、矩陣或更高階的張量。有些數據集具有隱含的對稱性,也可以用代數的方法表達出來。

在上述數學結構的基礎上,可以討論更進一步的問題,例如拓撲結構和函數結構。

拓撲結構。從不同的尺度看數據集,得到的拓撲結構可能是不一樣的。最著名的例子是3×3的自然圖像數據集里面隱含著一個二維的克萊因瓶(Klein bottle)。函數結構。對點集而言,尋找其中的函數結構是統(tǒng)計學的基本問題。這里的函數結構包括線性函數(用于線性回歸)、分片常數(用于聚類或分類)、分片多項式(如樣條函數)、其他函數(如小波展開)等。

數據分析的主要困難

我們研究的數據通常有幾個特點:(1)數據量大。數據量大給計算帶來挑戰(zhàn),需要一些隨機方法或分布式計算來解決問題;(2)數據維數高。例如,前面提到的SNP數據是64萬維的;(3)數據類型復雜。網頁、報紙、圖像、視頻等多種類型的數據給數據融合帶來困難;(4)噪音大。數據在生成、采集、傳輸和處理等流程中,均可能引入噪音,這些噪音的存在給數據清洗和分析帶來挑戰(zhàn),需要有一定修正功能的模型(如圖像中的正則化和機器學習中的去噪自編碼器)來進行降噪處理。

其中,最核心的困難是數據維數高。它會導致維數災難(curse of dimensionality),即模型的復雜度和計算量隨著維數的增加而指數增長。那么,如何克服數據維數高帶來的困難?通常有兩類方法。一類是將數學模型限制在一個極小的特殊類里,如線性模型;另一類是利用數據可能有的特殊結構,如稀疏性、低維、低秩和光滑性等。這些特性可以通過對模型作適當的正則化實現,也可以通過降維方法實現。

總之,數據分析本質上是一個反問題。處理反問題的許多方法(如正則化)在數據分析中扮演了重要角色,這正是統(tǒng)計學與統(tǒng)計力學的不同之處。統(tǒng)計力學處理的是正問題,統(tǒng)計學處理的是反問題。

算法的重要性

與模型相輔相成的是算法以及這些算法在計算機上的實現。在數據量很大的情況下,算法的重要性尤為突出。從算法的角度來看,處理大數據主要有兩條思路:

降低算法的復雜度,即計算量。通常要求算法的計算量是線性標度的,即計算量與數據量成線性關系。但很多關鍵的算法,尤其是優(yōu)化方法,還達不到這個要求。對于特別大的數據集,如萬維網上的數據或社交網絡數據,我們希望能有次線性標度的算法,也就是說計算量遠小于數據量。這就要求我們采用抽樣的方法。其中最典型的例子是隨機梯度下降法(Stochastic Gradient Descent, SGD)。分布式計算。其基本思想是把一個大問題分解成很多小問題,然后分而治之。著名的MapReduce框架就是一個典型的例子。

現階段,算法的研究分散在兩個基本不相往來的領域——計算數學和計算機科學。計算數學研究的算法主要針對像函數這樣的連續(xù)結構,其主要應用對象是微分方程等;計算機科學主要處理離散結構,如網絡。而現實數據的特點介于兩者之間,即數據本身是離散的,而數據背后有一個連續(xù)的模型。因此,要發(fā)展針對數據的算法,就必須把計算數學和計算機科學研究的算法有效地結合起來。

極客網企業(yè)會員

免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2017-10-24
數據科學的基本內容
作者:鄂維南 什么是數據科學?它和已有的信息科學、統(tǒng)計學、機器學習等學科有什么不同?作為一門新興的學科,數據科學依賴兩個因素:一是數據的廣泛性和多樣性;二是數

長按掃碼 閱讀全文