核心提示:最近,吳恩達在其創辦的人工智能周訊《The Batch》上更新了一篇博文,總結了機器學習領域多個基礎算法的歷史溯源。
文章開頭,吳
最近,吳恩達在其創辦的人工智能周訊《The Batch》上更新了一篇博文,總結了機器學習領域多個基礎算法的歷史溯源。
文章開頭,吳恩達回憶他的研究歷程中曾有一次抉擇:
多年前,在一次項目中,選擇算法時,他不得不在神經網絡與決策樹學習算法之間做選擇。考慮到計算預算,他最終選擇了神經網絡,在很長的一段時間內棄用增強決策樹。
這是一個錯誤的決定,「幸好我的團隊很快修改了我的選擇,項目才成功。」吳恩達談道。
他由此感嘆,不斷學習與更新基礎知識是十分重要的。與其他技術領域一樣,隨著研究人員的增加、研究成果數量的增長,機器學習領域也在不斷發展。但有些基礎算法與核心思想的貢獻是經得起時間考驗的:
算法:線性和邏輯回歸、決策樹等
概念:正則化、優化損失函數、偏差/方差等
在吳恩達看來,這些算法與概念是許多機器學習模型的核心思想,包括房價預測器、文本-圖像生成器(如DALL·E)等。
在最新的這篇文章中,吳恩達與團隊調研了六種基礎算法的來源、用途、演變等,并提供了較為詳細的講解。
這六種算法分別是:線性回歸、邏輯回歸、梯度下降、神經網絡、決策樹與k均值聚類算法。
1
線性回歸:直的&窄的
線性回歸是機器學習中的一個關鍵的統計方法,但它并非不戰而勝。它由兩位杰出的數學家提出,但200 年過去了,這個問題仍未解決。長期存在的爭議不僅證明了該算法具有出色的實用性,還證明了它的本質十分簡單。
那么線性回歸到底是誰的算法呢?
1805 年,法國數學家 Adrien-Marie Legendre 發表了將一條線擬合到一組點的方法,同時試圖預測彗星的位置(天體導航是當時全球商業中最有價值的科學方向,就像今天的人工智能一樣)。
吳恩達:機器學習的六個核心算法
四年后,24 歲的德國神童 Carl Friedrich Gauss (高斯)堅稱他自 1795 年以來一直在使用它,但認為它太瑣碎了,無法寫。高斯的主張促使Legendre匿名發表了一份文章,稱“一位非常著名的幾何學家毫不猶豫地采用了這種方法。”
吳恩達:機器學習的六個核心算法
斜率和偏差:當結果與影響它的變量之間的關系遵循直線時,線性回歸很有用。例如,汽車的油耗與其重量成線性關系。
汽車的油耗 y 與其重量 x 之間的關系取決于直線的斜率 w(油耗隨重量上升的幅度)和偏置項 b(零重量時的油耗):y=w*x+b。
在訓練期間,給定汽車的重量,算法會預測預期的油耗。它比較了預期和實際的油耗。然后,它將平方差最小化,通常通過普通最小二乘技術,磨練 w 和 b 的值。
考慮汽車的阻力可以生成更精確的預測。附加變量將線延伸到平面。通過這種方式,線性回歸可以容納任意數量的變量/維度。
普及的兩個步驟:該算法立即幫助航海者追蹤星星,以及幫助后來的生物學家(尤其是查爾斯·達爾文的堂兄Francis Galton)識別植物和動物的可遺傳特征。這兩項深入發展釋放了線性回歸的廣泛潛力。1922 年,英國統計學家 Ronald Fisher 和 Karl Pearson 展示了線性回歸如何適應相關性和分布的一般統計框架,使其在所有科學中都有用。而且,近一個世紀后,計算機的出現提供了數據和處理能力,可以更大程度地利用它。
應對歧義:當然,數據永遠不會被完美地衡量,有些變量比其他變量更重要。這些生活事實激發了更復雜的變體。例如,帶有正則化的線性回歸(也稱為「嶺回歸」,ridge regression)鼓勵線性回歸模型不要過多地依賴于任何一個變量,或者更確切地說,均勻地依賴于最重要的變量。如果為了簡單起見,另一種形式的正則化(L1 而不是 L2)會產生 lasso(壓縮估計),鼓勵盡可能多的系數為零。換句話說,它學會選擇具有高預測能力的變量并忽略其余的。彈性網絡結合了這兩種類型的正則化。當數據稀疏或特征看起來相關時,它很有用。
在每個神經元中:現在,簡單的版本仍然非常有用。神經網絡中最常見的神經元類型是線性回歸模型,隨后是非線性激活函數,使線性回歸成為深度學習的基本組成部分。
2
邏輯回歸:跟隨曲線
曾經有一段時間,邏輯回歸只用于對一件事進行分類:如果你喝了一瓶毒藥,你可能會被貼上的標簽是“活著”還是“死去”呢?時代變了,今天,不僅呼叫緊急服務為這個問題提供了更好的答案,而且邏輯回歸也成為了深度學習的核心。
毒物控制:
邏輯函數可以追溯到 1830 年代,當時比利時統計學家 P.F. Verhulst 發明它來描述人口動態:隨著時間的推移,指數增長的初始爆炸隨著它消耗可用資源而趨于平緩,從而產生特征邏輯曲線。一個多世紀過去后,美國統計學家 E. B. Wilson 和他的學生 Jane Worcester 又設計了邏輯回歸來計算給定有害物質有多少是致命的。
吳恩達:機器學習的六個核心算法
擬合函數:邏輯回歸將邏輯函數擬合到數據集,以便預測給定事件(例如,攝入士的寧)發生特定結果(例如,過早死亡)的概率。
訓練水平調整曲線的中心位置,垂直調整曲線的中間位置,以最大限度地減少函數輸出與數據之間的誤差。
將中心調整到右側或左側意味著殺死普通人需要或多或少的毒藥。陡峭的坡度意味著確定性:在中途點之前,大多數人幸存下來;超過一半,「就只能說再見了」(死亡的意思)。緩坡更寬容:低于曲線中部,一半以上幸存;再往上,只有不到一半的人會幸存。
在一個結果和另一個結果之間設置一個閾值,比如 0.5,曲線就變成了一個分類器。只需在模型中輸入劑量,您就會知道您應該計劃聚會還是葬禮。
更多結果:Verhulst 的工作發現了二元結果的概率,忽略了進一步的可能性,例如中毒受害者可能會進入來世的哪一邊。他的繼任者擴展了算法:
在 1960 年代后期,英國統計學家 David Cox 和荷蘭統計學家 Henri Theil 獨立工作,對具有兩種以上可能結果的情況進行了邏輯回歸。
進一步的工作產生了有序邏輯回歸,其中結果是有序值。
為了處理稀疏或高維數據,邏輯回歸可以利用與線性回歸相同的正則化技術。
吳恩達:機器學習的六個核心算法
多功能曲線:邏輯函數以相當準確的方式描述了廣泛的現象,因此邏輯回歸在許多情況下提供了有用的基線預測。在醫學上,它可以估計死亡率和疾病風險。在政治學中,它預測選舉的贏家和輸家。在經濟學中,它預測商業前景。更重要的是,它在各種各樣的神經網絡中驅動一部分神經元(其中非線性是 Sigmoid 函數)。
3
梯度下降:一切都在下坡
想象一下黃昏后在山上徒步旅行,發現腳下什么都看不到。而且您的手機電池沒電了,因此您無法使用 GPS 應用程序找到回家的路。您可能會通過梯度下降找到最快的路徑。小心不要從懸崖上走。
太陽和地毯:梯度下降比通過陡峭的地形下降更有利。1847年,法國數學家Augustin-Louis Cauchy發明了近似恒星軌道的算法。60 年后,他的同胞 Jacques Hadamard 獨立開發了它來描述薄而靈活的物體(如地毯)的變形,這可能會使膝蓋向下徒步更容易。然而,在機器學習中,它最常見的用途是找到學習算法損失函數的最低點。
吳恩達:機器學習的六個核心算法
圖注:Augustin-Louis Cauchy
向下爬:經過訓練的神經網絡提供了一個函數,該函數在給定輸入的情況下計算所需的輸出。訓練網絡的一種方法是通過迭代計算實際輸出與期望輸出之間的差異,然后更改網絡的參數值以縮小差異,從而將輸出中的損失或誤差最小化。梯度下降縮小了差異,將計算損失的函數最小化。網絡的參數值相當于地形上的一個位置,損失的是當前高度。隨著你的下降,你可以提高網絡計算接近所需輸出的能力。可見性是有限的,因為在典型的監督學習情況下,該算法僅依賴于網絡的參數值和損失函數的梯度或斜率——即你在山上的位置和你腳下的斜率。
基本方法是向地形下降最陡的方向移動。訣竅是校準你的步幅。步幅太小,就需要很長時間才能取得進展;步幅太大,你就會跳入未知的領域,可能是上坡而不是下坡。
給定當前位置,算法通過計算損失函數的梯度來估計最快下降的方向。梯度指向上坡,那么該算法就是通過減去梯度的一小部分來以相反的方向前進。稱為學習率的分數 α 決定了再次測量梯度之前的步長。
反復做這幾個步驟,希望你能到達一個山谷。恭喜!
卡在山谷里:太糟糕了,你的手機沒電了,因為算法可能沒有把你推到凸山的底部。你可能會陷入由多個山谷(局部最小值)、山峰(局部最大值)、鞍點(鞍點)和高原組成的非凸面景觀中。事實上,圖像識別、文本生成和語音識別等任務都是非凸的,并且已經出現了梯度下降的許多變體來處理這種情況。例如,該算法可能具有幫助它放大小幅上漲和下跌的動量,從而使其更有可能到達底部。研究人員設計了如此多的變體,以至于看起來優化器的數量與局部最小值一樣多。幸運的是,局部最小值和全局最小值往往大致相等。
最優優化器:梯度下降是尋找任一函數的最小值的明確選擇。在可以直接計算精確解的情況下——例如,具有大量變量的線性回歸任務中——它可以逼近一個值,而且通常速度更快、成本更低。但它確實在復雜的非線性任務中發揮了作用。憑借梯度下降和冒險精神,你可能可以及時趕出山區吃晚飯。
文章開頭,吳恩達回憶他的研究歷程中曾有一次抉擇:
多年前,在一次項目中,選擇算法時,他不得不在神經網絡與決策樹學習算法之間做選擇。考慮到計算預算,他最終選擇了神經網絡,在很長的一段時間內棄用增強決策樹。
這是一個錯誤的決定,「幸好我的團隊很快修改了我的選擇,項目才成功。」吳恩達談道。
他由此感嘆,不斷學習與更新基礎知識是十分重要的。與其他技術領域一樣,隨著研究人員的增加、研究成果數量的增長,機器學習領域也在不斷發展。但有些基礎算法與核心思想的貢獻是經得起時間考驗的:
算法:線性和邏輯回歸、決策樹等
概念:正則化、優化損失函數、偏差/方差等
在吳恩達看來,這些算法與概念是許多機器學習模型的核心思想,包括房價預測器、文本-圖像生成器(如DALL·E)等。
在最新的這篇文章中,吳恩達與團隊調研了六種基礎算法的來源、用途、演變等,并提供了較為詳細的講解。
這六種算法分別是:線性回歸、邏輯回歸、梯度下降、神經網絡、決策樹與k均值聚類算法。
1
線性回歸:直的&窄的
線性回歸是機器學習中的一個關鍵的統計方法,但它并非不戰而勝。它由兩位杰出的數學家提出,但200 年過去了,這個問題仍未解決。長期存在的爭議不僅證明了該算法具有出色的實用性,還證明了它的本質十分簡單。
那么線性回歸到底是誰的算法呢?
1805 年,法國數學家 Adrien-Marie Legendre 發表了將一條線擬合到一組點的方法,同時試圖預測彗星的位置(天體導航是當時全球商業中最有價值的科學方向,就像今天的人工智能一樣)。
吳恩達:機器學習的六個核心算法
四年后,24 歲的德國神童 Carl Friedrich Gauss (高斯)堅稱他自 1795 年以來一直在使用它,但認為它太瑣碎了,無法寫。高斯的主張促使Legendre匿名發表了一份文章,稱“一位非常著名的幾何學家毫不猶豫地采用了這種方法。”
吳恩達:機器學習的六個核心算法
斜率和偏差:當結果與影響它的變量之間的關系遵循直線時,線性回歸很有用。例如,汽車的油耗與其重量成線性關系。
汽車的油耗 y 與其重量 x 之間的關系取決于直線的斜率 w(油耗隨重量上升的幅度)和偏置項 b(零重量時的油耗):y=w*x+b。
在訓練期間,給定汽車的重量,算法會預測預期的油耗。它比較了預期和實際的油耗。然后,它將平方差最小化,通常通過普通最小二乘技術,磨練 w 和 b 的值。
考慮汽車的阻力可以生成更精確的預測。附加變量將線延伸到平面。通過這種方式,線性回歸可以容納任意數量的變量/維度。
普及的兩個步驟:該算法立即幫助航海者追蹤星星,以及幫助后來的生物學家(尤其是查爾斯·達爾文的堂兄Francis Galton)識別植物和動物的可遺傳特征。這兩項深入發展釋放了線性回歸的廣泛潛力。1922 年,英國統計學家 Ronald Fisher 和 Karl Pearson 展示了線性回歸如何適應相關性和分布的一般統計框架,使其在所有科學中都有用。而且,近一個世紀后,計算機的出現提供了數據和處理能力,可以更大程度地利用它。
應對歧義:當然,數據永遠不會被完美地衡量,有些變量比其他變量更重要。這些生活事實激發了更復雜的變體。例如,帶有正則化的線性回歸(也稱為「嶺回歸」,ridge regression)鼓勵線性回歸模型不要過多地依賴于任何一個變量,或者更確切地說,均勻地依賴于最重要的變量。如果為了簡單起見,另一種形式的正則化(L1 而不是 L2)會產生 lasso(壓縮估計),鼓勵盡可能多的系數為零。換句話說,它學會選擇具有高預測能力的變量并忽略其余的。彈性網絡結合了這兩種類型的正則化。當數據稀疏或特征看起來相關時,它很有用。
在每個神經元中:現在,簡單的版本仍然非常有用。神經網絡中最常見的神經元類型是線性回歸模型,隨后是非線性激活函數,使線性回歸成為深度學習的基本組成部分。
2
邏輯回歸:跟隨曲線
曾經有一段時間,邏輯回歸只用于對一件事進行分類:如果你喝了一瓶毒藥,你可能會被貼上的標簽是“活著”還是“死去”呢?時代變了,今天,不僅呼叫緊急服務為這個問題提供了更好的答案,而且邏輯回歸也成為了深度學習的核心。
毒物控制:
邏輯函數可以追溯到 1830 年代,當時比利時統計學家 P.F. Verhulst 發明它來描述人口動態:隨著時間的推移,指數增長的初始爆炸隨著它消耗可用資源而趨于平緩,從而產生特征邏輯曲線。一個多世紀過去后,美國統計學家 E. B. Wilson 和他的學生 Jane Worcester 又設計了邏輯回歸來計算給定有害物質有多少是致命的。
吳恩達:機器學習的六個核心算法
擬合函數:邏輯回歸將邏輯函數擬合到數據集,以便預測給定事件(例如,攝入士的寧)發生特定結果(例如,過早死亡)的概率。
訓練水平調整曲線的中心位置,垂直調整曲線的中間位置,以最大限度地減少函數輸出與數據之間的誤差。
將中心調整到右側或左側意味著殺死普通人需要或多或少的毒藥。陡峭的坡度意味著確定性:在中途點之前,大多數人幸存下來;超過一半,「就只能說再見了」(死亡的意思)。緩坡更寬容:低于曲線中部,一半以上幸存;再往上,只有不到一半的人會幸存。
在一個結果和另一個結果之間設置一個閾值,比如 0.5,曲線就變成了一個分類器。只需在模型中輸入劑量,您就會知道您應該計劃聚會還是葬禮。
更多結果:Verhulst 的工作發現了二元結果的概率,忽略了進一步的可能性,例如中毒受害者可能會進入來世的哪一邊。他的繼任者擴展了算法:
在 1960 年代后期,英國統計學家 David Cox 和荷蘭統計學家 Henri Theil 獨立工作,對具有兩種以上可能結果的情況進行了邏輯回歸。
進一步的工作產生了有序邏輯回歸,其中結果是有序值。
為了處理稀疏或高維數據,邏輯回歸可以利用與線性回歸相同的正則化技術。
吳恩達:機器學習的六個核心算法
多功能曲線:邏輯函數以相當準確的方式描述了廣泛的現象,因此邏輯回歸在許多情況下提供了有用的基線預測。在醫學上,它可以估計死亡率和疾病風險。在政治學中,它預測選舉的贏家和輸家。在經濟學中,它預測商業前景。更重要的是,它在各種各樣的神經網絡中驅動一部分神經元(其中非線性是 Sigmoid 函數)。
3
梯度下降:一切都在下坡
想象一下黃昏后在山上徒步旅行,發現腳下什么都看不到。而且您的手機電池沒電了,因此您無法使用 GPS 應用程序找到回家的路。您可能會通過梯度下降找到最快的路徑。小心不要從懸崖上走。
太陽和地毯:梯度下降比通過陡峭的地形下降更有利。1847年,法國數學家Augustin-Louis Cauchy發明了近似恒星軌道的算法。60 年后,他的同胞 Jacques Hadamard 獨立開發了它來描述薄而靈活的物體(如地毯)的變形,這可能會使膝蓋向下徒步更容易。然而,在機器學習中,它最常見的用途是找到學習算法損失函數的最低點。
吳恩達:機器學習的六個核心算法
圖注:Augustin-Louis Cauchy
向下爬:經過訓練的神經網絡提供了一個函數,該函數在給定輸入的情況下計算所需的輸出。訓練網絡的一種方法是通過迭代計算實際輸出與期望輸出之間的差異,然后更改網絡的參數值以縮小差異,從而將輸出中的損失或誤差最小化。梯度下降縮小了差異,將計算損失的函數最小化。網絡的參數值相當于地形上的一個位置,損失的是當前高度。隨著你的下降,你可以提高網絡計算接近所需輸出的能力。可見性是有限的,因為在典型的監督學習情況下,該算法僅依賴于網絡的參數值和損失函數的梯度或斜率——即你在山上的位置和你腳下的斜率。
基本方法是向地形下降最陡的方向移動。訣竅是校準你的步幅。步幅太小,就需要很長時間才能取得進展;步幅太大,你就會跳入未知的領域,可能是上坡而不是下坡。
給定當前位置,算法通過計算損失函數的梯度來估計最快下降的方向。梯度指向上坡,那么該算法就是通過減去梯度的一小部分來以相反的方向前進。稱為學習率的分數 α 決定了再次測量梯度之前的步長。
反復做這幾個步驟,希望你能到達一個山谷。恭喜!
卡在山谷里:太糟糕了,你的手機沒電了,因為算法可能沒有把你推到凸山的底部。你可能會陷入由多個山谷(局部最小值)、山峰(局部最大值)、鞍點(鞍點)和高原組成的非凸面景觀中。事實上,圖像識別、文本生成和語音識別等任務都是非凸的,并且已經出現了梯度下降的許多變體來處理這種情況。例如,該算法可能具有幫助它放大小幅上漲和下跌的動量,從而使其更有可能到達底部。研究人員設計了如此多的變體,以至于看起來優化器的數量與局部最小值一樣多。幸運的是,局部最小值和全局最小值往往大致相等。
最優優化器:梯度下降是尋找任一函數的最小值的明確選擇。在可以直接計算精確解的情況下——例如,具有大量變量的線性回歸任務中——它可以逼近一個值,而且通常速度更快、成本更低。但它確實在復雜的非線性任務中發揮了作用。憑借梯度下降和冒險精神,你可能可以及時趕出山區吃晚飯。