MATLAB感知器——02

MATLAB的基本操作不做介绍,直接开始感知器的学习。

一、单层感知器

1、结构图如下:(懂得直接跳到2、)
在这里插入图片描述
单层感知器,即只有一层神经元节点,上图为一个神经元的示意图。
多个输入经过加权求和之后得到一个值,这个值再加上一个b(有点类似y=ax+b)经过激活函数后就可以得到输出。

激活函数的作用是什么呢?简单来说神经元类似开关,只有激活和未激活两种状态。把这两种状态看成0,1,那数据经过加权求和且+b后得到的数值在(-∞,+∞)之间,那我们需要一种函数把这个值缩回到0-1之间,这样就和神经元很贴切了,因此而产生的了很多种激活函数,这里不做一一介绍。

2、实例+详解
直接来一个样本训练+数据测试,如下
在这里插入图片描述
我们接下来用这些数据训练一个单层感知器:

%数据载入,x为输入,y为期望输出
x = [0 0 1 1;0 1 0 1];
y = [0 1 1 1];
%以单个神经元为例
pr = minmax(x)
net = newp(pr,1);

net=newp[PR,S,TF,LF] ,这是一个网络构建函数:
PR:存放maxmin的矩阵。以我们的例子看这是一个2*2的矩阵,由每一个属性的max,min组成。
S:神经元个数。
TF:激活函数,默认值为 hardlim函数。
LF:学习修正函数,默认为learnp函数。主要用来更新权值的调整。

模型建好了,接下来训练数据:

net.trainParam.Epochs = 100;
net=train(net,x,y);
Y2 = sim(net,x);

net.trainParam.Epochs控制训练次数,每次按照该有的规则从样本拿出一个数据训练。
sim()函数是仿真函数,其要点是该过程一旦开始不可停止。sim函数不是必须有的。
net.iw:可以查看权值;net.b:可以查看偏置。
nntool可以导入模型查看模型结构。

模型训练好了,可以测试了。以0.01,1.01为例,看他的标签,代码如下:

out = sim(net,[0.01;1.01])

可以得到out = 1。
使用w和b也可以做一个简单的可视化(如果数据维度较多,不建议这样做)

%画样本点(带标签)
plotpv(x,y);
%画分类线
plotpc(net.iw{1},net.b{1});

在这里插入图片描述

二、多层感知器

与单层的区别是输入输出之间多了一个隐含层,隐含层具体怎样是看不到的,可以想象成一个黑盒子。
1、神经元之间的传递:
懒得画图网上找了一个:
画的丑,凑活看。在f1那个神经元那里输出给下一层的时候是经过激活函数处理了的(刚学的时候以为加权求和就完事了),这样一层一层往后传就可以得到输出y了。
2、不上例子

主要是跟上面区分一下就好,这两个代码区别不是很大。

net=netff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

只有这个函数要换,其他的区别不是很大。具体解释下这个参数:
P:要喂的数据矩阵
T:矩阵的标签矩阵(一维的)
S:隐含层节点数,多个隐含层的话用[5,3],这就代表是隐含层有两层,第一层5个神经元,第二层3个神经元。
TF:激活函数:阈值函数hardlim,hardlims,线性函数purelin,双曲正切S型函数tansig,对数S型传递函数。
BTF:训练函数:梯度下降训练函数traingd,动量反传梯度下降函数traingdm,动态自适应学习率下降函数traingda,动量反传和动态自适应梯度下降训练函数traindx,L_M训练函数trainlm。
BLF:网络学习函数:BP学习规则learngd,带动量的BP学习规则learngdm。
PF:性能分析函数:均值绝对误差性能分析函数mae,均方差性能分析函数mse。
IPF:输入处理函数
OPF:输出处理函数
DDF:验证数据划分函数
emm这个参数还是挺多的。
除了训练次数,还要加一个收敛误差(控制调整训练次数)

net.trainParam.goal=0.00001;

参数一般小于0.01。

无论是哪种感知器net函数不唯一,我这里用的newff,newp都是常用的网络。

如有问题,欢迎大家指出来。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值