4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
SOM自组织特征映射神经网络-MATLAB-NCTOOL - 程序员大本营
来自 : www.pianshen.com/article/80951 发布时间:2021-03-25
A self-organizing map (newsom) consists of a competitive layer which can classify a dataset of vectors with any number of dimensions into as many classes as the layer has neurons. The neurons are arranged in a2D topology, which allows the layer to form a representation of the distribution and a two-dimensional approximation of the topology of the dataset.

The network is trained with the SOM batch algorithm (trainubwb, learnsomb).

\"SOM自组织特征映射神经网络-MATLAB-NCTOOL\"

竞争层?正方形?

看不出来数据属于哪类?

神经网络创建函数

(一)newsom函数

net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND)

PR:R个输入元素的最大值和最小值的设定值,R*2维矩阵

Di:第I层的维数,默认为[5 8]

TFCN:拓扑函数,默认为hextop

DFCN:距离函数,默认为linkdist

OLR:分类阶段学习速率,默认为0.9

OSTEPS:分类阶段的步长,默认为1000

TLR:调谐阶段的学习速率,默认为0.02

TNS:调谐阶段的领域距离,默认为1.

输入net=newsom([0 1;0 1],[3 5])时的拓扑结构\"SOM自组织特征映射神经网络-MATLAB-NCTOOL\"

eg.
P=[rand(1,400)*2;rand(1,400)];

plot(P(1,:),P(2,:),\'.\',\'markersize\',20)
net=newsom([0 1;0 1],[3 5]);
net=train(net,P);
hold on
plotsom(net.iw{1,1},net.layers{1}.distances)
hold off

\"SOM自组织特征映射神经网络-MATLAB-NCTOOL\"

(二)newc函数

功能:该函数用于创建一个竞争层

net=newc

net=newc(PR,S,KLR,CLR)

S:神经元的数目

KLR:Kohonen学习速度,默认为0.01

CLR:Conscience学习速度,默认为0.001

net:函数返回值,一个新的竞争层。

(三)newlvq函数

功能:该函数用于创建一个学习向量量化的LVQ网络

net=newlvp

net=newlvp(PR,S1,PC,LR,LF)

S1:竞争层神经元的数目

PC:分类的百分比

LR:学习速率,默认为0.01

LF:学习函数,默认为learnlvl

例子看http://blog.sina.com.cn/s/blog_7671b3eb0100y4t3.html

传递函数

(一)compet函数

功能:该函数为传递函数

A=compet(N)

info=compet(code)

N:输入(列)向量的S*Q维矩阵

A:函数返回值,输出向量矩阵,每一列向量只有一个1,位于输入向量最大的位置

info=compet(code):根据code值的不同返回有关函数的不同信息,包括derice-导数名称;name-函数名称;output-输出范围;active-动态输入范围。

n1=[5;3;6;8];
a1=compet(n1)

a1 =

(4,1)1

(二)softmax函数

功能:该函数为软最大传递函数

A=softmax(N)

info=softmax(code)

与compet不同的是,参数A为函数返回向量,个元素在区间[0,1],且向量结构与N一致。

n1=[5;3;6;8];
a2=softmax(n1)

a2 =

0.0418
0.0057
0.1135
0.8390

距离函数

(一)boxdist函数

功能:该函数为Box距离函数,在给定神经网络某层的神经元的位置后,可利用该函数计算神经元之间的位置,该函数通常用于结构函数的gridtop的神经网络层。

d=boxdist(pos)

ps:神经元位置的N*S维矩阵

d:函数返回值,神经元距离的S*S维矩阵。

函数的运算原理为d(i,j)=max||pi-pj||。其中,d(i,j)表示距离矩阵中的元素,pi表示位置矩阵的第i列向量。

(二)dist函数

功能:该函数的欧式距离权函数,通过对输入进行加权得到加权后的输入

Z=dist(W,P);

df=dist(\'deriv\')

D=dist(pos)

W:S*R维的权值矩阵

P:Q组输入(列)向量的R*Q维矩阵

Z:S*Q维的距离矩阵

pos:神经元位置的N*S维矩阵

D:S*S维的距离矩阵

df=dist(\'deriv\'):返回值为空,因为该函数不存在导函数。

函数运算规则为D=sqrt(sum((x-y)2)),其中x和y分别为列向量。

(三)linkdist函数

功能:该函数为连接距离函数,在给定神经元的位置后,该函数可用于计算神经元之间的距离

d=linkdist(pos)

(四)mandist函数

功能:该函数为Manhattan距离权函数

Z=mandist(W,P)

df=mandist(\'deriv\')

D=mandist(pos)

学习函数

(一)learnk函数

功能:该函数为kohonen权值学习函数

[dw,LS]=learnk(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

info=learnk(code)

W:权值矩阵

P:输入向量矩阵

Z:权值输入向量矩阵

N:网格输入向量矩阵

A:输出向量矩阵

T:目标向量矩阵

E:误差向量矩阵

gW:性能梯度矩阵

D:神经元距离矩阵

LP:学习参数,若无则为空

LS:学习状态,初始化为空

dW:权值(阈值)变化矩阵

LS:新的学习状态

info=learnk(code)……

(二)learnsom函数

功能:该函数为自组织映射权值学习函数

[dW,LS]=learnsom(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

info=learnsom(code)

几个需要设置的学习参数

LP.order_lr分类阶段学习速率,默认0.9

LP.order_steps学习阶段补偿,默认1000

LP.tune_lr调谐阶段领域距离,默认0.02

LP.tune_nd调谐阶段学习速率,默认1

(三)learnis函数

功能:该函数为instar权值学习函数

[dW,LS]=learnis(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

info=learnis(code)

(四)learnos函数

初始化函数(midpoint)

功能:该函数为i中心点权值初始化函数

W=midpoint(S,PR)

S:神经元的数目;

PR:每组输入向量的最大值和最小值组成的R*2维矩阵,规定了输入区间为[Pmin,Pmax]

W:函数返回值,S*R维的矩阵,每个元素对应设定为(Pmin+Pmax)/2

权值函数(negdist)

功能:该函数为负距离权值函数

Z=negdist(W,P)

显示函数(plotsom)

功能:该函数用于绘制自组织特征映射

plotsom(pos)

plotsom(W,D,ND)

pos:神经元位置向量

W:权值矩阵

D:距离矩阵

ND:领域矩阵,默认为1

plotsom(pos):利用红点绘制神经元的位置,将欧氏距离小于等于1的神经元连接起来

plotsom(W,D,ND):将欧氏距离小于等于1的神经元的权值向量连接起来

结构函数(hextop)

六角层结构函数

pos=hextop(dim1,dim2,^dimN)

eg.

pos=hextop(8,5);
plotsom(pos)

W=rands(40,2);plotsom(W,dist(pos))

本文链接: http://dfdist.immuno-online.com/view-762425.html

发布于 : 2021-03-25 阅读(0)