感知器神经网络

感知器是一种前馈人工神经网络,是人工神经网络中的一种典型结构。感知器具有分层结构,信息从输入层进入网络,逐层向前传递到输出层。根据感知器神经元变换函数、隐层数以及权值调整规则的不同,可以形成具有各种功能特点的人工神经网络。

一、单层感知器

包括一个线性的累加器和一个二值阈值原件,同时还有一个外部偏差。线性累加器的输出作为二值阈值原件的输入,这样当二值阈值元件产生的输入是整数,神经元就产生输出+1,繁殖,如果其输入是负数,则产生输出-1.即:

使用单层感知器的目的就是让其对外部输入x1,x2,...,xm进行识别分类,单层感知器可将外部输入分为两类:l1和l2。当感知器的输出为+1时,可认为输入x1,x2,...,xm属于l1类,当感知器的输出为-1时,可认为输入x1,x2,...,xm属于l2类,从而实现两类目标的识别。在m维信号空间,单层感知器进行模式识别的判决超平面由下式决定:

二、多层感知器

多层感知器是单层感知器的一种推广形式,多层感知器网络的信息是逐层向前传播的,下一层的个单元与上一层的每个单元项链。输入单元按照输入/输出关系式进行操作,每层之间的连接权值可以通过学习规则进行调整。可以看出,多层感知器实际上就是多个单层感知器经过适当组合设计而成的,它可以实现任何形状的划分。

三、感知器的局限性

1.感知器神经网络的传输函数一般采用阈值函数,所以输出只有两种值;

2.单层感知器只能用于解决线性可分的分类问题,而对线性不可分的分类问题无能为力;

3.感知器学习算法只适应于单层感知器网络,所以一般感知器网络都是单层的。

四、神经网络显示函数

1. plotpc函数

该函数用于感知器向量绘图中绘制分界线。函数的调用格式为:

plotpc(W,B)

该函数对含权矩阵W和偏差向量B的硬特性神经元的两个或三个输入画一个分类线。

2.plotpv函数

该函数用于绘制感知器的输入向量和目标向量。函数的调用格式为:

plotpv(P,T):以T为标尺,绘制P的列向量

plotpv(P,T,V):在V的范围中绘制P的列向量

例1:‘或’门实现

由此可见,感知器在训练以前的输出是不符合要求的,经过三次训练后的输出已经和目标向量一致了,训练过程如上图所示。

例2:‘异或’门实现

clear all;

pr1=[0 1;0 1];%设置随机感知器层输入问题每个元素的值域

while 1

net1=newp(pr1,3);

% 指定随机感知器层权值初始化函数为随机函数

net1.inputweights{1}.initFcn='rands';

% 指定随机感知器层阈值初始化函数为随机函数

net1.biases{1}.initFcn='rands';

net1=init(net1);%初始化随机感知器层

iw1=net1.iw{1};

b1=net1.b{1};

% 随机感知器层仿真

p1=[0 0;0 1;1 0;1 1]';%随机感知器输入向量(样本)

[a1,pf]=sim(net1,p1);

% 初始化第二层感知器层

pr2=[0 1;0 1;0 1];%设置第二感知器输入向量每个元素的值域

net2=newp(pr2,1);%定义第二感知器层

% 训练第二感知器层

net2.trainParam.epochs=10;

net2.trainParam.show=1;

p2=ones(3,4);%初始化第二感知器层的输入向量

p2=p2.*a1;%随机感知器层的仿真输出结果作为第二感知器的输入向量

t2=[0 1 1 0];%第二感知器层的目标向量

% 训练第二感知器层

[net2,tr2]=train(net2,p2,t2);

a2=sim(net2,p2)

if a2==t2

break

end

end

disp('输出训练过程经过的每一步长为:')

epoch2=tr2.epoch

disp('输出训练过程经过的恶误差:')

perf2=tr2.perf

disp('第二感知器的权值向量为:')

iw2=net2.iw{1}

disp('第二感知器的阈值向量为:')

iw2=net2.b{1}

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2017-12-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ArrayZoneYour的专栏

用Python从零开始构建反向传播算法

在本教程中,你将探索如何使用Python从零开始构建反向传播算法。

1.4K9
来自专栏机器学习从入门到成神

机器学习之深入理解神经网络理论基础、BP算法及其Python实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

2041
来自专栏机器学习算法工程师

LSTM模型与前向反向传播算法

在循环神经网络(RNN)模型与前向反向传播算法中,我们总结了对RNN模型做了总结。由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改...

4833
来自专栏奇点大数据

卷积神经网络对图片分类-中

接上篇:卷积神经网络对图片分类-上 5 池层(Pooling Layers) 池层通常用在卷积层之后,池层的作用就是简化卷积层里输出的信息, 减少数据维度,降...

3357
来自专栏SIGAI学习与实践平台

理解Spatial Transformer Networks

随着深度学习的不断发展,卷积神经网络(CNN)作为计算机视觉领域的杀手锏,在几乎所有视觉相关任务中都展现出了超越传统机器学习算法甚至超越人类的能力。一系列CNN...

1505
来自专栏机器学习算法工程师

干货|(DL~3)deep learning中一些层的介绍

文章来自:https://leonardoaraujosantos.gitbooks.io 原文作者:Leonardo Araujo dos Santos

1533
来自专栏红色石头的机器学习之路

matlab svmtrain和svmclassify函数使用示例

监督式学习(Supervised Learning)常用算法包括:线性回归(Linear Regression)、逻辑回归(Logistic Regressio...

7010
来自专栏机器学习算法与Python学习

神经网络

神经网络 来源:UFLDL教程 本文为神经网络综合系列的第一篇,通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法...

3857
来自专栏机器学习算法工程师

Object Detection系列(一)R-FCN

作者:张 旭 编辑:祝鑫泉 ? Object Detection系列(一) R-FCN R-FCN简介 上面这张图在这个系列文章中都会出现,可以看到,在时...

2873
来自专栏智能算法

机器学习三人行(系列六)----Logistic和Softmax回归实战剖析(附代码)

本文主要实战Logistic回归和softmax回归在iris数据集上的应用,通过该文章,希望我们能一起掌握该方面的知识。 1. Logistic回归 我们在系...

66310

扫码关注云+社区

领取腾讯云代金券