標籤:

不學好數學也想當數據科學家?不存在的

大數據文摘作品

編譯:文明 修竹 高寧 天培

數據科學家需不需要有紮實的數學基礎呢?

隨著越來越多優秀開源項目的湧現,各類數據科學工具都實現了「半自動化」,數據分析的背後數學原理似乎不再是數據科學家的必備技能。

而在近期,諸如谷歌Cloud AutoML之類的人工智慧自動化平台也不斷趨於成熟,甚至讓人可以不用編程就能建立機器學習模型(點擊閱讀《谷歌重磅:不用寫代碼也能建模調參,Cloud AutoML要實現全民玩AI》)。

這麼看來,數據科學家確實不再需要紮實的數學基礎了?

著名數據科學論壇KDnuggets的網紅博主 Tirthajyoti Sarkar表示,當然不是啦,強烈反對!

為什麼數據科學依舊離不開數學?我們又需要會哪些數學知識?讓我們聽這位大咖一一道來。

聲明

首先,我不是一名IT工程師,我在半導體領域工作,更確切的說是高功率半導體領域。作為一名技術開發工程師,我的日常工作內容主要涉及半導體物理,硅製造過程的有限元模擬,以及電子電路理論。當然,這其中會涉及一些數學,但令人難過的是,我並沒有用到過數據科學家們所需要的那些數學。

我有不少朋友在IT行業工作,我也目睹了不少傳統IT工程師充滿激情的學習或者參與到令人激動的數據科學和機器學習/人工智慧領域。我現在涉足這個領域是為了學習一些這行所需要的技術,希望把這些技術應用在半導體裝置或工藝設計領域。但當我開始通過自學深入了解這些令人激動的內容時,我很快發現我在大學裡學的那些基礎的數學知識,我已經記不清了。

雖然我擁有美國一所著名大學的電氣工程博士學位,但在沒有複習一些必須的數學知識的前提下,想要牢固的掌握機器學習或者數據科學技術還是有一些困難。我必須要說的是IT工程師工作內容和長期的培訓使得他們遠離了應用數據領域。他們雖然每天處理大量的數據和信息,卻並沒有對這些數據建立嚴謹的模型。通常,由於巨大的時間壓力,他們工作的重點是「立即處理完當前需求然後處理下一個」而不是科學性的深度挖掘這些數據。遺憾的是,數據科學永遠是一門科學,而僅僅有數據是遠遠不夠的。

這些工具和技術包括了,模擬物理或信息過程從而探尋潛在動力學過程,嚴格地評價數據來源的質量,訓練人們從信息流中識別隱藏模式的識別能力,或者理解模型的局限性。這些內容都是科學過程中的標誌。

應用科學或者應用工程學課程中通常包含這些內容,一些相似領域中的高水平研究工作中也包含了這些內容。遺憾的是,即便是工作超過十年的傳統IT工程師(開發運營,資料庫或者QA/測試)都缺乏對這些知識的學習。原因很簡單,用不到。

變革的時代

現在不一樣了!

在大多數情況下,擁有完美的SQL查詢知識,清晰的商業需求,以及一定的RDBMS知識就足夠完成提取-轉換-裝載(ETL)循環的工作,這就是一名IT工程師在公司中所產生的價值。但如果有人突然開始問你一些奇怪的問題,例如,你怎麼知道人工生成的測試數據是否足夠隨機?你怎麼知道下一個數據點是否分布在3-sigma的範圍內?遇到這些問題,你該怎麼辦?或者,僅是隔壁計算機科學的研究生偶爾的打趣--計算機進行任何有意義的數學運算的數據表(即:矩陣)的運算負荷會隨矩陣大小(行或者列)的增加呈非線性增長,也會讓IT工程師感到困惑和惱火。

數據成為了風口上的話題,這些問題出現的頻率越來越高,也越來越緊急。

主管、技術經理以及決策者們已經不再滿足傳統ETL工具給出的乾巴巴的表格描述了。他們想要看到表格下面隱藏的模式以及列與列之間的相關關係。他們希望得到完整的描述和推論統計,這些描述和統計可能有助於預測建模,並擴展出遠遠超出數據集所包含數據範圍的投射能力。

今天的數據必須講述一個故事、或者唱一首美妙的歌。但是,要聽懂它優美的旋律,你必須精通音樂的基本音符,而這些音符就是數學。

不再啰嗦,讓我們來找出問題的癥結所在。一名普通的IT工程師要跨入商業分析、數據科學或者數據挖掘領域,他必須學習或複習哪些基本的數學知識。接下來,我將給出我的觀點。

基礎代數,函數,集合理論,繪圖,幾何學

讓我們從最基礎的內容開始。現代數學的大廈是建立在一些基本內容如集合論、泛函分析以及數論等內容上的。從應用數學學習的角度看,我們可以通過一些簡明的模塊來簡化這些基本內容的學習(沒有特別的順序):

a) 集合論基礎,b) 實數和複數及其基本屬性,c) 多項式函數、指數、對數、三角恆等式,d) 線性和二次方程,e) 不平等、無窮級數、二項式定理,f) 排列組合,g) 繪圖、笛卡兒坐標系和極坐標系、圓錐曲線論,h) 基礎幾何定理、三角形的性質。

微積分

