自组织映射 matlab,二维自组织映射 - MATLAB & Simulink Example - MathWorks 中国

二维自组织映射

如同一维问题一样,这种自组织映射将学习表示输入向量在输入空间中出现的不同区域。然而,在此示例中,神经元会形成二维网格,而不是一条线。

我们要对一个矩形中的 1000 个二元素向量进行分类。

X = rands(2,1000);

plot(X(1,:),X(2,:),'+r')

f67aeb01caa4e2d699dd9b6b1893c0be.png

我们将使用 5×6 神经元层对上述向量进行分类。我们希望每个神经元对矩形的不同区域作出响应,相邻神经元对相邻区域作出响应。

将网络配置为匹配输入的维度。此步骤是必需的,因为我们要绘制初始权重。通常情况下,训练时会自动进行配置。

net = selforgmap([5 6]);

net = configure(net,X);

我们可以通过使用 plotsompos 可视化我们刚刚创建的网络。

每个神经元在其两个权重的位置用红点表示。最初,所有神经元的权重相同,位于向量的中间,因此只出现一个点。

plotsompos(net)

ea5d878d09c265636e714d5734625dbb.png

现在我们基于 1000 个向量对映射进行 1 轮训练,并重新绘制网络权重。

在训练后,注意神经元层已开始自组织,每个神经元现在界定输入空间的不同区域,并且相邻(连接的)神经元对相邻区域作出响应。

net.trainParam.epochs = 1;

net = train(net,X);

plotsompos(net)

20256c7cd153c99b41da9ee62d33787b.png

现在,我们可以通过将向量输入网络并观察哪个神经元有响应来对向量进行分类。

由“1”表示的神经元有响应,因此 x 属于该类。

x = [0.5;0.3];

y = net(x)

y = 30×1

0

0

0

0

0

0

0

0

0

0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值