![]()
序幕:神經(jīng)網(wǎng)絡(luò)
老喻:辛頓教授,深度學(xué)習(xí)對大多數(shù)人來說就是一個(gè)"黑盒",幾百億參數(shù)在里面像魔法一樣運(yùn)作。您能不能用打比方加一點(diǎn)初級數(shù)學(xué),把"前向傳播"和"反向傳播"徹底揉碎了講講?
辛頓:沒問題。但在講機(jī)制之前,我想先讓大家理解一件事:大腦里正在發(fā)生的事情,離我們平時(shí)的"有意識邏輯思考"非常遙遠(yuǎn)。它們更像是在做"感知"或"類比",你沒法用傳統(tǒng)的符號處理去解釋。
![]()
我舉個(gè)最自然的例子:給你一張灰度照片,一堆像素點(diǎn),請你告訴我——里面有沒有鳥?
過去半個(gè)世紀(jì),人們一直試圖寫程序解決這個(gè)問題,基本全部失敗。為什么?因?yàn)?鳥"根本無法用一組固定的數(shù)學(xué)值來定義。它可以是懟到你臉上的一只鴕鳥,也可以是天邊的一只海鷗;黑的、白的、飛著的、蹲著的。
那大腦是怎么做的?我們來手工搭一個(gè)神經(jīng)網(wǎng)絡(luò)看看。
第一層,我們放一批神經(jīng)元,專門檢測圖片里最微小的邊緣——比如取三個(gè)像素點(diǎn),如果左邊亮、右邊暗,這個(gè)神經(jīng)元就興奮:"這里有一條邊!"
第二層,神經(jīng)元不再看像素,而是看第一層傳來的信號——幾條短邊緣向下傾斜、幾條向上傾斜、前端交匯成一個(gè)尖角——它就喊:"我可能發(fā)現(xiàn)了一個(gè)鳥嘴!"
![]()
第三層,有個(gè)神經(jīng)元同時(shí)收到"鳥嘴"和"鳥眼"的信號,并且空間位置對得上,它就說:"這是一個(gè)鳥頭!"
最頂層,當(dāng)"鳥頭""鳥腳""翅膀尖"的信號同時(shí)涌入,它大喊:"這絕對是一只鳥!"
![]()
老喻:邏輯很清晰!但如果手工搭建,這個(gè)網(wǎng)絡(luò)得多大?
![]()
辛頓:至少10億個(gè)連接。我絕不可能讓我的研究生去手動設(shè)置10億個(gè)權(quán)重——所以我們需要一種機(jī)制,讓網(wǎng)絡(luò)自己學(xué)會怎么設(shè)置這些權(quán)重。這就是我接下來要講的核心:前向傳播和反向傳播。
第一幕:前向傳播
辛頓:我們把正在學(xué)習(xí)“如何認(rèn)出一只鳥”的神經(jīng)網(wǎng)絡(luò),想象成一家擁有 10 億名員工的“看圖識物大公司”。
![]()
這家公司等級森嚴(yán),分為四個(gè)層級:
1、基層業(yè)務(wù)員(底層神經(jīng)元):只負(fù)責(zé)盯圖片上最基礎(chǔ)的像素亮暗,只有當(dāng)像素亮到一定程度,業(yè)務(wù)員才會“興奮”地往上喊(這就是激活函數(shù))。
2、小組長(第二層神經(jīng)元):聽業(yè)務(wù)員匯報(bào),負(fù)責(zé)尋找“邊緣”和“線條”。
3、部門經(jīng)理(第三層神經(jīng)元):聽小組長匯報(bào),負(fù)責(zé)拼湊“鳥嘴”或“狗耳朵”這樣的局部特征。
4、CEO(頂層神經(jīng)元/輸出層):聽取所有經(jīng)理的匯報(bào),向客戶拍板出最終結(jié)論:“這是一只鳥,還是一只狗!”
老喻好家伙,10 億人的大廠!那平時(shí)遞進(jìn)去一張圖片,他們是怎么協(xié)同工作的?
辛頓:這就叫“前向傳播”,也就是自下而上的情報(bào)匯報(bào)。
假設(shè)客戶遞來一張“麻雀”的照片。底層業(yè)務(wù)員看到像素就開始往上喊。但在職場里,上級對下屬絕不會一視同仁。這里有我們第一個(gè)極其關(guān)鍵的數(shù)學(xué)概念: 在學(xué)術(shù)上,下屬喊話的音量叫“激活值”,上級對下屬的信任程度叫“權(quán)重(Weight)”。
下屬匯報(bào)的音量(激活值) × 上級對他的信任度(權(quán)重) = 對上級的實(shí)際影響力
![]()
假設(shè)公司開業(yè)第一天,這 10 億人的“信任度(權(quán)重)”全都是隨機(jī)瞎填的(這叫隨機(jī)初始化)。碰巧,負(fù)責(zé)找“狗耳朵”的經(jīng)理 A 今天瞎激動,喊得特大聲,而 CEO 給他的初始信任度又極高;相反,“鳥嘴部門”的經(jīng)理 B 明明嘀咕了正確答案,卻因信任度太低被徹底無視。
![]()
信號就這樣一層一層做著乘法往上傳遞。CEO 綜合了所有匯報(bào)后一拍腦門,給出了最終預(yù)測:“客戶您好,根據(jù)我司嚴(yán)密計(jì)算,這張圖有 80% 的概率是狗,只有 10% 的概率是鳥!”
![]()
老喻:對著麻雀喊狗,這是一場災(zāi)難性的業(yè)務(wù)事故!由于初始信任度是隨機(jī)的,前向傳播等于是在盲人摸象、瞎猜一氣。客戶肯定要掀桌子了。
第二幕:誤差與梯度
辛頓:沒錯!客戶(也就是訓(xùn)練數(shù)據(jù)里的標(biāo)準(zhǔn)答案/標(biāo)簽 Label)勃然大怒:“瞎了嗎?這是鳥!鳥的概率必須是 100%(1.0),狗的概率必須是 0%(0.0)!”
![]()
這個(gè)時(shí)候,全公司就要開始計(jì)算這次業(yè)務(wù)事故錯得有多離譜了。為了讓你有直觀的物理感受,老喻,我在 CEO 的辦公桌上放一個(gè)極其具象的“橡皮筋與滑軌”道具,來給你演示什么叫“誤差/損失(Loss)”和“梯度(Gradient)”。
想象桌上豎著兩排帶刻度的滑軌,分別寫著“鳥”和“狗”。滑軌的最底部是 0.0,最頂部是 1.0。 每條滑軌上都有兩個(gè)東西:
1、客戶手里拿的“真理鐵釘”(代表標(biāo)準(zhǔn)答案),砰的一聲死死釘在滑軌的正確刻度上,絕對不許動。
2、CEO 手里推的“預(yù)測滑塊”(代表他瞎猜的概率輸出),停在他剛才匯報(bào)的刻度上。 最要命的是:在“真理鐵釘”和“預(yù)測滑塊”之間,死死套著一根極其強(qiáng)韌的橡皮筋!
![]()
老喻:畫面感太強(qiáng)了!那這桌上現(xiàn)在的戰(zhàn)況如何?CEO 豈不是被勒得很慘?
辛頓:極其痛苦!我們先看“鳥”的滑軌: 這是一張真麻雀,所以客戶把“真理鐵釘”釘在了最頂端的1.0。但 CEO 瞎猜,把“預(yù)測滑塊”留在了最底部的0.1。 老喻你看,鐵釘在天上,滑塊在地下。這根原本短短的橡皮筋,被強(qiáng)行跨越 0.9 的巨大物理距離,死死繃緊了!因?yàn)殍F釘(錨點(diǎn))在上方,這根緊繃的橡皮筋產(chǎn)生了一個(gè)巨大的拉力,拼命想把底下的滑塊往上拽。
![]()
我們再看“狗”的滑軌: 照片里根本沒狗,客戶把“真理鐵釘”死死釘在了最底部的0.0。但 CEO 聽信讒言,把“預(yù)測滑塊”推到了0.8的高空! 仔細(xì)看這根橡皮筋——鐵釘在地下(0.0),滑塊在天上(0.8)。兩點(diǎn)之間同樣隔著 0.8 的巨大距離!所以這根橡皮筋同樣被極度拉長、死死繃緊了、勒得生疼!只不過這一次,鐵釘在下方,橡皮筋的收縮本能拼命想把天上的滑塊往下拽。
![]()
老喻:(恍然大悟)噢!我徹底明白了!很多初學(xué)者覺得往下按應(yīng)該是“壓縮彈簧”,但其實(shí)橡皮筋根本沒法被壓縮,它只在乎你和真理之間的“絕對距離”!只要偏離真理,無論偏高還是偏低,橡皮筋都會被無情地拉長、繃緊!這根橡皮筋被拉得有多長、勒得有多疼,就是“誤差大小(Loss)”;而它拼命往上拽還是往下拽的“方向和力道”,就是微積分里大名鼎鼎的“梯度(Gradient)”!所以算法本質(zhì)上是在做“負(fù)梯度下降”,即違背讓痛苦增加的趨勢。
![]()
辛頓:Bingo!你完美推導(dǎo)出了深度學(xué)習(xí)最核心的數(shù)學(xué)直覺:偏離即拉伸,拉伸即痛苦。梯度精確地告訴 CEO:你下一步該去提拔誰、打壓誰,才能逃避這種痛苦。
第三幕:反向傳播
老喻:現(xiàn)在 CEO 頭頂著這兩根繃到極致、隨時(shí)要把頭皮扯掉的橡皮筋,被勒得痛不欲生。他現(xiàn)在的唯一本能,就是想盡辦法讓所有橡皮筋都“縮回原點(diǎn)、徹底松弛”!但他總不能把 10 億人全開除吧?他該怎么善后?
![]()
辛頓:為了讓頂層的橡皮筋放松,他必須把拉扯的痛感順著公司的層級向下分?jǐn)?/b>。這就需要“反向傳播”(Backpropagation)登場了!在微積分里它叫“鏈?zhǔn)椒▌t(Chain Rule)”,但我更愿意稱之為“企業(yè)級精準(zhǔn)連坐分鍋機(jī)制”!
![]()
CEO 順著那根拽著他往下死里勒的“狗皮筋”去查賬:“這股痛感(負(fù)向梯度)是誰造成的?哦!是因?yàn)榻?jīng)理 A 剛才喊得最大聲,我又極度信任他。他坑慘我了!”
CEO 掏出小本本開始懲罰,這是我們的第二個(gè)核心公式:
修改對下屬的信任度(更新權(quán)重) = 橡皮筋傳導(dǎo)給我的痛感(梯度) × 該下屬剛才匯報(bào)的音量(激活值)
這個(gè)公式無比殘酷:如果橡皮筋繃得極緊(錯得離譜),而你作為下屬剛才又喊得最起勁,你挨的板子就最重!CEO 狠狠扣減了經(jīng)理 A 的信任度:“為了緩解往下拽的拉力,下次你再喊,我就當(dāng)耳旁風(fēng)。”同時(shí),順著“鳥皮筋”向上的正向梯度拉力,CEO 給受了委屈的鳥嘴經(jīng)理 B大幅增加了信任度。
![]()
老喻:絕妙的連坐乘法!但這只是高管層的分鍋,底下那 9 億多人怎么辦?
辛頓:繼續(xù)用“鏈?zhǔn)椒▌t”反向往下套公式啊!經(jīng)理 A 挨了罵,信任度被降級,他也感受到了被橡皮筋拉扯的痛感(梯度的向下傳遞)。他憋著火回到辦公室叫來手下:“剛才到底是哪個(gè)混蛋給我亂報(bào)‘狗耳朵’的?”
![]()
經(jīng)理 A 用同樣的乘法公式,把緊繃的拉力按比例向下分?jǐn)偅境瞿莻€(gè)瞎報(bào)“毛茸茸邊緣”的小組長,狠狠扣減對他的信任度。而剛才沒作聲的人,因?yàn)橐袅砍朔e為 0,完美隱身。
![]()
接著,小組長感受到拉力,轉(zhuǎn)身再去罵基層業(yè)務(wù)員……你看,這股“為了讓頂層橡皮筋徹底放松”的求生欲,就這樣順著公司的層級做著連環(huán)乘法,一路反向(Backwards)傳導(dǎo)(Propagate)到了最底層。 全公司 10 億人瞬間收到了一份極其精確的微調(diào)通知:“為了緩解上面的緊繃感,你該把對某下屬的信任度調(diào)高 0.01,還是調(diào)低 0.05。”
尾聲:梯度下降與智能涌現(xiàn)
![]()
老喻:太透徹了!等于說每一次輸入一張圖片,全公司就經(jīng)歷一次完整的循環(huán):“前向瞎猜匯報(bào)(Forward) → 橡皮筋拉緊勒疼(計(jì)算誤差 Loss 和梯度 Gradient) → 反向精準(zhǔn)連坐分鍋以求放松(Backpropagation 更新權(quán)重)”。
辛頓:完全正確!全公司努力順著梯度的拉力,通過微調(diào)信任度讓橡皮筋越來越松的這個(gè)過程,在數(shù)學(xué)上就叫做“梯度下降”(Gradient Descent)。
![]()
看一張圖,10 億個(gè)“信任度”旋鈕只在橡皮筋的拉扯下微調(diào)一絲絲。但當(dāng)你給這家公司看 1000 萬張照片,把拉緊、分鍋、放松的循環(huán)重復(fù)幾千萬次后,奇跡就發(fā)生了:
只會制造噪音的員工,信任通道被徹底切斷;而真正能準(zhǔn)確識圖的骨干,他們之間的信任通道被一點(diǎn)點(diǎn)拓寬成了極其順暢的高速公路。
![]()
此時(shí),當(dāng)下一張全新的鳥圖出現(xiàn)時(shí),正確的像素瞬間完美激活正確的業(yè)務(wù)員、正確的主管,信號順著高速公路直達(dá)頂層。CEO 連腦子都不用動就能脫口而出:“100% 是鳥,0% 是狗!”
![]()
那一刻,真理鐵釘和預(yù)測滑塊完美重合,他頭頂所有代表誤差的橡皮筋,全都處于完美、舒適的徹底放松狀態(tài)(模型收斂)。
![]()
老喻:極其震撼!系統(tǒng)沒有所謂的人類自我意識,只有“橡皮筋追求放松”的物理本能,以及極其優(yōu)雅的微積分乘法連坐。幾百億參數(shù)的大模型,其智能就這樣從冰冷的誤差和梯度公式里涌現(xiàn)了出來。
![]()
謝謝辛頓教授,這是我聽過最精彩的一堂深度學(xué)習(xí)降維課!
本文部分文字來自辛頓近期在播客中的講話。
想了解如何生成本文的圖文表達(dá)?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.