2013-07-07 39 views
1

我開展了一個具有大型數據庫的神經網絡,並在測試中得到了很好的答案(非常小的誤差 - 接近4%)。現在我想使用權重和偏差來導出一個方程,以便直接得到我的輸出(不再使用該網絡)。我如何導出一個方程來獲得我的輸出?通過神經網絡的權重和偏差推導方程

回答

1

那麼這取決於你正在使用哪種神經網絡。 如果它是一個簡單的前饋網絡,那麼所有你需要做的來推導出你的公式就是通過激活函數來傳遞你的輸入的權重矩陣和偏向量。假設你有一個SLFN(單層前饋網絡),它基本上意味着你有一個輸入層,一個隱藏層和一個輸出層。

讓我們表示:

  • 輸入矢量X
  • 和輸入之間
  • 權重矩陣隱藏W_ih隱藏層上
  • 偏置矢量b
  • 激活功能上隱藏節點f
  • 隱藏層的10
  • 輸出Y_h
  • 輸出向量的隱藏和輸出W_ho之間
  • 權重矩陣ý

計算的輸出的步驟是:

1 -通過與隱藏層的連接傳播輸入矢量,並添加偏向項。這給你的總輸入ž 「進入」 隱藏層(有時稱爲 「分對數」):

Z = X * W_ih + B

其中是每行都等於向量b的矩陣,並且行數與輸入大小相同。

2-應用的激活功能,以這個分對數:

Y_h = F(Z)= F(X * W_ih + B)

3-傳播再次通過連接到輸出層的此矢量和您的輸出矢量Y等於:

Y = Y_h * W_ho = F(X * W_ih + B)* W_ho

現在如果你有多個隱藏層,你必須做的是爲每一個附加的重複步驟1和2隱藏的圖層並結束步驟3爲您的輸出圖層。

+0

嗨親愛的卓瑪,thans很多爲你的幫助。你知道我真的做了這個程序,但是當我測試它看到不正確的答案。我不知道最新的問題。請向我解釋重量。我認爲我使用的一系列權重具有特殊的序列。當我們例如在隱藏層和一個或三個輸出中具有六個輸入和四個神經元時,如何識別體重指數以知道哪個神經元。事實上,我想知道什麼時候有24個權重,哪個權重是哪個神經元和輸入。知道它我們可以使用這種算法。非常感謝,我在等待你的回答。 –

+0

那麼如果你有24個權重,6個輸入和4個隱藏節點,這意味着這些都是你從輸入層到隱藏層的權重。現在從我的理解你的權重不是矩陣形式,而是在一個數組中。您可以有兩種情況,第一種情況是您的權重按「原點」排列,這意味着前4個權重來自輸入節點1到所有4個隱藏節點,接下來的4個來自輸入節點2到所有4個隱藏節點等等。另一種可能性是它們按「目的地」排列,然後前6個權重從所有6個輸入節點到隱藏節點1等。 – Dolma

+0

然後,您只需重新整理數組即可得到你的矩陣。雖然你不能從無處猜測它。所以如果你有關於你的代碼如何工作的一些信息會有幫助。這是你手工編碼的東西還是你使用過圖書館?如果它是一個庫,您可能需要查看文檔以查看權重是如何格式化的。 – Dolma