美文网首页
深度学习过程反向传播有关sigmoid的求导

深度学习过程反向传播有关sigmoid的求导

作者: 在做算法的巨巨 | 来源:发表于2018-11-07 18:13 被阅读0次

    在深度学习的反向传播过程中,我们需要对激活函数进行求偏导,这里写一点如果激活函数是sigmoid函数时的推导过程。

    Flow chart(Forward propagation)

    input --> w_i --> h_i --> y_i=sigmoid(h_i) --> Error=\frac{1}{m}\sum^{m}_{i=1}(y_i-t_i)^2

    Flow chart(Backward propagation)

    output <-- w_i <--------------------------- \frac{\delta Error}{\delta w}

    在经历一次前向传播后,我们会得到一个输出yi,同时我们回得到一个MSE作为与我们目标的误差反馈。深度学习中我们会对误差进行w的偏导,然后对w进行更新,这个步骤和梯度下降法的参数更新是一个原理。

    \frac{\delta Error}{\delta w_i} = \frac{\delta Error}{\delta y_i} * \frac{\delta y_i}{\delta h_i} * \frac{\delta h_i}{\delta w}

    其中,

    \frac{\delta Error}{\delta y_i} = \frac{2}{m}(y_i - t_i)

    \frac{\delta y_i}{\delta h_i} = \frac{\delta (\frac{1}{1+e^{-h_i}})}{\delta h_i} = \frac{e^{-h_i}}{(1+e^{-h_i})^2} = \frac{1+e^{-h_i}-1}{(1+e^{-h_i})^2} = \frac{1}{1+e^{-h_i}} - \frac{1}{(1+e^{-h_i})^2}

    这里,y_i = sigmoid(h_i) = \frac{1}{1+e^{-h_i}}

    所以,\frac{\delta y_i}{\delta h_i} = y_i - y_{i}^{2} = y_i(1-y_i)

    h_i = b+\sum_{i=1}^{m}w_i*x_i
    \frac{\delta h_i}{\delta w} = x_i

    综上,\frac{\delta Error}{\delta w_i} = \frac{2}{m}(y_i - t_i)*y_i(1-y_i)*x_i

    最后更新w_i, w_i = w_i - \alpha \frac{\delta Error}{\delta w_i}, \alpha是学习率。

    相关文章

      网友评论

          本文标题:深度学习过程反向传播有关sigmoid的求导

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