MATLAB 简单神经网络案例

加粗样式

MATLAB 简单神经网络案例

学习目标:从学习第一个最简单的神经网络案例开启神经网络学习之路。
本神经网络为感知器网络,常用于点的分类。

clear all;
close all;          %第一步、第二部为清空环境变量
P=[0 0 1 1;0 1 0 1];%输入向量
T=[0 1 1 1];        %目标向量
net=newp(minmax(P),1,'hardlim','learnp'); %建立感知器神经网络
net=train(net,P,T);                       %对网络进行训练
Y=sim(net,P);                             % 对网络进行仿真  
plotpv(P,T);                              %绘制感知器的输入向量和目标向量,绘制样本点 
plotpc(net.iw{1,1},net.b{1});             %在感知器向量图中绘制分界线   

1)P=[0 0 1 1;0 1 0 1];%输入向量。
输入向量P[0 0 1 1;0 1 0 1]为(x,y)二维矩阵;其表示的四个点为(0,0),(0,1),(1,0),(1,1)。如下图所示:
在这里插入图片描述
2)T=[0 1 1 1]; %目标向量。
目标向量T[0 1 1 1]为一维矩阵,输入向量的元素与目标向量元素一一对应,(0,0),(0,1),(1,0),(1,1)分别对应:0,1,1,1,1。

3)net=newp(minmax§,1,‘hardlim’,‘learnp’); %建立感知器神经网络
语法:net=newp[PR,S,TF,LF]
PR:Rx2的输入向量最大值和最小值构成的矩阵,此处由minmax(P)实现,即每一行的最大值最小值构成一行。
S:构造的神经元的个数
TF:激活函数的设置(传递函数),可设置为hardlim函数或者hardlins函数,默认为 hardlim函数;hardlim与hardlims的详细形式如下:
在这里插入图片描述在这里插入图片描述
LF:学习修正函数的设置,可设置为learnp函数或者learnpn函数,默认 为learnp函数

4)net=train(net,P,T); %对网络进行训练
语法:train(net,P,T)
net:被训练网络;
P:输入向量
T:目标向量
补充:net.trainParam.epochs=10 %预定训练次数为10。
自适应训练函数:net=adapt(net,P,T);
在这里插入图片描述5)Y=sim(net,P); % 对网络进行仿真
Y网络输出,P输入向量
6)plotpv(P,T); %绘制感知器的输入向量和目标向量,绘制样本点
在这里插入图片描述7)plotpc(net.iw{1,1},net.b{1}); %在感知器向量图中绘制分界线
w=net.iw{1,1} %显示网络权值
B=net.b{1} %显示网络阈值
在这里插入图片描述

感知器是最简单的神经网络,只适合进行简单的模式分类;感知器只对线性可分的向量集合进行分类,所谓线性可分,是指可以用一条直线(针对二维向量)或者一个平面(针对三维向量)将输入向量分开;对感知器的分析有助于理解更加复杂的神经网络。

  • 9
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个使用 MATLAB 实现的简单神经网络案例分析: 假设我们有一个简单的数据集,其中包含两个输入变量(x1和x2)和一个目标变量(y)。我们的目标是使用神经网络来预测目标变量y。 首先,我们需要将数据集拆分为训练集和测试集。这可以通过使用 MATLAB 中的“crossvalind”函数来完成。例如,我们可以将70%的数据用于训练集,30%的数据用于测试集: ```matlab data = [x1, x2, y]; cv = cvpartition(size(data,1),'HoldOut',0.3); idx = cv.test; % 训练集 dataTrain = data(~idx,:); % 测试集 dataTest = data(idx,:); ``` 然后,我们可以使用 MATLAB 中的“fitnet”函数来创建一个多层感知器(MLP)神经网络模型。例如,我们可以创建一个具有一个隐藏层,每个隐藏层有10个神经元的模型: ```matlab % 创建一个具有一个隐藏层,每个隐藏层有10个神经元的MLP模型 net = fitnet([10]); ``` 接下来,我们需要对模型进行训练。我们可以使用 MATLAB 中的“train”函数来训练模型。例如,我们可以使用训练集对模型进行训练: ```matlab % 使用训练集对模型进行训练 net = train(net,dataTrain(:,1:2)',dataTrain(:,3)'); ``` 训练完成后,我们可以使用测试集来评估模型的性能。我们可以使用 MATLAB 中的“sim”函数来进行预测。例如,我们可以使用测试集进行预测: ```matlab % 使用测试集进行预测 yPredicted = net(dataTest(:,1:2)'); ``` 最后,我们可以使用 MATLAB 中的“mse”函数来计算模型的均方误差(MSE)。例如,我们可以计算测试集的MSE: ```matlab % 计算测试集的MSE mseTest = mse(dataTest(:,3)' - yPredicted); ``` 这就是一个简单MATLAB 神经网络案例分析。当然,实际应用中,可能需要更复杂的神经网络模型和更多的数据集预处理步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值