1. 竞争性神经网络分类
● SOM(Self–Organizing Feature Maps)神经网络没有数据输出,提前不知道数据属于哪个类别
● LVQ(Learning Vector Quantization Networks)神经网络表示提前知道数据属于哪个类别
● 通用型神经网络:与上面两种网络结构不一样
2. 数据分类作用:
● 对于已有的海量数据有更好认知
● 对未来所收集的数据进行分类
3. 通用型竞争性神经网络
R为输入,dist为欧式距离加权函数(Euclidean distance weight function),||这个符号||叫范数,它事实上是由线性赋范空间到非负实数的映射
||ndist|| 表示为-根号(w1-r11)^2+(w2-r12)^2
再加上一个bias
每一个神经元都按照此种方式计算
在S个输出中,肯定有一个yn最小(距离最近),那么yn赢了
4. 神经网络的训练过程就是更新weight与bias。
4.1 weight的更新规则
通俗来说就是: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);
结果
说明第一组和第三组输入属于第一类,
第二组和第四组输入属于第二类。
Be the First to comment.