matlab线性神经网络如何实现非线性分类

发布时间:2022-01-14 10:18:30 作者:iii
来源:亿速云 阅读:215

今天小编给大家分享一下matlab线性神经网络如何实现非线性分类的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Madaline的核心思想是使用多个线性神经元,分别得到输出之后,再对输出值进行判断,得到最终的分类结果。      
   
matlab线性神经网络如何实现非线性分类  
%% 第一个神经元      
   
P1=[0,0,1,1;0,1,0,1];               
% 输入向量
d1=[1,0,1,1];                       
% 期望输出向量
lr=maxlinlr(P1,'bias');             
% 根据输入矩阵求解最大学习率

   
net1=linearlayer(0,lr);             
% 创建线性网络
net1=train(net1,P1,d1);             
% 线性网络训练
matlab线性神经网络如何实现非线性分类  
%% 第二个神经元
P2=[0,0,1,1;0,1,0,1];               
% 输入向量
d2=[1,1,0,1];                       
% 期望输出向量
lr=maxlinlr(P2,'bias');             
% 根据输入矩阵求解最大学习率

   
net2=linearlayer(0,lr);             
% 创建线性网络
net2=train(net2,P2,d2);             
% 线性网络训练
matlab线性神经网络如何实现非线性分类  
Y1=sim(net1,P1);Y1=Y1>=0.5;
Y2=sim(net2,P2);Y2=Y2>=0.5;
Y=~(Y1&Y2);
%% 显示
plot([0,1],[0,1],'bo');             
% 图形窗口输出
hold on;
plot([0,1],[1,0],'d');
x=-2:.2:2;
y1=1/2/w1(2)-w1(1)/w1(2)*x-w1(3)/w1(2);   
% 第一条直线,1/2是区分0和1的阈值
plot(x,y1,'-');
y2=1/2/w2(2)-w2(1)/w2(2)*x-w2(3)/w2(2);   
% 第二条直线,1/2是区分0和1的阈值
plot(x,y2,'--');
axis([-0.1,1.1,-0.1,1.1])
xlabel('x');ylabel('y');
title('Madaline用于求解异或逻辑')
legend('0','1','第一条直线','第二条直线');
matlab线性神经网络如何实现非线性分类    

以上就是“matlab线性神经网络如何实现非线性分类”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. Pytorch如何实现神经网络的分类
  2. TensorFlow如何实现非线性支持向量机

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

matlab

上一篇:matlab线性神经网络怎么用

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》