2009-06-01 173 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 

我希望这可以帮助你