神经网络-专题教程

【原理】BP神经网络的误差函数与训练算法

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



BP神经网络通过后馈传播误差的方式来调整模型的权重与阈值,使模型的误差下降

本文讲解BP神经网络的误差函数、BP神经网络的训练算法及梯度下降法训练BP的流程

通过本文,可以了解BP神经网络的误差函数是什么,以及BP神经网络有哪些训练算法




   01. BP神经网络的误差函数   




本节展示BP神经网络的均方误差函数




     BP神经网络模型表达式     


在使用BP神经网络时,确定了结构(隐层层数、隐节点个数、传递函数)之后,
 也就确定了BP神经网络的数学表达式
  例如,一个三层的BP的表达式类似如下形式:
 
BP神经网络的数学表达式





   BP神经网络模型的误差函数   


在模型的表达式确定后,网络预测值与样本真实值的误差也就确定了,
 在BP神经网络中,采用均方误差作为误差函数,如下:
 
 其中,
  :训练样本个数             
  :为输出个数               
         :第i个样本第j个输出的预测值
         :第i个样本第j个输出的真实值
 BP神经网络的误差函数是一个关于W,b的函数,采用不同的权重和阈值,就有不同的误差







   02. BP神经网络的训练   




本节讲解什么是BP神经网络的训练,以及matlab提供的相关训练算法




     什么是BP神经网络的训练     


在BP神经网络结构确定后,其中的W、b仍未确定,那W、b该如何确定?
不同的W,b会带来不同的网络误差,所以希望求得一组W,b,使上述的误差函数最小
 BP神经网络的训练是什么
对W,b的求解并不是一件容易的事情,目前的数学水平还没有能力求得 W,b 的精确解,
BP神经网络通常是使用算法进行求解,使用算法对BP进行求解的过程,就称为BP神经网络的训练





     BP神经网络的训练算法    


BP神经网络的训练算法很多,较经典的有如下两种算法:
  👉 梯度下降算法 
 
👉 LM算法        
 一、梯度下降算法
 
梯度下降法是最基本、最基础的算法,它较为简单、有效
但缺点是往往训练时间过长、甚至有时还不够精确就停止训练等
 作为入门学习,一般都是以梯度下降算法来理解BP神经网络的训练
 
二、LM算法 
LM(Levenberg-Marquardt)算法相对梯度法会更为快,
但对于数据量过大的时候不支持,一般情况都是可以使用的
 作为实际使用,BP神经网络的训练一般都是使用LM算法




     更多的BP神经网络的训练算法     


对于更多的BP神经网络的训练算法,
 我们不妨参考matlab神经网络工具箱提供的训练算法(求解算法),如下:
                梯度下降法(traingd)                   
  
       有动量的梯度下降法(traingdm)         
  
        自适应lr梯度下降法(traingda)           
  
      自适应lr动量梯度下降法(traingdx)      
  
             弹性梯度下降法(trainrp)              
  
  Fletcher-Reeves共轭梯度法(traincgf)    
  
    Ploak-Ribiere共轭梯度法(traincgp)     
  
     Powell-Beale共轭梯度法(traincgb)     
  
             量化共轭梯度法(trainscg)             
  
                拟牛顿算法(trainbfg)                 
  
                一步正割算法(trainoss)              
  
      Levenberg-Marquardt法(trainlm)     
其中,梯度下降法是最基本,最基础的算法,上述很多算法是在梯度下降法的基础上进一步改进得到
虽然训练算法很多,但一般都只用lm算法进行训练







以上就是BP神经网络的误差函数与训练方法的全部内容了~








 End 





联系老饼