日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

【深度学习】神经网络基础:反向传播算法

發(fā)布時(shí)間:2025/3/12 pytorch 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【深度学习】神经网络基础:反向传播算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:Simona Ivanova

AI/ML? 專家

就職于 Science 雜志

? 導(dǎo)讀

反向傳播(Backpropagation,簡(jiǎn)稱 BP)是目前用來訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,簡(jiǎn)稱 ANN)算法最常用、最有效的方法。

反向傳播最早出現(xiàn)于 20 世紀(jì) 70 年代,但直到 Geoffrey Hinton(杰佛里·辛頓)在1986 年發(fā)表了論文《Learning Representations by Back-Propagating Errors》后才得到各界重視。

杰佛里·辛頓:反向傳播算法的發(fā)明人之一

Geoffrey Hinton(杰弗里?辛頓)

杰佛里·辛頓是一位英國(guó)出生的加拿大計(jì)算機(jī)學(xué)家和心理學(xué)家,在類神經(jīng)網(wǎng)絡(luò)領(lǐng)域貢獻(xiàn)頗多,是反向傳播算法的發(fā)明人之一,也是深度學(xué)習(xí)的積極推動(dòng)者,被稱為神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)之父。

此外,辛頓還是倫敦大學(xué)蓋茨比計(jì)算神經(jīng)科學(xué)中心創(chuàng)始人,目前擔(dān)任加拿大多倫多大學(xué)計(jì)算機(jī)科學(xué)系教授。他的主要研究方向是人工神經(jīng)網(wǎng)絡(luò)在機(jī)器學(xué)習(xí)、記憶、感知和符號(hào)處理等領(lǐng)域的應(yīng)用。目前,辛頓正在探索如何將神經(jīng)網(wǎng)絡(luò)運(yùn)用到無監(jiān)督學(xué)習(xí)算法中。

不過,在辛頓眾多科研成果中,反向傳播是最為著名的,也是目前大部分有監(jiān)督學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ),建立在梯度下降法之上。其主要工作原理為:

ANN 算法在實(shí)際運(yùn)行過程中一般分為輸入層、隱藏層和輸出層三類,當(dāng)算法輸出結(jié)果與目標(biāo)結(jié)果出現(xiàn)誤差時(shí),算法會(huì)對(duì)誤差值進(jìn)行計(jì)算,然后通過反向傳播將誤差值反饋到隱藏層,通過修改相關(guān)參數(shù)進(jìn)行調(diào)整,并不斷重復(fù)此步驟,直到得出與預(yù)期相符的結(jié)果。

通過反向傳播可以讓 ANN 算法推導(dǎo)更接近目標(biāo)的結(jié)果,不過,在了解反向傳播如何應(yīng)用于 ANN 算法之前,需要先弄清 ANN 的工作原理。

ANN 的工作原理

ANN 是一種基于人腦神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型或者計(jì)算模型,由大量節(jié)點(diǎn)(可以理解為生物神經(jīng)元)相互連接而成。

生物神經(jīng)元

數(shù)學(xué)模型中的單個(gè)節(jié)點(diǎn)

每個(gè)節(jié)點(diǎn)代表一種特定的輸出函數(shù),稱為激勵(lì)函數(shù)(activation function);兩個(gè)節(jié)點(diǎn)間的連接就代表一個(gè)加權(quán)值,也叫權(quán)重值。在 ANN 算法運(yùn)行過程中,每個(gè)連接會(huì)對(duì)應(yīng)一個(gè)權(quán)重 w 和偏移量 b(又稱為 ANN 參數(shù))。輸出值則跟節(jié)點(diǎn)、權(quán)重值和偏移量有關(guān)。

單個(gè)神經(jīng)元模型圖

(其中a1~an 為輸入向量的各個(gè)分量;w1~wn 為權(quán)重值;b為偏移量;σ 為激勵(lì)函數(shù),例如 tanh、Sigmoid、ReLU 等)

一個(gè)完整 ANN 一般包含一個(gè)輸入層、多個(gè)隱藏層和一個(gè)輸出層。其中隱藏層主要由神經(jīng)元組成,承擔(dān)最主要的運(yùn)算工作,在實(shí)際運(yùn)行過程中,每一層的神經(jīng)元都會(huì)做出決策,并將決策傳導(dǎo)至下一個(gè)隱藏層的神經(jīng)元,直至輸出最終結(jié)果。

因此,隱藏層層數(shù)越多,ANN 就越復(fù)雜,結(jié)果也就越準(zhǔn)確。舉例來講,假如現(xiàn)在要通過一個(gè) ANN 確定輸入的動(dòng)物「是貓」或者「不是貓」,輸入這個(gè)動(dòng)物,每個(gè)隱藏層內(nèi)的神經(jīng)元都對(duì)其會(huì)進(jìn)行一次判定,得出結(jié)果,并將結(jié)果向下傳導(dǎo),直到最后一層神經(jīng)元輸出結(jié)果。

這是一個(gè)具有兩個(gè)隱藏層的 ANN 架構(gòu),

兩邊分別為輸入層(左)和輸出層(右),中間為兩個(gè)隱藏層

