本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
本文面向对BP具有一些基本认识的读者,如果完全没有基础,请在入门篇里进行基础的学习
本文介绍、回顾和加深一些BP的基本知识,并从而概括提炼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] 之间。
本节讲解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的特性没法满足你的问题,那可以针对你的问题,另寻更适合的函数
本节总结和提炼BP神经网络的本质
进一步简单概括地了解BP神经网络
BP的本质总结
总的来说,
我们使用BP神经网络的本质就是,
已知数据点,现求n个tansig函数,使其叠加后能拟合任意数据点
而训练的过程,
其实就是调整各个tansig曲线(曲面/超曲面)的高矮肥瘦和位置
使所有tansig叠加后越来越迫近y
End