卷积神经网络识别手写数字体笔记(二),主要转自 深度神经网络(DNN)反向传播算法(BP)

反向传播Back Propagation
DNN中BP解决问题:
已知:m个训练样本: { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \{(x_1,y_1), (x_2,y_2), ..., (x_m,y_m)\} {(x1,y1),(x2,y2),...,(xm,ym)}, x : a t t r s ( 特 征 ) × n _ i n x: attrs(特征)\times n\_in x:attrs()×n_in, y : a t t r s ( 特 征 ) × n _ o u t y: attrs(特征)\times n\_out y:attrs()×n_out(特征维度)。
目标: ( x t e s t , ? ) (x_{test},?) (xtest,?)预测 y t e s t y_{test} ytest
过程:训练样本输入计算出的输出尽可能的等于或很接近样本输出。用一个合适的损失函数来度量训练样本的输出损失,损失函数进行优化求最小化的极值,使用梯度下降法迭代。

DNN反向传播算法过程
    由于梯度下降法有批量(Batch),小批量(mini-Batch),随机三个变种,这里我们以最基本的批量梯度下降法为例来描述反向传播算法。实际上在业界使用最多的是mini-Batch的梯度下降法。不过区别仅仅在于迭代时训练样本的选择而已。

输入: 总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长 α α α,最大迭代次数MAX与停止迭代阈值 ϵ ϵ ϵ,输入的m个训练样本 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \{(x_1,y_1), (x_2,y_2), ..., (x_m,y_m)\} {(x1,y1),(x2,y2),...,(xm,ym)}
    输出:各隐藏层与输出层的线性关系系数矩阵 W W W和偏倚向量 b b b
    1) 初始化各隐藏层与输出层的线性关系系数矩阵 W W W和偏倚向量 b b b的值为一个随机值。

2)for iter to 1 to MAX:
    2-1) for i =1 to m:
      a) 将DNN输入 a 1 a^1 a1设置为 x i x_i xi
      b) for l l l=2 to L,进行前向传播算法计算 a i , l = σ ( z i , l ) = σ ( W l a i , l − 1 + b l ) a^{i,l} = \sigma(z^{i,l}) = \sigma(W^la^{i,l-1} + b^l) ai,l=σ(zi,l)=σ(Wlai,l1+bl)
      c) 通过损失函数计算输出层的 δ i L δ_i^L δiL
      d) for l l l= L-1 to 2, 进行反向传播算法计算 δ i , l = ( W l + 1 ) T δ i , l + 1 ⊙ σ ′ ( z i , l ) \delta^{i,l} = (W^{l+1})^T\delta^{i,l+1}\odot \sigma^{'}(z^{i,l}) δi,l=(Wl+1)Tδi,l+1σ(zi,l)
    2-2) for l l l = 2 to L,更新第 l l l层的 W l W_l Wl, b l b_l bl: W l = W l − α ∑ i = 1 m δ i , l ( a i , l − 1 ) T W^l = W^l -\alpha \sum\limits_{i=1}^m \delta^{i,l}(a^{i, l-1})^T Wl=Wlαi=1mδi,l(ai,l1)T , b l = b l − α ∑ i = 1 m δ i , l b^l = b^l -\alpha \sum\limits_{i=1}^m \delta^{i,l} bl=blαi=1mδi,l
    2-3) 如果所有 W W W b b b的变化值都小于停止迭代阈值 ϵ ϵ ϵ,则跳出迭代循环到步骤3。
    3) 输出各隐藏层与输出层的线性关系系数矩阵 W W W和偏倚向量 b b b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值