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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

2.9 Logistic 回归的梯度下降法-深度学习-Stanford吴恩达教授

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

←上一篇↓↑下一篇→
2.8 計算圖的導(dǎo)數(shù)計算回到目錄2.10 m 個樣本的梯度下降

Logistic 回歸的梯度下降法 (Logistic Regression Gradient Descent)

本節(jié)我們討論怎樣通過計算偏導(dǎo)數(shù)來實現(xiàn)邏輯回歸的梯度下降算法。它的關(guān)鍵點是幾個重要公式,其作用是用來實現(xiàn)邏輯回歸中梯度下降算法。但是在本節(jié)視頻中,我將使用計算圖對梯度下降算法進(jìn)行計算。我必須要承認(rèn)的是,使用計算圖來計算邏輯回歸的梯度下降算法有點大材小用了。但是,我認(rèn)為以這個例子作為開始來講解,可以使你更好的理解背后的思想。從而在討論神經(jīng)網(wǎng)絡(luò)時,你可以更深刻而全面地理解神經(jīng)網(wǎng)絡(luò)。接下來讓我們開始學(xué)習(xí)邏輯回歸的梯度下降算法。

假設(shè)樣本只有兩個特征 x1x_1x1?x2x_2x2? ,為了計算 zzz ,我們需要輸入?yún)?shù) w1w_1w1?w2w_2w2?bbb ,除此之外還有特征值 x1x_1x1?x2x_2x2? 。因此 zzz 的計算公式為: z=w1x1+w2x2+bz=w_1x_1+w_2x_2+bz=w1?x1?+w2?x2?+b 回想一下邏輯回歸的公式定義如下: y^=a=σ(z)\hat{y}=a=\sigma(z)y^?=a=σ(z) 其中 z=wT+b,σ(z)=11+e?zz=w^T+b,\ \sigma(z)=\frac{1}{1+e^{-z}}z=wT+b,?σ(z)=1+e?z1? 損失函數(shù): L(y^(i),y(i))=?y(i)log?y^(i)?(1?y(i))log?(1?y^(i))L(\hat{y}^{(i)},y^{(i)})=-y^{(i)}\log\hat{y}^{(i)}-(1-y^{(i)})\log(1-\hat{y}^{(i)})L(y^?(i),y(i))=?y(i)logy^?(i)?(1?y(i))log(1?y^?(i)) 代價函數(shù): J(w,b)=1m∑imL(y^(i),y(i))J(w,b)=\frac1m\sum_i^mL(\hat{y}^{(i)},y^{(i)})J(w,b)=m1?im?L(y^?(i),y(i)) 假設(shè)現(xiàn)在只考慮單個樣本的情況,單個樣本的代價函數(shù)定義如下: L(a,y)=?(ylog?(a)+(1?y)log?(1?a))L(a,y)=-(y\log(a)+(1-y)\log(1-a))L(a,y)=?(ylog(a)+(1?y)log(1?a)) 其中 aaa 是邏輯回歸的輸出, yyy 是樣本的標(biāo)簽值。現(xiàn)在讓我們畫出表示這個計算的計算圖。 這里先復(fù)習(xí)下梯度下降法, wwwbbb 的修正量可以表達(dá)如下:

w:=w?α?J(w,b)?w,b:=b?α?J(w,b)?bw:=w-\alpha \frac{\partial J(w,b)}{\partial w},\quad b:=b-\alpha \frac{\partial J(w,b)}{\partial b}w:=w?α?w?J(w,b)?,b:=b?α?b?J(w,b)?

如圖:在這個公式的外側(cè)畫上長方形。然后計算: y^=a=σ(z)\hat{y}=a=\sigma(z)y^?=a=σ(z) 也就是計算圖的下一步。最后計算損失函數(shù) L(a,y)L(a,y)L(a,y) 。 有了計算圖,我就不需要再寫出公式了。因此,為了使得邏輯回歸中最小化代價函數(shù) L(a,y)L(a,y)L(a,y) ,我們需要做的僅僅是修改參數(shù) wwwbbb 的值。前面我們已經(jīng)講解了如何在單個訓(xùn)練樣本上計算代價函數(shù)的前向步驟。現(xiàn)在讓我們來討論通過反向計算出導(dǎo)數(shù)。 因為我們想要計算出的代價函數(shù) L(a,y)L(a,y)L(a,y) 的導(dǎo)數(shù),首先我們需要反向計算出代價函數(shù) L(a,y)L(a,y)L(a,y) 關(guān)于 aaa 的導(dǎo)數(shù),在編寫代碼時,你只需要用 dadada 來表示 dL(a,y)da\frac{dL(a,y)}{da}dadL(a,y)? 。 通過微積分得到: dL(a,y)da=?y/a+(1?y)/(1?a)\frac{dL(a,y)}{da}=-y/a+(1-y)/(1-a)dadL(a,y)?=?y/a+(1?y)/(1?a) 如果你不熟悉微積分,也不必太擔(dān)心,我們會列出本課程涉及的所有求導(dǎo)公式。那么如果你非常熟悉微積分,我們鼓勵你主動推導(dǎo)前面介紹的代價函數(shù)的求導(dǎo)公式,使用微積分直接求出 L(a,y)L(a,y)L(a,y) 關(guān)于變量 aaa 的導(dǎo)數(shù)。如果你不太了解微積分,也不用太擔(dān)心。現(xiàn)在我們已經(jīng)計算出 dadada ,也就是最終輸出結(jié)果的導(dǎo)數(shù)。 現(xiàn)在可以再反向一步,在編寫Python代碼時,你只需要用 dzdzdz 來表示代價函數(shù) LLL 關(guān)于 zzz 的導(dǎo)數(shù) dLdz\frac{dL}{dz}dzdL? ,也可以寫成 dL(a,y)dz\frac{dL(a,y)}{dz}dzdL(a,y)? ,這兩種寫法都是正確的。 dLdz=a?y\frac{dL}{dz}=a-ydzdL?=a?y 。 因為 dL(a,y)dz=dLdz=(dLda)?(dadz)\frac{dL(a,y)}{dz}=\frac{dL}{dz}=(\frac{dL}{da})\cdot(\frac{da}{dz})dzdL(a,y)?=dzdL?=(dadL?)?(dzda?) , 并且 dadz=a(˙1?a)\frac{da}{dz}=a\dot(1-a)dzda?=a(˙?1?a) , 而 dLda=(?ya+(1?y)(1?a))\frac{dL}{da}=(-\frac ya+\frac{(1-y)}{(1-a)})dadL?=(?ay?+(1?a)(1?y)?) ,因此將這兩項相乘,得到:

