2009-06-01 207 views

回答

3

遞歸神經網絡(其中的Hopfield網是一種特殊類型)用於按順序學習幾項任務:

  • 序列預測(地圖股票價值的歷史與預期值在接下來的時間步長)
  • 序列分類(圖中每個完整的音頻片段到揚聲器)
  • 序列標籤(圖中的音頻片段,以講的一句話)
  • 非馬爾科夫強化學習(需要深存儲器作爲T-迷宮如任務長凳標記)

我不確定你的意思是「模式識別」,因爲它基本上是一個整個領域,每個任務可以使用神經網絡。

+0

你可以更精確的使用非馬爾可夫強化學習嗎?你說他們用於需要深度內存的任務,但是不會有多層backprops網絡做同樣的事情嗎?什麼使這些工作最好?謝謝 – 2009-11-23 14:15:25

+0

通常,您將k個上次時間步的觀察結果呈現給MLP,以將其映射到動作或值。這是你可以稱之爲「k-markovian」的東西。然而,「深度記憶」指的是當你不得不回頭的時間步數不一定有限的情況。在那種情況下,你需要經常性的網絡,它可以(至少在理論上)及時回顧無限次數的時間步。 你可能想檢查這篇文章:http://www.idsia.ch/~daan/papers/jof.pdf – bayer 2009-11-24 10:19:36

0

您也可以使用Hopfield網絡來優化問題。

0

您可以檢出該庫 - >Hopfield Network

有你有測試的例子列車網絡離線後的圖案。 這是測試

@Test 
public void HopfieldTest(){ 
    double[] p1 = new double[]{1.0, -1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,1.0}; 
    double[] p2 = new double[]{1.0, 1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0}; 
    double[] p3 = new double[]{1.0, 1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0}; 

    ArrayList<double[]> patterns = new ArrayList<>(); 
    patterns.add(p1); 
    patterns.add(p2); 

    Hopfield h = new Hopfield(9, new StepFunction()); 

    h.train(patterns); //train and load the Weight matrix 

    double[] result = h.test(p3); //Test a pattern 

    System.out.println("\nConnections of Network: " + h.connections() + "\n"); //show Neural connections 
    System.out.println("Good recuperation capacity of samples: " + Hopfield.goodRecuperation(h.getWeights().length) + "\n"); 
    System.out.println("Perfect recuperation capacity of samples: " + Hopfield.perfectRacuperation(h.getWeights().length) + "\n"); 
    System.out.println("Energy: " + h.energy(result)); 

    System.out.println("Weight Matrix"); 
    Matrix.showMatrix(h.getWeights()); 
    System.out.println("\nPattern result of test"); 
    Matrix.showVector(result); 

    h.showAuxVector(); 
} 

和運行測試後,你可以看到

Running HopfieldTest 

Connections of Network: 72 

Good recuperation capacity of samples: 1 

Perfect recuperation capacity of samples: 1 

Energy: -32.0 

Weight Matrix 
0.0  0.0  2.0 -2.0  2.0  -2.0  0.0  0.0  0.0 
0.0  0.0  0.0  0.0  0.0  0.0  -2.0  2.0 -2.0 
2.0  0.0  0.0 -2.0  2.0  -2.0  0.0  0.0  0.0 
-2.0  0.0 -2.0  0.0  -2.0  2.0  0.0  0.0  0.0 
2.0  0.0  2.0 -2.0  0.0  -2.0  0.0  0.0  0.0 
-2.0  0.0 -2.0  2.0  -2.0  0.0  0.0  0.0  0.0 
0.0  -2.0  0.0  0.0  0.0  0.0  0.0  -2.0  2.0 
0.0  2.0  0.0  0.0  0.0  0.0  -2.0  0.0 -2.0 
0.0  -2.0  0.0  0.0  0.0  0.0  2.0  -2.0  0.0 

Pattern result of test 

1.0  1.0  1.0  -1.0  1.0  -1.0  -1.0  1.0  -1.0 
------------------------- 
The auxiliar vector is empty 

我希望這可以幫助你