单层感知器神经网络matlab,MATLAB神经网络——单层感知器
目录
单层感知器基础理论知识
MATLAB神经网络工具箱使用例程
算法实现
参考文献
单层感知器基础理论知识
关于单层感知器的理论知识与MATLAB中单层感知器相关函数,在单层感知器--matlab神经网络这篇文章中有详细的讲解。
MATLAB神经网络工具箱使用例程
实例:在下图中,o点的输出值为1,*点的输出值为0。希望能获得一个神经网络,当我们输入一个坐标时,它能给出对应的输出值。
根据理论知识,结果将会是一条直线(x1*w1+x2*w2+b=0),他将会把平面分割为两块区域,一块输出值为0,一块输出值为1。使用MATLAB神经网络工具箱求解代码如下:
net = newp([0 1; 0 1],1) %创建一个单层感知器(NEW Perceptron),它有两个输入节点(假设为x1和x2),x1的取值范围是0~1,x2的取值范围是0~1,有一个节点。
P = [0 0 1 1; 0 1 0 1]; %输入样本,在这里是一个2X4的矩阵,矩阵的每一列表示一个样本点
T = [0 1 1 1]; %期望值(输出值),对应输入样本
net.trainParam.epochs = 20; %net是已经创建的神经网络,它本质上是一个对象,在这里修改trainParam的epochs值为20,表示训练最大的迭代次数为20次
net = train(net,P,T); %训练神经网络
%以下为理解‘单层感知器’而做的可视化部分,非求解问题必须代码
Y = sim(net,P);%对训练好的神经网络仿真(simulate),把样本值传入神经网络,观察输出结果于原结果是否一致
b = net.b{1,1}; %我们的目的实际上是为了获得直线(x1*w1+x2*w2+b=0),这里获取b值(它存储在net对象的b参数值里)
w1 = net.IW{1,1}(1); %获取w1值
w2 = net.IW{1,1}(2); %获取w2值
% 绘图
x1 = -1:0.1:2;
x2 = -w1/w2*x1-b;
plot(x1,x2,'k')
hold on
plot(P(1,2:end),P(2,2:end),'ko');
plot(P(1,1),P(2,1),'r*');
axis([-1,2,-1,2])
legend('分类直线','值为1','值为0')
结果如下
测试神经网络,过程如下(正确性可从上图中观察得出)
>> sim(net,[0.1;0.1])
ans =
0
>> sim(net,[0.5;0.5])
ans =
1
算法实现
根据单层感知器--matlab神经网络文中 “二、学习算法步骤:”,上面的问题可根据算法步骤,用以下MATLAB代码实现(不使用MATLAB神经网络工具箱):
n=0.2; % 学习率
w=[0,0,0];
P = [0 0 1 1; 0 1 0 1];
d=[0 1 1 1]; % 期望输出
P=[ones(1,4);P];
MAX=20; % 最大迭代次数为20次
i=0;
while 1
v=w*P;
x2=hardlim(v); % 实际输出
%更新
e=(d-x2);
ee(i+1)=mae(e);
if (ee(i+1)<0.001) % 判断
disp('we have got it:');
disp(w);
break;
end
% 更新权值和偏置
w=w+n*(d-x2)*P';
if (i>=MAX) % 达到最大迭代次数,退出
disp('MAX times loop');
disp(w);
disp(ee(i+1));
break;
end
i= i+1;
end
figure;
subplot(2,1,1); % 显示待分类的点和分类结果
plot(P(2,2:end),P(3,2:end),'ko');
hold on
plot(P(2,1),P(3,1),'r*');
axis([-1,2,-1,2])
x1=-1:.1:2;
x2=x1*(-w(2)/w(3))-w(1)/w(3);
plot(x1,x2);
legend('值为1','值为0','分类直线');
hold off
subplot(2,1,2); % 显示mae值的变化
x1=0:i;
plot(x1,ee,'o-');
s=sprintf('mae的值(迭代次数:%d)', i+1);
title(s)
参考文献
陈明.MATLAB神经网络原理与实例精解
单层感知器神经网络matlab,MATLAB神经网络——单层感知器相关推荐
- 神经网络 | 网络优化-线性神经网络-delta学习规则-梯度下降法(单层感知器-异或问题Python源代码)
===================================================== github:https://github.com/MichaelBeechan CSDN: ...
- MATLAB中神经网络train函数使用说明
MATLAB中神经网络train( )函数使用说明 函数的语法格式如下: [net, tr]=train(net, P, T, Pi, Ai): train( )函数用于训练创建好的感知器网络,事实上 ...
- ann神经网络matlab,ann神经网络(深入浅出图神经网络 pdf)
是包含的关系吗?还是一种? BP神经网络是ANN人工神经中的一种,常用的神经网络有BP.RBF.SOM.Hopfield等等,其功能不经相同,可总体来说ANN的主要功能是模式识别和分类训练. 我现在急 ...
- 深度神经网络的matlab实现,深度神经网络代码matlab
为什么不用matlab做深度学习? matlab可以做深度学习,但是从实用性的角度来讲matlab的实现效率相对较低,训练耗时较长.初次学习计算机语言就选择matlab不是一个明智的选择,最好选用C或 ...
- 基于matlab BP神经网络的手写数字识别
摘要 本文实现了基于MATLAB关于神经网络的手写数字识别算法的设计过程,采用神经网络中反向传播神经网络(即BP神经网络)对手写数字的识别,由MATLAB对图片进行读入.灰度化以及二值化等处理,通过神 ...
- 初探神经网络(二)单层感知机的Rosenblatt算法原理
本期大量干货,配合线性代数和较扎实的统计知识食用更佳. 介绍过了M-P模型,也了解到了M-P模型本质上是对生物上神经元的抽象模型.在上一章,我反复在强调这只是一个生物学的概念,我相信看到这篇文章的人绝 ...
- Matlab与神经网络入门
第一节.神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经 ...
- BP神经网络及matlab实现
本文主要内容包括: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 . 第0节.引例 本文以Fisher的Iris数据集 ...
- Matlab遗传算法神经网络泰坦尼克号
Matlab遗传算法神经网络泰坦尼克号 介绍 实验步骤 流程图 初始化参数 初始化种群 计算适应度函数 选择 交叉 变异 实验结果 总代码 介绍 数据处理见上篇博文,这里用遗传算法优化神经网络的参数, ...
- m基于RBF神经网络和BP神经网络的信道估计误码率matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在无线通信系统中,从发射端发射的信号,经过直射.反射.散射等路径到达接收端.在ofdm系统中,为了获 ...
最新文章
- c语言学习笔记-if语句块一定要加分号
- linux7.3系统u盘制作,制作centos7U盘启动盘
- 1000亿产值、2500万辆销售目标,范迪塞尔代言的雅迪将如何正确“出海”?
- Win32 串口编程(四)
- 基于VS2019的Eigen库安装详解
- Web Magic 总体架构
- 分页条件查询_mongodb多条件分页查询的三种方法
- FFMpeg,SDL编译 No avaiable video device
- java九九成表发_用EXCEL可多种办法生成99乘法表
- openGL天空盒实现-立方体贴图
- 造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些?
- 公司官网建设企业网站建设的好处,为什么要做网站?
- 怎样在服务器上运行ea,外汇EA如何在MT4上运行?以及如何挂到服务器?
- 【0520】密钥管理技术
- Umap与 t-sne可视化CNN特征
- iOS开发之Crash分析,以及收集
- Radare2 学习笔记:从入门到精通 1. Radare2 简介,及安装
- 网页游戏制作html5,利用HTML5 Canvas制作一个简单的打飞机游戏
- 微服务学习总结5(Ocelot+Polly+Consul)
- 写文三年了,给大家说点儿心里话
热门文章
- python函数之间变量的调用
- GoogleNet论文解读
- 【vue+elementui】时间选择器:时间格式、设置时间最大日期或最小日期、设置时间选择范围
- 抽象工厂模式(Abstract Factory Pattern)
- 笔试——字符串算法题——寻找最大回文子串
- 传言阿里P10赵海平,被P11多隆打3.25后离职,如何评价赵海平对王垠的面试?
- 如何复制虚拟机中的数据到真实主机
- html怎么给文字添加视频链接,视频加文字水印,视频加图片水印,视频加外部链接,一个软件全部搞定...
- OPNsense用户手册-缓存代理
- 【uniapp公众号分销商城从0到1】手机验证注册登录(04)