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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.3 前向传播与反向传播-机器学习笔记-斯坦福吴恩达教授

發布時間:2025/4/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.3 前向传播与反向传播-机器学习笔记-斯坦福吴恩达教授 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前向傳播與反向傳播

前向傳播過程(Forward Propagation)

神經網絡每層都包含有若干神經元,層間的神經元通過權值矩陣 ΘlΘ^lΘl 連接。一次信息傳遞過程可以如下描述:

  • 第 j 層神經元接收上層傳入的刺激(神經沖動)
    z(j)=Θ(j?1)a(j?1)z^{(j)}=Θ^{(j?1)}a^{(j?1)}z(j)=Θ(j?1)a(j?1)

  • 該刺激經激勵函數(activation function) ggg 作用后,會產生一個激活向量 aja^jajaija^j_iaij? 表示的就是 jjj 層第 iii 個神經元獲得的激活值(activation)
    a(j)=g(z(j))a^{(j)}=g(z^{(j)})a(j)=g(z(j))

  • 這個過程,因為發生順序是不斷地將刺激由前一層傳向下一層,故而稱之為前向傳遞(Forward Propagation)

    假定我們的神經網絡只含有一層隱含層(添加了偏移量 x0x_0x0? ):
    [x0x1x2]→[a1(2)a2(2)a3(2)][a1(3)]→hθ(x)\left[ \begin{matrix} x_0\\x_1\\x_2\\ \end{matrix} \right] \rightarrow \left[\begin{matrix} a_1^{(2)}\\a_2^{(2)}\\a_3^{(2)}\\ \end{matrix} \right]\left[a_1^{(3)}\right]\rightarrow h_\theta(x)???x0?x1?x2?????????a1(2)?a2(2)?a3(2)??????[a1(3)?]hθ?(x)

    那么前向傳播的過程可表示為如下:
    a(1)=xa^{(1)}=xa(1)=xz(2)=Θ(1)a(1)z^{(2)}=Θ^{(1)}a^{(1)}z(2)=Θ(1)a(1)a(2)=g(z(2))a^{(2)}=g(z^{(2)})a(2)=g(z(2))z(3)=Θ(2)a(2)z^{(3)}=Θ^{(2)}a^{(2)}z(3)=Θ(2)a(2)a(3)=g(z(3))a^{(3)}=g(z^{(3)})a(3)=g(z(3))hΘ(x)=a(3)h_\Theta(x) = a^{(3)}hΘ?(x)=a(3)

    對于非線性分類問題,邏輯回歸會使用多項式擴展特征,導致維度巨大的特征向量出現,而在神經網絡中,并不會增加特征的維度,即不會擴展神經網絡輸入層的規模,而是通過增加隱含層,矯正隱含層中的權值,來不斷優化特征,前向傳播過程每次在神經元上產出的激勵值都可看做是優化后的特征。

    代價函數

    我們令:

    L=神經網絡總共包含的層數L=神經網絡總共包含的層數L=sl=第l層的神經元數目sl=第l層的神經元數目sl=lK=輸出層的神經元數,亦即分類的數目K=輸出層的神經元數,亦即分類的數目K=

    神經網絡的層與層之間都可以看做構成了一個多個邏輯回歸問題(根據神經元的數量),因此,其代價函數與邏輯回歸的代價函數類似,其中 KKK 代表類別, lll 表示層級,并且考慮了正規化:

    J(Θ)=?1m∑i=1m∑k=1K[yk(i)log((hΘ(x(i)))k)+(1?yk(i))log(1?(hΘ(x(i)))k)]+λ2m∑l=1L?1∑i=1sl∑j=1sl+1(Θj,i(l))2J(Θ)=?\frac1m∑_{i=1}^m∑_{k=1}^K[y^{(i)}_klog((h_Θ(x^{(i)}))_k)+(1?y^{(i)}_k)log(1?(h_Θ(x^{(i)}))_k)]+\fracλ{2m}∑_{l=1}^{L?1}∑_{i=1}^{s_l}∑_{j=1}^{s_l+1}(Θ^{(l)}_{j,i})^2J(Θ)=?m1?i=1m?k=1K?[yk(i)?log((hΘ?(x(i)))k?)+(1?yk(i)?)log(1?(hΘ?(x(i)))k?)]+2mλ?l=1L?1?i=1sl??j=1sl?+1?(Θj,i(l)?)2

    矩陣的表示為:

    J(Θ)=?1m∑(YT.?log(ΘA))+log(1?ΘA).?(1?YT))J(Θ)=?\frac1m∑(Y^T.?log(ΘA))+log(1?ΘA).?(1?Y^T))J(Θ)=?m1?(YT.?log(ΘA))+log(1?ΘA).?(1?YT))

    其中, .?.?.? 代表點乘操作, A∈R(K×m)A∈R^{(K×m)}AR(K×m) 為所有樣本對應的輸出矩陣,其每一列對應一個樣本的輸出, Y∈R(m×K)Y∈R^{(m×K)}YR(m×K) 為標簽矩陣,其每行對應一個樣本的類型。

    反向傳播過程(Back Propagation)

    與回歸問題一樣,我們也需要通過最小化代價函數 J(Θ)J(Θ)J(Θ) 來優化預測精度的,但是,由于神經網絡允許多個隱含層,即,各層的神經元都會產出預測,因此,就不能直接利用傳統回歸問題的梯度下降法來最小化 J(Θ)J(Θ)J(Θ) ,而需要逐層考慮預測誤差,并且逐層優化。為此,在多層神經網絡中,使用反向傳播算法(Backpropagation Algorithm)來優化預測,首先定義各層的預測誤差為向量 δ(l)δ^{(l)}δ(l)

    δ(l)={a(l)?yl=L(Θ(l)δ(l+1))T.?g′(z(l))l=2,3,...,L?1δ(l)=\begin{cases}a^{(l)}-y\quad\quad\quad\quad\quad\quad\quad\quad l=L\\(Θ^{(l)}δ^{(l+1)})^T.*g^′(z^{(l)})\quad\quad l=2,3,...,L-1\end{cases}δ(l)={a(l)?yl=L(Θ(l)δ(l+1))T.?g(z(l))l=2,3,...,L?1?

    其中:
    g′(z(l))=a(l).?(1?a(l))g^′(z^{(l)})=a^{(l)}.?(1?a^{(l)})g(z(l))=a(l).?(1?a(l))

    反向傳播中的反向二字也正是從該公式中得來,本層的誤差 δ(l)δ^{(l)}δ(l) 需要由下一層的誤差 δ(l+1)δ^{(l+1)}δ(l+1) 反向推導。

    訓練過程

    假定有訓練集 (x(1),y(1)),...,(x(m),y(m))(x^{(1)},y^{(1)}),...,(x^{(m)},y^{(m)})(x(1),y(1)),...,(x(m),y(m)) ,使用了反向傳播的神經網絡訓練過程如下:

  • foralll,i,jfor\ all\ l,\ i,\ jfor?all?l,?i,?j,初始化權值梯度 Δ(l)Δ^{(l)}Δ(l) :
    Δij(l)=0Δ^{(l)}_{ij}=0Δij(l)?=0

  • fori=1tom:for\ i=1\ to\ m\ :for?i=1?to?m?:
    a(1)=xia^{(1)}=x^ia(1)=xi執行前向傳播算法,計算各層的激活向量:a(l)執行前向傳播算法,計算各層的激活向量:a^{(l)}a(l)通過標簽向量y(i),計算輸出層的誤差向量:δ(L)=a(L)?y(i)通過標簽向量 y^{(i)},計算輸出層的誤差向量:δ^{(L)}=a^{(L)}?y^{(i)}y(i)δ(L)=a(L)?y(i)反向依次計算其他層誤差向量:δ(L?1),δ(L?2),...,δ(2)反向依次計算其他層誤差向量:δ^{(L?1)},δ^{(L?2)},...,δ^{(2)}δ(L?1),δ(L?2),...,δ(2)求Δij(l)=aj(l)δi(l+1),即:Δ(l)=δ(l+1)(a(l))T求 Δ^{(l)}_{ij}=a^{(l)}_jδ^{(l+1)}_i,即:Δ^{(l)}=δ^{(l+1)}(a^{(l)})^TΔij(l)?=aj(l)?δi(l+1)?Δ(l)=δ(l+1)(a(l))T

  • 求各層權值的更新增量 D(l) ,連接偏置的權值不進行正規化:
    Di,j(l)={1m(Δi,j(l)+λΘi,j(l)),ifj≠01mΔi,j(l),ifj=0D^{(l)}_{i,j} = \begin{cases}\frac1m(\Delta^{(l)}_{i,j}+λ\Theta^{(l)}_{i,j}),\quad\quad if\ j≠0\\\frac1m\Delta^{(l)}_{i,j},\quad\quad\quad\quad\quad\quad if\ j=0\end{cases}Di,j(l)?={m1?(Δi,j(l)?+λΘi,j(l)?),if?j?=0m1?Δi,j(l)?,if?j=0?

  • 更新各層的權值矩陣 Θ(l) ,其中 α 為學習率:
    Θ(l)=Θ(l)+αD(l)Θ^{(l)}=Θ^{(l)}+αD^{(l)}Θ(l)=Θ(l)+αD(l)

  • 總結

    以上是生活随笔為你收集整理的3.3 前向传播与反向传播-机器学习笔记-斯坦福吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。

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