神经网络反向传播算法推导(机器学习九)

背景介绍

反向传播算法是神经网络的一个关键步骤,通过反向传播算法,可以计算出假设函数对所有神经网络参数的偏导数。
  神经网络算法的工作流程为:首先通过人工或其它算法确定特征 x \mathbf{x} x,并随机初始化所有神经网络参数;然后运用正向传播算法计算出神经网络的输出值;接下来运用反向传播算法计算输出值对所有参数的偏导数;最后运用梯度下降算法更新所有的神经网络参数。

符号定义

首先,对神经网络进行如下符号定义:

符号 意义
L L L 神经网络的总层数(包括输入层、隐藏层和输出层)
l l l l l l层神经网络, l = 1 , 2 , ⋯ , L l=1,2,\cdots,L l=12L
n n n 输入层的单元数
K K K 输出层单元数
S l S_l Sl l l l层神经网络的单元数
a i ( l ) a^{(l)}_i ai(l) l l l层的第 i i i个单元
a ( l ) \mathbf{a}^{(l)} a(l) l l l层所有单元值组成的向量,显然有 a ( 1 ) = x \mathbf{a}^{(1)}=\mathbf{x} a(1)=x a ( L ) = h Θ ( x ) \mathbf{a}^{(L)}=h_{\mathbf{\Theta}}(\mathbf{x}) a(L)=hΘ(x)
Θ j i ( l ) \Theta^{(l)}_{ji} Θji(l) 连接第 l l l层的第 i i i个单元和第 l + 1 l+1 l+1层的第 j j j个单元的参数
Θ ( l ) \mathbf{\Theta}^{(l)} Θ(l) 连接第 l l l层和第 l + 1 l+1 l+1层的参数矩阵
Θ \mathbf{\Theta} Θ 所有神经网络参数组成的张量
m m m 训练集的样本数

正向传播算法

正向传播算法的计算过程如下所示:
    a ( 1 ) = x a ( 2 ) = [ 1 ; g ( z ( 2 ) ) ] , z ( 2 ) = Θ ( 1 ) a ( 1 ) a ( 3 ) = [ 1 ; g ( z ( 3 ) ) ] , z ( 3 ) = Θ ( 2 ) a ( 2 ) ⋮ a ( L ) = [ 1 ; g ( z ( L ) ) ] , z ( L ) = Θ ( L − 1 ) a ( L − 1 ) h Θ ( x ) = a ( L ) \begin{array}{ll}\mathbf{a}^{(1)}=\mathbf{x}\\\mathbf{a}^{(2)}=[1;g(z^{(2)})],&z^{(2)}=\mathbf{\Theta}^{(1)}\mathbf{a}^{(1)}\\\mathbf{a}^{(3)}=[1;g(z^{(3)})],&z^{(3)}=\mathbf{\Theta}^{(2)}\mathbf{a}^{(2)}\\\vdots\\\mathbf{a}^{(L)}=[1;g(z^{(L)})],&z^{(L)}=\mathbf{\Theta}^{(L-1)}\mathbf{a}^{(L-1)}\\h_{\mathbf{\Theta}}(\mathbf{x})=\mathbf{a}^{(L)}\end{array} a(1)=xa(2)=[1;g(z(2))],a(3)=[1;g(z(3))],a(L)=[1;g(z(L))],hΘ(x)=a(L)z(2)=Θ(1)a(1)z(3)=Θ(2)a(2)z(L)=Θ(L1)a(L1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值