BP神经网络(完整的理论和经验公式)

   365bet开户

赠送是说BP神经网络,神经网络在机具背诵正中鹄的广延的请求,譬如,应变量接近于,镨,归类,唱片压缩,唱片

矿及对立面运动场。接下来绍介BP神经网络的规律及意识到。

Contents

  1. BP神经网络的看法

  2. 隐层的选择

  3. 前向转变子航线

  4. 反向转变子航线

  5. BP神经网络的小心点

  6. BP神经网络的C++意识到

1. BP神经网络的看法

BP(Back 扩散)神经网络它分为两个航线。

      (1)任务导火线前向转变子航线

      (2)过失导火线反向转变子航线

   在BP神经网络中,单范本有个输入,有个输入,通常有几种隐层的输入层和输入层私下。现实

   上,1989Robert Hecht-Nielsen作证隐层BP网络可用于任何一任一某一陆续应变量。

   Collaterals接近于,执意这样的。无限威力接近于定理。因而,三电平BP网络可以任性完成或结束。维到图的大量。这是三层

   也许输入层(I),隐含层(H),输入层(O)。下面的扮演角色

        

2. 隐层的选择

   在BP神经网络中,决定输入层和输入层正中鹄的包装材料总计。,隐含层包装材料数的不决定性,这么我们的可能设置几多呢?

   才是什么对的?实际上,隐层正中鹄的包装材料总计冲击神经网络的机能。,有一任一某一决定隐层的经历声调

   包装材料总计,如次

                

   执政的隐层包装材料数,输入层包装材料数,输入层包装材料数,接管私下的常数。

3. 前向转变子航线

   如今设置包装材料和包装材料它们私下的分量是,包装材料阈值的是,每个包装材料的输入值为,和每个包装材料的输入

   该值鉴于下层持有违禁物包装材料的输入值。、电流包装材料和前发生性关系和T上持有违禁物包装材料的附加加重值于

   的。详细计算办法如次

                    

   执政的为感光度之增强应变量,普通拔取S典型应变量或长度的应变量。

   前向递送航线复杂。,同一声调可以依据下面的声调计算。在BP神经网络中,输入层包装材料不注意阈值的。

4. 反向转变子航线

   在BP神经网络中,过失导火线反向转变子航线喻为复杂,它是鉴于霍夫背诵裁决的。认为输入层

持有违禁物的成功实现的事都是过失应变量如次

                    

   而BP神经网络的首要实体的是堕落改正权值和阀值,使过失应变量的最少的。霍夫裁决

   它经过SQ的相对过失和的最陡降低排列方向。,陆续整理网络的权值和阈值的,依据梯度降低法,权值用无线电引导

   查核与电流位置成直接比。E(w,b)梯度,为高音的输入包装材料具有

                    

认为选择感光度之增强应变量为

                    

   感光度之增强应变量导出,说服

                   

   那么下一任一某一点

                   

   执政的有

                            

   同一由于

                 

   执意这样的。著名的背诵裁决,经过时装领域神经纤维私下的衔接附加加重值于,我们的可以缩减现实,裁决

   那么它也高等的霍夫背诵裁决或相反的校正背诵裁决

   外面的是隐层私下的附加加重值于的整理,对立面输入层的阈值的,隐层和隐层。

   完全量计算比较地复杂。认为是输入层k包装材料与隐含层i包装材料间的附加加重值于,因而有

                

   执政的有

                

这样的的一对背诵裁决看法全部深入。

   是你这么说的嘛!声调,依据梯度降低法,那么藏踪层和输入层私下的权值和阈值的

                

输入层和藏踪层的附加加重值于和阈值的亦

                

   到这程度BP神经网络的规律根本讲完。

5. BP神经网络的小心点

   BP神经网络普通用于归类或许接近于成绩。也许用于归类,感光度之增强应变量普通采取sigmoid应变量或硬限度局限效能

   数,也许用于应变量接近于,那么输入层包装材料是长度的应变量。,即

   BP神经网络在锻炼唱片时可以采取增量背诵或许批量背诵。

   增量背诵输入典范必要条件具有十足的无安排。,对输入典范对噪声喻为敏感,不敬革新的入伙典范,训

   实习引起差差,西装在线处置。批量背诵输入典范次不注意成绩,稳定性好,但它只符合的离线处置。。

   规范BP神经网络的缺陷:

   (1)轻易身材地方的最低消费值,不克不及说服大局最优解。。

       BP神经网络中最低消费值喻为多,因而很轻易进入地方的最低消费值。,这必要条件初始权值和阈值的。,要使

       得初初始权值和阈值的十足好的机具,它可以随机屡次意识到。。

   (2)锻炼次数缩减了背诵效力。,慢收敛生涯。

   (3)隐层的选择缺少原理的指点。

   (4)在锻炼航线中不休背诵新的范本的意向是忘却过来的办法。

