神经元模型
神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
神经网络中最基本的成分是神经元模型,即上述定义中的“简单单元”。
M-P神经元模型:在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阀值进行比较,然后通过“激活函数”处理以产生神经元的输出。
理想的激活函数是下图(a)中所示的阶跃函数:将输入值映射为输出值“0”或“1”
“1”对应于神经元兴奋,“0”对应神经元抑制。然而阶跃函数具有不连续、不光滑等不太好的性质。
实际常用Sigmoid函数作为激活函数。
把许多的这样的神经元按一定的层次结构连接起来,就得到了神经网络。
从计算机科学的角度看,只需将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数,例如 y i = ∑ i = 1 n ( ω i x i − θ j ) y_i=\displaystyle\sum_{i=1}^{n}(ω_ix_i-θ_j) yi=i=1∑n(ωixi−θj)相互(嵌套)代入而得。
多层前馈神经网络
每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络称作“多层前馈神经网络”
前馈并不意味着网络中的信号不能向后传,而是指网络拓扑结构上不存在环或回路。
神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阀值;
换言之,神经网络“学”到的东西,蕴含在连接权与阀值中。
误差逆传播算法(bp神经网络)
对于给定的训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) … … ( x m , y m ) } , x i ∈ R d , y i ∈ R l D=\{(x_1,y_1),(x_2,y_2)……(x_m,y_m)\},x_i∈R^d,y_i∈R^l D={
(x1,y1),(x2,y2)……(xm,ym)},xi∈Rd,yi∈Rl,即输入实例由d个属性描述,输出 l l l维实值向量。
拥有d个输入神经元、 l l l个输出神经元、 q q q个隐层神经元的多层前馈网络结构,
1)其中输出层第 j j j个神经元的阀值用 θ j θ_j θj表示,
2)隐层第 h h h个神经元的阀值用 γ h γ_h γh表示
3)输入层第 i i i个神经元与隐层第 h h h个神经元之间的连接权为 v i h v_{ih} vih
4)隐层第 h h h个神经元与输出层第 j j j个神经元之间的连接权为 ω h j ω_{hj} ωhj
5)隐层第 h h h个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i α_h=\displaystyle\sum_{i=1}^{d}v_{ih}x_i αh=i=1∑dvihxi
6)输出层第 j j j个神经元接收到的输入为 β j = ∑ h = 1 q ω h j b h β_j=\displaystyle\sum_{h=1}^{q}ω_{hj}b_h βj=h=1∑qωhjbh
其中 b h b_h bh是隐层第 h h h个神经元的输出。
对训练实例 ( x k , y k ) (x_k,y_k) (xk,yk),假定神经网络的输出为 y ^ k = ( y ^ 1 k , y ^ 2 k … … y ^ l k ) \hat{y}_k=(\hat{y}_1^k,\hat{y}_2^k……\hat{y}_l^k) y^k=(y^1k,y^2k……y^lk)
即: y ^ j k = f ( β j − θ j ) \hat{y}_j^k=f(β_j-θ_j) y^jk=f(βj−θj)(式1.1)
神经网络在 ( x k , y k ) (x_k,y_k) (xk,yk)上的均方误差为: E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac{1}{2}\displaystyle\sum_{j=1}^{l}(\hat{y}_j^k-y_j^k)^2 Ek=21j=1∑l