首页 文章

基于matlab仿真的神经网络模式识别

提问于
浏览
1

我是matlab中这个神经网络的新手 . 我想用matlab仿真创建一个神经网络 .

该matlab仿真使用模式识别 . 我在Windows XP平台上运行 .

例如,我有一组圆形波形 . 我已经拔出了两极 . 这些极点将教我的神经网络它是圆形的,因此每当我输入另一组略微不同的圆形波形时,神经网络能够区分形状 .

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

2 回答

  • 0

    我'd recommend utilizing SOM (Self-organizing map) for pattern recognition since it'真的很健壮 . 还有一个你可能感兴趣的事情 . 但是,为了让它在忽略偏移的同时学习波浪,你需要训练时间,但如果这不是问题,请继续阅读 .

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

    • sin x - > sin_vector =(a1,a2,a3,...,aN)

    • cos x - > cos_vector =(b1,b2,b3,...,bN)

    通常用欧几里德距离计算“SOM-向量”的相似性 . 这两个矢量的欧几里德距离很大,因为它们具有不同的偏移 . 在你的情况下,他们应该被认为是相似的,即 . 距离要小 . 所以..如果你没有从同一个起始点采样所有类似的波,它们将被分类到不同的类中 . 这可能是一个问题 . 但!计算SOM中矢量的相似性,以便从 Map 中找到BMU(最佳匹配单位)并拉动BMU及其neigborhood的向量,从而调整给定样本的值 . 因此,您需要改变的是比较这些向量的方法以及将样本的值拉向样本的方式,以便两者都是“抵消容忍的” .

    缓慢但有效的解决方案是首先找到每个矢量的最佳偏移指数 . 最佳偏移指数是对样本产生欧几里德距离的最小值 . 然后,用网络的某个节点计算的最小距离将是BMU . 然后使用为之前每个节点计算的偏移指数,将BMU及其neigborhood的向量拉向给定的样本 . 其他一切都应该开箱即用 .

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

    PLEASE comment 如果你知道一些比前一个好的数学解决方案!

  • 1

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

相关问题