2014-10-01 453 views
5

最近我開始考慮實施用於學習人工神經網絡(ANN)的Levenberg-Marquardt算法。實現的關鍵是計算雅可比矩陣。我花了幾個小時研究這個話題,但我無法弄清楚如何精確計算它。人工神經網絡的雅可比矩陣計算

說我有一個簡單的前饋網絡,有3個輸入,4個神經元在隱藏層和2個輸出。層完全連接。我也有5排長的學習套裝。

  1. 究竟應該是雅可比矩陣的大小?
  2. 究竟應該如何代替衍生工具? (公式與一些解釋和說明的左上角和右下角的例子將是完美的)

這個真沒有幫助:

enter image description here

什麼是F and x用神經網絡?

回答

0
從我的經驗與ANN工作和反向傳播

  1. 雅可比矩陣

    所以組織所有的偏導數爲m×n個矩陣, 其中M是輸出的數,n是輸入的個數。 所以你的情況應該是2×3

  2. 所以我們可以說有1和輸出的k個(F在畫面中),並有 之間的設定爲1和我輸入的數量(X在您的圖片)所以公式應該是這樣的

     Fk 
    Jki = ---- 
         xi 
    

對不起,我不知道怎麼寫公式格式在這裏,但我希望我的回答是非常明顯的。
如果您對我的答案有任何疑問,請在評論中提問!

+0

F函數應該是什麼樣子?Abhinash在他的回答中提出,矩陣的大小與你所提議的不同(如果我理解他的話)。也許如果我看到F功能,它會更清晰。 – gisek 2014-10-01 22:00:20

7

雅可比矩陣是矢量值函數的所有一階偏導數的矩陣。在神經網絡案例中,它是一個N×W矩陣,其中N是我們訓練集中條目的數量,W是我們網絡的參數總數(權重+偏差)。它可以通過利用每個輸出的偏導數在相對於每個權重來創建,並且具有以下形式:

enter image description here

其中F(XI,W)是用於第i個輸入評價網絡功能使用權重向量w和wj的訓練集合的向量是網絡的權重向量w的第j個元素。 在傳統的Levenberg-Marquardt實現中,Jacobian通過使用有限差分來近似。然而,對於神經網絡,可以通過使用微積分的鏈式規則和激活函數的一階導數來非常有效地計算它。

+0

所以在我的問題的例子中,矩陣列的數量= 3 * 4 + 4 * 2 = 20(讓我們暫時忘記偏差),並且矩陣行的數量與數據中的行數相同設置(5)? F函數應該是什麼樣子? – gisek 2014-10-01 15:50:51

+0

@abhinash梯度和雅可比相同嗎?因爲即使梯度矩陣的大小爲NxW,我們也可以將其插入梯度下降方程中 – 2017-09-14 17:18:49