當年牛頓想要解釋天體運行的規律,但他卻沒有一個足夠好的數學工具來描述他提出的物理概念。在英格蘭的城市爆發瘟疫的期間,他搬到了他在鄉下的農場,在這裡,他提出了現代數學的一個分支--微積分。從那以後,微積分被認為是任何分析研究學科如理論科學、應用科學、工程學、社會科學和經濟學等通往高等教育的大門。

毫不意外的,微積分的概念和應用出現在數據科學和機器學習中。涉及的重要概念包括:

a) 單變數函數的極限、連續性以及可微性,b) 中值定理、不定型以及L』Hospita規則,c) 最大值和最小值,d) 乘積和鏈式法則,e) 泰勒級數,f) 積分計算的基本和平均價值定理,g) 定積分和廣義積分的計算,h) Beta和Gamma函數, i) 雙變數函數的極限、連續性和偏微分,j) 常微分和偏微分方程基礎。

線性代數

一個長期沒有聯繫的獵頭突然在領英上加你好友?淘寶突然向你推薦一種超好吃的餅乾?網易雲音樂為你推薦了最符合你口味的小眾歌曲?

學習了線性代數基礎後,你就有了學習科技行業的核心內容所需的數學知識儲備,這種感覺是不是很愉快?

所需學習的必要內容如下(排序不分先後且可能有遺漏):

a) 矩陣和向量的基本性質--標量乘法、線性變換、轉置、共軛、秩以及行列式,b) 內積和外積,c) 矩陣乘法規則以及各種演算法,d) 矩陣的逆,e) 特殊矩陣--方陣,單位矩陣,三角矩陣,稀疏矩陣和稠密矩陣的概念,單位向量,對稱矩陣,Hermitian矩陣,反Hermitian矩陣和酉矩陣,f) 矩陣分解的概念/矩陣LU分解,Gaussian/Gauss-Jordan消元法求解Ax = b的線性方程組,g) 向量空間,基,極化,正交性,標準正交,線性最小二乘,h) 奇異值分解,i) 特徵值,特徵向量,對角化。

還有一篇很好的文章推薦--《線性代數可以讓你實現什麼?》(鏈接:medium.com/@jeremyjkun/)

統計和概率

「只有死亡和稅收是永遠不變的,其他一切都遵從正態分布。」

在關於數據科學的討論中,無論怎麼強調要紮實掌握統計學和概率學基本概念的重要性都不為過。實際上,許多該行業的從業都者認為機器學習就是統計學習。我從著名的《統計學習基礎(An Introduction to Statistical Learning)》開始了我第一個機器學習MOOC課程,幾乎瞬間我就意識到我在這門學科上存在不少概念空白。為了彌補這些空白,我開始學習其他有關基本統計學和概率學的MOOC課程,並研讀相關主題的文章或觀看視頻。這門學科範圍很廣,因此針對性的學習計劃是掌握大部分基本概念的關鍵。我盡量把它們一一列取出來,但是我也有些擔心,畢竟這不是我擅長的領域。

1. 數據摘要和描述性統計,集中趨勢,方差,協方差,相關性;2. 概率:基本概念,期望,概率微積分,貝葉斯定理,條件概率;3. 概率分布函數——均勻分布,正態分布,二項分布,卡方分布,t分布,中心極限定理;4. 採樣,度量,誤差,隨機數; 5. 假設檢驗,A/B測試,置信區間,p值;6. 方差分析;7. 線性回歸;8. 冪,效應量,檢測手段;8. 研究性學習和試驗計劃。

最優化理論,演算法分析。

這些話題跟應用數學領域的傳統話語沒什麼不同,它們大多是相關的並廣泛應用到多個專業領域研究——理論計算機科學,控制理論或運籌學。然而在機器學習實踐中,對這些強大技術有基本掌握是非常有用的,值得在這裡一提。

比如,幾乎所有的機器學習演算法/技術目的都是在特定約束條件下,使得某種估計誤差最小化。這是一個最優化問題,通常用線性規劃或類似的技術解決。另一方面,這些技術在幫助理解計算機演算法的時間複雜度上效果顯著,因為當演算法應用到大型數據集時,時間複雜度就非常重要了。在這個大數據時代,通常人們期望一名數據科學家可以提取、轉換和分析數十億條記錄,他或她必須非常謹慎的選擇合適的演算法,因為不同演算法會導致最終性能的天壤之別。一般的理論和演算法性質可以在計算機科學課上學習,但是要理解時間複雜度是如何分析和計算的(比如針對給定大小的數據集,該演算法需要運行多長時間?),就必須要熟悉基本的數學概念比如動態規劃或者遞歸方程。熟悉數學歸納法的證明技術也非常有用。

後記

看到有這麼多數學知識要學,是不是有點望而卻步了?覺得自己要重新上一遍大學了?不用擔心,你可以根據需要邊做邊學,但最重要的是保持思想的開放。不慌不慌,這些主題你也許大多已經在大學學過,也可能是第一次接觸,不過當你學完後,你一定可以慢慢聽到數據中隱藏的「旋律」。到那時,你就已經朝著成為數據科學家的方向邁出了一大步。

原文鏈接:

kdnuggets.com/2017/12/m


推薦閱讀:

沈志勇:做一個大數據技術的搬運工

TAG:數據科學家 |