0

最初,我在Matlab中實現了一個反向傳播網絡,並將它用於XOR。但是,現在我正在使用以下輸入/目標組合使用相同的網絡。ANN帶有非常隨機的輸入網絡的結果

輸入= [0 0; 0 1; 1000 0; 1 1],目標= [0; 1000; 1; 0]

我也得到輸出[1;1;1;1]

網絡無法瞭解網絡的。任何人都可以解釋爲什麼是這樣嗎?如果我建立一個可以學習如此小的I/O網絡的網絡,我該怎麼辦?

任何解釋是高度讚賞。

問候 最大

回答

0

它看起來像一個結垢問題。在你原來的異或問題中,輸入和輸出都是可比較的尺度,即[0,1]。在你修正的問題中,一些輸入看起來是[0,1]和一些[0,1000]。

解決方法是將輸入歸一化至相似的比例:通常使用[0,1]或[-1,1]。 在你的情況下,將輸入除以1000以將你的範圍設爲[0,1]可能就足夠了。不要忘記對輸出進行非規格化處理(即在您的情況下乘以1000)以恢復原始比例。

+0

非常感謝!縮放問題是什麼意思? Cna你扔一些光? – Max 2012-01-03 16:17:40

+0

你的一個輸入是*比另一個大一千倍。輸入的大小應該相似。 – Throwback1986 2012-01-03 16:22:30

+0

非常感謝!不管我在網絡配置中改變了什麼,輸出仍然是1,1,1,1。任何它沒有改變的原因?我是這個領域的新手,我的印象是網絡權重因隨機初始化而改變。我如何每次都以相同的輸出進行着陸? – Max 2012-01-03 16:29:37