1、感知器理解
感知器是生物神经细胞的简单抽象,被指认为单层的人工神经网络,区别于复杂的多层感知器。单层感知器是最简单的前向人工神经网络形式。感知器是一种线性分类器,结构简单,能够学习并解决复杂的问题。
一、感知器模型
单层感知器是指只有一层处理单元的感知器,不包含输入层;若有输入层,则为两层。

输入层也为感知层,有N个神经元节点,无信息处理能力,只负责引入外部信息。每一个节点接受一个输入信号,N个节点一起组成了输入列向量P。
输出层也成为处理层,只有一个神经元节点,可以处理信息。
两层之间的链接用权值列向量Wn表示,一共可以有n个,N个权向量构成了感知器的权值列向量W。

对于中间的处理层来说,任意节点的净输入a来自输入层各节点的输入加权和

单层感知器的输出为` y=f(a),感知器的传递函数为f,一般选择符号函数作为其传递函数

以两个输入的单层感知器神经元为例,对于W1=1,W2=-1,阈值b=1,有以下的输入矢量分类:

分割线L将两个输入矢量在平面上分类:如果输入矢量在分割线上方或者位于分割线上,则感知器输入为1;如果输入矢量位于分割线下方,则感知器输入为-1
二、感知器初始化
对感知器初始化可以采用matlab神经网络工具箱的init()函数,使用init(net)可以得到一个初始化的神经网络net.
他的网络权值和阈值是按照初始化函数调整的,初始化函数由NET.initFcn设定,参数由NET.initParam指定。初始化函数用法:net=init(net)
例:用init(net)函数设计一个具有2个输入的单个神经元感知器。输入范围时:[0,2]
和[-1,1]。在程序最后需要显示设计的感知器权值和阈值。
net=newp([0 2;-1 1],1);%两个输入,一个神经元,默认二值激活
net.iw{1,1}%权重,%第一层的权重为1;net.IW{i,j}表示第i层网络第j个神经元的权重向量
net.b{1}%阈值为1
ans =
0 0
ans =
0
网络的权值和阈值都被设置为0
net = newp(PR,S,TF,LF)
net为生成的感知器神经网络;PR为一个R2的矩阵,由R组输入向量中的最大值和最小值组成;S表示神经元的个数;TF表示感知器的激活函数,缺省值为硬限幅激活函数hardlim;LF表示网络的学习函数,缺省值为learnp 。
net=init(net);
net.iw{1,1}
net.b{1}
网络的权值和阈值都设置为0,是初始值
三、感知器学习规则
感知器利用学习规则来调整网络的权值和阈值,使网络的输出最终达到目标的期望值
输入向量p,输出向量a,目标矢量为t的感知器,该感知器的学习误差为e,则e=t-a
感知器的权值和阈值的修正公式为
其中,i=1,2,…,n表示输出神经节点的个数,j=1,2,…,m表示输入神经节点的个数
更新后的权值和阈值分别为
该学习规则属于梯度下降法,如果存在收敛点,则算法在有限次的循环迭代后可以收敛到正确的目标矢量
感知器的学习规则可以通过函数learnp或者learnpn来实现