dz=dL(a,y)dz=dLdz=(dLda)?(dadz)=(?ya+(1?y)(1?a))?a(1?a)=a?ydz=\frac{dL(a,y)}{dz}=\frac{dL}{dz}=(\frac{dL}{da})\cdot(\frac{da}{dz})=(-\frac ya+\frac{(1-y)}{(1-a)})\cdot a(1-a)=a-ydz=dzdL(a,y)?=dzdL?=(dadL?)?(dzda?)=(?ay?+(1?a)(1?y)?)?a(1?a)=a?y

視頻中為了簡化推導(dǎo)過程,假設(shè) nxn_xnx? 這個推導(dǎo)的過程就是我之前提到過的鏈?zhǔn)椒▌t。如果你對微積分熟悉,放心地去推導(dǎo)整個求導(dǎo)過程,如果不熟悉微積分,你只需要知道 dz=(a?y)dz=(a-y)dz=(a?y) 已經(jīng)計算好了。

現(xiàn)在進(jìn)行最后一步反向推導(dǎo),也就是計算 wwwbbb 變化對代價函數(shù) LLL 的影響,特別地,可以用: dw1=1m∑imx1(i)(a(i)?y(i))dw_1=\frac1m\sum_i^mx_1^{(i)}(a^{(i)}-y^{(i)}) dw1?=m1?im?x1(i)?(a(i)?y(i))dw2=1m∑imx2(i)(a(i)?y(i))dw_2=\frac1m\sum_i^mx_2^{(i)}(a^{(i)}-y^{(i)}) dw2?=m1?im?x2(i)?(a(i)?y(i))db=1m∑im(a(i)?y(i))db=\frac1m\sum_i^m(a^{(i)}-y^{(i)})db=m1?im?(a(i)?y(i)) 視頻中, dw1dw_1dw1? 表示 ?L?w1=x1?dz\frac{\partial L}{\partial w_1}=x_1\cdot dz?w1??L?=x1??dzdw2dw_2dw2? 表示 ?L?w2=x2?dz\frac{\partial L}{\partial w_2}=x_2\cdot dz?w2??L?=x2??dzdb=dzdb = dzdb=dz 。 因此,關(guān)于單個樣本的梯度下降算法,你所需要做的就是如下的事情: 使用公式 dz=(a?y)dz=(a-y)dz=(a?y) 計算 dzdzdz , 使用 dw1=x1?dzdw_1=x_1 \cdot dzdw1?=x1??dz 計算 dw1dw_1dw1? , 計算 dw2=x2?dzdw_2=x_2 \cdot dzdw2?=x2??dz 計算 dw2dw_2dw2?db=dzdb=dzdb=dz 計算 dbdbdb ,然后: 更新 w1=w1?αdw1w_1=w_1-\alpha\ dw_1w1?=w1??α?dw1? , 更新 w2=w2?αdw2w_2=w_2-\alpha\ dw_2w2?=w2??α?dw2? , 更新 b=b?αdbb=b-\alpha\ dbb=b?α?db 。 這就是關(guān)于單個樣本實例的梯度下降算法中參數(shù)更新一次的步驟。

現(xiàn)在你已經(jīng)知道了怎樣計算導(dǎo)數(shù),并且實現(xiàn)針對單個訓(xùn)練樣本的邏輯回歸的梯度下降算法。但是,訓(xùn)練邏輯回歸模型不僅僅只有一個訓(xùn)練樣本,而是有 mmm 個訓(xùn)練樣本的整個訓(xùn)練集。因此在下一節(jié)視頻中,我們將這些思想應(yīng)用到整個訓(xùn)練樣本集中,而不僅僅只是單個樣本上。

課程PPT




←上一篇↓↑下一篇→
2.8 計算圖的導(dǎo)數(shù)計算回到目錄2.10 m 個樣本的梯度下降

總結(jié)

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

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