BP算法的改善:

(1)放针动量项

引入动量项放慢算法的收敛生涯,这是下面的声调

       

       动量代理人普通拔取

   (2)自适应背诵率

   (3)引入倾斜的代理人

   通常BP神经网络在锻炼屯积会对唱片正常化处置,将唱片有代理人到较小的间距。,譬如,[0,1]或[-1,1]。

6. BP神经网络的C++意识到

   BP神经网络的C++包装如次

   

  1. #ifndef _BP_H_  
  2. #define _BP_H_  
  3.    
  4. #include   
  5.    
  6. 解释层3/三层神经网络  
  7. #define NUM      10       //每层的至多包装材料数  
  8.    
  9. 解释一任一某一  
  10. #define B             //A和B是S型应变量的参量  
  11. 解释很好地千/最大锻炼次数  
  12. 解释ETAWAW// /分量整理率  
  13. 解释ETAYB//阈值的整理率  
  14. 经过解释过失容许过失/单范本  
  15. 解释ACCU///////容许迭代相反的  
  16.    
  17. 解释典型双  
  18. std::vector用无线电引导解释  
  19.    
  20. struct Data  
  21. {  
  22.     Vector x;         
  23.     Vector y;         
  24. };  
  25.    
  26. class BP{  
  27.    
  28. public:  
  29.    
  30.     void GetData(const Vector);  
  31.     void Train();  
  32.     Vector ForeCast(const Vector);  
  33.    
  34. private:  
  35.    
  36.     void InitNetWork();           
  37.     void GetNums();               
  38.     void ForwardTransfer();       
  39.     void ReverseTransfer(int);    
  40.     void CalcDelta(int);          
  41.     void UpdateNetWork();         
  42.     Type GetError(int);           
  43.     Type GetAccu();               
  44. S形const典型)  
  45.    
  46. private:  
  47.     int in_num;                   
  48.     int ou_num;                   
  49.     int hd_num;                   
  50.    
  51.     Vector data;            
  52.    
  53. W型[层] [民] [数]  
  54. B型[层] [数]  
  55.        
  56. 典型X [层] [num ]  
  57. D型[层] [数]  
  58. };  
  59.    
  60. #endif  //_BP_H_  

  1. #include   
  2. #include <  
  3. #include <  
  4.    
  5. #include “”  
  6.    
  7. using namespace std;  
  8.    
  9. double sample[41][4]=   
  10. {   
  11.     {0,0,0,0},   
  12.     {5,1,4,},   
  13.     {5,3,3,},   
  14.     {5,5,2,},   
  15.     {5,3,3,},   
  16.     {5,3,2,},   
  17.     {5,3,2,},   
  18.     {5,5,1,},   
  19.     {5,1,2,},   
  20.     {5,3,3,},   
  21.     {5,5,4,},   
  22.     {5,5,2,},   
  23.     {5,1,3,},   
  24.     {5,3,4,},   
  25.     {5,5,5,},   
  26.     {5,1,4,},   
  27.     {5,1,4,},   
  28.     {5,3,5,},   
  29.     {5,5,4,},   
  30.     {5,1,3,},   
  31.     {5,3,2,},   
  32.     {1,3,1,},   
  33.     {1,5,2,},   
  34.     {1,1,3,},   
  35.     {1,3,4,},   
  36.     {1,5,5,},   
  37.     {1,5,3,},   
  38.     {1,1,4,},   
  39.     {1,3,5,},   
  40.     {1,5,4,},   
  41.     {1,1,3,},   
  42.     {1,1,5,},   
  43.     {1,3,4,},   
  44.     {1,5,3,},   
  45.     {1,1,2,},   
  46.     {1,3,1,},   
  47.     {1,3,3,},   
  48.     {1,5,2,},   
  49.     {1,1,1,},   
  50.     {1,3,2,},   
  51.     {1,5,3,}   
  52. };   
  53.    
  54. int main()  
  55. {  
  56.     Vector data;  
  57.     for(int i = 0; i < 41; i++)  
  58.     {  
  59. 唱片T
  60.         for(int j = 0; j < 3; j++)  
  61.             (sample[i][j]);  
  62.         (sample[i][3]);  
  63.         (t);  
  64.     }  
  65. BP *BPnew BP();  
  66.     bp->GetData(data);  
  67.     bp->Train();  
  68.    
  69.     while(1)  
  70.     {  
  71.         Vector in;  
  72.         for(int i = 0; i < 3; i++)  
  73.         {  
  74. V型
  75.             scanf(%LF, &v);  
  76.             (v);  
  77.         }  
  78.         Vector ou;  
  79. OU= BP ->预测(in)
  80.         printf(“%lf\n”,欧〔0〕
  81.     }  
  82.     return 0;  
  83. }  

Makefile:

  1. Test :     
  2. G O测验
  3.    
  4. clean:  
  5. RM实验  

没有评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注