反向传播算法的推导

来源:互联网 发布:顶级定制晚礼服 知乎 编辑:程序博客网 时间:2024/05/23 01:09

一、参数说明

参数说明

W(l)ij:表示第l1层的第j个特征到第l层第i个神经元的权值

b(l)ij:表示第l1层的第j个特征到第l层第i个神经元的偏置(其中j恒为0,输入特征值a(l)0恒为1)


二、公式定义

  • 激活函数(这里采用sigmoid函数来做分类):f(z)=11+ez
  • l层神经元的状态值:z(l)=w(l)a(l1)+b(l),表示一个神经元所获得的输入信号的加权和(即:特征的线性组合)
  • l层神经元的激活值:a(l)=f(z(l)),特征的非线性映射,可把a(l)看作更高级的特征
  • 损失函数(MSE): J(W,b;x,y)=12a(l)y(l)2=12nli=1[a(l)iy(l)i]2
    这里写图片描述
    这里写图片描述

三、结合实例分析推导过程

  1. 我们以一个两层神经元为例对推导过程详细分析
    two-layer-network

    • 输入特征和输出类标值分别为:[x0,x1,x2]=[1,0.05,0.1];y(2)=[0,1]
    • 各参数初始化值分别为:
      这里写图片描述
  2. 梯度值的推导
      这里写图片描述
     这里写图片描述
       这里写图片描述

第一个公式的中间部分 (Θ(L−1))Tδ(L) 样式很熟悉吧,就是线性回归算法的预测函数的样式。


四、梯度检验、梯度消失和梯度爆炸问题

参考NNDL第五章:神经网络为什么难训练?


五、权重的更新

权重是同时更新的!
UFLDL—-Backpropagation Algorithm


六、QA

  1. 为什么算个偏导数就能说损失函数沿着梯度方向下降得最快?
  2. 引入反向传播算法的原因?
    答:这是为了方便计算损失函数的偏导数,也就是首先计算最后一层的残差,然后再一层一层的反向求出各层的误差,直到倒数第二层。
  3. How to predict?
  4. softmax 回归的损失函数,以及它是怎么做预测的?
  5. 神经网络的决策函数,损失函数,参数学习算法?
  6. 搭建网络的大体框架—结合超参数的选择p98
  7. 几层神经网络可以学出其高级特征???

1 0
原创粉丝点击