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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

3.9 神经网络的梯度下降法-深度学习-Stanford吴恩达教授

發(fā)布時間:2025/4/5 pytorch 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.9 神经网络的梯度下降法-深度学习-Stanford吴恩达教授 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

←上一篇↓↑下一篇→
3.8 激活函數(shù)的導數(shù)回到目錄3.10 直觀理解反向傳播

神經(jīng)網(wǎng)絡的梯度下降法 (Gradient Descent for Neural Networks)

在這個視頻中,我會給你實現(xiàn)反向傳播或者說梯度下降算法的方程組,在下一個視頻我們會介紹為什么這幾個特定的方程是針對你的神經(jīng)網(wǎng)絡實現(xiàn)梯度下降的正確方程。

你的單隱層神經(jīng)網(wǎng)絡會有 W[1],b[1],W[2],b[2]W^{[1]},b^{[1]},W^{[2]},b^{[2]}W[1]b[1]W[2]b[2] 這些參數(shù),還有 nxn_xnx? 個表示輸入特征的個數(shù), n[1]n^{[1]}n[1] 表示隱藏單元個數(shù), n[2]n^{[2]}n[2] 表示輸出單元個數(shù)。

在我們的例子中,我們只介紹過的這種情況,那么參數(shù):

矩陣 W[1]W^{[1]}W[1] 的維度就是( n[1],n[0]n^{[1]},n^{[0]}n[1],n[0] ), b[1]b^{[1]}b[1] 就是 n[1]n^{[1]}n[1] 維向量,可以寫成( n[1],1n^{[1]},1n[1],1 ),就是一個的列向量。 矩陣 W[2]W^{[2]}W[2] 的維度就是( n[2],n[1]n^{[2]},n^{[1]}n[2],n[1] ), b[2]b^{[2]}b[2] 的維度就是( n[2],1n^{[2]},1n[2],1 )維度。

你還有一個神經(jīng)網(wǎng)絡的成本函數(shù),假設你在做二分類任務,那么你的成本函數(shù)等于:

Cost function: 公式: J(W[1],b[1],W[2],b[2])=1m∑i=1mL(y^,y)J(W^{[1]},b^{[1]},W^{[2]},b^{[2]})=\frac1m\sum_{i=1}^mL(\hat{y},y)J(W[1],b[1],W[2],b[2])=m1?i=1m?L(y^?,y) loss function和之前做logistic回歸完全一樣。

訓練參數(shù)需要做梯度下降,在訓練神經(jīng)網(wǎng)絡的時候,隨機初始化參數(shù)很重要,而不是初始化成全零。當你參數(shù)初始化成某些值后,每次梯度下降都會循環(huán)計算以下預測值:y^,(i=1,2,...,m)\hat{y},(i=1,2,...,m)y^?,(i=1,2,...,m)

公式3.28: dW[1]=dJdW[1],db[1]=dJdb[1]dW^{[1]}=\frac{dJ}{dW^{[1]}},db^{[1]}=\frac{dJ}{db^{[1]}}dW[1]=dW[1]dJ?,db[1]=db[1]dJ?
公式3.29: dW[2]=dJdW[2],db[2]=dJdb[2]dW^{[2]}=\frac{dJ}{dW^{[2]}},db^{[2]}=\frac{dJ}{db^{[2]}}dW[2]=dW[2]dJ?,db[2]=db[2]dJ?

其中

公式3.30: W[1]?W[1]?αdW[1],b[1]?b[1]?αdb[1]W^{[1]}\Rightarrow W^{[1]}-\alpha dW^{[1]},b^{[1]}\Rightarrow b^{[1]}-\alpha db^{[1]}W[1]?W[1]?αdW[1],b[1]?b[1]?αdb[1]
公式3.31: W[2]?W[2]?αdW[2],b[2]?b[2]?αdb[2]W^{[2]}\Rightarrow W^{[2]}-\alpha dW^{[2]},b^{[2]}\Rightarrow b^{[2]}-\alpha db^{[2]}W[2]?W[2]?αdW[2],b[2]?b[2]?αdb[2]

正向傳播(forward propagation)方程如下:

