人生神经网络是模仿生物神经网络功能得一种验证模型。生物神经元受到传入的刺激,其反应又从输出端传到相连的神经元,输入与输出之间的关系一般是非线性的。神经网络是有大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。时间上,神经网络并没有完全反应大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟。
人工神经网络的基本单元是神经元模型,其主要包括三个基本要素:
一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。
一个求和单元,用于求取各输入信号的加权和(线性组合)。
一个非线性激活函数,起到分线性映射作用,并将神经元输出幅值限制在一定范围内(一般限制在(0,1)或(-1,1)之间)。
此外,还有一个阈值 θ k \theta_{k} θk(或者偏置 b k = − θ k b_{k}=-\theta_{k} bk=−θk)。
以上作用可分别用数学式表达出来:
u k = ∑ j = 1 p w k j x j = w k 1 x 1 + w k 2 x 2 + ⋯ + w k p x p v k = u k − θ k , y k = φ ( v k ) \\ u_{k} = \sum_{j = 1}^{p} w_{kj}x_{j}= w_{k1}x_{1} + w_{k2}x_{2} + \dots+w_{kp}x_{p} \\ v_{k} = u_{k} - \theta_{k}, y_{k} = \varphi(v_{k} ) uk=j=1∑pwkjxj=wk1x1+wk2x2+⋯+wkpxpvk=uk−θk,yk=φ(vk)
其中, x 1 , x 2 , … , x p x_{1}, x_{2}, \dots, x_{p} x1,x2,…,xp为输入信号, w k 1 , w k 2 , … , w k p w_{k1},w_{k2},\dots,w_{kp} wk1,wk2,…,wkp为神经元 k k k之权值, u k u_{k} uk为线性组合结果, θ k \theta_{k} θk为阈值, φ ( ⋅ ) \varphi(·) φ(⋅)为激活函数, y k y_{k} yk为神经元的输出。
偏置 b k b_{k} bk是神经元 k k k的外部参数,我们可以像处理输入信号一样考虑它,因而得到神经元模型的另一种描述图,如下。
对应上图的数学描述为
v k = ∑ j = 0 p w k j x j = w k 0 x 0 + w k 1 x 1 + w k 2 x 2 + ⋯ + w k p x p \\ v_{k} = \sum_{j = 0}^{p} w_{kj}x_{j}= w_{k0}x_{0}+w_{k1}x_{1} + w_{k2}x_{2} + \dots+w_{kp}x_{p} vk=j=0∑pwkjxj=wk0x0+wk1x1+wk2x2+⋯+wkpxp
其中 x 0 = + 1 ( 或 − 1 ) x_{0}=+1(或-1) x0=+1(或−1),权值 w k 0 = θ k w_{k0}=\theta_{k} wk0=θk
sigmoid激活函数即为S型函数。
φ ( v ) = 1 1 + e x p ( − α v ) \varphi(v) = \frac{1}{1+exp(-\alpha v)} φ(v)=1+exp(−αv)1
其中 α > 0 \alpha > 0 α>0可控制斜率。
φ ( v ) = t a n h ( v 2 ) = 1 − e x p ( − v ) 1 + e x p ( − v ) \varphi(v) = tanh(\frac{v}{2})=\frac{1-exp(-v)}{1+exp(-v)} φ(v)=tanh(2v)=1+exp(−v)1−exp(−v)
此函数具有平滑和渐进性,并保持单调性。
通常用到的学习规则有三种。
在这里,我们令 y k ( n ) y_{k}(n) yk(n)是输入 x k ( n ) x_{k}(n) xk(n)时神经元 k k k在n时刻的实际输出, d k ( n ) d_{k}(n) dk(n)表示期望的输出,则误差信号可写为
e k ( n ) = d k ( n ) − y k ( n ) e_{k}(n) = d_{k}(n)-y_{k}(n) ek(n)=dk(n)−yk(n)
最终目的:使某一基于 e k ( n ) e_{k}(n) ek(n)的目标函数达到要求,以使网络中每一输出单元的实际输出在某种意义上逼近应有输出。学习过程是将误差信号 e k ( n ) e_{k}(n) ek(n)作用于神经元k的突出权值修正调节中,以一步步逼近的方式使输出信号 y k ( n ) y_{k}(n) yk(n)向期望 d k ( n ) d_{k}(n) dk(n)靠近。一旦选定了目标函数形式,误差纠正学习就变成了一个典型的优化问题。最常用的目标函数是均方差判据,定义为误差平方和的均值:
J = E [ 1 2 ∑ k e k 2 ( n ) ] J =E \left[ \frac{1}{2} \sum_{k}^{} e_{k}^{2}(n) \right] J=E[21k∑ek2(n)]
E为期望算子。上式的前提是被学习的过程是平稳的,具体方法科用最优梯度下降法。直接用J作为目标函数时需要知道整个过程的统计特性,为解决这一问题,通常用 J J J在时刻n的瞬时值代替 J J J,即
E = 1 2 ∑ k e k 2 ( n ) E = \frac{1}{2} \sum_{k}^{} e_{k}^{2}(n) E=21k∑ek2(n)
问题变成求 E E E对权值 w w w的极小值,按梯度下降法,可得
Δ w k j ( n ) = − η ∂ ε ( n ) ∂ w k j ( n ) = η ( − ∂ ε ( n ) ∂ v k ( n ) ) ∂ v k ( n ) ∂ w k j ( n ) = η e k ( n ) φ ′ ( v k ( n ) ) x j ( n ) \Delta w_{kj}(n) = -\eta \frac{\partial \varepsilon (n)}{\partial w_{kj}(n)}=\eta \left( -\frac{\partial \varepsilon (n)}{\partial v_{k}(n)} \right) \frac{\partial v_{k}(n)}{\partial w_{kj}(n)}=\eta e_{k}(n)\varphi^{'}(v_{k}(n)) x_{j}(n) Δwkj(n)=−η∂wkj(n)∂ε(n)=η(−∂vk(n)∂ε(n))∂wkj(n)∂vk(n)=ηek(n)φ′(vk(n))xj(n)
式中, η \eta η为学习步长,这就是所说的误差纠正学习规则。
突触权值的更新可按下式来确定
w k j ( n + 1 ) = w k j ( n ) + Δ w k j ( n ) w_{kj}(n+1) = w_{kj}(n) + \Delta w_{kj}(n) wkj(n+1)=wkj(n)+Δwkj(n)
由神经心理学家Hebb提出,可归纳为“如果在某一突触(连接)每一边的两个神经元被同步激活,(同为激活或同为抑制),那么突触的强度被选择性地增强,反之则被选择性地减弱”,其数学描述为
Δ w k j ( n ) = w k j ( n + 1 ) − w k j ( n ) = η y k ( n ) x j ( n ) \Delta w_{kj}(n)=w_{kj}(n+1) - w_{kj}(n)=\eta y_{k}(n)x_{j}(n) Δwkj(n)=wkj(n+1)−wkj(n)=ηyk(n)xj(n)
(唐纳德·赫布(Donald Olding Hebb,1904.07.22-1985.08.20),加拿大心理学家,认知心理生理学的开创者。出生于加拿大新斯科舍省的切斯特(Chester Basin),逝于加拿大新斯科舍省。)
在竞争学习时,网络各输出单元相互竞争,最后只有一个最强者被激活。
一篇写不完,转到下一篇继续写基于BP神经网络得PID自适应控制——simulink平台(详细分析过程+完整代码+仿真结果)(二)。