當我向別人介紹我是數據科學家時,我常常被問到數據科學和機器學習有什么區別或者這是否意味著你在從事人工智能工作?類似問題我已經回答過很多次,答案可以總結成三原則:
數據科學、機器學習、人工智能,究竟有什么區別?
這些領域確實有很多重合,而且各自都有各自的說法,選擇哪一個看起來更像是一個市場問題。但是他們不可互換:這個領域的大部分專業人士,對如何把特定的工作分成數據科學、機器學習、人工智能,都有自己的一套直覺,盡管它很難用語言描述出來。
所以在這篇文章中,我提出了一個關于相當簡化的定義:
數據科學產生見解
機器學習做出預測
人工智能創造行為
需要明確的是,這不是一個充分的定義:不是所有符合定義的都屬于這個領域。(算命師做決策,但我們永遠不會說他們在做機器學習!)同樣也,這也不是決定一個人的角色或者工作頭銜的好方法(我是一個數據科學家嗎?),這是一個關注點和經驗的問題。(任何工作都可以這樣描述:寫作是我工作的一部分,但我不是一個專業的作家)。
但我認為這個定義是一種有效的方式,它可以來幫助你區別這三種類型的工作,這樣談論起來時不會讓人覺得很傻。值得注意的是,我在討論成為一個描述主義者而不是規范主義者的方法:我感興趣的是這個領域的人如何使用這些術語而非術語本身。
數據科學產生見解
數據科學和其它兩個領域有所區別,是因為它的目標是基于人類:能夠獲得洞察力和理解。JeffLeek對數據科學可以實現的洞察類型有很好的定義,包括:描述性(普通客戶有70%的更新機會),探索性(不同的銷售人員有不同的更新率)和因果關系(一個隨機實驗表明分配給Alice的客戶比分配給Bob的客戶更有可能更新)。
不是所有產生洞察力的科學都是數據科學(數據科學的經典定義是統計學、軟件工程和領域專業知識的組合)。但是我們可以用這個定義來區分ML和AI。主要區別在于,數據科學中總有人工介入:有人正在理解、洞察,工業機器人維修,看到數字,或者從結論中受益。我們的象棋游戲算法使用數據科學來決定下一步棋或者Google地圖使用數據科學來推薦駕駛方向是毫無意義的。
數據科學的定義因此強調:
統計推斷
數據可視化
實驗設計
領域知識
交流
數據科學家可能會使用簡單的工具:他們可以報告百分比并根據SQL查詢制作線圖;也可以使用非常復雜的方法:他們可能會使用分布式數據存儲來分析數萬億條記錄,開發尖端的統計技術并構建交互式可視化。無論他們使用什么,目標都是為了更好地理解他們的數據。
機器學習做出預測
我認為機器學習是關于預測的領域:給定具有特定特征的實例X,預測Y。這些預測可能是關于未來的(預測這個病人是否會得敗血癥),但它們也可能是對于計算機不明顯的特性(預測這個圖像是否有鳥)。幾乎所有的Kaggle比賽都可以被認定為機器學習問題:他們提供一些訓練數據,然后查看參賽者是否可以對新例子做出準確的預測。
數據科學和機器學習之間有很多重疊。例如,邏輯回歸可以用來獲取關于關系的見解(用戶越富有,他們購買我們產品的可能性越大,所以我們應該改變我們的營銷策略)并做出預測(這個用戶有53%購買我們產品的可能性,所以我們應該向他推薦我們的產品)。
像隨機森林這樣的模型可解釋性稍差,而且更適合機器學習的描述,深度學習等方法是眾所周知的難解釋。如果你的目標是獲得見解而不是做出預測,這可能會阻礙你。因此,我們可以想象一個數據科學和機器學習的譜,其中可解釋模型傾向于數據科學,更多黑盒子模型則傾向于機器學習這一邊[source](https://xkcd.com/1838/)
大多數從業者可以在這兩個任務之間非常舒適地來回切換。我在工作中同時使用到機器學習和數據科學:我可以通過機器學習的方法,在StackOverflow的業務資料上匹配一個模型來判定哪些用戶更有可能是在尋找一份工作,然后用數據科學來構筑結論和可視化結果來驗證為什么這個模型有效。這是非常重要的方法來發現你模型中的缺點以及解決算法偏見。這也是數據科學經常將機器學習發展為一個產品的原因。
人工智能創造行為
人工智能是目前為止這三個類中最古老和最廣為承認的,但結果也是最具挑戰性來定義的。由于尋求資金和關注的學者、記者和創業者,人工智能也得到了大肆宣傳。
數據科學、機器學習、人工智能,究竟有什么區別?
因為這也意味著一些本應該被稱為人工智能的工作卻并不是按照這樣進行描述的,這也引起了我的強烈反對。一些學者也在抱怨人工智能的作用:人工智能是我們現在還無法做到的。所以什么工作可以讓我們合理地描述人工智能?
一個定義人工智能的通用思路是一種自發代理行為執行或者推薦行為行為(e.g.Poole,MackworthandGoebel1998,RussellandNorvig2003)。我認為也屬于人工智能的系統包括:
人機博弈算法(DeepBlue,AlphaGo)
機器人學和控制理論(運動規劃,兩足機器人的步行行為)
優化選擇(谷歌地圖路徑選擇)
自然語言處理(機器人2)
強化學習
此外,人工智能與其他領域也有很多交疊。深度學習因為橫跨機器學習和人工智能兩個領域,所以特別有趣。典型應用例子就是訓練數據然后作出預測,這已經在人人機博弈算法中表現出巨大的成功,比如Alphago(與更早之前的人機博弈系統,如深藍相比,Alphago更聚焦于探索和優化未知的解決方案空間)。
但這之間也有區別。如果我分析一些銷售數據,會發現來自特定行業的客戶比其他更多(提取出一些調查結果),輸出結果是一些數字和圖表,不是特定行為。(管理者可能會根據這些結論改變銷售策略,庫卡機器人驅動器維修,但這個行為不是自發性的)這意味著我會將我的工作描述為數據科學:如果將提高銷售額的方法歸結于人工智能將會是很尷尬的說法。
請不要將經受過算法訓練的人都寫作具有人工智能能力的人
DaveGershgorn@davegershgorn3:17AM-Sep19,2017
人工智能與機器學習的差異更加微妙,從發展歷史來說,機器學習通常被認為人工智能的一個子領域(計算機視覺尤其是一個經典人工智能問題)。但我認為機器學習領域已經與人工智能有較大割離,一定程度上是由于上面所提及的沖擊:大多數研究預測問題的人都不喜歡把自己描述成人工智能研究人員。(很多重要的機器學習所取得的突破來自于數據分析,而這些數據在AI領域的其他領域很少出現。)這意味著,如果你能把一個問題描述為從Y中預測X,我建議你完全避免使用人工智能這個詞。
數據科學、機器學習、人工智能,究竟有什么區別?
案例研究:怎樣將這三者一起使用
假設我們正在開發一輛自動駕駛汽車,并且正在研究將車停靠在停車標志處的特定問題。我們需要從這三個領域中獲得的技能。
機器學習:汽車必須使用它的攝像頭識別停車標志。我們構造一個包含數百萬街邊對象的照片數據集,然后訓練一個算法來判斷那些照片中有停車標注。