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

【原理】BP神经网络原理与本质

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



本文面向对BP具有一些基本认识的读者,如果完全没有基础,请在入门篇里进行基础的学习

本文介绍、回顾和加深一些BP的基本知识,并从而概括提炼BP神经网络的本质




  01. BP神经网络的关键知识回顾   


本节先简单回顾BP神经网络的数学表达式与tansig函数

为下文讲解BP神经网络的本质作准备



     BP神经网络的数学表达式    


在讲解BP神经网络的本质前,
不妨先来简单回顾BP神经网络的数学表达式

通过前面的学习,我们已经知道,
BP神经网络的数学表达式类似如下形式:
  
下面对BP神经网络的本质理解将围绕该表达式展开


     tansig函数     


现在再让我们来回顾BP神经网络的传递函数tnasig函数
 
 tansig的数学表达式如下
 
  
   

可见,tansig是一个y在(-1,1)之间的S曲线,
其中,
(1)  曲线部分在大概在[-3,3]之间,在x=[-3,3]之外,值基本趋向了-1和1,
(2)  斜线部分在 [-1.7 ,1.7] 之间。                                                            






  02. BP神经网络的本质   


本节讲解BP神经网络的本质,

是后面学习、讨论和研究BP神经网络的基础



      隐神经元的本质     


  
 观察上图的数学表达式,
我们会发现,
隐神经元对应的数学对象就是tansig
而最终的y,则是由多个tansig函数线性叠加而成
也就是说,
BP神经网络的原理
其实就是用多个tansig函数叠加来组合成目标函数
而每个隐神经元背后都代表着一个tansig
用多少个隐神经元,就代表我们打算用多少个tansig来组合成目标函数



     参数的本质    


既然隐神经元的本质是tansig,
那么,参数的本质就是用于控制tansig的形态
如下,
 各个参数控制了tansig的形态(肥瘦高矮及位移)
 
所以,BP神经网络就是先预设隐节点个数(tansig个数)
然后通过调整参数,也即调整各个tansig的形态,
使最后多个tansig叠加后能逼近目标函数


  
     BP神经网络的本质    


  通过上面的讨论已经非常清晰,
BP神经网络的本质就是用多个不同形态的tansig来叠加出目标函数
虽然tansig是比较单一的S形函数,
但叠加多个形态不一的tansig,就可以捏造出任意的曲线
如下
 
  
  
               所以,BP的关键是用多少个tansig曲线,和每个tansig应该长什么样
也即是用多少个隐神经元,和各个权重、阈值分别应该是多少
 而BP神经网络的训练主要就是寻找合适的参数
也即调整各个tansig的形态
使最后所有tansig叠加后,能拟合训练数据的y
✍️为什么用tansig函数?
因为tansig函数只有局部非线性,也即它只对局部有影响,
而对于线性部分,可以认为就是一个常数,也即没有影响
也就是说,
它可以“只捏造其中一个局部,而不影响其它地方”
同时,它是连续可导函数
这样可以使叠加出的函数也是连续可导函数
那可以用其它函数吗?
可以,但tansig已经满足了目前的需求,因此没必要多此一举
如果你发现tansig的特性没法满足你的问题,那可以针对你的问题,另寻更适合的函数





     03. BP的本质总结    


本节总结和提炼BP神经网络的本质

进一步简单概括地了解BP神经网络



     BP的本质总结    


总的来说,
我们使用BP神经网络的本质就是,
已知数据点,现求n个tansig函数,使其叠加后能拟合任意数据点
而训练的过程,
其实就是调整各个tansig曲线(曲面/超曲面)的高矮肥瘦和位置
使所有tansig叠加后越来越迫近y










 End







联系老饼