感知器与BP神经网络的简单应用

本文介绍了感知器和BP神经网络的基本概念及算法流程。感知器是解决线性不可分问题的前馈神经网络模型,而BP神经网络通过前向传播和反向传播调整权重以减少误差。BP算法包括初始化权重、误差计算、权重更新等步骤,直到误差达到可接受范围或达到迭代次数上限。感知器算法则涉及权值初始化,通过不断迭代更新权重直到所有训练数据正确分类或满足终止条件。
摘要由CSDN通过智能技术生成

感知器与BP神经网络的简单应用

一、概念

1、BP神经网络
基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

2、感知器
感知器是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,可以解决任何线性不可分问题。

二、BP神经网络算法流程

在这里插入图片描述

1、初始化网络权重
假设输入层的节点个数为n,隐含层的节点个数为m,输出层的节点个数为l。其中激励函数为g(x)取Sigmoid函数。形式为:
在这里插入图片描述
2、隐含层的输出
如上面的三层BP网络所示,隐含层的输出为
在这里插入图片描述
3、输出层的输出
在这里插入图片描述
4、误差的计算
我们取误差公式为:
在这里插入图片描述
其中为期望输出。我们记,则可以表示为
在这里插入图片描述
5、权值和偏重的更新
权值的更新公式为:
在这里插入图片描述
隐含层到输出层的权重更新 在这里插入图片描述
则权重的更新公式为:
在这里插入图片描述
输入层到隐含层的权重更新 在这里插入图片描述
偏置的更新公式为:
在这里插入图片描述
隐含层到输出层的偏置更新
在这里插入图片描述
则偏置的更新公式为:
在这里插入图片描述
输入层到隐含层的偏置更新
在这里插入图片描述
6、判断结束
常见方法是指定迭代的代数,判断迭代次数是否达到了阈值或者输出误差是否小于可接受的范围。

代码:

% BP网络
% BP神经网络的构建
net=newff([-1 2;0 5],[3,1],{
   'tansig','purelin'},'traingd')
net.IW{
   1}
net.b{
   1}

p=[1;2];
a=sim(net,p)
net=init(net);
net.IW{
   1}
net.b{
   1}
a=sim(net,p)
%net.IW{
   1}*p+net.b{
   1}
p2=net.IW{
   1}*p+net.b{
   1}
a2=sign(p2)
a3=tansig(a2)
a4=purelin(a3)
net.b{
   2}
net.b{
   1}

net.IW{
   1}
net.IW{
   2}
0.7616+net.b{
   2}
a-net.b{
   2}
(a-net.b{
   2})/ 0.7616
help purelin

p1=[0;0];
a5=sim(net,p1)
net.b{
   2}
% BP网络
% BP神经网络的构建
net=newff([-1 2;0 5],[3,1],{
   'tansig','purelin'},'traingd')
net.IW{
   1}
net.b{
   1}
%p=[1;];
p=[1;2];
a=sim(net,p)
net=init(net);
net.IW{
   1}
net.b{
   1}
a=sim(net,p)
net.IW{
   1}*p+net.b{
   1}
p2=net.IW{
   1}*p+net.b{
   1}
a2=sign(p2)
a3=tansig(a2)
a4=purelin(a3)
net.b{
   2}
net.b{
   1}




P=[1.2;3;0.5;1.6]
W=[0.3 0.6 0.1 0.8]
net1=newp([0 2;0 2;0 2;0 2],1,'purelin');
net2=newp([0 2;0 2;0 2;0 2],1,'logsig');
net3=newp([0 2;0 2;0 2;0 2],1,'tansig');
net4=newp([0 2;0 2;0 2;0 2],1,'hardlim'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值