反向误差传播的深度学习方法

DNN基础

在这里插入图片描述
   上图的DNN model中,中间有多层hidden layers,每层layer上都有多个neurons(橙色),每个neuron都有多个input和1个output(这1个output的多个copy产生多个output到下一layer);在layer l neuron j 输入之一是layer l-1 的neuron k,所以w(j,k)是这根神经线的weight,b(j)是neuron i的偏移,(w,b)集合 构成了model parameters,将在training中被learned到。每一layer全部neuron的 w(j,k) 用二维矩阵存储,b(j)用一维矩阵存储。


反向误差传播

在这里插入图片描述

   以上代码是反向误差传播的深度学习方法,利用了梯度下降、误差项公式,分成前馈阶段和反向传播阶段。其中,Line2,迭代given 次;Line4,迭代每个sample 记录;
line6,…. 前馈阶段的过程如下图,即从x值输入开始,由激活函数转换为第0层输出a(0);根据公式1,转换为1层输入z(1)(想象,发生在某neuron的某条输入连接线上);根据公式2,转换为1层输出a(1)(想象,发生在某neuron上);以此类推,直到第L层的输出a(L);最后归一化计算出预期值y’。

在这里插入图片描述

   以下公式1,z(j,l) 是第l层第j个neuron的输入,该neuron全部连接线的累计计算出该neuron的输入;公式2 a(l,j)是该neuron的输出, 的f()是activation function,目的让结果值从0变成非0,使反向传播时计算(w,b)更高效。
在这里插入图片描述
   Line 7-11是反向传播迭代每layer;在每次迭代中,又迭代该layer的每个neuron。Line7的误差公式如下公式(3),即l层neuron j的误差项,由激活函数反函数、该neuron的输入z,以及下一层的误差项与weight的累加(想象多条连接线反向到该neuron)组成。
在这里插入图片描述
  误差公式可以由下面公式4 损失函数 推导出来。在公式4中,y(j)是x sample在neuron j的实际输出,a(L,j)是预期值,计算出的C(x)是根据x输入的第L层全部neuron的损失值,即每层只有1个损失值。该损失函数适合用于线性回归模型;如果是分类问题,损失函数用交叉熵。
在这里插入图片描述
  Line8、9,计算每个neuron的w,b对损失函数的导数,即梯度
  Line10、11,根据梯度下降公式 [1](即学习率、上一个迭代的w,b、梯度),计算出本次迭代的(w,b)

参考
[1] https://blog.youkuaiyun.com/lai_me/article/details/109130536#comments_13516893
[2] https://www.cnblogs.com/Luv-GEM/p/10694471.html
[3] https://blog.youkuaiyun.com/qq_16137569/article/details/81449209

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值