感知器与BP神经网络学习笔记

本文是关于感知器和BP神经网络的学习笔记。首先介绍了感知器的基本概念、分类算法步骤、权重更新算法以及代码实现,并分析了结果。接着详细阐述了BP神经网络的概述,包括其工作原理和代码实现,展示了运行结果和性能分析。
摘要由CSDN通过智能技术生成

(一)感知器
1.1 基本介绍
感知器学习算法是神经网络中的一个概念,单层感知器是最简单的神经网络,输入层和输出层直接相 连,每一个输入端和其上的权值相乘,然后将这些乘积相加得到乘积和,这个结果与阈值相比较(一般为0),若大于阈值输出端就取1,反之,输出端取-1

在这里插入图片描述
1.2 感知器分类算法步骤
权重向量W,训练样本X
1.把权重向量初始化为0,或把每个分类初始化为[0,1]间任意小数
2.把训练样本输入感知器,得到分类结果(1或-1)
3.根据分类结果更新权重向量
.
1.3权重更新算法
W(j)=W(j)+ΔW(j);ΔW(j)=η*(y-y’)*X(j);
η:表示学习率,是介于[0,1]之间 的一个小数
y:输入样本的正确分类
y’:感知器计算出来的分类
通过上面公式不断更新权值,直到达到分类要求。
.
1.4 代码实现

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

% 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)


% 2 网络训练
net=init
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值