<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深度學習基礎課:全連接層的梯度檢查

      大家好~我開設了“深度學習基礎班”的線上課程,帶領同學從0開始學習全連接和卷積神經網絡,進行數學推導,并且實現可以運行的Demo程序

      線上課程資料:
      本節課錄像回放1
      本節課錄像回放2
      本節課錄像回放3

      加QQ群,獲得ppt等資料,與群主交流討論:106047770

      本系列文章為線上課程的復盤,每上完一節課就會同步發布對應的文章

      本文為第四節課:“全連接層的梯度檢查”的復盤文章

      本課程系列文章可進入索引查看:
      深度學習基礎課系列文章索引

      回顧相關課程內容

      • 第二節課“判斷性別”Demo需求分析和初步設計(下1)

        • 求損失函數的極小值點的梯度下降公式是什么?
      • 第三節課:全連接層的前向和后向傳播推導(下)

        • 反向傳播算法計算的結果是什么?
        • 計算梯度有什么用?
      • 第二節課“判斷性別”Demo需求分析和初步設計(下1)

        • 損失函數的表達式是什么?
        • 隨機梯度下降算法是什么?
        • 隨機梯度下降公式是什么?
        • 求損失函數的極小值點的梯度下降公式是什么?

      為什么要學習本課

      • 如何驗證反向傳播計算的梯度是否正確?
        • 我們是如何驗證的?
          答:驗證過程為:因為NeuralNetwork_train_answer->train函數打印的loss的結果與判斷性別Demo的NeuralNetwork_train_before->train函數打印的loss一樣,所以說明代碼正確,通過了運行測試
        • 還有其它辦法嗎?

      主問題:如何以最小的誤差計算導數?

      任務:實現導數的計算

      • 導數的定義是什么?
        \( f'(x) = \lim_{h \to 0} ? \)
        答:

      \[f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} \]

      • 請實現導數的計算
        答:待實現的代碼:Diff1
        實現后的代碼:Diff1_answer

      任務:計算函數的導數

      • 請用剛剛寫的代碼計算下面的函數在x=2的導數,查看是否有誤差?
        \( f(x)=x^2 + 3x \)
        答:實現后的代碼:Diff1_compute_answer
        • h如果太小(如1e-15),誤差是否會增加?
          答:會
        • 為什么?
          答:因為計算機的浮點數誤差的原因,h太小的話(比如1e-15)會造成計算結果上的誤差,所以我們一般用[1e-4,1e-7]之間的數值。 我們這里使用1e-4

      任務:實現改進的導數的計算

      • 如何修改導數的定義公式\(f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}\),從而減小誤差?

        • 如該圖所示,紅色實線的斜率是真實的導數
          image
        • 藍色虛線的斜率是目前求得的導數
        • 為什么?
        • 綠色虛線的斜率是否更接近真實導數?
        • 如何修改導數的定義公式為綠色的虛線?
          答:修改后的公式為:

      \[f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x - h)}{2h} \]

      • 請實現改進的導數的計算
        答:待實現的代碼:Diff2
        實現后的代碼:Diff2_answer

      任務:計算函數的導數

      • 請用剛剛寫的代碼計算同樣的函數在x=2的導數,查看誤差是否變小了?
        答:實現后的代碼:Diff2_compute_answer
        運行代碼后,發現誤差確實更小了

      主問題:梯度檢查的思路是什么?

      • 梯度\(\frac{dE}{dw_{ji}}\)是否為導數?
        答:是
      • 通過導數定義的公式\(f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x - h)}{2h}\)計算梯度的公式是什么?
        答:

      \[\frac{dE}{dw_{ji}}= \lim_{\epsilon \to 0} \frac{E(w_{ji}+\epsilon) - E(w_{ji} - \epsilon)}{2\epsilon} \\ 當\epsilon設置為一個很小的數(如1e-4),那么上式可以寫成: \\ \frac{dE}{dw_{ji}} \approx \frac{E(w_{ji}+\epsilon) - E(w_{ji} - \epsilon)}{2\epsilon} \\ \]

      • 如何用該公式檢查梯度?
        答:我們使用該公式來計算梯度值;
        然后將其與后向傳播計算的梯度值進行比較。
        如果兩者的誤差小于1e-4,那么就說明后向傳播的代碼是正確的。

      主問題:如何對輸出層進行梯度檢查?

      • 對輸出層進行梯度檢查的步驟是什么?

      \[\frac{dE}{dw_{ji}} \approx \frac{E(w_{ji}+\epsilon) - E(w_{ji} - \epsilon)}{2\epsilon} \\ \]

      答:

      1、使用一個樣本d進行前向傳播和后向傳播,這樣就能得到輸出層的一個神經元k的梯度

      2、將神經元k的一個權重值??_????加上一個很小的值??(1e-4 ),重新計算神經網絡在這個樣本d的E:E(??_????+??)

      3、將神經元k的一個權重值??_???? 減去一個很小的值??(1e-4 ),重新計算神經網絡在這個樣本d的E:E(??_???????)

      4、根據導數定義公式計算出期望的梯度值,和第一步獲得的梯度值進行比較,誤差應該小于1e-4

      5、重復上面的過程,對輸出層的每個神經元的每個權重進行檢查

      • 在通過后向傳播計算梯度的誤差項時,n是多少?
        image

      \[\delta_5 = \frac{dE(\overrightarrow{y_{輸出層}})}{dy_5}\frac{df(net_5)}{dnet_5} =-\frac {2}{n}(y_{真實}-y_5) \frac{df(net_5)}{dnet_5} \]

      答:因為只用了一個樣本,所以n是1

      任務:實現輸出層的梯度檢查

      image

      主問題:如何對隱藏層進行梯度檢查?

      • 對隱藏層進行梯度檢查的步驟是什么?
        答:步驟與對輸出層進行梯度檢查相同

      • 在通過后向傳播計算隱藏層的梯度的誤差項時,需要輸出層的誤差項,它是多少?
        即:\( \begin{aligned} \overrightarrow{\delta_{隱藏層}} &=\begin{bmatrix} \delta_{3} \\ \delta_{4} \\ \end{bmatrix}\\ &= \begin{bmatrix} \overrightarrow{\delta_{輸出層}} \cdot W_{輸出層_{1列}} \;\; \frac{df(net_3)}{dnet_3} \\ \overrightarrow{\delta_{輸出層}} \cdot W_{輸出層_{2列}} \;\; \frac{df(net_4)}{dnet_4} \\ \end{bmatrix} \end{aligned} \)中的\(\overrightarrow{\delta_{輸出層}} = ?\)

        • 損失函數E應該設計成什么,以及輸出層應該選擇什么激活函數(sigmoid or linear),才能使輸出層的誤差向量的值全為1?
          答:

      輸出層的誤差項公式為:
      image

      \[\because E = \sum \overrightarrow{y_{輸出層}} \\ f(x) = x \\ \begin{aligned} \therefore \delta_k &= \frac{dE}{dy_k}\frac{df(net_k)}{dnet_k} \\ &= 1*1 \\ &= 1 \\ \end{aligned} \]

      • 現在輸出層的激活函數使用linear,那么隱藏層的激活函數也必須是linear嗎?
        答:不需要

      任務:實現隱藏層的梯度檢查

      image

      任務:整合全連接層的梯度檢查

      總結

      • 請總結本節課的內容?
      • 請回答所有主問題?

      參考資料

      12.2 梯度檢查

      posted @ 2022-11-07 13:23  楊元超  閱讀(151)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 开心五月深深爱天天天操| 国产成人精品三级麻豆| 中文字幕日韩精品国产| 天堂网www在线资源网| 国产乱理伦片在线观看| 国产亚洲精品久久综合阿香| 午夜DY888国产精品影院| 色婷婷av久久久久久久| 99热门精品一区二区三区无码 | 国产精品国产自产拍高清| 人妻精品动漫H无码中字| 久久精品久久精品久久精品| 国产男女猛烈无遮挡免费视频| 狠狠婷婷综合久久久久久| 色综合AV综合无码综合网站| 久久香蕉国产亚洲av麻豆 | 国产成人精品一区二区三| 久久精品女人天堂av免费观看| 国产亚洲无线码一区二区| 亚洲一区二区中文字幕| 汨罗市| 日本夜爽爽一区二区三区| 性无码专区无码| 久久天天躁狠狠躁夜夜躁2o2o| 国产999久久高清免费观看| 中文毛片无遮挡高潮免费| 国产一区二区三区在线观看免费 | 国内精品久久久久影视| 国产高潮视频在线观看 | 精品日韩色国产在线观看| 丝袜国产一区av在线观看| 无码免费大香伊蕉在人线国产| 办公室强奷漂亮少妇视频| 久久被窝亚洲精品爽爽爽| 日韩中文字幕国产精品| 日本黄色一区二区三区四区| 亚洲熟妇自偷自拍另欧美| 精品无码av无码专区| 中文字幕人妻不卡精品| 日韩免费无码视频一区二区三区| 黄页网站在线观看免费视频|