美文网首页
吴恩达机器学习 - 神经网络

吴恩达机器学习 - 神经网络

作者: YANWeichuan | 来源:发表于2018-11-19 17:41 被阅读0次

    神经网络的代价函数

    J(Θ)=-{\frac{1}{m}}\left[\sum_{i=1}^{m}\sum_{j=1}^{K}{y_k^{(i)}log(h_Θ(x^{(i)})_k)} + {(1-y_k^{(i)})log(1-(h_Θ(x^{(i)}))_k)}\right] + {\frac{λ}{2m}}\sum_{l=1}^{L-1}\sum_{i=1}^{S_l}\sum_{j=1}^{S_l+1}Θ_{ji}^l

    反向传播

    δ_j^{(l)}定义为:"error" of node j in layer l
    δ_j^{(4)} = α_j^{(4)} - y_j
    δ^{(3)} = (Θ^{(3)})^ Tα^{4 } .*g^{'}(z^{(3)}) = (Θ^{(3)})^ Tα^{4 } .* (α^{(3)}(1-α^{(3)}))
    δ^{(2)} = (Θ^{(2)})^ Tα^{3 } .*g^{'}(z^{(2)}) = (Θ^{(2)})^ Tα^{3 } .* (α^{(2) }(1-α^{(2)}))

    其中:
    g^{'}(z)
    = {\frac{e^{-z}}{(1+ e^{-z})^2}}
    = {\frac{1 + e^{-z} - 1}{(1+ e^{-z})^2}}
    = {\frac{1}{1+ e^{-z}}} - {\frac{1+e^{-z}}{(1+ e^{-z})^2}}
    = g(z) - g^{2}(z)
    = g(z)(1 - g(z))

    反向传播的计算:

    For i = 1 to m:
      设置 α^{(1)} = x^{(i)}
      向前传播计算α^{(l)}, 其中 l = 2, 3 ... L
      利用y_{(i)} 计算α^{(L)}(即最后输出层),δ^L= α^{(L)} - y^i
      计算δ^{(L-1)}, δ^{(L-2)}, δ^{(L-3)}, ..., δ^{(2)}
    Δ_{ij}^{(l)} := Δ_{ij}^{(l)} + α_j^{(l)}δ_i^{(l+1)}

    定义:
    D_{ij}^{(l)} := \frac{1}{m}Δ_{ij}^{(l)} + λΘ_{ij}^{(l)} , 当j\ne0
    D_{ij}^{(l)} := \frac{1}{m}Δ_{ij}^{(l)} , 当j=0

    \frac{\partial}{\partialθ_{ij}^{(l)}}{J(Θ)} = D_{ij}^{(l)}

    梯度检测

    如何判断实现的反向传播算法是好的?需要近似的快速得出梯度值,进行检测。

    随机初始化

    在Θ的初始值选择时,如果选择全0或者全1,在后续的计算中,α值一样,进行了大量的一样的数值计算,通过随机化选择不一样的值,提高效率。

    相关文章

      网友评论

          本文标题:吴恩达机器学习 - 神经网络

          本文链接:https://www.haomeiwen.com/subject/badmfqtx.html