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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

深度学习与计算机视觉(四)反向传播及其直观理解

發(fā)布時間:2023/12/15 pytorch 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习与计算机视觉(四)反向传播及其直观理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

四、反向傳播及其直觀理解

4.1 引言

問題描述和動機(jī):

  • 大家都知道,其實(shí)我們就是在給定的圖像像素向量x和對應(yīng)的函數(shù)f(x)f(x),然后我們希望能夠計算ff在x上的梯度?f(x)?f(x)

  • 之所以要解決這個問題,是因為在神經(jīng)網(wǎng)絡(luò)中,ff對應(yīng)損失函數(shù)LL,而輸入xx則對應(yīng)訓(xùn)練樣本數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)的權(quán)重WW。通常我們認(rèn)為訓(xùn)練數(shù)據(jù)是給定的,而權(quán)重是我們可以控制的變量。因此我們?yōu)榱烁聶?quán)重的等參數(shù),使得損失函數(shù)值最小,我們通常是計算f 對參數(shù)W,b 的梯度。

  • 4.2 高數(shù)梯度 、偏導(dǎo)基礎(chǔ)

    假如f(x,y)=xyf(x,y)=xy,那么我們可以求這個函數(shù)對xxyy的偏導(dǎo):

    f(x,y)=xy?f?x=y,?f?y=xf(x,y)=xy→?f?x=y,?f?y=x

    解釋:偏導(dǎo)數(shù)的含義是一個函數(shù)在給定變量所在維度,當(dāng)前點(diǎn)附近的一個變化率,也就是:

    df(x)dx=limh0f(x+h)?f(x)hdf(x)dx=limh→0f(x+h)?f(x)h

    每個維度/變量上的偏導(dǎo),表示整個函數(shù)表達(dá)式,在這個值上的『敏感度』。

    我們說的梯度?f?f其實(shí)是一個偏導(dǎo)組成的向量,比如我們有?f=[?f?x,?f?y]=[y,x]?f=[?f?x,?f?y]=[y,x] 。即使嚴(yán)格意義上來說梯度是一個向量,但是大多數(shù)情況下,我們還是習(xí)慣直呼『x上的梯度』,而不是『x上的偏導(dǎo)』

    4.3 復(fù)雜函數(shù)偏導(dǎo)的鏈?zhǔn)椒▌t

    假設(shè)有一個較為復(fù)雜一點(diǎn)的函數(shù),比如f(x,y,z)=(x+y)zf(x,y,z)=(x+y)z,雖然我們可以直接求偏導(dǎo),但是我們用一個非直接的思路去求解一下偏導(dǎo),以幫助我們直觀理解反向傳播中,如果我們用換元法,把函數(shù)拆分為兩部分,q=x+yq=x+yf=qzf=qz,對于這兩個部分,我們知道如何求解其變量上的偏導(dǎo):

    當(dāng)然q是我們設(shè)定的一個變量,不關(guān)心其偏導(dǎo)值。

    那『鏈?zhǔn)椒▌t』告訴我們一個對上述偏導(dǎo)公式『串聯(lián)』的方式,得到我們感興趣的偏導(dǎo)數(shù)

    ?f?x=?f?q??q?x?f?x=?f?q??q?x

    x = -2; y = 5; z = -4# 前向計算 q = x + y # q becomes 3 f = q * z # f becomes -12# 類反向傳播: # 先算到了 f = q * z dfdz = q # df/dz = q dfdq = z # df/dq = z # 再算到了 q = x + y dfdx = 1.0 * dfdq # dq/dx = 1 恩,鏈?zhǔn)椒▌t dfdy = 1.0 * dfdq # dq/dy = 1

    鏈?zhǔn)椒▌t的結(jié)果是,只剩下我們感興趣的[dfdx,dfdy,dfdz],也就是原函數(shù)在x,y,z上的偏導(dǎo)。這是一個簡單的例子,之后的程序里面我們?yōu)榱撕啙?#xff0c;不會完整寫出dfdq,而是用dq代替。

    以下是這個計算的示意圖:

    4.4 反向傳播的直觀理解

    反向傳播的過程,實(shí)際上是一個由局部到全部的精妙過程。比如上面的電路圖中,其實(shí)每一個『門』在拿到輸入之后,都能計算2個東西:

    • 輸出值

    • 對應(yīng)輸入和輸出的局部梯度

    而且很明顯,每個門在進(jìn)行這個計算的時候是完全獨(dú)立的,不需要對電路圖中其他的結(jié)構(gòu)有了解。然而,在整個前向傳輸過程結(jié)束之后,在反向傳播過程中,每個門卻能逐步累積計算出它在整個電路輸出上的梯度。

    『鏈?zhǔn)椒▌t』告訴我們每一個門接收到后向傳來的梯度,同時用它乘以自己算出的對每個輸入的局部梯度,接著往后傳。

    以上面的圖為例,來解釋一下這個過程。加法門接收到輸入[-2, 5]同時輸出結(jié)果3。因為加法操作對兩個輸入的偏導(dǎo)都應(yīng)該是1。電路后續(xù)的乘法部分算出最終結(jié)果-12。在反向傳播過程中,鏈?zhǔn)椒▌t是這樣做的:加法操作的輸出3,在最后的乘法操作中,獲得的梯度為-4,如果把整個網(wǎng)絡(luò)擬人化,我們可以認(rèn)為這代表著網(wǎng)絡(luò)『想要』加法操作的結(jié)果小一點(diǎn),而且是以4*的強(qiáng)度來減小。加法操作的門獲得這個梯度-4以后,把它分別乘以本地的兩個梯度(加法的偏導(dǎo)都是1),1*-4=-4。如果輸入x減小,那加法門的輸出也會減小,這樣乘法輸出會相應(yīng)的增加。

    反向傳播,可以看做網(wǎng)絡(luò)中門與門之間的『關(guān)聯(lián)對話』,它們『想要』自己的輸出更大還是更小(以多大的幅度),從而讓最后的輸出結(jié)果更大。

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的深度学习与计算机视觉(四)反向传播及其直观理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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