本文轉載自數學算法俱樂(le) 部
統計學和機器學習(xi) 之間的界定一直很模糊。無論是業(ye) 界還是學界一直認為(wei) 機器學習(xi) 隻是統計學披了一層光鮮的外衣。而機器學習(xi) 支撐的人工智能也被稱為(wei) “統計學的外延”。例如,諾獎得主托馬斯·薩金特曾經說過人工智能其實就是統計學,隻不過用了一個(ge) 很華麗(li) 的辭藻。
薩金特在世界科技創新論壇上表示,人工智能其實就是統計學
當然也有一些不同的聲音。但是這一觀點的正反雙方在爭(zheng) 吵中充斥著一堆看似高深實則含糊的論述,著實讓人摸不著頭腦。一位名叫Matthew Stewart的哈佛大學博士生從(cong) 統計與(yu) 機器學習(xi) 的不同;統計模型與(yu) 機器學習(xi) 的不同,這兩(liang) 個(ge) 角度論證了機器學習(xi) 和統計學並不是互為(wei) 代名詞。
機器學習(xi) 和統計的主要區別在於(yu) 它們(men) 的目的
與(yu) 大部分人所想的正相反,機器學習(xi) 其實已經存在幾十年了。當初隻是因為(wei) 那時的計算能力無法滿足它對大量計算的需求,而漸漸被人遺棄。然而,近年來,由於(yu) 信息爆炸所帶來的數據和算力優(you) 勢,機器學習(xi) 正快速複蘇。
言歸正傳(chuan) ,如果說機器學習(xi) 和統計學是互為(wei) 代名詞,那為(wei) 什麽(me) 我們(men) 沒有看到每所大學的統計學係都關(guan) 門大吉而轉投'機器學習(xi) '係呢?因為(wei) 它們(men) 是不一樣的!我經常聽到一些關(guan) 於(yu) 這個(ge) 話題的含糊論述,最常見的是這樣的說法:"機器學習(xi) 和統計的主要區別在於(yu) 它們(men) 的目的。機器學習(xi) 模型旨在使最準確的預測成為(wei) 可能。
統計模型是為(wei) 推斷變量之間的關(guan) 係而設計的。雖然技術上來說這是正確的,但這樣的論述並沒有給出特別清晰和令人滿意的答案。機器學習(xi) 和統計之間的一個(ge) 主要區別確實是它們(men) 的目的。然而,說機器學習(xi) 是關(guan) 於(yu) 準確的預測,而統計模型是為(wei) 推理而設計,幾乎是毫無意義(yi) 的說法,除非你真的精通這些概念。
首先,我們(men) 必須明白,統計和統計建模是不一樣的。統計是對數據的數學研究。除非有數據,否則無法進行統計。統計模型是數據的模型,主要用於(yu) 推斷數據中不同內(nei) 容的關(guan) 係,或創建能夠預測未來值的模型。
通常情況下,這兩(liang) 者是相輔相成的。因此,實際上我們(men) 需要從(cong) 兩(liang) 方麵來論述:第一,統計與(yu) 機器學習(xi) 有何不同;第二,統計模型與(yu) 機器學習(xi) 有何不同?說得更直白些就是,有很多統計模型可以做出預測,但預測效果比較差強人意。
而機器學習(xi) 通常會(hui) 犧牲可解釋性以獲得強大的預測能力。例如,從(cong) 線性回歸到神經網絡,盡管解釋性變差,但是預測能力卻大幅提高。從(cong) 宏觀角度來看,這是一個(ge) 很好的答案。至少對大多數人來說已經足夠好。
然而,在有些情況下,這種說法容易讓我們(men) 對機器學習(xi) 和統計建模之間的差異產(chan) 生誤解。讓我們(men) 看一下線性回歸的例子。
統計模型與(yu) 機器學習(xi) 在線性回歸上的差異
或許是因為(wei) 統計建模和機器學習(xi) 中使用方法的相似性,使人們(men) 認為(wei) 它們(men) 是同一個(ge) 東(dong) 西。對於(yu) 這個(ge) 我可以理解,但事實上不是這樣。最明顯的例子是線性回歸,這可能是造成這種誤解的主要原因。線性回歸是一種統計方法,通過這種方法我們(men) 既可以訓練一個(ge) 線性回歸器,又可以通過最小二乘法擬合一個(ge) 統計回歸模型。
可以看到,在這個(ge) 案例中,前者做的事兒(er) 叫"訓練"模型,它隻用到了數據的一個(ge) 子集,而訓練得到的模型究竟表現如何需要通過數據的另一個(ge) 子集測試集測試之後才能知道。在這個(ge) 例子中,機器學習(xi) 的最終目的是在測試集上獲得最佳性能。
對於(yu) 後者,我們(men) 則事先假設數據是一個(ge) 具有高斯噪聲的線性回歸量,然後試圖找到一條線,最大限度地減少了所有數據的均方誤差。不需要訓練或測試集,在許多情況下,特別是在研究中(如下麵的傳(chuan) 感器示例),建模的目的是描述數據與(yu) 輸出變量之間的關(guan) 係, 而不是對未來數據進行預測。我們(men) 稱此過程為(wei) 統計推斷,而不是預測。盡管我們(men) 可以使用此模型進行預測,這也可能是你所想的,但評估模型的方法不再是測試集,而是評估模型參數的顯著性和健壯性。
機器學習(xi) (這裏特指有監督學習(xi) )的目的是獲得一個(ge) 可反複預測的模型。我們(men) 通常不關(guan) 心模型是否可以解釋。機器學習(xi) 隻在乎結果。就好比對公司而言,你的價(jia) 值隻用你的表現來衡量。而統計建模更多的是為(wei) 了尋找變量之間的關(guan) 係和確定關(guan) 係的顯著性,恰巧迎合了預測。下麵我舉(ju) 一個(ge) 自己的例子,來說明兩(liang) 者的區別。
我是一名環境科學家。工作的主要內(nei) 容是和傳(chuan) 感器數據打交道。如果我試圖證明傳(chuan) 感器能夠對某種刺激(如氣體(ti) 濃度)做出反應, 那麽(me) 我將使用統計模型來確定信號響應是否具有統計顯著性。
我會(hui) 嚐試理解這種關(guan) 係,並測試其可重複性,以便能夠準確地描述傳(chuan) 感器的響應,並根據這些數據做出推斷。我還可能測試,響應是否是線性的?響應是否歸因於(yu) 氣體(ti) 濃度而不是傳(chuan) 感器中的隨機噪聲?等等。而同時,我也可以拿著從(cong) 20個(ge) 不同傳(chuan) 感器得到的數據, 去嚐試預測一個(ge) 可由他們(men) 表征的傳(chuan) 感器的響應。
如果你對傳(chuan) 感器了解不多,這可能會(hui) 顯得有些奇怪,但目前這確實是環境科學的一個(ge) 重要研究領域。用一個(ge) 包含20個(ge) 不同變量的模型來表征傳(chuan) 感器的輸出顯然是一種預測,而且我也沒期待模型是可解釋的。
要知道,由於(yu) 化學動力學產(chan) 生的非線性以及物理變量與(yu) 氣體(ti) 濃度之間的關(guan) 係等等因素,可能會(hui) 使這個(ge) 模型非常深奧,就像神經網絡那樣難以解釋。盡管我希望這個(ge) 模型能讓人看懂, 但其實隻要它能做出準確的預測,我就相當高興(xing) 了。
如果我試圖證明數據變量之間的關(guan) 係在某種程度上具有統計顯著性,以便我可以在科學論文中發表,我將使用統計模型而不是機器學習(xi) 。
這是因為(wei) 我更關(guan) 心變量之間的關(guan) 係,而不是做出預測。做出預測可能仍然很重要,但是大多數機器學習(xi) 算法缺乏可解釋性,這使得很難證明數據中存在的關(guan) 係。
很明顯,這兩(liang) 種方法在目標上是不同的,盡管使用了相似的方法來達到目標。機器學習(xi) 算法的評估使用測試集來驗證其準確性。然而,對於(yu) 統計模型,通過置信區間、顯著性檢驗和其他檢驗對回歸參數進行分析,可以用來評估模型的合法性。因為(wei) 這些方法產(chan) 生相同的結果,所以很容易理解為(wei) 什麽(me) 人們(men) 會(hui) 假設它們(men) 是相同的。
統計與(yu) 機器學習(xi) 在線性回歸上的差異
有一個(ge) 誤解存在了10年:僅(jin) 基於(yu) 它們(men) 都利用相同的基本概率概念這一事實,來混淆這兩(liang) 個(ge) 術語是不合理的。
然而,僅(jin) 僅(jin) 基於(yu) 這兩(liang) 個(ge) 術語都利用了概率裏相同的基本概念這一事實而將他們(men) 混為(wei) 一談是不合理的。就好比,如果我們(men) 僅(jin) 僅(jin) 把機器學習(xi) 當作披了一層光鮮外衣的統計,我們(men) 也可以這樣說:
- 物理隻是數學的一種更好聽的說法。
- 動物學隻是郵票收藏的一種更好聽的說法。
- 建築學隻是沙堡建築的一種更好聽的說法。
這些說法(尤其是最後一個(ge) )非常荒謬,完全混淆了兩(liang) 個(ge) 類似想法的術語。實際上,物理是建立在數學基礎上的,理解現實中的物理現象是數學的應用。物理學還包括統計學的各個(ge) 方麵,而現代統計學通常是建立在Zermelo-Frankel集合論與(yu) 測量理論相結合的框架中,以產(chan) 生概率空間。它們(men) 有很多共同點,因為(wei) 它們(men) 來自相似的起源,並運用相似的思想得出一個(ge) 邏輯結論。
同樣,建築學和沙堡建築可能有很多共同點,但即使我不是一個(ge) 建築師,也不能給出一個(ge) 清晰的解釋,但也看得出它們(men) 顯然不一樣。在我們(men) 進一步討論之前,需要簡要澄清另外兩(liang) 個(ge) 與(yu) 機器學習(xi) 和統計有關(guan) 的常見誤解。這就是人工智能不同於(yu) 機器學習(xi) ,數據科學不同於(yu) 統計學。這些都是沒有爭(zheng) 議的問題,所以很快就能說清楚。
數據科學本質上是應用於(yu) 數據的計算和統計方法,包括小數據集或大數據集。它也包括諸如探索性數據分析之類的東(dong) 西,例如對數據進行檢查和可視化,以幫助科學家更好地理解數據,並從(cong) 中做出推論。數據科學還包括諸如數據包裝和預處理之類的東(dong) 西,因此涉及到一定程度的計算機科學,因為(wei) 它涉及編碼和建立數據庫、Web服務器之間的連接和流水線等等。
要進行統計,你並不一定得依靠電腦,但如果是數據科學缺了電腦就沒法操作了。這就再次說明了雖然數據科學借助統計學,這兩(liang) 者不是一個(ge) 概念。同理,機器學習(xi) 也並非人工智能;事實上,機器學習(xi) 是人工智能的一個(ge) 分支。這一點挺明顯的,因為(wei) 我們(men) 基於(yu) 以往的數據“教”(訓練)機器對特定類型的數據進行概括性的預測。
機器學習(xi) 是基於(yu) 統計學
在我們(men) 討論統計學和機器學習(xi) 之間的區別前,我們(men) 先來說說其相似性,其實文章的前半段已經對此有過一些探討了。機器學習(xi) 基於(yu) 統計的框架,因為(wei) 機器學習(xi) 涉及數據,而數據必須基於(yu) 統計學框架來進行描述,所以這點十分明顯。然而,擴展至針對大量粒子的熱力學的統計機製,同樣也建立在統計學框架之下。
壓力的概念其實是數據,溫度也是一種數據。你可能覺得這聽起來不合理,但這是真的。這就是為(wei) 什麽(me) 你不能描述一個(ge) 分子的溫度或壓力,這不合理。溫度是分子相撞產(chan) 生的平均能量的顯示。
而例如房屋或室外這種擁有大量分子的,我們(men) 能用溫度來描述也就合理了。你會(hui) 認為(wei) 熱力學和統計學是一個(ge) 東(dong) 西嗎?當然不會(hui) ,熱力學借助統計學來幫助我們(men) 理解運動的相互作用以及轉移現象中產(chan) 生的熱。事實上,熱力學基於(yu) 多種學科而非僅(jin) 僅(jin) 統計學。類似地,機器學習(xi) 基於(yu) 許多其他領域的內(nei) 容,比如數學和計算機科學。舉(ju) 例來說:
- 機器學習的理論來源於數學和統計學;
- 機器學習算法基於優化理論、矩陣代數和微積分;
- 機器學習的實現來源於計算機科學和工程學概念,比如核映射、特征散列等。
當一個(ge) 人開始用Python開始編程,突然從(cong) Sklearn程序庫裏找出並使用這些算法,許多上述的概念都比較抽象,因此很難看出其中的區別。這樣的情況下,這種抽象定義(yi) 也就致使了對機器學習(xi) 真正包含的內(nei) 容一定程度上的無知。
統計學習(xi) 理論——機器學習(xi) 的統計學基礎
統計學和機器學習(xi) 之間最主要的區別在於(yu) 統計學完全基於(yu) 概率空間。你可以從(cong) 集合論中推導出全部的統計學內(nei) 容,集合論討論了我們(men) 如何將數據歸類(這些類被稱為(wei) “集”),然後對這個(ge) 集進行某種測量保證其總和為(wei) 1.我們(men) 將這種方法成為(wei) 概率空間。
統計學除了對這些集合和測量有所定義(yi) 之外沒有其他假設。這就是為(wei) 什麽(me) 我們(men) 對概率空間的定義(yi) 非常嚴(yan) 謹的原因。一個(ge) 概率空間,其數學符號寫(xie) 作(Ω,F,P),包含三部分:
- 一個樣本空間,Ω,也就是所有可能結果的集合。
- 一個事件集合,F,每個事件都包含0或者其它值。
- 對每個事件發生的可能性賦予概率,P,這是一個從事件到概率的函數。
機器學習(xi) 基於(yu) 統計學習(xi) 理論,統計學習(xi) 理論也依舊基於(yu) 對概率空間的公理化語言。這個(ge) 理論基於(yu) 傳(chuan) 統的統計學理論,並發展於(yu) 19世紀60年代。機器學習(xi) 分為(wei) 多個(ge) 類別,這篇文章我僅(jin) 著眼於(yu) 監督學習(xi) 理論,因為(wei) 它最容易解釋(雖然因其充斥數學概念依然顯得晦澀難懂)。
統計學習(xi) 理論中的監督學習(xi) ,給了我們(men) 一個(ge) 數據集,我們(men) 將其標為(wei) S= {(xᵢ,yᵢ)},也就是說我們(men) 有一個(ge) 包含N個(ge) 數據點的數據集,每個(ge) 數據點由被稱為(wei) “特征”的其它值描述,這些特征用x描述,這些特征通過特定函數來描繪以返回我們(men) 想要的y值。已知這個(ge) 數據集,問如何找到將x值映射到y值的函數。我們(men) 將所有可能的描述映射過程的函數集合稱為(wei) 假設空間。
為(wei) 了找到這個(ge) 函數,我們(men) 需要給算法一些方法來“學習(xi) ”如何最好地著手處理這個(ge) 問題,而這由一個(ge) 被稱為(wei) “損失函數”的概念來提供。因此,對我們(men) 所有的每個(ge) 假設(也即提議的函數),我們(men) 要通過比較所有數據下其預期風險的值來衡量這個(ge) 函數的表現。預期風險本質上就是損失函數之和乘以數據的概率分布。如果我們(men) 知道這個(ge) 映射的聯合概率分布,找到最優(you) 函數就很簡單了。
但是這個(ge) 聯合概率分布通常是未知的,因此我們(men) 最好的方式就是猜測一個(ge) 最優(you) 函數,再實證驗證損失函數是否得到優(you) 化。我們(men) 將這種稱為(wei) 實證風險。之後,我們(men) 就可以比較不同函數,找出最小預期風險的那個(ge) 假設,也就是所有函數中得出最小下確界值的那個(ge) 假設。
然而,為(wei) 了最小化損失函數,算法有通過過度擬合來作弊的傾(qing) 向。這也是為(wei) 什麽(me) 要通過訓練集“學習(xi) ”函數,之後在訓練集之外的數據集,測試集裏對函數進行驗證。我們(men) 如何定義(yi) 機器學習(xi) 的本質引出了過度擬合的問題,也對需要區分訓練集和測試集作出了解釋。
而我們(men) 在統計學中無需試圖最小化實證風險,過度擬合不是統計學的固有特征。最小化統計學中無需視圖程向於(yu) 一個(ge) 從(cong) 函數中選取最小化實證風險的學習(xi) 算法被稱為(wei) 實證風險最小化。
例證
以線性回歸做一個(ge) 簡單例子。在傳(chuan) 統概念中,我們(men) 試圖最小化數據中的誤差找到能夠描述數據的函數,這種情況下,我們(men) 通常使用均值方差。使用平方數是為(wei) 了不讓正值和負值互相抵消。
然後我們(men) 可以使用閉合表達式來求出回歸係數。如果我們(men) 將損失函數計為(wei) 均值方差,並基於(yu) 統計學習(xi) 理論進行最小化實證風險,碰巧就能得到傳(chuan) 統線性回歸分析同樣的結果。這個(ge) 巧合是因為(wei) 兩(liang) 個(ge) 情況是相同的,對同樣的數據以相同的方式求解最大概率自然會(hui) 得出相同的結果。最大化概率有不同的方法來實現同樣的目標,但沒人會(hui) 去爭(zheng) 論說最大化概率與(yu) 線性回歸是一個(ge) 東(dong) 西。
這個(ge) 最簡單的例子顯然沒能區分開這些方法。這裏要指出的第二點在於(yu) ,傳(chuan) 統的統計方法中沒有訓練集和測試集的概念,但我們(men) 會(hui) 使用不同的指標來幫助驗證模型。驗證過程雖然不同,但兩(liang) 種方法都能夠給我們(men) 統計穩健的結果。
另外要指出的一點在於(yu) ,傳(chuan) 統統計方法給了我們(men) 一個(ge) 閉合形式下的最優(you) 解,它沒有對其它可能的函數進行測試來收斂出一個(ge) 結果。相對的,機器學習(xi) 方法嚐試了一批不同的模型,最後結合回歸算法的結果,收斂出一個(ge) 最終的假設。如果我們(men) 用一個(ge) 不同的損失函數,結果可能並不收斂。
例如,如果我們(men) 用了鉸鏈損失(使用標準梯度下降時不太好區分,因此需要使用類似近梯度下降等其它方法),那麽(me) 結果就不會(hui) 相同了。最後可以對模型偏差進行區分。你可以用機器學習(xi) 算法來測試線性模型以及多項式模型,指數模型等,來檢驗這些假設是否相對我們(men) 的先驗損失函數對數據集給出更好的擬合度。
在傳(chuan) 統統計學概念中,我們(men) 選擇一個(ge) 模型,評估其準確性,但無法自動從(cong) 100個(ge) 不同的模型中摘出最優(you) 的那個(ge) 。顯然,由於(yu) 最開始選擇的算法不同,找出的模型總會(hui) 存在一些偏誤。選擇算法是非常必要的,因為(wei) 為(wei) 數據集找出最優(you) 的方程是一個(ge) NP-hard問題。
那麽(me) 哪個(ge) 方法更優(you) 呢?
這個(ge) 問題其實很蠢。沒有統計學,機器學習(xi) 根本沒法存在,但由於(yu) 當代信息爆炸,人類能接觸到的大量數據,機器學習(xi) 是非常有用的。
對比機器學習(xi) 和統計模型還要更難一些,你需要視乎你的目標而定究竟選擇哪種。如果你隻是想要創建一個(ge) 高度準確的預測房價(jia) 的算法,或者從(cong) 數據中找出哪類人更容易得某種疾病,機器學習(xi) 可能是更好的選擇。如果你希望找出變量之間的關(guan) 係或從(cong) 數據中得出推論,選擇統計模型會(hui) 更好。
圖中文字:這是你的機器學習(xi) 係統?對的,你從(cong) 這頭把數據都倒進這一大堆或者線性代數裏,然後從(cong) 那頭裏拿答案就好了。答案錯了咋整?那就攪攪,攪到看起來對了為(wei) 止。
如果你統計學基礎不夠紮實,你依然可以學習(xi) 機器學習(xi) 並使用它——機器學習(xi) 程序庫裏的抽象概念能夠讓你以業(ye) 餘(yu) 者的身份來輕鬆使用它們(men) ,但你還是得對統計概念有所了解,從(cong) 而避免模型過度擬合或得出些貌似合理的推論。
相關(guan) 報道:https://towardsdatascience.com/the-actual-difference-between-statistics-and-machine-learning-64b49f07ea3?gi=412e8f93e22e
評論已經被關(guan) 閉。