如果這只動(dòng)物從生物學(xué)上來看是一只貓,但 ANN 顯示它「不是貓」,則證明 ANN 輸出結(jié)果有誤。現(xiàn)在,唯一能做的就是返回隱藏層,對(duì)權(quán)重值和偏移量進(jìn)行調(diào)整,而這個(gè)返回并調(diào)整數(shù)據(jù)的過程就是反向傳播。

但是要實(shí)現(xiàn)反向傳播,還需要依賴一類重要的算法——梯度下降算法(Gradient descent),梯度下降極大地加快了學(xué)習(xí)過程,可以簡(jiǎn)單理解為:從山頂下山時(shí),挑一條梯度最陡的路最快。

梯度下降算法:反向傳播得以實(shí)現(xiàn)的關(guān)鍵

因?yàn)槲覀冃枰粩嘤?jì)算輸出與實(shí)際值的偏差來修改參數(shù)(相差越多修改的幅度越大),所以我們需要用誤差函數(shù)(Error function,也稱損失函數(shù),loss function)來衡量訓(xùn)練集所有樣本最終預(yù)測(cè)值與實(shí)際值的誤差大小。

其中 y^i 為預(yù)測(cè)結(jié)果,yi 為實(shí)際結(jié)果。

這個(gè)表達(dá)式衡量的是訓(xùn)練集所有樣本最終預(yù)測(cè)值與實(shí)際值的誤差大小,僅與輸出層的預(yù)測(cè)類別有關(guān),但這個(gè)預(yù)測(cè)值取決于前面幾層中的參數(shù)。如果我們不想將狗認(rèn)為是貓,就需要讓這個(gè)誤差函數(shù)達(dá)到最小值。

梯度下降算法是其中一種使誤差函數(shù)最小化的算法,也是 ANN 模型訓(xùn)練中常用的優(yōu)化算法,大部分深度學(xué)習(xí)模型都是采用梯度下降算法來進(jìn)行優(yōu)化訓(xùn)練。給定一組函數(shù)參數(shù),梯度下降從一組初始參數(shù)值開始,迭代移向一組使損失函數(shù)最小化的參數(shù)值。這種迭代最小化是使用微積分實(shí)現(xiàn)的,在梯度的負(fù)方向上采取漸變更改。使用梯度下降的典型例子是線性回歸。隨著模型迭代,損失函數(shù)逐漸收斂到最小值。

由于梯度表達(dá)的是函數(shù)在某點(diǎn)變化率最大的方向,通過計(jì)算偏導(dǎo)數(shù)得到,所以使用梯度下降方式,會(huì)極大地加快學(xué)習(xí)進(jìn)程。

梯度下降

在實(shí)際操作中,理論上要先檢查最后一層中的權(quán)重值和偏移量會(huì)如何影響結(jié)果。將誤差函數(shù) E 求偏導(dǎo),就能看出權(quán)重值和偏移量對(duì)誤差函數(shù)的影響。

可以通過鏈?zhǔn)角髮?dǎo)法則來計(jì)算這些偏導(dǎo)數(shù),得出這些參數(shù)變化對(duì)輸出的影響。求導(dǎo)公式如下:

為得到上述表達(dá)式中的未知量,將 zi 分別對(duì) wi 和 bi 求偏導(dǎo):

然后反向計(jì)算誤差函數(shù)關(guān)于每一層權(quán)重值和偏移量的偏導(dǎo)數(shù),并通過梯度下降法來更新調(diào)整后的權(quán)重值和偏移量,直到出錯(cuò)的最初層為止。

這個(gè)過程就是反向傳播算法,又稱 BP 算法,它將輸出層的誤差反向逐層傳播,通過計(jì)算偏導(dǎo)數(shù)來更新網(wǎng)絡(luò)參數(shù)使得誤差函數(shù)最小化,從而讓 ANN 算法得出符合預(yù)期的輸出。

目前,反向傳播主要應(yīng)用于有監(jiān)督學(xué)習(xí)下的 ANN 算法。

超神經(jīng) 延伸閱讀

機(jī)器學(xué)習(xí)基礎(chǔ)——偏導(dǎo)數(shù):

https://blog.csdn.net/qq_37527163/article/details/78171002

理解反向傳播:https://blog.csdn.net/u012223913/article/details/68942581

杰佛里辛頓簡(jiǎn)介:

https://zh.wikipedia.org/wiki/%E6%9D%B0%E5%BC%97%E9%87%8C%C2%B7%E8%BE%9B%E9%A1%BF

http://www.cs.toronto.edu/~hinton/

損失函數(shù):https://en.wikipedia.org/wiki/Loss_function

生物神經(jīng)元:

ttps://en.wikipedia.org/wiki/Neuron#Histology_and_internal_structure

梯度下降算法簡(jiǎn)述:https://blog.csdn.net/u013709270/article/details/78667531

人工神經(jīng)網(wǎng)絡(luò)算法原理:http://www.elecfans.com/rengongzhineng/579673.html

梯度下降法如何實(shí)現(xiàn):https://www.jianshu.com/p/c7e642877b0e

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載(圖文+視頻)機(jī)器學(xué)習(xí)入門系列下載中國(guó)大學(xué)慕課《機(jī)器學(xué)習(xí)》(黃海廣主講)機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼:

總結(jié)

以上是生活随笔為你收集整理的【深度学习】神经网络基础:反向传播算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。