我有幾個關於backpropogation的問題。我試圖學習神經網絡理論背後的基礎知識,並希望從小處着手,構建一個簡單的XOR分類器。我讀過很多文章,並且翻閱了多本教科書 - 但是我似乎無法教這個東西XOR的模式。關於Backpropogation算法的問題
首先,我不清楚backpropogation的學習模式。這裏有一些僞代碼來表示我如何訓練網絡。 [讓我們假設我的網絡設置正確(即:多個輸入連接到隱藏層連接到輸出層,並且所有連接都正確)]。
SET guess = getNetworkOutput() // Note this is using a sigmoid activation function.
SET error = desiredOutput - guess
SET delta = learningConstant * error * sigmoidDerivative(guess)
For Each Node in inputNodes
For Each Weight in inputNodes[n]
inputNodes[n].weight[j] += delta;
// At this point, I am assuming the first layer has been trained.
// Then I recurse a similar function over the hidden layer and output layer.
// The prime difference being that it further divi's up the adjustment delta.
我意識到這可能是不夠的,我會很樂意闡述我的實現的任何部分。使用上面的算法,我的神經網絡確實受過訓練,有點。但不正確。輸出總是
XOR 1 1 [smallest number]
XOR 0 0 [largest number]
XOR 1 0 [medium number]
XOR 0 1 [medium number]
我永遠不會訓練[1,1] [0,0]是相同的值。
如果您有任何建議,其他資源,文章,博客等,我可以看看我非常有興趣瞭解有關此主題的更多信息。感謝您的協助,我非常感謝!
你至少使用2個隱藏的神經元嗎?你如何初始化權重? –
權重隨機初始化,我使用至少2個隱藏的神經元。我相信我的問題是我正在使用的後向數學。我想我需要專注於使錯誤計算在數學上更加正確。 – Colemangrill