來源:市場資訊
(來源:圖靈人工智能)
如果要評選出整個人工智能史上
最被低估、被嘲笑、又最終逆襲的算法
反向傳播
一定值得一個第一。
Backpropagation。
簡稱 Backprop。
2024 年 10 月,諾貝爾物理學獎頒給了辛頓(Geoffrey Hinton)。
頒獎委員會說,他的工作「為今天的機器學習革命奠定了基礎」。
那一天,全世界 AI 圈刷屏了。
但很少有人知道,辛頓最重要的貢獻之一,是一個在 1986 年發表的算法。
那個算法在發表之后,被主流學術界冷落了將近二十年。
很多人說,這條路走不通。
辛頓一個人撐著,撐過了整個冬天。
我們現在每天用的 ChatGPT、Claude、DeepSeek...
每一個神經網絡,每一次模型訓練,
背后都在運行這個算法。
這就是反向傳播。
要理解反向傳播,先要理解一件事:
神經網絡是怎么「學習」的。
一個神經網絡,里面有成千上萬個參數。
你可以把每個參數想象成一個旋鈕。
![]()
旋鈕擰到不同的位置,網絡對同一張圖片、同一段文字,會給出不同的判斷。
訓練的目標,就是找到所有旋鈕的最佳位置。
讓網絡看到貓的圖片,就說「這是貓」。
看到狗的圖片,就說「這是狗」。
那 8 組多頭注意力的權重矩陣(Wq、Wk、Wv),是旋鈕。
每一層前饋網絡把向量從 512 維升到 2048 維、再壓回來用的那些系數,是旋鈕。
6 層 Encoder、6 層 Decoder,每一層都有自己的一套旋鈕。
GPT-3 的 1750 億個參數,說的就是這 1750 億個旋鈕。
每一個,都需要被調到正確的位置。
![]()
那么問題來了,
一個稍微復雜點的網絡,旋鈕數量輕松達到幾百萬個。
怎么知道每個旋鈕該往哪個方向擰,擰多少
靠猜,不可能。
靠窮舉,更不現實。
這就是反向傳播要解決的問題。
我們先回到 1943 年
那一年,神經科學家麥卡洛克和數學家皮茨,發表了一篇論文。
他們說:
人類大腦里的神經元,其實可以用數學來模擬。
一個神經元接收信號,超過某個閾值,就激活,把信號傳給下一個神經元。
這個想法震驚了所有人。
人們第一次覺得,「思維」這件事,也許可以用機器來做。
到了 1950 年代,感知機出現了。
這是最早的「神經網絡」——只有一層,只能做最簡單的分類。
整個學界都在為此鼓掌。
有人放話,再過十年,機器就能模擬人類大腦了。
然后現實給了一巴掌。
1969 年,明斯基(Minsky)和帕伯特(Papert)出了一本書,用數學證明,單層感知機連「異或」這種最簡單的邏輯都做不了。
整個領域的熱情,被狠狠地澆了一盆冷水。
這就是第一次 AI 寒冬的開始。
![]()
辛頓卻是在寒冬里入行的。
1970 年代,他在劍橋讀心理學,然后轉向 AI。
那個時代,幾乎沒有人愿意研究神經網絡。
主流的學術界在搞「符號 AI」——用規則,用邏輯,用人類寫的知識庫來做智能。
神經網絡被認為是死路。
辛頓不信。
他有一個直覺,大腦不是靠規則運轉的,它是靠連接,靠權重,靠經驗學出來的。
他想找到一種方法,讓多層的神經網絡也能學習。
問題卡在一件事上:
怎么告訴網絡里每一層、每一個神經元,它在這次錯誤里,要負多少責任
這個問題,難在哪里
難在神經網絡是分層的。
輸入進來,一層一層往前傳,最后輸出一個結果。
結果出來了,對比標準答案,能知道「整體錯了多少」。
但具體是哪一層的哪個旋鈕擰錯了
沒有直接的答案。
就像一家公司今年虧損了,你知道總虧了多少錢,但你不知道到底是銷售部門的問題,還是產品部門的問題,還是財務部門的問題。
責任要怎么分
接下來的內容有點干,我們先喝口水...
![]()
1986 年,辛頓和兩位合作者魯梅爾哈特(Rumelhart)、威廉姆斯(Williams),發表了這篇論文。
題目很樸素:
Learning representations by back-propagating errors
通過反向傳播誤差來學習表示。
核心思想就藏在這個題目里。
既然誤差是從最后一層產生的,那就把誤差從最后一層,往回傳。
一層一層往回算,每一層都分到自己應該承擔的那一份責任。
然后每個旋鈕,根據自己分到的責任,微微調整一下方向。
這個過程,重復幾萬次,幾十萬次,幾百萬次。
網絡就慢慢學會了。
我們用一個具體的例子走一遍。
假設網絡的任務,是判斷一張圖片里是不是貓。
![]()
網絡看了一張貓的圖片,輸出了 0.2。
意思是「我認為這張圖片是貓的概率是 20%」。
但正確答案是 1,這就是貓,100% 確定。
誤差是 0.8。
方向錯了,而且錯得很多。
![]()
第一步,正向傳播。
圖片從輸入層進來,經過一層一層的神經元,最后到輸出層,得到 0.2 這個結果。
這是正向的過程,信息從前往后流。
第二步,計算誤差。
拿 0.2 和 1 做對比,誤差是 0.8。
這個誤差,就是接下來要往回傳的信號。
第三步,反向傳播。
誤差從輸出層開始,往回走。
走到最后一層,每個神經元分到一份:「你在這次錯誤里,貢獻了多少」
這個分配,靠的是微積分里的「鏈式法則」。
不用害怕這四個字,我們繼續用旋鈕來理解:
某個旋鈕,如果它往右擰一點,輸出就會往 1 靠近——說明它擰少了,下次要往右再擰一點。
某個旋鈕,如果它往右擰一點,輸出反而離 1 更遠——說明方向擰錯了,下次要往左擰。
每個旋鈕,都得到了自己的「調整方向」和「調整幅度」。
這個調整的過程,有一個專門的名字,就是 梯度下降。
Gradient Descent。
「梯度」是方向,「下降」是讓誤差變小。
可以這么想象
你在一片有山有谷的地形上,蒙著眼睛,想走到最低的谷底。
沒法看到全局地圖,只能感受腳下的坡度。
哪邊低,就往哪邊走一小步。
走一步,再感受,再走一小步。
一步一步,慢慢走向谷底。
谷底,就是誤差最小的地方。
就是網絡「學對了」的地方。
![]()
反向傳播,就是告訴網絡每一步該往哪個方向走的那只手。
到這里,我們可能會問:
這個思路聽起來不難啊,為什么當時沒人想到
其實想到的人不少。
反向傳播的數學原理,早在 1960 年代就有人研究過了。
但當時沒人覺得有用。
因為沒有足夠快的計算機,沒有足夠多的數據,理論上可行,實踐上跑不動。
更重要的是,主流學界不信這條路。
1986 年論文發表之后,辛頓等了很久,沒有等來掌聲。
1990 年代,支持向量機(SVM)出現了。
那是一種更「數學」的機器學習方法,理論優雅,可解釋,而且當時效果也不錯。
整個學界轉向了 SVM。
神經網絡,再一次被冷落。
有人直接嘲諷辛頓,說他在浪費時間。
有人說,神經網絡永遠不可能超過 SVM。
辛頓在加拿大的辦公室里,繼續他的研究。
一個人帶著幾個學生。
沒有大公司的資助,沒有頂級期刊的熱情。
就這樣撐過了整個 1990 年代,撐過了 2000 年代的大半。
![]()
轉折點在 2012 年。
那一年,辛頓帶著兩個學生,克里日夫斯基(Alex Krizhevsky)和伊利亞(Ilya Sutskever),
參加了一個叫 ImageNet 的圖像識別競賽。
他們用的模型叫 AlexNet。
結果出來,所有人都愣住了。
AlexNet 的錯誤率,比第二名低了將近 11 個百分點。
這不是小贏。
這是碾壓。
整個計算機視覺領域在那一晚上改變了方向。
AlexNet 的核心,就是深層神經網絡加反向傳播。
就是辛頓堅持了二十六年的那條路。
這兩個學生里,有一個人你一定聽說過。
就是伊利亞·蘇茨克維爾
他從俄羅斯移民到以色列,又從以色列移民到加拿大。
16 歲那年,他轉學到多倫多,在高中只讀了一個月,因為成績太好被大學提前錄取了。
進了多倫多大學之后,他聽說有一位教授在研究神經網絡。
所有人都說那是一條死路。
但伊利亞好奇,他直接敲開了那位教授的辦公室門,問能不能加入實驗室。
那位教授,就是辛頓。
兩個人就這樣走到了一起。
AlexNet 之后,他們三人成立了一家公司,叫 DNNresearch。
公司只有三個人,沒有產品,沒有收入,沒有任何業務。
辛頓去問律師,這家公司怎樣才能賣出最高價
他們決定不賣給任何一家,而是拍賣。
Google、微軟、DeepMind,幾家公司同時競標。
最后 Google 以 4400 萬美元拿下了這家三人公司。
伊利亞去了 Google Brain。
2015 年底,一個叫奧特曼(Sam Altman)的人想創立一家公司,就是 OpenAI。
他開出了條件,想把伊利亞從 Google 挖過來。
伊利亞猶豫了很久,因為 Google 當時是全世界最好的 AI 研究平臺,待遇優厚,資源無限。
后來馬斯克在采訪里說:
「伊利亞來回反復了好幾次,說要加入,又被 DeepMind 的人說服留下。就這樣來回好幾次,最終他決定加入 OpenAI。」
「伊利亞的加入,是 OpenAI 最終成功的關鍵。」
加入之后,伊利亞成為 OpenAI 的首席科學家。
他做的第一件事,是提出了一個當時所有人都覺得太激進的信念:
把模型做大,能力就會涌現出來。
沒有人教 GPT-3 做推理,但當參數到了 1750 億,它自己會了。
沒有人教它寫代碼,但它學會了。
這里我們做一個小小的預告,涌現會出現在之后的文章中。
GPT-1、GPT-2、GPT-3、GPT-4,一路推進,一路讓人瞠目結舌。
2022 年 11 月,ChatGPT 上線。
72 小時,100 萬用戶。
兩個月,1 億用戶。
人類歷史上增長最快的消費級產品。
伊利亞,那個16歲在多倫多高中只讀了一個月就進了大學、然后敲開辛頓辦公室門的孩子,是 ChatGPT 最核心的架構師之一。
辛頓,就是他的老師。
而反向傳播,是這一切的根基。
現在我們知道了,到底什么是反向傳播。
它不只是一個算法。
它是讓所有神經網絡能「學習」的根本機制。
沒有反向傳播,神經元再多,也只是一堆死數字,不會進化,不會迭代。
有了反向傳播,每一次犯錯,都變成了下一次進步的基礎。
ChatGPT 訓練了多少次反向傳播
沒有公開數字。
但可以參考的是,GPT-3 訓練時處理了大約 3000 億個 token。
每處理一批數據,就做一次反向傳播。
每次反向傳播,1750 億個參數,每一個都被微微調整了一下。
我們每次跟 AI 的對話,背后都是無數次這樣的調整。
![]()
一個小彩蛋。
反向傳播這個想法,其實最早出現在 1970 年一位芬蘭數學家林納因馬(Seppo Linnainmaa)的碩士論文里。
不是辛頓。
但那篇論文寫的是數值分析,和神經網絡沒什么關系,也沒什么人引用。
后來又有幾個人獨立發現了類似的方法,時間都早于 1986 年。
所以嚴格來說,反向傳播不是被「發明」的,它是被「發現」的——而且被好幾個人獨立發現了好幾次。
真正的貢獻,是辛頓看到了它對神經網絡的價值,并且花了二十年,讓全世界也看到了這件事。
2024 年 10 月 8 日,凌晨兩點。
辛頓在加州的一家酒店里睡覺。
手機屏幕亮了,是一個他不認識的國際號碼。
接通對方是瑞典口音。
「您是辛頓嗎?」
「您獲得了 2024 年諾貝爾物理學獎。」
辛頓后來說,他的第一反應是:
「等等,我不是做物理的。這有可能是個騙局。」
他在那通電話里說了四個字:
「I'm flabbergasted.」
我目瞪口呆。
一個在 90 年代被人說在「浪費時間」的研究者。
一個帶著學生在多倫多的辦公室里撐過整個寒冬的老頭。
一個從劍橋讀心理學、轉行 AI、幾十年默默無聞的固執的人。
接到了諾貝爾委員會的電話,第一反應不是喜悅,而是:
這是真的嗎?
頒獎典禮上,有人問他對年輕研究者有什么建議。
他想了想,說:
「如果你有一個想法,它和所有人的想法不一樣,但你覺得它是對的
不要放棄,直到你自己弄清楚它到底哪里錯了。
大多數時候,你是錯的。但極少數時候,你是對的。
你永遠不會知道哪種情況,除非你一直堅持下去。」
我很擅長忽略別人說的話
反向傳播,用了二十年,才等到被相信。
辛頓,用了四十年,才等到被承認。
但訓練模型的錯誤一次一次往回傳,那些旋鈕一點一點被調整的過程,從來沒有停過。
這就是反向傳播,辛頓的故事。
![]()
從上一篇 transformer 到反向傳播,相信你又對 AI 又有了一點新的了解。
希望這篇文章能對你有一點點幫助
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.