深度学习笔记:稀疏自编码器(2)——反向传导

  本文是深度学习笔记的第二篇,上一篇文章《神经元与神经网络》中讲到了前向传播算法,本文中将介绍如何进行参数的优化,即用反向传导。

0.本文中所使用的符号和一些约定

本文中所使用的样本集: {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}
其他符号:

符号描述
(x(j),y(j)) j 个样本
m样本总数
(x,y) 单个样本
xi i 个输入值
f()神经元激活函数,本文中为sigmoid函数,即 f(z)=11+e(z)
W(l)ij 神经网络中第 l 层第j个神经元和第 l+1 层第 i 个神经元连线上的权值
b(l)i l+1 层第 i 个神经元输入的偏置项
nl神经网络的总层数
Ll l 层,则输入层为L1,输出层为 Lnl
sl l 层的节点数(不包括偏置单元)
ali l 层第i单元的激活值(输出值),当 l=1 时, a(1)i=xi
z(l)i l 层第i单元输入加权和(包括偏置单元),有 a(l)i=f(z(l)i)
hW,b(x) 输入值为 x ,神经网络中权值和偏置项分别为W,b的情况下的输出值

约定 本文中将函数 f() 以及偏导数 f() 进行了针对向量参数的扩展,即:
f([z1,z2,z3])=[f(z1),f(z2),f(z3)]
f([z1,z2,z3])=[f(z1),f(z2),f(z3)]

1.代价函数

  要求解神经网络,就要通过最优化神经网络的代价函数(cost function)而得出其中的参数 W b的值。
  对于单个样例 (x,y) 下,代价函数为:
J(W,b;x,y)=12hw,b(x)y2
  对于一个包含 m 个样例的数据集,整体代价函数为:
J(W,b)=[1mmi=1J(W,b;x(i),y(i))]+λ2nl1l=1sli=1sl+1j=1(W(l)ji)2
      =[1mmi=1(12hw,b(x(i))y(i)2)]+λ2nl1l=1sli=1sl+1j=1(W(l)ji)2
其中第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过拟合,而 λ 则用来控制第一项和第二项的相对重要性

2.梯度下降

  为了优化代价函数,要进行以下几步:
1. 初始化每一个参数 W(l)ij b(l)i 为很小的接近零的随机值
2. 使用最优化算法,诸如批量梯度下降法,梯度下降公式如下:
W(l)ij=W(l)ijαW(l)ijJ(W,b)
b(l)i=b(l)iαb(l)iJ(W,b)
其中 α 是学习速率。
  计算梯度下降的关键步骤是计算偏导数,此时反向传导算法就要登场了。其实反向传导算法的思想和高数里复合函数求导的思想是一样的。

3.反向传导

  我们将求偏导的项单独拿出来看:
W(l)ijJ(W,b)=[1mmi=1W(l)ijJ(W,b;x(i),y(i))]+λW(l)ij    (1)
b(l)iJ(W,b) = 1mmi=1b(l)iJ(W,b;x(i),y(i))    (2)

  显然,求出 W(l)ijJ(W,b;x,y) b(l)iJ(W,b;x,y) 即可求出 W(l)ijJ(W,b) b(l)iJ(W,b)
  由于:
W(l)ijJ(W,b;x,y)=J(W,b;x,y)z(l+1)izl+1iWlij    (3)
b(l)iJ(W,b;x,y)=J(W,b;x,y)z(l+1)iz(l+1)ib(l)i    (4)
因此要先求 J(W,b;x,y)z(l)i ,在UFLDL中,将之称为“残差”,用 δ(l)i 表示,该残差表示第 l 层的第i个结点对最终输出值的残差产生了多少影响。
  计算 J(W,b;x,y)z(l)i 可得:
δ(nl)i=(yia(nl)i)f(z(nl)i)
δ(l)i=(sl+1j=1W(l)jiδ(l+1)j)f(z(l)i)
通过以上第一式可以求出第 nl 层结点的残差,而第二式则表达了第 l 层结点残差与第l+1层结点残差的关系,通过将两式回代进式(3)和式(4),则可以得到:
W(l)ijJ(W,b;x,y)=δ(l+1)ia(l)j    (5)
b(l)iJ(W,b;x,y)=δ(l+1)i    (6)
再将上面两式代入(1)和(2)就能够求出整体的偏导数了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值