(1) z[1]=W[1]x+b[1]z^{[1]}=W^{[1]}x+b^{[1]}z[1]=W[1]x+b[1]
(2) a[1]=σ(z[1])a^{[1]}=\sigma(z^{[1]})a[1]=σ(z[1])
(3) z[2]=W[2]a[1]+b[2]z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}z[2]=W[2]a[1]+b[2]
(4) a[2]=g[2](z[2])=σ(z[2])a^{[2]}=g^{[2]}(z^{[2]})=\sigma(z^{[2]})a[2]=g[2](z[2])=σ(z[2])

反向傳播(backward propagation)方程如下:

公式3.32: dz[2]=A[2]?Y,Y=[y[1]y[2]?y[m]]dz^{[2]}=A^{[2]}-Y,Y=\left[\begin{matrix}y^{[1]} & y^{[2]} & \cdots & y^{[m]}\end{matrix}\right]dz[2]=A[2]?Y,Y=[y[1]?y[2]???y[m]?]
公式3.33: dW[2]=1mdz[2]A[1]TdW^{[2]}=\frac1mdz^{[2]}A^{[1]T}dW[2]=m1?dz[2]A[1]T
公式3.34: db[2]=1mnp.sum(dz[2],axis=1,keepdims=True)db^{[2]}=\frac1mnp.sum(dz^{[2]},axis=1,keepdims=True)db[2]=m1?np.sum(dz[2],axis=1,keepdims=True)
公式3.35: dz[1]=W[2]Tdz[2]?(n[1],m)?g[1]′?activationfunctionofhiddenlayer?(z[1])?(n[1],m)dz^{[1]}=\underbrace{W^{[2]T}dz^{[2]}}_{(n^{[1]},m)}*\underbrace{g^{[1]'}}_{activation\ function\ of\ hidden\ layer}*\underbrace{(z^{[1]})}_{(n^{[1]},m)}dz[1]=(n[1],m)W[2]Tdz[2]???activation?function?of?hidden?layerg[1]???(n[1],m)(z[1])??
公式3.36: dW[1]=1mdz[1]xTdW^{[1]}=\frac1mdz^{[1]}x^TdW[1]=m1?dz[1]xT
公式3.37: db[1]?=1mnp.sum(dz[1],axis=1,keepdims=True)\underbrace{db^{[1]}}=\frac1mnp.sum(dz^{[1]},axis=1,keepdims=True)db[1]?=m1?np.sum(dz[1],axis=1,keepdims=True)

上述是反向傳播的步驟,注:這些都是針對所有樣本進行過向量化, YYY1?m1*m1?m 的矩陣;這里np.sum是pythonnumpy命令,axis=1表示水平相加求和,keepdims是防止python輸出那些古怪的秩數(shù) (n,)(n,)(n,) ,加上這個確保矩陣 db[2]db^{[2]}db[2] 這個向量輸出的維度為 (n,1)(n,1)(n,1) 這樣標準的形式。

目前為止,我們計算的都和Logistic回歸十分相似,但當你開始計算反向傳播時,你需要計算,是隱藏層函數(shù)的導數(shù),輸出在使用sigmoid函數(shù)進行二元分類。這里是進行逐個元素乘積,因為 W[2]Tdz[2]W^{[2]T}dz^{[2]}W[2]Tdz[2](z[1])(z^{[1]})(z[1]) 這兩個都為 (n[1],m)(n^{[1]},m)(n[1],m) 矩陣;

還有一種防止python輸出奇怪的秩數(shù),需要顯式地調(diào)用reshape把np.sum輸出結果寫成矩陣形式。

以上就是正向傳播的4個方程和反向傳播的6個方程,這里我是直接給出的,在下個視頻中,我會講如何導出反向傳播的這6個式子的。如果你要實現(xiàn)這些算法,你必須正確執(zhí)行正向和反向傳播運算,你必須能計算所有需要的導數(shù),用梯度下降來學習神經(jīng)網(wǎng)絡的參數(shù);你也可以許多成功的深度學習從業(yè)者一樣直接實現(xiàn)這個算法,不去了解其中的知識。

課程PPT




←上一篇↓↑下一篇→
3.8 激活函數(shù)的導數(shù)回到目錄3.10 直觀理解反向傳播

總結

以上是生活随笔為你收集整理的3.9 神经网络的梯度下降法-深度学习-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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