繁体   English   中英

使用Matlab仿真的神经网络中的模式识别

[英]Pattern recognition in Neural Network using matlab simulation

我是Matlab中这个神经网络的新手。 我想使用Matlab仿真创建一个神经网络。

这个Matlab仿真使用模式识别。 我在Windows XP平台上运行。

例如,我有一组圆形的波形。 我已经拔出了两极。 这些极点将告诉我的神经网络其形状是圆形的,因此,每当我输入另一组稍有不同的圆形波形时,神经网络就可以区分形状。

目前,我已经提取了圆柱,圆形和矩形这三种形状的极点。 但是我对如何创建神经网络一无所知。

我建议使用SOM(自组织映射)进行模式识别,因为它确实很健壮。 另外,您可能会对MatlabSom工具箱感兴趣。但是,要使其在忽略波动的同时学习波动,则需要对“相似性函数”进行一些更改。 这些更改将极大地影响SOM的培训时间,但是如果那不是问题,请继续阅读。

对于SOM,您必须将波采样到恒定大小的矢量,让我们说:

  • sin x-> sin_vector =(a1,a2,a3,...,aN)
  • cos x-> cos_vector =(b1,b2,b3,...,bN)

通常用欧几里得距离来计算“ SOM-矢量”的相似度。 这两个向量的欧几里得距离很大,因为它们具有不同的偏移量。 在您的情况下,应将它们视为相似,即。 距离要小。 所以..如果您不从同一起点采样所有相似的波,则它们将被分类为不同的类。 那可能是个问题。 但! 计算SOM中向量的相似度是为了从图中找到BMU(最佳匹配单位),并将BMU及其近邻向量拉至给定样本的值。 因此,您需要更改的是比较这些向量的方式以及将向量的值拉向样本的方式,以使两者都“具有偏移容忍度”。

缓慢但可行的解决方案是首先为每个向量找到最佳偏移索引。 最佳偏移指数是一个将产生最小距离且具有欧氏距离的样本的指数。 用网络的某个节点计算出的最小距离就是BMU。 然后,使用之前为每个节点计算的偏移索引,将BMU及其邻近向量推向给定样本。 其他所有内容都应立即可用。

该解决方案相对较慢,但效果很好。 我建议您彻底研究SOM的概念,然后再次阅读这篇文章(和愤怒的评论):)

如果您知道一些比前一个更好的数学解决方案, 请发表评论

您可以尝试使用Matlab的神经网络模式识别工具nprtool因为它专门训练和测试用于模式识别的神经网络。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM