神经网络-专题教程

【流程】梯度下降法实现BP神经网络算法流程

作者 : 老饼 发表日期 : 2022-06-09 05:03:21 更新日期 : 2024-11-12 18:39:14
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com


梯度下降法是BP神经网络的一个基础训练算法,它简单且有效

本文讲解梯度下降算法求解BP神经网络的算法思路与流程,以及算法中涉及的相关公式

具体实现代码可参考《梯度下降法求解BP神经网络-代码》 



      01. 梯度下降算法简介    




本节简单回顾梯度下降法的原理与流程




   梯度下降算法原理-回顾   


梯度下降算法的思想是先初始化先初始化一个初始解,
然后不断地根据目标函数L的梯度下降方向,调整x,最后达到局部最优值。
 其原理如下:
  梯度下降算法的思想
 算法更详细的介绍请看《梯度下降算法原理







   02. 梯度下降求解BP神经网络-算法流程   




本节展示梯度下降算法求解BP神经网络的算法流程




     梯度下降求解BP神经网络-算法主流程     


梯度下降求解BP神经网络的算法流程如下:
 
梯度下降求解BP神经网络的算法流程
1. 先初始化W,b                                       
2. 按照梯度公式算出梯度                         
3. 将W和b往负梯度方向调整                    
4. 不断循环(1)(2)(3),直到达到终止条件  
终止条件为:达到最大迭代次数,或误差足够小





       BP神经网络的梯度公式     


梯度下降法在迭代过程使用到了BP神经网络的误差函数E(W,b)的梯度,
我们需要求出它的梯度公式
我们这里以一个隐层,隐层激活函数为tansig,输出层激活函数为purelin为例,
梯度公式为:

 输出层梯度公式
输出层权重梯度:                                         
输出层阈值梯度:                                               
 隐层梯度公式
隐层权重梯度:     
隐层阈值梯度:             
✍️符号说明
 为样本个数、输出个数                                               
是第m个样本第k个输出的误差        
是第m个样本第i个隐节点的激活值           
是第m个样本第i个输入                                                  
✍️详细推导过程可见《BP神经网络的梯度公式推导





   笔者语   


使用梯度法训练BP神经网络,整个训练算法流程很简单,
较复杂的地方就仅在求梯度的公式而已,其它按照梯度下降算法的流程就可以了










 End 




联系老饼