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