BP算法的推导

反向传播算法的推导

201712092050_529.png

如图为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} \to w_{kj}-\eta \frac{\partial J} {\partial w_{kj} } \\ w_{ji} \to 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}^c\delta_k w_{kj} \]
故对权系数的调整变为
\[ w_{kj} \to w_{kj}-\eta \frac{\partial J} {\partial w_{kj} }= w_{kj}-\eta \delta_k y_j \\ w_{ji} \to w_{ji} - \eta \frac{\partial J} {\partial w_{ji}}= w_{ji}-\eta_j\delta x_i \]

反向传播算法

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

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

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

转载于:https://www.cnblogs.com/yueshangzuo/p/8025157.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值