標籤:

消除對數據科學家的錯誤認識

經常在朋友圈被一些公眾號和轉載刷屏,覺得很有必要寫一些個人的見解來幫助以下幾類人了解數據科學:

  • 被各種科技新聞刷屏的有一定教育水平的群眾。
  • 對數據科學有一定興趣的學生。
  • 想進入數據科學行業的轉行者。

個人的credential先說一下。

  • 弱雞理論數學博士
  • 兩年半金融公司風險模型經驗。
  • 一年初創公司數據科學經驗

以下以常見問題和我的看法為格式。

什麼是數據科學家?

絕大多數人都會先問這個問題。然而我將在文章結束的時候總結。希望通過對另外一些問題的回答會讓大家有更深刻的理解。

數據科學家做人工智慧?

絕大多數數據科學家不做人工智慧。首先人工智慧仍然是一個不精確的定義。試想,人類連自己的智力是一個什麼定義都很難給出一個完美的解釋,如何通過軟體來實現人工的智能?個人的理解,現在常說的人工智慧是通過機器學習來模擬人類的反應。就算是這樣,絕大多數公司都沒有這個人力和財力去支持人工智慧的開發和應用。如果你想做真正的人工智慧,如果你不是在研究領域有一定量的成果,機會非常少。(如果你已經是有一定成果的研究者,大概就沒有必要讀這篇文章了)

那麼什麼是機器學習?

機器學習是生澀的Machine Learning的翻譯。兩種理解方式:

  1. 讓機器學習
  2. 學會建一個機器

我個人更喜歡後者。現代的機器學習偏重於創建一個黑盒。通過輸入->黑盒->輸出來實現預先構想的流程。人類的工作就是確保這個黑盒的功能能夠最大程度的符合預期。從這個角度來看,傳統統計的回歸分析,貝葉斯,都是機器學習的一種。

那麼統計和機器學習有什麼區別?

僅僅是對訓練完的機器(黑盒)的態度的不同。傳統統計學家對於黑盒的職業恐懼讓他們更傾向與確認機器的各種前提假設的理論牢固性,以及對結果的直觀解釋分析。對與這兩點的執念越小,就越靠近機器學習。簡單說來,機器學習通常只關心能看到的結果的準確性。為了能儘可能的保證機器對於未發生的事件也能準確「預測」,機器學習依靠測試集(即並不用來對機器做訓練的數據)的表現來確定機器的可靠性。這也正是傳統統計學家對此嗤之以鼻的主要方面。更簡單地說,機器學習只關心結果。

那現代機器學習有什麼例子?

大家都知道吸引眼球的神經網路。其實另一個簡單的機器學習例子是決策樹。以及從決策樹和ensemble 發展出來的boosting tree。細節並不在本文的範圍之內。所要知道的是,儘管神經網路大紅大紫,在業界的應用並不像宣傳的那麼廣泛。最常見的機器學習方法還是logistic, 樹型模型,支持向量機的基本類型以及一些簡單的聚類方法。

數據科學吹的那麼厲害,為什麼實際只用這麼點東西?

有不少原因。首先是投入和回報比。尤其是產品線上時候如果需要對上百萬的數據量進行計算,需要昂貴的基礎建設來保證計算速度。大多數小公司都無法支持。而在初期沒有支持的產品更無法獲得足夠的投資。其次是對深度學習(神經網路)熟悉的僱員相對數量更少。第三就是深度學習的適用範圍仍然比較狹窄。

所以數據科學其實是個噱頭?

取決於你的期望。我個人看到的對現今數據科學的最好總結就是:自動化。而要實現自動化就必須要有標準化。目前大量傳統公司內部的機械流程由人工完成,通過熟練的數據科學工作者可以實現大部分內容自動化。這又取決於管理層對流程標準化的理解。比如每月,每周,甚至每小時的報表,完全可以通過數據科學的自動化來實現。排斥人工干涉的學習機器是嵌入自動化流程的最好關鍵環節。

那麼需要做些什麼來實現自動化?

這裡就可以回到文本開始的基本問題。數據科學家到底做什麼?我個人的理解,一個普通的數據科學家相當於60%的軟體工程師,80%的統計師和100%的數據分析師。對應來說:

  1. 軟體工程師:產品線的軟體實現。包括底層引擎,資料庫,UX
  2. 統計師:學習機器的構建
  3. 數據分析師:數據的整理,理解。

只有對三者都有足夠了解的僱員才能實現完整的自動化。數據科學家必須能夠對任何部分進行調試,實現以及優化。因此包括:

  1. 機器學習的了解:這是最基本的要求。
  2. 編程語言的了解:這是能獨立實現建模的要求。需要能夠編寫自定義程序,軟體包。

  3. 最佳方案的了解:需要能夠完成能夠重複使用的流水線。必須能夠讓其他人來理解和擴展你的產品。
  4. 用戶使用的了解:需要讓用戶簡單使用你的產品而無需複雜的程序修改。
  5. 管理決策的了解:需要直接解決問題,而不花費資源在無用的環節。

以後有機會會對這五點進行詳細的展開。


推薦閱讀:

聚類演算法第一篇-概覽
從微積分和線性代數角度看線性最小二乘原理

TAG:數據科學 |