深度学习反向传播的理解

本文介绍了反向传播的理解,将其视为用线性函数复合非线性函数拟合问题的过程,通过正向传播与实际结果的误差进行反向传播优化预测。重点强调了链式求导在算法中的关键作用,并详细阐述了反向传播过程中层数划分、bias的调整以及权重和偏置的更新步骤。
摘要由CSDN通过智能技术生成

我认为反向传播可以大致理解为用多个线性函数复合一个非线性函数去拟合一类问题的过程,根据这一类问题中一个样本的正向传播计算得到的结果,再根据预测的结果与实际结果的差异反向传播得到预测的结果对这个函数的影响,从而提高下一次结果预测的准确率。这个过程的原理有些类似先验概率的求法。

而关于反向传播的算法,我觉得最重要的一点就是链式求导的实现,导数的求法并不是最重要的,关键在于实现程序的过程能不能把“链式”给实现出来。很多时候会容易出错,想借此机会梳理一下 此次反向传播的实现过程。

反向传播要注意层数的划分,必须明确输入层、隐藏层、输出层,还要主义输入层和隐藏层要“秘密”地在每一层新增一个神经元,用来调节bias,如果输入值的个数是1,那么就要两个输入层神经元,其中①号的神经元的值为这个输入值,②号神经元的值为1,②号神经元与下一层的每个神经元之间的weight就相当于下一层每个神经元的bias,bias = weight2,i*1,这样就可以通过bias[i]+= deltas[i]*learn来调整bias了,同样的,对每个隐藏层都新增一个神经元也是这样的目的。

跟我的程序写的差不多,我觉得反向传播过程大致可以分为:

  1. 初始化神经网络(设置输入层、隐藏层、输出层个数和初始值);
  2. 向前传播得到预测结果,Output[h]=fit_function((Σi=0输入层神经元个数w
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值