1

我是matlab中的这个神经网络的新手。我想用matlab仿真创建一个神经网络。使用matlab仿真神经网络中的模式识别

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

例如,我有一组圆形波形。 我已经提取出了两极。 这些极点将教我的神经网络,它是圆形的,因此无论何时我输入另一组稍微不同的圆形波形,神经网络都能够区分形状。

目前,我已经提取了这3种形状,圆柱体,圆形和矩形的极点。 但我对如何创建我的神经网络无能为力。

回答

0

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

1

我推荐使用SOM(自组织映射)进行模式识别,因为它非常强大。还有一个你可能会感兴趣的Som Toolbox for Matlab。但是,为了让它在忽略偏移的同时学会波动,你需要对“相似函数”进行一些修改。这些变化将对SOM的培训时间产生很大影响,但如果这不是问题,请继续阅读。

对于你要品尝你的波浪不断的大小载体,让说,SOM:

  • 罪X - > sin_vector =(A1,A2,A3,...,AN)
  • COS X - > cos_vector =(B1,B2,B3,...,BN)

一般 “SOM-载体” 的相似性被计算与欧几里得距离。这两个向量的欧几里德距离是巨大的,因为它们具有不同的偏移量。在你的情况下,他们应该被认为是相似的,即。距离要小。所以......如果你不从相同的起点对所有类似的波形进行采样,它们将被分类到不同的类别中。这可能是一个问题。但!计算SOM中向量的相似性,以便从地图中找出BMU(最佳匹配单元),并将BMU及其邻居向量转到给定样本的值上。因此,您需要改变的是比较这些向量的方式以及将向量的值拉向样本的方式,以便两者都能“抵消偏移”。

慢但工作的解决方案是首先找到每个向量的最佳偏移量索引。最好的偏移量指数是能够产生样本最小值和欧氏距离的最佳偏移量指数。然后用网络的某个节点计算出的最小距离就是BMU。然后使用前面为每个节点计算的偏移指标,将BMU和其邻居的向量拉向给定样本。其他的一切都应该可以直接使用。

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

请评论如果你知道一些数学解决方案,会比以前更好!