ʵÑéÆß »ùÓÚÉñ¾ÍøÂçµÄģʽʶ±ðʵÑé
Ò»¡¢ÊµÑéÄ¿µÄ
Àí½âBPÉñ¾ÍøÂçºÍÀëÉ¢HopfieldÉñ¾ÍøÂçµÄ½á¹¹ºÍÔÀí£¬ÕÆÎÕ·´Ïò´«²¥Ñ§Ï°Ëã·¨¶ÔÉñ¾ÔªµÄѵÁ·¹ý³Ì£¬Á˽ⷴÏò´«²¥¹«Ê½¡£Í¨¹ý¹¹½¨BPÍøÂçºÍÀëÉ¢HopfieldÍøÂçģʽʶ±ðʵÀý£¬ÊìϤǰÀ¡ÍøÂçºÍ·´À¡ÍøÂçµÄÔÀí¼°½á¹¹¡£ ¶þ¡¢ÊµÑéÔÀí
BPѧϰËã·¨ÊÇͨ¹ý·´Ïòѧϰ¹ý³ÌʹÎó²î×îС£¬ÆäËã·¨¹ý³Ì´ÓÊä³ö½Úµã¿ªÊ¼£¬·´ÏòµØÏòµÚÒ»Òþº¬²ã(¼´×î½Ó½üÊäÈë²ãµÄÒþº¬²ã)´«²¥ÓÉ×ÜÎó²îÒýÆðµÄȨֵÐÞÕý¡£BPÍøÂç²»½öº¬ÓÐÊäÈë½ÚµãºÍÊä³ö½Úµã£¬¶øÇÒº¬ÓÐÒ»²ã»ò¶à²ãÒþ(²ã)½Úµã¡£ÊäÈëÐźÅÏÈÏòǰ´«µÝµ½Òþ½Úµã£¬¾¹ý×÷Óúó£¬ÔÙ°ÑÒþ½ÚµãµÄÊä³öÐÅÏ¢´«µÝµ½Êä³ö½Úµã£¬×îºó¸ø³öÊä³ö½á¹û¡£
ÀëÉ¢HopfieldÉñ¾ÍøÂçµÄÁªÏë¼ÇÒä¹ý³Ì·ÖΪѧϰºÍÁªÏëÁ½¸ö½×¶Î¡£ÔÚ¸ø¶¨Ñù±¾µÄÌõ¼þÏ£¬°´ÕÕHebbѧϰ¹æÔòµ÷ÕûÁ¬½ÓȨֵ£¬Ê¹µÃ´æ´¢µÄÑù±¾³ÉÎªÍøÂçµÄÎȶ¨×´Ì¬£¬Õâ¾ÍÊÇѧϰ½×¶Î¡£ÁªÏëÊÇÖ¸ÔÚÁ¬½ÓȨֵ²»±äµÄÇé¿öÏ£¬ÊäÈ벿·Ö²»È«»òÕßÊÜÁ˸ÉÈŵÄÐÅÏ¢£¬×îÖÕÍøÂçÊä³öij¸öÎȶ¨×´Ì¬¡£
Èý¡¢ÊµÑéÌõ¼þ
Matlab 7.X µÄÉñ¾ÍøÂ繤¾ßÏ䣺ÔÚMatlab 7.X µÄÃüÁî´°¿ÚÊäÈënntool£¬È»ºóÔÚ¼üÅÌÉÏÊäÈëEnter¼ü£¬¼´¿É´ò¿ªÉñ¾ÍøÂ繤¾ßÏä¡£ ËÄ¡¢ÊµÑéÄÚÈÝ
1.Õë¶Ô½Ì²ÄP243Àý8.1£¬Éè¼ÆÒ»¸öBPÍøÂç½á¹¹Ä£ÐÍ£¨63-6-9£©£¬²¢ÒԽ̲Äͼ8.5 ΪѵÁ·Ñù±¾Êý¾Ý£¬Í¼8.6Ϊ²âÊÔÊý¾Ý¡£
£¨1£©ÔËÐÐtrain_data.mºÍtest_data.mÎļþ£¬È»ºó´ÓMatlab¹¤×÷¿Õ¼äµ¼È루Import£©ÑµÁ·Ñù±¾Êý¾Ý£¨inputdata10£¬outputdata10£©ºÍ²âÊÔÊý¾Ý£¨testinputdata£¬testoutputdata£©£¬Æä´Îн¨Ò»¸öÉñ¾ÍøÂ磨New Network£©£¬Ñ¡Ôñ²ÎÊýÈçϱí1£¬¸ø³öBPÉñ¾ÍøÂç½á¹¹Í¼¡£
±í1 BPÍøÂç½á¹¹Ä£Ð͵ĸ÷Ïî²ÎÊýÉèÖà nn10_1 Network Name£¨Éñ¾ÍøÂçÃû³Æ£© Network Type£¨Éñ¾ÍøÂçÀàÐÍ£© Feed-forward backprop£¨Ç°À¡·´Ïò´«²¥£© Input ranges£¨ÊäÈëÐÅÏ¢·¶Î§£© À´×ÔѵÁ·Ñù±¾µÄÊäÈëÊý¾Ý£¨inputdata10£© Training function£¨ÑµÁ·º¯Êý£© TRAINGD(ÌݶÈϽµBPËã·¨) Performance function£¨ÐÔÄܺ¯Êý£© Number of layers£¨Éñ¾ÍøÂç²ãÊý£© Layer1£¨µÚ1²ã£©µÄNumber of neurons (Éñ¾Ôª¸öÊý) Layer1£¨µÚ1²ã£©µÄTransfer Function (´«µÝº¯Êý) Layer2£¨µÚ2²ã£©µÄNumber of neurons (Éñ¾Ôª¸öÊý) Layer2£¨µÚ2²ã£©µÄTransfer Function (´«µÝº¯Êý) MSE£¨¾ù·½Îó²î£© 2 6 LOGSIG£¨SÐͺ¯Êý£© 9 LOGSIG£¨SÐͺ¯Êý£© £¨2£©ÊäÈëѵÁ·Ñù±¾Êý¾Ý£¨inputdata10£¬outputdata10£©£¬Ëæ»ú³õʼ»¯Á¬½ÓȨ£¨Initialize Weights£©£¬È»ºó½øÐÐѵÁ·£¨Train£©£¬ÑµÁ·²ÎÊýÉèÖÃÈç±í2Ëùʾ£¬²¢¹Û²ìѵÁ·Ä¿±êÖµ±ä»¯ÇúÏßͼ£¬×îºó°ÑBPÉñ¾ÍøÂçѵÁ·³É¹¦ºó(¼´Îó²î²»Ôٱ仯ºó)µÄÎó²îÖµÌîÈë±í3¡£
±í2 BPÍøÂçѵÁ·²ÎÊý
ѵÁ·´ÎÊý£¨epochs£© ѵÁ·Ê±¼ä£¨time£© ѵÁ·Ä¿±ê£¨goal£© ѧϰÂÊ£¨lr£© ×î´óÈ·ÈÏʧ°Ü´ÎÊý£¨max_fail£© ×îСÐÔÄÜÌݶȣ¨min_grad£© Á½´ÎÏÔʾ֮¼äµÄѵÁ·²½Êý£¨show£© ±í3 BPÍøÂç¸÷ѵÁ·Ëã·¨µÄѵÁ·Ä¿±êÖµ
Training function £¨ÑµÁ·º¯Êý£© TRAINGD(ÌݶÈϽµBPËã·¨) TRAINGDM£¨ÌݶÈϽµ¶¯Á¿BPËã·¨£© TRAINLMM£¨Levenberg-Marquardt BPѵÁ·º¯Êý£© TRAINRP£¨µ¯ÐÔBPËã·¨£© TRAINSCG£¨±äÌݶÈËã·¨£© Network Name £¨Éñ¾ÍøÂçÃû³Æ£© nn10_1 nn10_2 nn10_3 nn10_4 nn10_5 ѵÁ·´ÎÊý£¨epochs£© Performance (ѵÁ·Ä¿±êÖµ) 10000 Inf 0 0.3 5 1e-050 25 £¨3£©Ñ¡Ôñ²»Í¬µÄѵÁ·º¯Êý£¬ÀýÈçTRAINGDM£¨ÌݶÈϽµ¶¯Á¿BPËã·¨£©¡¢TRAINLMM£¨Levenberg-Marquardt BPѵÁ·º¯Êý£©¡¢TRAINRP£¨µ¯ÐÔBPËã·¨£©¡¢TRAINSCG£¨±äÌݶÈËã·¨£©£¬È»ºóÊäÈëѵÁ·Ñù±¾Êý¾Ý£¨inputdata10£¬outputdata10£©£¬ÑµÁ·²ÎÊýÉèÖÃÈç±í2Ëùʾ£¬ÉèÖÃÏàͬµÄ³õʼÁ¬½ÓȨ£¨Revert Weights£©£¬¹Û²ì²»Í¬BPѵÁ·Ëã·¨µÄѧϰЧ¹û£¬°Ñ¸÷ѵÁ·Ëã·¨µÄѵÁ·Ä¿±êÖµÌîÈëÉϱí3¡£
£¨4£©Ñ¡ÔñѵÁ·Ä¿±êÖµ×îСµÄÒ»ÖÖѵÁ·Ëã·¨£¬Ñ¡ÔñWeightsÑ¡Ïî¸ø³öÆäѵÁ·ºóµÄÁ¬½ÓȨֵºÍÆ«Öã¬È»ºóÊäÈë²âÊÔÊý¾Ý£¨testinputdata£¬testoutputdata£©½øÐзÂÕæ£¨Simulate£©£¬²¢°ÑѵÁ·ºÍ²âÊԵĽá¹û¶¼µ¼³ö£¨Export£©µ½¹¤×÷¿Õ¼ä£¬¸ø³öѵÁ·ºóµÄÊä³ö½á¹ûºÍÊä³öÎó²î£¬ÒÔ¼°²âÊÔºóµÄÊä³ö½á¹ûºÍÊä³öÎó²î¡£
£¨5£©¶Ô²½Ö裨4£©ËùÑ¡ÔñµÄѵÁ·Ëã·¨£¬ÔÙÔö¼Ó30×éÑù±¾£¬È»ºóн¨Ò»¸öÉñ¾ÍøÂ磨New Network£©µÄ½á¹¹Îª63-16-4£¬ÉèÖÃNetwork Name£¨Éñ¾ÍøÂçÃû³Æ£©Îªnn40,²¢ÖØÐ°´ÕÕ²½Ö裨2£©½øÐÐѵÁ·£¨Train£©£¬¼´ÊäÈëѵÁ·Ñù±¾Êý¾Ý£¨inputdata40£¬outputdata8421_40£©£¬ÑµÁ·²ÎÊýÉèÖÃÈç±í2Ëùʾ£¬Ëæ»ú³õʼ»¯Á¬½ÓȨ£¨Initialize Weights£©¡£Æä´ÎÊäÈë²âÊÔÊý¾Ý£¨testinputdata£¬testoutputdata8421£©½øÐзÂÕæ£¨Simulate£©£¬²¢°ÑѵÁ·ºÍ²âÊԵĽá¹û¶¼µ¼³öµ½¹¤×÷¿Õ¼ä£¬¸ø³öѵÁ·ºóµÄÊä³ö½á¹ûºÍÊä³öÎó²î£¬ÒÔ¼°²âÊÔºóµÄÊä³ö½á¹ûºÍÊä³öÎó²î¡£
£¨6£©Õë¶ÔTraining function£¨ÑµÁ·º¯Êý£©ÎªTRAINGDµÄBPÍøÂ磨nn10_1£©£¬È»ºóÉèÖò»Í¬µÄѧϰÂÊ£¨lr£©£¬ÀýÈç0.01¡¢0.1¡¢0.5¡¢1£¬°´ÕÕ²½Ö裨2£©½øÐÐѵÁ·£¬¹Û²ìTRAINGDѵÁ·Ëã·¨µÄѧϰЧ¹û£¬°Ñ¸÷ѧϰÂÊϵÄѵÁ·Ä¿±êÖµÖµÌîÈë±í4¡£
±í4 BPÍøÂç¸÷ѵÁ·Ëã·¨µÄѵÁ·Ä¿±êÖµ
TRAINGDѵÁ·Ëã·¨µÄѧϰÂÊ 0.01 0.1 0.5 1 Performance (ѵÁ·Ä¿±êÖµ)
2?2ģʽ£¬Á½×éѵÁ·Êý¾ÝΪ 2. ÒÑÖª×Ö·ûµãÕóΪ
T a(1)??1011?(´óд×ÖĸL£©a(2)??0101?(Сд×Öĸl£©
T
ͼ1 ѵÁ·Êý¾Ý
´óд×ÖĸL Сд×Öĸl
Éè¼ÆÒ»¸öÄܹ»´æ´¢ÕâÁ½¸ö×Ö·ûµÄÀëÉ¢HopfieldÉñ¾ÍøÂ磬ҪÇó£º £¨1£©¸ø³öÏàÓ¦µÄÀëÉ¢HopfieldÉñ¾ÍøÂç½á¹¹Í¼£» £¨2£©¼ÆËãÁ¬½ÓȨֵ¼°ãÐÖµ£¨ãÐÖµ¿ÉÉèΪ 0£©£»
£¨3£©ÊäÈëÏÂÁвâÊÔÊý¾Ý
t(1)??1101?TTt(2)??0011? ͼ2 ²âÊÔÊý¾Ý
¸ø³öÍøÂç×îÖÕÊä³öµÄÎȶ¨×´Ì¬¡£ Î塢ʵÑ鱨¸æÒªÇó£º
1£® °´ÕÕʵÑéÄÚÈÝ£¬¸ø³öÏàÓ¦½á¹û¡£
2£®·ÖÎö±È½Ï²ÉÓÃÌݶÈϽµÑµÁ·Ëã·¨µÄBPÍøÂçѧϰÂʵı仯¶ÔÓÚѵÁ·½á¹ûµÄÓ°Ïì¡£ 3. ·ÖÎö±È½ÏBPÍøÂçºÍÀëÉ¢HopfieldÍøÂçÔÚģʽʶ±ð·½ÃæµÄÒìͬµã¡£
ÏÂÃæÊÇʵÑ鱨¸æµÄ»ù±¾ÄÚÈݺÍÊéд¸ñʽ¡£(10165956@qq.com)
ʵÑéÃû³Æ
°à¼¶£º ѧºÅ£º ÐÕÃû£º
Ò»¡¢ÊµÑéÄ¿µÄ ¶þ¡¢ÊµÑéÔÀí Èý¡¢ÊµÑé½á¹û
°´ÕÕʵÑéÄÚÈÝ£¬¸ø³öÏàÓ¦½á¹û¡£ ËÄ¡¢ÊµÑé×ܽá
1. Íê³ÉʵÑ鱨¸æÒªÇó2¡£ 2. ×ܽáʵÑéÐĵÃÌå»á
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª