机器学习入门之[机器学习]神经网络反向传播的推导
小标 2018-12-18 来源 : 阅读 1220 评论 0

摘要:本文主要向大家介绍了机器学习入门之[机器学习]神经网络反向传播的推导,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之[机器学习]神经网络反向传播的推导,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。


神经网络反向传播的推导

对于神经网络的训练过程而言,其反向传播算法是训练过程的核心,神经网络根据预测值y^y^与实际值yy的偏差从后向前来计算损失函数对于各个参数的梯度,从而利用梯度下降的方法来优化训练神经网络的各个参数。

神经网络的计算流程图如下: 
 
 从该流程图可以看到,如果我们要计算神经网络的参数W[1],b[1],W[2],b[2]W[1],b[1],W[2],b[2],首先需要计算∂L∂a[2]∂L∂a[2]和∂a[2]∂z[2]∂a[2]∂z[2],然后根据链式法则得到∂L∂z[2]=∂L∂a[2]∂a[2]∂z[2]∂L∂z[2]=∂L∂a[2]∂a[2]∂z[2]。

之后再计算∂z[2]∂W[2]∂z[2]∂W[2]和∂z[2]∂b[2]∂z[2]∂b[2],同样根据链式法则可以得到∂L∂W[2]=∂L∂z[2]∂z[2]∂W[2]∂L∂W[2]=∂L∂z[2]∂z[2]∂W[2]以及得到∂L∂b[2]=∂L∂z[2]∂z[2]∂b[2]∂L∂b[2]=∂L∂z[2]∂z[2]∂b[2]。这样便得到了dW[2]dW[2]和db[2]db[2]。

另外对于dW[1]dW[1]和db[1]db[1]的计算,需要先计算∂z[1]∂W[1]∂z[1]∂W[1],∂a[1]∂z[1]∂a[1]∂z[1]和∂z[2]∂a[1]∂z[2]∂a[1],同样根据链式法则可以得到∂L∂W[1]=∂L∂z[2]∂z[2]∂a[1]∂a[1]∂z[1]∂z[1]∂W[1]∂L∂W[1]=∂L∂z[2]∂z[2]∂a[1]∂a[1]∂z[1]∂z[1]∂W[1],以及∂L∂b[1]=∂L∂z[2]∂z[2]∂a[1]∂a[1]∂z[1]∂z[1]∂b[1]∂L∂b[1]=∂L∂z[2]∂z[2]∂a[1]∂a[1]∂z[1]∂z[1]∂b[1]。这样也得到了dW[1]dW[1]和db[1]db[1]。

在使用随机梯度下降(SGD)优化算法以及交叉熵(Cross Entropy)损失函数的时候,我们令a[2]=y^a[2]=y^,即损失函数: 

L(y^,y)=−(ylogy^+(1−y)log(1−y^))L(y^,y)=−(ylogy^+(1−y)log(1−y^))


使用sigmoid激活函数,即 

a[1]=σ(z[1])=11+e−z[1]a[2]=σ(z[2])=11+e−z[2]a[1]=σ(z[1])=11+e−z[1]a[2]=σ(z[2])=11+e−z[2]


将该激活函数和损失函数代入上面的计算过程,可以得到: 

dz[2]=a[2]−ydW[2]=dz[2]a[1]Tdb[2]=dz[2]dz[1]=W[2]Tdz[2]∗σ′(z[1])dW[1]=dz[1]xTdb[1]=dz[1]dz[2]=a[2]−ydW[2]=dz[2]a[1]Tdb[2]=dz[2]dz[1]=W[2]Tdz[2]∗σ′(z[1])dW[1]=dz[1]xTdb[1]=dz[1]


 在进行随机梯度下降的过程中,随机选取样本中的一个错误分类点,根据该点计算当前的dW[1],db[1],dW[2],db[2]dW[1],db[1],dW[2],db[2],然后利用以下公式来更新W[1],b[1],W[2],b[2]W[1],b[1],W[2],b[2]: 

W[2]:=W[2]−α∗dW[2]b[2]:=b[2]−α∗db[2]W[1]:=W[1]−α∗dW[1]b[1]:=b[1]−α∗db[1]W[2]:=W[2]−α∗dW[2]b[2]:=b[2]−α∗db[2]W[1]:=W[1]−α∗dW[1]b[1]:=b[1]−α∗db[1]


 直到收敛为止。


对于神经网络的训练,还有批量梯度下降(Batch Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent),带动量的随机梯度下降(Momentum),RMSProp,Adam等方法,后面再做详解。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved