我嘗試使用hopfield編寫神經網絡進行模式識別。我使用Introduction to Neural Networks for C#, Second Edition書中的說明,但我不使用他的.dll文件並自己編寫所有類。模式識別Hopfield
傑夫·希頓在他的書中說,與的Hopfield訓練神經網絡,我們應該接收輸入模式(以矩陣形式),然後做3個步驟:
1 - 轉換二進制輸入到雙極(0 - > (-1),1 - > 1)
2-轉換矩陣輸入到行矩陣(保存爲M2),然後它的轉置(保存爲M1),並且在他們以後乘(M3 = M1 * M2)
3加重矩陣(WeightMatrix + = M3)
我的問題是關於步驟2 ! 當我將我的8X8矩陣行矩陣與下面的代碼:
int count = 0;
int[] RowMatrix = new int[64];
for(int j=0; j<8;j++)
for (int i = 0; i < 8; i++)
{
RowMatrix[count] = PatternBipolar[i, j];
count++;
}
(PatternBipolar輸入模式的轉換爲雙極) 我們有1X64矩陣,當它轉我們列的矩陣64X1。因此,如果我們將它們相乘(ColumnMatrix * RowMatrix如書中所述),我們就有64X64矩陣!
但我們的權重矩陣是8X8(因爲我們只有64個神經元而不是64 * 64 = 4096 !!!神經元)。
所以我很困惑,需要help.pleas幫助我解決這個問題和關於這個矩陣。 .
我收到輸入矩陣與下面的表格,並使用Windows窗體:
嗨普利亞。你是否打算調用變量名'count'?就你所知,你現在所擁有的變量名稱意味着某些特別的英語中的「與編程無關」。 –
嗨克里斯。謝謝你的提示! –