首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Encog Hopfield网络训练

Encog Hopfield网络训练
EN

Stack Overflow用户
提问于 2013-05-20 19:31:24
回答 1查看 624关注 0票数 2

我正在尝试从图像中识别单个字符。图像数据已被清理,并且有一个清晰可见的字母。

因此,当我将训练集添加到hopfield网络中时,它就像log一样好,因为我只添加了2。一旦我添加了更多,它训练的模式就开始变得模糊。

我如何防止这种情况发生?

训练网络:

代码语言:javascript
复制
public void trainNetwork() {
        network.reset();
        System.out.println("Training hopfield network");
        long startTimeLong = System.nanoTime();
        for (double[] ds : trainingInput) {
            network.addPattern(doubleArrayToBiPolarNeuralData(ds));
        }
        long endTimeLong = System.nanoTime();
        double durationInSec = (double) ((endTimeLong - startTimeLong) / Math.pow(10, 9));
        System.out.println("Finished training network in: " + durationInSec);
    }

    private BiPolarNeuralData doubleArrayToBiPolarNeuralData(double[] data) {
        BiPolarNeuralData patternData = new BiPolarNeuralData(neuroncount);
        if (data.length != neuroncount) {
            IndexOutOfBoundsException e = new IndexOutOfBoundsException("the size of the traingsinputs is different from the amount of input neurons");
            logger.error(e.getMessage(), e);
            throw e;
        }
        patternData.setData(data);
        return patternData;
    }

训练2个字符时的结果:

代码语言:javascript
复制
Cycles until stable(max 100): 1, result=
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
      OOOOOOOOOOO                          ->         OOOOOOOOOOO                       
    OOOOOOOOOOOOOOO                        ->       OOOOOOOOOOOOOOO                     
   OOOOOOOOOOOOOOOOO                       ->      OOOOOOOOOOOOOOOOO                    
  OOOOOOOOOOOOOOOOOO                       ->     OOOOOOOOOOOOOOOOOO                    
  OOOOOOO  OOOOOOOOO                       ->     OOOOOOO  OOOOOOOOO                    
  OOOOO      OOOOOOO                       ->     OOOOO      OOOOOOO                    
  OOOOO      OOOOOOO                       ->     OOOOO      OOOOOOO                    
              OOOOOO                       ->                 OOOOOO                    
          OOOOOOOOOO                       ->             OOOOOOOOOO                    
     OOOOOOOOOOOOOOO                       ->        OOOOOOOOOOOOOOO                    
   OOOOOOOOOOOOOOOOO                       ->      OOOOOOOOOOOOOOOOO                    
  OOOOOOOOOOOOOOOOOO                       ->     OOOOOOOOOOOOOOOOOO                    
 OOOOOOOOO    OOOOOO                       ->    OOOOOOOOO    OOOOOO                    
 OOOOOOO     OOOOOOO                       ->    OOOOOOO     OOOOOOO                    
 OOOOOO      OOOOOOO                       ->    OOOOOO      OOOOOOO                    
 OOOOOOO    OOOOOOOO                       ->    OOOOOOO    OOOOOOOO                    
 OOOOOOOOOOOOOOOOOOOO                      ->    OOOOOOOOOOOOOOOOOOOO                   
 OOOOOOOOOOOOOOOOOOOO                      ->    OOOOOOOOOOOOOOOOOOOO                   
 OOOOOOOOOOOOOOOOOOOO                      ->    OOOOOOOOOOOOOOOOOOOO                   
  OOOOOOOOOOOOOOOOOOO                      ->     OOOOOOOOOOOOOOOOOOO                   
   OOOOOOOOO  OOOOOOO                      ->      OOOOOOOOO  OOOOOOO                   
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           

训练所有字符时的结果:

代码语言:javascript
复制
Cycles until stable(max 100): 3, result=
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
      OOOOOOOOOOO                          ->      OOOOOOOOOOOOOOO                      
    OOOOOOOOOOOOOOO                        ->      OOOOOOOOOOOOOOOO                     
   OOOOOOOOOOOOOOOOO                       ->      OOOOOOOOOOOOOOOOO                    
  OOOOOOOOOOOOOOOOOO                       ->     OOOOOOOOOOOOOOOOOO                    
  OOOOOOOOO OOOOOOOOO                      ->      OOOOOOOOOOOOOOOO                     
 OOOOOOOO     OOOOOOO                      ->      OOOOOO    OOOOOO                     
 OOOOOOO      OOOOOOO                      ->      OOOOOO     OOOOO                     
 OOOOOOO                                   ->      OOOOOO     OOOOO                     
 OOOOOOO                                   ->      OOOOOO     OOOOO                     
 OOOOOO                                    ->      OOOOOO    OOOOOOO                    
 OOOOOO                                    ->      OOOOOO      OOOOO                    
 OOOOOOO                                   ->      OOOOOO     OOOOOO                    
 OOOOOOO                                   ->     OOOOOOO     OOOOOO                    
 OOOOOOO      OOOOOOO                      ->     OOOOOOO     OOOOOO                    
 OOOOOOO      OOOOOOO                      ->     OOOOOOO     OOOOOO                    
 OOOOOOOO    OOOOOOOO                      ->     OOOOOOO    OOOOOOO                    
  OOOOOOOOO OOOOOOOOO                      ->     OOOOOOOOOOOOOOOOOO                    
  OOOOOOOOOOOOOOOOOO                       ->      OOOOOOOOOOOOOOOO                     
   OOOOOOOOOOOOOOOO                        ->      OOOOOOOOOOOOOOOO                     
    OOOOOOOOOOOOOO                         ->       OOOOOOOOOOOOO                       
      OOOOOOOOOOO                          ->        OOOOOOOOO O                        
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           
                                           ->                                           

它总是解析到这个相同的复合blob。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 09:18:11

在给定可接受的错误数量的同时,在hopfield网络中可以学习的模式的最大数量称为其容量。容量是网络中神经元总数的对数的函数,这意味着如果你想要更多的模式,你必须增加网络中神经元的数量。此外,复合斑点被称为混合状态(或者有时称为自旋玻璃状态,取决于所显示的斑点的类型)。当一个Hopfield网络进入初始状态时,它倾向于将自己驱动到局部能量最小值。有时,最低要求不是训练的模式,而是训练中使用的几种模式的混合状态。通常,这些混合状态具有比训练模式更高的能量,但如果开始状态更接近混合状态,它将倾向于将自己驱动到局部最小值。有时,在网络中加入一些噪声可以避免这些局部最小值,并使网络达到最接近的训练状态。您可以通过生成一个随机数来包含噪声,并且仅当该数高于某个阈值时才执行签名操作。

总之,在网络中添加神经元和噪声可以帮助您解决问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16648562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档