老饼讲解-神经网络 机器学习 神经网络 深度学习
BP算法-自实现
1.BP算法重现-开篇导读与回顾
2.BP的初始化与梯度公式
3. BP的训练算法与流程
4.BP代码自实现

【拓展】BP神经网络的梯度公式(三层)

作者 : 老饼 发表日期 : 2022-06-09 04:53:14 更新日期 : 2023-12-12 10:26:17
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com


三层BP神经网络是最常用的神经网络

本文给出三层BP神经网络具体的梯度公式

用于三层BP神经网络代码实现时参考




    01. 三层BP神经网络的梯度公式    



本节展示三层BP神经网络的梯度公式,详细推导过程见下节



     三层BP神经网络的梯度公式    


对于常用的三层BP神经网络
即如下的BP神经网络:
👉 一个隐层                  
 👉 隐层使用的激活函数为tansig 
👉 输出层的激活函数为purelin 


待求的权重、阈值只有四个:

   

它们单样本的梯度公式为

隐层->输出层权重梯度  :                                                     
 
 输出层阈值梯度        :                                                                  
 
输入层->隐层权重梯度  :  
 
隐层阈值梯度          :             
✍️关于整体样本的梯度公式 
 整体样本的梯度公式则为所有样本的梯度公式之和
 例如
 





    02. 三层BP梯度公式推导过程   



本节在多层网络的推导结果基础上,推导三层BP的具体梯度公式



    多层网络单样本梯度公式回顾   


根据《BP神经网络的梯度公式推导》的结果
对于多层网络,单样本第k层的梯度计算公式如下:
 
                                     
 
                                                    
 
 其中

 


👉符号说明
N是节点值                     
A代表N的激活值                
 
是哈达玛积(矩阵对应元素相乘)   
✍️关于激活函数的导数公式
节点的梯度中,依赖了激活函数的梯度
对于常用的激活函数,有:

当 T 为tansig时:                         
 
当 T 为logsig时: 
 
当 T 为purelin时:                                                                 




    三层网络公式推导    


将多层网络的推导结果套用于三层BP神经网络
(隐层激活函数为tansig、输出层为purelin)
可轻易得到

 隐层到输出层的公式
  

 输出层的节点梯度为

  

 所以隐层到输出层的权重 和输出层的阈值梯度为 
 
  
 
                            
输入层到隐层的公式
  
输入层到隐层的节点梯度为:
 
  
   
所以输入层到隐层的权重 和隐层的阈值梯度为:


 
                           
 












 End 










联系老饼