在深度學習的領域中,前向傳播、反向傳播和損失函數(shù)是構建和訓練神經(jīng)網(wǎng)絡模型的三個核心概念。今天,小編將通過一個簡單的實例,解釋這三個概念,并展示它們的作用。
前向傳播:神經(jīng)網(wǎng)絡的“思考”過程
前向傳播是神經(jīng)網(wǎng)絡計算的基礎步驟,它涉及將輸入數(shù)據(jù)逐層傳遞,通過神經(jīng)網(wǎng)絡的權重和激活函數(shù),最終輸出預測結果。這個過程包含“樣本數(shù)據(jù)輸入、算法模型、輸出”這幾個步驟。
我們來舉個簡單的例子,比如給一個小寶寶看一張圖片,然后問他:“這上面畫的是什么?”他就會用他的小腦袋瓜去“思考”這張圖片,然后告訴你答案。前向傳播就像是這個過程,只不過小寶寶換成了神經(jīng)網(wǎng)絡。
- 樣本數(shù)據(jù)輸入:這一步將圖像、文字、語音等樣本數(shù)據(jù)轉(zhuǎn)換為我們電腦能識別的數(shù)字輸入。就像小寶寶看到圖片,神經(jīng)網(wǎng)絡也接收到一張圖片,這張圖片被轉(zhuǎn)換成一串數(shù)字。
- 算法模型:簡單來說,就是一些數(shù)學計算,主要包含線性層+規(guī)則化層+激活,線性層負責做線性函數(shù)的擬合;規(guī)則化層負責把我們的線性擬合規(guī)則化,方便后面的計算;激活層負責的是變成非線性化,因為我們的現(xiàn)實世界是非線性的。所以整個過程就是:我們輸入的樣本是非線性的,我們通過這樣一堆數(shù)學公式,去擬合非線性的樣本數(shù)據(jù)。
- 輸出層:也是一些數(shù)學運算,比如Linear或者Conv,負責將模型的輸出轉(zhuǎn)換為預測結果輸出。
這個過程可以用下面的數(shù)學公式表示:

損失函數(shù):告訴神經(jīng)網(wǎng)絡它錯了多少
損失函數(shù)是衡量模型預測結果與真實標簽之間差距的依據(jù),它的核心作用是告訴我們模型的預測結果“錯”得有多離譜。通俗來說,損失函數(shù)就像是一個裁判,它給模型的預測結果打分,分數(shù)越低,說明模型的預測結果越接近真實情況,模型的性能就越好。損失函數(shù)是為了讓我們反向傳播起作用的。就像如果小寶寶猜錯了,你會告訴他:“不對哦,這是數(shù)字8,不是3。”損失函數(shù)就像是這句話,它告訴神經(jīng)網(wǎng)絡:“嘿,你的答案有點偏差?!?/p>
下面是幾種常用的損失函數(shù):
L1 Loss(MAE):平均絕對誤差,對異常值的容忍性更高,但當梯度下降恰好為0時無法繼續(xù)進行。就像是你告訴小寶寶:“你的答案差了多遠?!边@個距離就是損失值。

L2 Loss(MSE):均方誤差,連續(xù)光滑,方便求導,但易受到異常值的干擾。這就像是你告訴小寶寶:“你的答案差了多少個單位?!边@個單位的平方和就是損失值。

Smooth L1 Loss:處理異常值更加穩(wěn)健,同時避免了L2 Loss的梯度爆炸問題。就像是你告訴小寶寶:“你的答案差了多遠,但我不會因為你猜得特別離譜就懲罰你。”這個損失函數(shù)對極端錯誤更寬容。

反向傳播:神經(jīng)網(wǎng)絡的“自我修正”過程
反向傳播是利用損失函數(shù)的梯度來更新網(wǎng)絡參數(shù)的過程。它從輸出層開始,逆向通過網(wǎng)絡,利用鏈式法則計算每個參數(shù)對損失函數(shù)的梯度。包含這幾個過程:
- 計算輸出層誤差梯度:首先計算輸出層的誤差梯度,這是損失函數(shù)對輸出層權重的敏感度。
- 逐層反向傳播:然后從輸出層開始,逆向通過網(wǎng)絡,逐層計算誤差梯度。
- 更新權重和偏置:使用梯度下降算法,根據(jù)計算出的梯度更新網(wǎng)絡中每一層的權重和偏置。
所以前向傳播、反向傳播、損失函數(shù)之間的關系是這樣的:
他們都是深度學習訓練過程中的核心。前向傳播負責生成預測結果,損失函數(shù)負責量化預測結果與真實標簽之間的差異,而反向傳播則負責利用這些差異來更新模型參數(shù),以減少損失函數(shù)的值。
通過三者的結合,我們可以構建、訓練并優(yōu)化深度學習模型,使其能夠從數(shù)據(jù)中學習復雜的模式,并在各種任務如圖像識別、自然語言處理和預測分析中做出準確的預測。
前向傳播、反向傳播、損失函數(shù)屬于機器學習領域中的核心概念,在AI全體系課程中,是理解其他更復雜機器學習算法的基礎,掌握這幾個概念對于深入學習機器學習、理解更高級的算法以及在實際應用中設計和優(yōu)化模型都具有重要的意義。通過理解前向傳播、反向傳播和損失函數(shù),學習者能夠更好地把握機器學習模型的工作原理,為進一步探索深度學習和其他高級機器學習技術打下堅實的基礎。
在人工智能算法的學習過程中,你會接觸到各種各樣的算法,包括機器學習、深度學習、計算機視覺、自然語言處理等方向的各類算法。但機器學習算法,一直都是通用算法基礎。我們機器學習課程里,會重點講解2012年后的深度學習的通用結構,線性+激活來逼近所有系統(tǒng)為基礎,幫助學習者搭建這個過程中所有的通用性知識與原理,拓展更多機器學習和AI全棧技術學習可參考下方學習路線圖。
AI體系化學習路線

學習資料免費領
AI全體系學習路線超詳版+AI體驗卡(AI實驗平臺體驗權限)+100余講AI視頻課程+項目源碼《從零開始訓練與部署YOLOV8》+170余篇AI經(jīng)典論文
-
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4814瀏覽量
103619 -
AI
+關注
關注
88文章
35164瀏覽量
279923 -
機器學習
+關注
關注
66文章
8503瀏覽量
134618 -
深度學習
+關注
關注
73文章
5561瀏覽量
122794
發(fā)布評論請先 登錄
手動設計一個卷積神經(jīng)網(wǎng)絡(前向傳播和反向傳播)

PyTorch教程5.3之前向傳播、反向傳播和計算圖

評論