matlab竞争者,Matlab竞争神经网络-通用型

1. 竞争性神经网络分类

● SOM(Self–Organizing Feature Maps)神经网络没有数据输出,提前不知道数据属于哪个类别

● LVQ(Learning Vector Quantization Networks)神经网络表示提前知道数据属于哪个类别

● 通用型神经网络:与上面两种网络结构不一样

2. 数据分类作用:

● 对于已有的海量数据有更好认知

● 对未来所收集的数据进行分类

3. 通用型竞争性神经网络

%E6%88%AA%E5%9B%BE-5.png

R为输入,dist为欧式距离加权函数(Euclidean distance weight function),||这个符号||叫范数,它事实上是由线性赋范空间到非负实数的映射

||ndist|| 表示为-根号(w1-r11)^2+(w2-r12)^2

再加上一个bias

每一个神经元都按照此种方式计算

在S个输出中,肯定有一个yn最小(距离最近),那么yn赢了

4. 神经网络的训练过程就是更新weight与bias。

4.1 weight的更新规则

%E6%88%AA%E5%9B%BE-4.png

通俗来说就是:weight更新后=更新前+alpha(输入值-更新前值) alpha自己设置,可能是0.5

这样weight越来越接近输入值或输入值的均值

4.2 bais的更新规则

防止weigh一开始就没选择好,某一个神经元或几个神经元总是竞争失败一直不更新。(dead neuron)

某个神经元在竞争中很少赢,那么将bias值变大,这样,这个神经元可能会赢,这样weight就又开始更新了。

● 经常赢的神经元,bias逐渐变小一点。

● 经常输的神经元,bias逐渐变大一点。

5 做一个小例子

MATLAB

p=[.1 .8 .1 .9; .2 .9 .1 .8] %输入数据

net = newc([0 1;0 1],2); %0 1表示第一个参数的区间在0-1

net.IW(1,1); %一开始都会选择平均值作为权重

biases = net.b{1};

net.trainParam.epochs = 500; %训练的次数为500次

net = train(net,p);

a = sim(net,p); %观察结果

ac = vec2ind(a);

1

2

3

4

5

6

7

8

p=[.1.8.1.9;.2.9.1.8]%输入数据

net=newc([01;01],2);%0 1表示第一个参数的区间在0-1

net.IW(1,1);%一开始都会选择平均值作为权重

biases=net.b{1};

net.trainParam.epochs=500;%训练的次数为500次

net=train(net,p);

a=sim(net,p);%观察结果

ac=vec2ind(a);

结果

%E6%88%AA%E5%9B%BE-3.png

说明第一组和第三组输入属于第一类,

第二组和第四组输入属于第二类。

Be the First to comment.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值