簡體   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