感知器神经网络与BP神经网络

感知器神经网络

一、感知器定义

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

二、感知器模型

在这里插入图片描述

三、相关代码的实现

1.感知器神经网络的构建
% 1. 感知器神经网络的构建
% 1.1  生成网络
net=newp([0 2],1);%单输入,输入值为[0,2]之间的数
inputweights=net.inputweights{1,1};%第一层的权重为1
biases=net.biases{1};%阈值为1

newp函数用来创建一个感知器,感知器层数为1。

% 1.2  网络仿真

net=newp([-2 2;-2 2],1);%两个输入,一个神经元,默认二值激活
net.IW{1,1}=[-1 1];%权重,net.IW{i,j}表示第i层网络第j个神经元的权重向量
net.IW{1,1}
net.b{1}=1;
net.b{1}
p1=[1;1],a1=sim(net,p1)
p2=[1;-1],a2=sim(net,p2)
p3={[1;1] [1 ;-1]},a3=sim(net,p3) %两组数据放一起
p4=[1 1;1 -1],a4=sim(net,p4)%也可以放在矩阵里面
net.IW{1,1}=[3,4];
net.b{1}=[1];
a1=sim(net,p1)

sim为仿真函数,可对模型进行仿真。sim函数中的net代表训练好的网络,第二个元素p1、p2、p3代表网络的输入。

此时结果为:
ans =

-1     1

ans =

 1

p1 =

 1
 1

a1 =

 1

p2 =

 1
-1

a2 =

 0

p3 =

1×2 cell 数组

{2×1 double}    {2×1 double}

a3 =

1×2 cell 数组

{[1]}    {[0]}

p4 =

 1     1
 1    -1

a4 =

 1     0

a1 =

 1
% 1.3  网络初始化
net=init(net);
wts=net.IW{1,1}
bias=net.b{1}
% 改变权值和阈值为随机数
net.inputweights{1,1}.initFcn='rands';
net.biases{1}.initFcn='rands';
net=init(net);
bias=net.b{1}
wts=net.IW{1,1}
a1=sim(net,p1)

init为神经网络初始化函数。

输出结果为:
wts =

 0     0

bias =

 0

bias =

0.6294

wts =

0.8116   -0.7460

a1 =

 1
2.感知器神经网络的学习和训练
% 2. 感知器神经网络的学习和训练
% 1 网络学习
net=newp([-2 2;-2 2],1);
net.b{1}=[0];
w=[1 -0.8]
net.IW{1,1}=w;
p=[1;2];
t=[1];
a=sim(net,p)
e=t-a
help learnp
dw=learnp(w,p,[],[],[],[],e,[],[],[],[],[])
w=w+dw
net.IW{1,1}=w;
a=sim(net,p)


net = newp([0 1; -2 2],1);
P = [0 0 1 1; 0 1 0 1];
T = [0 1 1 1];
Y = sim(net,P)
net.trainParam.epochs = 20;
net = train(net,P,T);
Y = sim(net,P)

train函数,根据网络、输入、目标输出,训练网络得到输出
learnp为学习函数

输出结果为:
w =

1.0000   -0.8000

a =

 0

e =

 1

dw =

 1     2

w =

2.0000    1.2000

a =

 1

Y =

 1     1     1     1

Y =

 0     1     1     1

在这里插入图片描述
在这里插入图片描述

% 2 网络训练
net=init(net);
p1=[2;2];t1=0;p2=[1;-2];t2=1;p3=[-2;2];t3=0;p4=[-1;1];t4=1;
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值