• BP算法的推导


    反向传播算法的推导

    如图为2-layers CNN,输入单元下标为i,数量d;隐层单元下表j,数量(n_H);输出层下表k,单元数量c

    1.目标

    调整权系数(w_{ji}),(w_{kj}),使得输出((x_i,z_i))尽可能等于样本((x_i,t_i))
    即定义误差函数(J(w))最小

    [J(w)=sum_{x} J_x(w) \ J_x(w)=frac{1}{2} sum _{k=1}^c(t_k-z_k(x))^2 ]

    2.节点表示

    对于隐层中的节点,定义权值和为(net_j),则

    [net_j=sum _{i=1}^d w_{ji}x_i+w_{j0} ]

    同理,则输出层的节点权值和为(net_k),有

    [net_k=sum _{j=1}^{n_H} w_{kj}y_j+w_{k0} ]

    对于隐层节点输出(y_j=f(net_j)),输出层节点输出(z_k=f(net_k))

    3.权系数的调整方法

    按照梯度下降的方法,对误差函数$J(w)求导,调整 $ $frac {partial J} {partial w_{kj} } $和 $ frac{partial J} {partial w_{ji}} $

    [w_{kj} o w_{kj}-eta frac{partial J} {partial w_{kj} } \ w_{ji} o w_{ji} - eta frac{partial J} {partial w_{ji}} ]

    其中(eta)控制下降速率

    3.1对输出层权系数的微分

    [frac{partial J}{partial w_{kj}}=frac{partial J}{partial net_k} frac{partial net_k}{partial w_{kj}} \ 其中frac{partial J}{partial net_k}=frac{partial J}{partial z_k} frac {partial z_k}{partial net_k}=-(t_k-z_k)f'(net_k) ,quad frac{partial net_k}{partial w_{kj}}=y_j ]

    通常令(frac{partial J}{partial net_k}=delta_k),则(frac {partial J}{partial w_{kj}}=delta_k y_j)

    3.2对隐层权系数的微分

    [frac{partial J}{partial w_{ji}}=frac{partial J}{partial net_j} frac{partial net_j}{partial w_{ji}} \ 其中frac{partial J}{partial net_j}=frac{partial J}{partial y_j} frac {partial y_j}{partial net_j}=sum _{k=1}^c delta _k w_{kj}f'(net_j) ,quad frac{partial net_j}{partial w_{ji}}=x_i ]

    同样令(frac{partial J}{partial net_j}=delta_j),则(frac {partial J}{partial w_{ji}}=delta_j x_i)

    关于(frac{partial J}{partial y_j})的推导如下:

    [frac{partial J}{partial y_j}=sum_{k=1}^c frac{partial J}{partial net_k} frac{partial net_k}{partial y_j}=sum_{k=1}^cdelta_k w_{kj} ]

    故对权系数的调整变为

    [w_{kj} o w_{kj}-eta frac{partial J} {partial w_{kj} }= w_{kj}-eta delta_k y_j \ w_{ji} o w_{ji} - eta frac{partial J} {partial w_{ji}}= w_{ji}-eta_jdelta x_i ]

    反向传播算法

    (1)对于给定的样本集$ D={(x,t)} $,初始化网络结构 $d * n_H * c $。初始化权系数 (w),学习速率 (delta),阈值( heta),变量k=1

    (2)从D中取出第(k)个样本$(x,t) $,根据该样本更新权系数 (w)

    (3)(k=k+1),如果 (k>n),令k=1。转第2步继续进行循环。退出条件:在给定样本集上的平均误差足够小。

  • 相关阅读:
    Problem : [NOIP2015普及组]扫雷游戏
    Problem : [NOIP2014普及组]珠心算测验
    Problem : [Noip2005]谁拿了最多奖学金
    Problem : [Noip2008]火柴棒等式
    Problem : [Noip2010普及组]导弹拦截
    Problem : [NOIP2013普及组]计数问题
    Problem : [Noip2003]麦森数
    Problem: [Noip2008] 笨小猴
    Problem : 暴力摩托
    Problem : [Usaco2017 Dec]Blocked Billboard
  • 原文地址:https://www.cnblogs.com/yueshangzuo/p/8025157.html
Copyright © 2020-2023  润新知