神经网络专题 (一) 感知器

人工神经网络,简称神经网络,它是一种算法,来源是模拟人的生物神经元工作机制。其实不需要去详细了解生物神经网络的细节原理,大概知道些关键名词即可,对以后神经网络的理解没什么影响。神经网络算法的主要功能是预测、分类、识别。神经网络有:感知器、线性神经网络、BP神经网络、RBF神经网络、Hopfield神经网络、CNN卷积神经网络等。感知器是最简单的神经网络,线性神经网络在线性处理上很有用,BP神经网络是应用最广泛的网络,Hopfield神经网络是反馈型神经网络,RNN卷积神经网络在人工智能研究领域新兴起来的网络。

感知器一般指单层感知器,它是指只含有输入层和输出层的神经网络,模型如下:

输入层为p1、p2、... 、pn个神经元输入和对应的权值w1、w2、... 、wn。输入层用向量表示为:\small P=\begin{bmatrix} p1, p2, ... ,pn \end{bmatrix}T,\small W=\begin{bmatrix} w1,w2,...,wn \end{bmatrix}T。输出层包含一个求和操作和函数f映射,其中y为感知器的输出(多输入,单输出),a为输入加权求和的结果,b为偏置,f为一种对a的传递函数,对于感知器来说,f一般为符号函数,即输出结果只有-1和1(每次输入,对应一个单值的输出;多次输入,得到输出向量),输出层可以表示为:

             \small a=\sum_{i=1}^{i=n}pi\cdot wi +b     

             \small y=f(a)

了解了神经网络的基本结构和计算流程之后,再对其工作原理进行分析。

首先是感知器的学习规则(梯度下降法):对于输入为P,输出为y,目标输出为T的感知器,误差为e=T-y。则感知器的权值和偏置的修正公式为:

            \small \Delta w(i,j)=[T(i)-y(i)]\cdot P(j)=e(i)\cdot P(j)

            \small \Delta b=[T(i)-y(i)]\cdot 1=e(i)

公式说明:P为多次输入的向量,y为多次输入对应的输出向量,T为期望结果(目标向量),e为网络误差。i表示输出向量的维数(i=1,2,...,D),j为神经元的个数(j=1,2,...,n)。

 更新之后的权值:

             \small w(i,j)=w(i,j)+\Delta w(i,j)

              \small b(i)=b(i)+\Delta b(i)

接下来就是利用感知器的学习规则进行训练:

      step1:  初始化网络,计算实际输出和目标输出之间的误差,利用学习规则修正权值和偏置。

      step2:计算在新的权值和偏置下的误差,继续修正权值和偏置。

      step3:当达到一定的误差要求或者满足最大迭代次数时,训练结束,得到感知器模型。

下面介绍matlab神经网络工具箱中的关于感知器的相关函数:

     newp:  创建一个感知器

     sim: 仿真函数

     train:训练函数

     plotpc: 在感知器向量中绘制分界线

     plotpv:  绘制感知器的输入向量和目标向量

     mae:计算平均绝对误差

下面简单举例说明各种函数的用法:

   例1:利用单层感知器实现与门电路的逻辑功能

P=[0 0 1 1;0 1 0 1];
T=[0 0 0 1];
figure(1)
plotpv(P,T)
net=newp(minmax(P),1);
y=sim(net,P);
net.trainParam.epochs=50;
net=train(net,P,T);
Y=sim(net,P);
perf=mae(Y-T);
plotpc(net.IW{1,1},net.b{1})

输出Y=[0 0 0 1]

输入向量P为4个输入向量:[0 0],[0 1],[1 0],[1 1],目标输出:[0]、[0]、[0]、[1]

newp函数:net=newp(pr,ps,tf,lf),pr为输入向量每行的最大最小值组成的多行两列的矩阵,ps为感知器的层数,tf为传递函数,默认是hardlim还有hardlims,lf为学习函数,默认是learnp还有learnpn。

minmax函数:求矩阵每行的最大最小值,返回一个多行两列的矩阵。

sim函数:对模型进行仿真。

train函数:根据网络、输入、目标输出,训练网络得到输出。


感知器主要是实现简单的线性可分的分类问题,在实际应用中应当根据面对的问题,转化为感知器能够处理的情况。

另外,多层感知器在机器学习、人工智能方面有着非常重要的作用,感知器的研究在人工智能领域具有很多的研究意义。

  • 13
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值