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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

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

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

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

4.1 引言

問題描述和動機:

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

  • 之所以要解決這個問題,是因為在神經網絡中,ff對應損失函數LL,而輸入xx則對應訓練樣本數據和神經網絡的權重WW。通常我們認為訓練數據是給定的,而權重是我們可以控制的變量。因此我們為了更新權重的等參數,使得損失函數值最小,我們通常是計算f 對參數W,b 的梯度。

  • 4.2 高數梯度 、偏導基礎

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

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

    解釋:偏導數的含義是一個函數在給定變量所在維度,當前點附近的一個變化率,也就是:

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

    每個維度/變量上的偏導,表示整個函數表達式,在這個值上的『敏感度』。

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

    4.3 復雜函數偏導的鏈式法則

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

    當然q是我們設定的一個變量,不關心其偏導值。

    那『鏈式法則』告訴我們一個對上述偏導公式『串聯』的方式,得到我們感興趣的偏導數

    ?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 恩,鏈式法則 dfdy = 1.0 * dfdq # dq/dy = 1

    鏈式法則的結果是,只剩下我們感興趣的[dfdx,dfdy,dfdz],也就是原函數在x,y,z上的偏導。這是一個簡單的例子,之后的程序里面我們為了簡潔,不會完整寫出dfdq,而是用dq代替。

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

    4.4 反向傳播的直觀理解

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

    • 輸出值

    • 對應輸入和輸出的局部梯度

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

    『鏈式法則』告訴我們每一個門接收到后向傳來的梯度,同時用它乘以自己算出的對每個輸入的局部梯度,接著往后傳。

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

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

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。