单层感知机

来源:互联网 发布:动物虚拟仿真解剖软件 编辑:程序博客网 时间:2024/05/01 13:59

单层感知机结构

神经网络最简单的结构就是单输出的单层感知机,单层感知机只有输入层和输出层,分别代表了神经感受器和神经中枢。下图是一个只有2个输入单元和1个输出单元的简单单层感知机。在图中,x 1、w2代表神经网络的输入神经元受到的刺激,w1w2表输入神经元和输出神经元间连接的紧密程度,w3代表输出神经元的兴奋阈值。Y是输出神经元受到的刺激总和,y为输出神经元的输出。

(单层感知机)

         如果整形函数(如sigmoid)确定,网络拓扑和连接权重就足以表示一个网络。在网络拓扑确定的情况下,利用训练数据修改连接权重的过程就是BP算法。我们利用一个例子说明单层感知机的训练过程。有一个单层感知机的网络拓扑如下图所示,权重wii=1,2,3)被初始化为0~1之间的随机小数。一个训练的样本我们用式子[(x1, x2),T]表示,x1x2为输入神经元的兴奋值,T教师信号,即期望输出神经元产生的输出,T取值一般为0或者1

(单层感知机的错误信号)


         单层感知机的BP训练分为三个过程:前向过程、错误反向传导过程和连接权重修改过程。

(1)前向过程

利用当前的权重和输入兴奋计算Yy的过程就是BP训练的前向过程,前向过程模拟的是脑神经的工作过程。Yy的计算满足公式3


2)错误信号反向传播过程

                                 (单层感知机的错误信号)

Err(Y) =  y * (1-y) * (T-y)

Err(y) = T-y

        对于未经训练的网络,y往往和期望输出T不一样,yT的差值构成整个神经网络的源错误信号,该信号要用来指导网络权重的修正。我们按照定义输出神经元的输入错误信号Err(Y)和输出错误信号Err(y)

3)连接权重的修改

方法1:

权重的修改,有两个感性直观的方法:

a.某个输出神经元的错误越大,与之相关的连接(w)就需要越多的修改;例如:Err(Y)很大,说明w修改量delta(w)也应该很大。

b.在输入神经元中,谁的兴奋值越大,对错误产生的责任就越大,其与输出神经元的连接就需要越多的修改。

例如:x1=0.1,x2=0.8。Err(Y)的出现,x2的责任更大,连接权重w2的修改量delta(w2)要比delta(w1)要更大。

基于以上两点,我们把一条连接权重的修改量定为该连接的前层神经元的输出x乘以后层神经元的Err(Y),用公式表示:

我们可以得到各权重修改量为:



算出delta(w)之后,我们通过如下公式完成对网络的更新:


方法2:

        我们可以从多元函数求极值角度解释上述过程。模型的训练的理念是经验风险最小化,也就是要使训练数据的错误|Err(y)|最小,但是由于|Err(y)|带有绝对值的目标不方便求导,我们把模型训练目标用函数lossFun表示。lossFun定义如下公式

         对于一个样本[(x1,x2),T],特征为x1x2;类别或输出目标为TlossFun是一个以[(x1,x2),T]为常量,以[w1,w2,w3]为变量的多元函数。模型的训练优化可看成一个多元函数求极值的问题。

已知条件为:


在上面公式中,x1x2T为常量,w1w2,w3为变量。lossFunw1求偏导得到:

同理可得:


      训练样本[(x1,x2),T]时,网络参数按照梯度下降的方向求解。偏导数算出的是lossFun上升最快的方向,W的修改量delta(W)lossFun下降最快的方向,所以delta(W)方向与梯度方向相反。




0 0