±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁ˾í»ýÉñ¾ÍøÂç¼ò½é¡¢¾í»ýÉñ¾ÍøÂçµÄ¡°¾í»ý¡±
¡¢¾í»ýÉñ¾ÍøÂç¼°CNNͼÏñ·ÖÀà-keras ¡£Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô΢ÐŹ«ÖÚºÅCSDN¼¼ÊõÉçÇø£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
Ò»¡¢¾í»ýÉñ¾ÍøÂç¼ò½é
¾í»ýÉñ¾ÍøÂ磨Convolutional Neural Networks,
CNN£©ÊÇÒ»Àà°üº¬¾í»ý¼ÆËãµÄǰÀ¡Éñ¾ÍøÂ磬ÊÇ»ùÓÚͼÏñÈÎÎñµÄÆ½ÒÆ²»±äÐÔ£¨Í¼Ïñʶ±ðµÄ¶ÔÏóÔÚ²»Í¬Î»ÖÃÓÐÏàͬµÄº¬Ò壩Éè¼ÆµÄ£¬Éó¤Ó¦ÓÃÓÚͼÏñ´¦ÀíµÈÈÎÎñ¡£ÔÚͼÏñ´¦ÀíÖУ¬Í¼ÏñÊý¾Ý¾ßÓзdz£¸ßµÄάÊý£¨¸ßάµÄRGB¾ØÕó±íʾ£©£¬Òò´ËѵÁ·Ò»¸ö±ê×¼µÄǰÀ¡ÍøÂçÀ´Ê¶±ðͼÏñ½«ÐèÒª³ÉǧÉÏÍòµÄÊäÈëÉñ¾Ôª£¬³ýÁËÏÔ¶øÒ×¼ûµÄ¸ß¼ÆËãÁ¿£¬»¹¿ÉÄܵ¼ÖÂÐí¶àÓëÉñ¾ÍøÂçÖеÄάÊýÔÖÄÑÏà¹ØµÄÎÊÌâ¡£

¶ÔÓÚ¸ßάͼÏñÊý¾Ý£¬¾í»ýÉñ¾ÍøÂçÀûÓÃÁ˾í»ýºÍ³Ø»¯²ã£¬Äܹ»¸ßЧÌáȡͼÏñµÄÖØÒª¡°ÌØÕ÷¡±£¬ÔÙͨ¹ýºóÃæµÄÈ«Á¬½Ó²ã´¦Àí¡°Ñ¹ËõµÄͼÏñÐÅÏ¢¡±¼°Êä³ö½á¹û¡£¶Ô±È±ê×¼µÄÈ«Á¬½ÓÍøÂ磬¾í»ýÉñ¾ÍøÂçµÄÄ£ÐͲÎÊý´ó´ó¼õÉÙÁË¡£ 
¶þ¡¢¾í»ýÉñ¾ÍøÂçµÄ¡°¾í»ý¡±
2.1 ¾í»ýÔËËãµÄÔÀí
ÔÚÐźŴ¦Àí¡¢Í¼Ïñ´¦ÀíºÍÆäËü¹¤³Ì/¿ÆÑ§ÁìÓò£¬¾í»ý¶¼ÊÇÒ»ÖÖʹÓù㷺µÄ¼¼Êõ£¬¾í»ýÉñ¾ÍøÂ磨CNN£©ÕâÖÖÄ£Ðͼܹ¹¾ÍµÃÃûÓÚ¾í»ý¼ÆËã¡£µ«ÊÇ£¬Éî¶ÈѧϰÁìÓòµÄ¡°¾í»ý¡±±¾ÖÊÉÏÊÇÐźÅ/ͼÏñ´¦ÀíÁìÓòÄڵĻ¥Ïà¹Ø£¨cross-correlation£©£¬»¥Ïà¹ØÓë¾í»ýʵ¼ÊÉÏ»¹ÊÇÓÐЩ²îÒìµÄ¡£¾í»ýÊÇ·ÖÎöÊýѧÖÐÒ»ÖÖÖØÒªµÄÔËËã¡£¼òµ¥¶¨Òåf
, g Êǿɻý·ÖµÄº¯Êý£¬Á½Õߵľí»ýÔËËãÈçÏ£º 
Æä¶¨ÒåÊÇÁ½¸öº¯ÊýÖÐÒ»¸öº¯Êý£¨g£©¾¹ý·´×ªºÍÎ»ÒÆºóÔÙÏà³ËµÃµ½µÄ»ýµÄ»ý·Ö¡£ÈçÏÂͼ£¬º¯Êý g ÊǹýÂËÆ÷¡£Ëü±»·´×ªºóÔÙÑØË®Æ½ÖỬ¶¯¡£ÔÚÿһ¸öλÖã¬ÎÒÃǶ¼¼ÆËã
f ºÍ·´×ªºóµÄ g Ö®¼äÏà½»ÇøÓòµÄÃæ»ý¡£Õâ¸öÏà½»ÇøÓòµÄÃæ»ý¾ÍÊÇÌØ¶¨Î»ÖóöµÄ¾í»ýÖµ¡£ 
»¥Ïà¹ØÊÇÁ½¸öº¯ÊýÖ®¼äµÄ»¬¶¯µã»ý»ò»¬¶¯ÄÚ»ý¡£»¥Ïà¹ØÖеĹýÂËÆ÷²»¾¹ý·´×ª£¬¶øÊÇÖ±½Ó»¬¹ýº¯Êý f£¬f Óë
g Ö®¼äµÄ½»²æÇøÓò¼´ÊÇ»¥Ïà¹Ø¡£ 
ÏÂͼչʾÁ˾í»ýÓ뻥Ïà¹ØÔËËã¹ý³Ì£¬Ïà½»ÇøÓòµÄÃæ»ý±ä»¯µÄ²îÒ죺 
ÔÚ¾í»ýÉñ¾ÍøÂçÖУ¬¾í»ýÖеĹýÂËÆ÷²»¾¹ý·´×ª¡£ÑϸñÀ´Ëµ£¬ÕâÊÇÀëÉ¢ÐÎʽµÄ»¥Ïà¹ØÔËË㣬±¾ÖÊÉÏÊÇÖ´ÐÐÖðÔªËØ³Ë·¨ºÍÇóºÍ¡£µ«Á½ÕßµÄЧ¹ûÊÇÒ»Ö£¬ÒòΪ¹ýÂËÆ÷µÄÈ¨ÖØ²ÎÊýÊÇÔÚѵÁ·½×¶Îѧϰµ½µÄ£¬¾¹ýѵÁ·ºó£¬Ñ§Ï°µÃµ½µÄ¹ýÂËÆ÷¿´ÆðÀ´¾Í»áÏñÊÇ·´×ªºóµÄº¯Êý¡£
2.2 ¾í»ýÔËËãµÄ×÷ÓÃ
CNNͨ¹ýÉè¼ÆµÄ¾í»ýºË£¨convolution filter£¬Ò²³ÆÎªkernel£©ÓëͼƬ×ö¾í»ýÔËËã£¨Æ½ÒÆ¾í»ýºËÈ¥Öð²½×ö³Ë»ý²¢ÇóºÍ£©¡£ 
ÈçÏÂʾÀýÉè¼ÆÒ»¸ö£¨Ìض¨²ÎÊý£©µÄ3¡Á3µÄ¾í»ýºË£º 
ÈÃËüÈ¥¸úͼƬ×ö¾í»ý£¬¾í»ýµÄ¾ßÌå¹ý³ÌÊÇ£º
ÓÃÕâ¸ö¾í»ýºËÈ¥¸²¸ÇÔʼͼƬ£»
¸²¸ÇÒ»¿é¸ú¾í»ýºËÒ»Ñù´óµÄÇøÓòÖ®ºó£¬¶ÔÓ¦ÔªËØÏà³Ë£¬È»ºóÇóºÍ£»
¼ÆËãÒ»¸öÇøÓòÖ®ºó£¬¾ÍÏòÆäËûÇøÓòŲ¶¯£¨¼ÙÉè²½³¤ÊÇ1£©£¬¼ÌÐø¼ÆË㣻
Ö±µ½°ÑÔͼƬµÄÿһ¸ö½ÇÂä¶¼¸²¸Çµ½ÎªÖ¹£»

¿ÉÒÔ·¢ÏÖ£¬Í¨¹ýÌØ¶¨µÄfilter£¬ÈÃËüÈ¥¸úͼƬ×ö¾í»ý£¬¾Í¿ÉÒÔÌáÈ¡³öͼƬÖеÄÄ³Ð©ÌØÕ÷£¬±ÈÈç±ß½çÌØÕ÷¡£
½øÒ»²½µÄ£¬ÎÒÃÇ¿ÉÒÔ½èÖúÅÓ´óµÄÊý¾Ý£¬×ã¹»ÉîµÄÉñ¾ÍøÂ磬ʹÓ÷´Ïò´«²¥Ëã·¨ÈûúÆ÷È¥×Ô¶¯Ñ§Ï°ÕâЩ¾í»ýºË²ÎÊý£¬²»Í¬²ÎÊý¾í»ýºËÌáÈ¡ÌØÕ÷Ò²ÊDz»Ò»ÑùµÄ£¬¾ÍÄܹ»ÌáÈ¡³ö¾Ö²¿µÄ¡¢¸üÉî²ã´ÎºÍ¸üÈ«¾ÖµÄÌØÕ÷ÒÔÓ¦ÓÃÓÚ¾ö²ß¡£ 
¾í»ýÔËËãµÄ±¾ÖÊÐÔ×ܽ᣺¹ýÂËÆ÷(g)¶ÔͼƬ(f)Ö´ÐÐÖ𲽵ij˷¨²¢ÇóºÍ£¬ÒÔÌáÈ¡ÌØÕ÷µÄ¹ý³Ì¡£¾í»ý¹ý³Ì¿ÉÊÓ»¯¿É·ÃÎÊ£ºhttps://poloclub.github.io/cnn-explainer/
»ò https://github.com/vdumoulin/conv_arithmetic
Èý¡¢¾í»ýÉñ¾ÍøÂç
¾í»ýÉñ¾ÍøÂçͨ³£ÓÉ3¸ö²¿·Ö¹¹³É£º¾í»ý²ã£¬³Ø»¯²ã£¬È«Á¬½Ó²ã¡£¼òµ¥À´Ëµ£¬¾í»ý²ã¸ºÔðÌáȡͼÏñÖеľֲ¿¼°È«¾ÖÌØÕ÷£»³Ø»¯²ãÓÃÀ´´ó·ù½µµÍ²ÎÊýÁ¿¼¶(½µÎ¬)£»È«Á¬½Ó²ãÓÃÓÚ´¦Àí¡°Ñ¹ËõµÄͼÏñÐÅÏ¢¡±²¢Êä³ö½á¹û¡£

3.1 ¾í»ý²ã£¨CONV£©
3.1.1 ¾í»ý²ã»ù±¾ÊôÐÔ
¾í»ý²ãÖ÷Òª¹¦ÄÜÊǶ¯Ì¬µØÌáȡͼÏñÌØÕ÷£¬ÓÉÂ˲¨Æ÷filtersºÍ¼¤»îº¯Êý¹¹³É¡£Ò»°ãÒªÉèÖõij¬²ÎÊý°üÀ¨filtersµÄÊýÁ¿¡¢´óС¡¢²½³¤£¬¼¤»îº¯ÊýÀàÐÍ£¬ÒÔ¼°paddingÊÇ¡°valid¡±»¹ÊÇ¡°same¡±¡£
¾í»ýºË´óС£¨Kernel£©£ºÖ±¹ÛÀí½â¾ÍÊÇÒ»¸öÂ˲¨¾ØÕ󣬯ձéʹÓõľí»ýºË´óСΪ3¡Á3¡¢5¡Á5µÈ¡£ÔÚ´ïµ½Ïàͬ¸ÐÊÜÒ°µÄÇé¿öÏ£¬¾í»ýºËԽС£¬ËùÐèÒªµÄ²ÎÊýºÍ¼ÆËãÁ¿Ô½Ð¡¡£¾í»ýºË´óС±ØÐë´óÓÚ1²ÅÓÐÌáÉý¸ÐÊÜÒ°µÄ×÷Ó㬶ø´óСΪżÊýµÄ¾í»ýºË¼´Ê¹¶Ô³ÆµØ¼ÓpaddingÒ²²»Äܱ£Ö¤ÊäÈëfeature
map³ß´çºÍÊä³öfeature map³ß´ç²»±ä£¨¼ÙÉènΪÊäÈë¿í¶È£¬dΪpadding¸öÊý£¬mΪ¾í»ýºË¿í¶È£¬ÔÚ²½³¤Îª1µÄÇé¿öÏ£¬Èç¹û±£³ÖÊä³öµÄ¿í¶ÈÈÔΪn£¬¹«Ê½£¬n+2d-m+1=n£¬µÃ³öm=2d+1£¬ÐèÒªÊÇÆæÊý£©£¬ËùÒÔÒ»°ã¶¼ÓÃ3×÷Ϊ¾í»ýºË´óС¡£
¾í»ýºËÊýÄ¿£ºÖ÷Òª»¹ÊǸù¾Ýʵ¼ÊÇé¿öµ÷Õû£¬ Ò»°ã¶¼ÊÇÈ¡2µÄÕûÊý´Î·½£¬ÊýĿԽ¶à¼ÆËãÁ¿Ô½´ó£¬ÏàӦģÐÍÄâºÏÄÜÁ¦Ô½Ç¿¡£
²½³¤£¨Stride£©£º¾í»ýºË±éÀúÌØÕ÷ͼʱÿ²½Òƶ¯µÄÏñËØ£¬Èç²½³¤Îª1Ôòÿ´ÎÒÆ¶¯1¸öÏñËØ£¬²½³¤Îª2Ôòÿ´ÎÒÆ¶¯2¸öÏñËØ£¨¼´Ìø¹ý1¸öÏñËØ£©£¬ÒÔ´ËÀàÍÆ¡£²½³¤Ô½Ð¡£¬ÌáÈ¡µÄÌØÕ÷»á¸ü¾«Ï¸¡£
Ìî³ä£¨Padding£©£º´¦ÀíÌØÕ÷ͼ±ß½çµÄ·½Ê½£¬Ò»°ãÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇ¡°valid¡±£¬¶Ô±ß½çÍâÍêÈ«²»Ìî³ä£¬Ö»¶ÔÊäÈëÏñËØÖ´Ðоí»ý²Ù×÷£¬ÕâÑù»áʹÊä³öÌØÕ÷ͼÏñ³ß´ç±äµÃ¸üС£¬ÇÒ±ßÔµÐÅÏ¢ÈÝÒ×¶ªÊ§£»ÁíÒ»ÖÖÊÇ»¹ÊÇ¡°same¡±£¬¶Ô±ß½çÍâ½øÐÐÌî³ä£¨Ò»°ãÌî³äΪ0£©£¬ÔÙÖ´Ðоí»ý²Ù×÷£¬ÕâÑù¿ÉʹÊä³öÌØÕ÷ͼµÄ³ß´çÓëÊäÈëÌØÕ÷ͼµÄ³ß´çÒ»Ö£¬±ßÔµÐÅÏ¢Ò²¿ÉÒÔ¶à´Î¼ÆËã¡£
ͨµÀ£¨Channel£©£º¾í»ý²ãµÄͨµÀÊý£¨²ãÊý£©¡£Èç²ÊɫͼÏñÒ»°ã¶¼ÊÇRGBÈý¸öͨµÀ£¨channel£©¡£
¼¤»îº¯Êý£ºÖ÷Òª»¹ÊǸù¾Ýʵ¼ÊÑéÖ¤£¬Í¨³£Ñ¡ÔñRelu¡£
ÁíÍâµÄ£¬¾í»ýµÄÀàÐͳýÁ˱ê×¼¾í»ý£¬»¹Ñݱä³öÁË·´¾í»ý¡¢¿É·ÖÀë¾í»ý¡¢·Ö×é¾í»ýµÈ¸÷ÖÖÀàÐÍ£¬¿ÉÒÔ×ÔÐÐÑéÖ¤¡£
3.1.2 ¾í»ý²ãµÄÌØµã
ͨ¹ý¾í»ýÔËËãµÄ½éÉÜ£¬¿ÉÒÔ·¢ÏÖ¾í»ý²ãÓÐÁ½¸öÖ÷ÒªÌØµã£º¾Ö²¿Á¬½Ó£¨Ï¡ÊèÁ¬½Ó£©ºÍȨֵ¹²Ïí¡£
¾Ö²¿Á¬½Ó£¬¾ÍÊǾí»ý²ãµÄ½Úµã½ö½öºÍÆäǰһ²ãµÄ²¿·Ö½ÚµãÏàÁ¬½Ó£¬Ö»ÓÃÀ´Ñ§Ï°¾Ö²¿ÇøÓòÌØÕ÷¡££¨¾Ö²¿Á¬½Ó¸ÐÖª½á¹¹µÄÀíÄîÀ´Ô´ÓÚ¶¯ÎïÊÓ¾õµÄƤ²ã½á¹¹£¬ÆäÖ¸µÄÊǶ¯ÎïÊÓ¾õµÄÉñ¾ÔªÔÚ¸ÐÖªÍâ½çÎïÌåµÄ¹ý³ÌÖÐÆð×÷ÓõÄÖ»ÓÐÒ»²¿·ÖÉñ¾Ôª¡££©
Ȩֵ¹²Ïí£¬Í¬Ò»¾í»ýºË»áºÍÊäÈëͼƬµÄ²»Í¬ÇøÓò×÷¾í»ý£¬À´¼ì²âÏàͬµÄÌØÕ÷£¬¾í»ýºËÉÏÃæµÄÈ¨ÖØ²ÎÊýÊǿռ乲ÏíµÄ£¬Ê¹µÃ²ÎÊýÁ¿´ó´ó¼õÉÙ¡£ 
ÓÉÓÚ¾Ö²¿Á¬½Ó£¨Ï¡ÊèÁ¬½Ó£©ºÍȨֵ¹²ÏíµÄÌØµã£¬Ê¹µÃCNN¾ßÓзÂÉäµÄ²»±äÐÔ(Æ½ÒÆ¡¢Ëõ·ÅµÈÏßÐԱ任)
3.2 ³Ø»¯²ã£¨Pooling£©
³Ø»¯²ã¿É¶ÔÌáÈ¡µ½µÄÌØÕ÷ÐÅÏ¢½øÐнµÎ¬£¬Ò»·½ÃæÊ¹ÌØÕ÷ͼ±äС£¬¼ò»¯ÍøÂç¼ÆË㸴ÔÓ¶È£»ÁíÒ»·½Ãæ½øÐÐÌØÕ÷ѹËõ£¬ÌáÈ¡Ö÷ÒªÌØÕ÷£¬Ôö¼ÓÆ½ÒÆ²»±äÐÔ£¬¼õÉÙ¹ýÄâºÏ·çÏÕ¡£µ«Æäʵ³Ø»¯¸ü¶à³Ì¶ÈÉÏÊÇÒ»ÖÖ¼ÆËãÐÔÄܵÄÒ»¸öÍ×У¬Ç¿Ó²µØÑ¹ËõÌØÕ÷µÄͬʱҲËðʧÁËÒ»²¿·ÖÐÅÏ¢£¬ËùÒÔÏÖÔÚµÄÍøÂç±È½ÏÉÙÓóػ¯²ã»òÕßʹÓÃÓÅ»¯ºóµÄÈçSoftPool¡£
³Ø»¯²ãÉ趨µÄ³¬²ÎÊý£¬°üÀ¨³Ø»¯²ãµÄÀàÐÍÊÇMax»¹ÊÇAverage£¨Average¶Ô±³¾°±£Áô¸üºÃ£¬Max¶ÔÎÆÀíÌáÈ¡¸üºÃ£©£¬´°¿Ú´óСÒÔ¼°²½³¤µÈ¡£ÈçϵÄMaxPooling£¬²ÉÓÃÁËÒ»¸ö2¡Á2µÄ´°¿Ú£¬²¢È¡²½³¤stride=2£¬ÌáÈ¡³ö¸÷¸ö´°¿ÚµÄmaxÖµÌØÕ÷£¨AveragePooling¾ÍÊÇÆ½¾ùÖµ£©£º

3.3 È«Á¬½Ó²ã£¨FC£©
ÔÚ¾¹ýÊý´Î¾í»ýºÍ³Ø»¯Ö®ºó£¬ÎÒÃÇ×îºó»áÏȽ«¶àάµÄͼÏñÊý¾Ý½øÐÐѹËõ¡°±âƽ»¯¡±£¬ Ò²¾ÍÊÇ°Ñ (height,width,channel)
µÄÊý¾ÝѹËõ³É³¤¶ÈΪ height ¡Á width ¡Á channel µÄһάÊý×飬ȻºóÔÙÓëÈ«Á¬½Ó²ãÁ¬½Ó£¨ÕâÒ²¾ÍÊÇ´«Í³È«Á¬½ÓÍøÂç²ã£¬Ã¿Ò»¸öµ¥Ôª¶¼ºÍǰһ²ãµÄÿһ¸öµ¥ÔªÏàÁ¬½Ó£¬ÐèÒªÉ趨µÄ³¬²ÎÊýÖ÷ÒªÊÇÉñ¾ÔªµÄÊýÁ¿£¬ÒÔ¼°¼¤»îº¯ÊýÀàÐÍ£©£¬Í¨¹ýÈ«Á¬½Ó²ã´¦Àí¡°Ñ¹ËõµÄͼÏñÐÅÏ¢¡±²¢Êä³ö½á¹û¡£ 
3.4 ʾÀý£º¾µäCNNµÄ¹¹½¨£¨Lenet-5£©
 LeNet-5ÓÉYann LeCunÉè¼ÆÓÚ 1998Ä꣬ÊÇ×îÔçµÄ¾í»ýÉñ¾ÍøÂçÖ®Ò»¡£ËüÊÇÕë¶Ô»Ò¶Èͼ½øÐÐѵÁ·µÄ£¬ÊäÈëͼÏñ´óСΪ32321£¬²»°üº¬ÊäÈë²ãµÄÇé¿öϹ²ÓÐ7²ã¡£ÏÂÃæÖð²ã½éÉÜLeNet-5µÄ½á¹¹£º
1¡¢C1-¾í»ý²ã
µÚÒ»²ãÊǾí»ý²ã£¬ÓÃÓÚ¹ýÂËÔëÒô£¬ÌáÈ¡¹Ø¼üÌØÕ÷¡£Ê¹ÓÃ5 * 5´óСµÄ¹ýÂËÆ÷6¸ö£¬²½³¤s = 1£¬padding
= 0¡£
2¡¢S2-²ÉÑù²ã£¨Æ½¾ù³Ø»¯²ã£©
µÚ¶þ²ãÊÇÆ½¾ù³Ø»¯²ã£¬ÀûÓÃÁËͼÏñ¾Ö²¿Ïà¹ØÐÔµÄÔÀí£¬¶ÔͼÏñ½øÐÐ×Ó³éÑù£¬¿ÉÒÔ¼õÉÙÊý¾Ý´¦ÀíÁ¿Í¬Ê±±£ÁôÓÐÓÃÐÅÏ¢£¬½µµÍÍøÂçѵÁ·²ÎÊý¼°Ä£Ð͵ĹýÄâºÏ³Ì¶È¡£Ê¹ÓÃ2
* 2´óСµÄ¹ýÂËÆ÷£¬²½³¤s = 2£¬padding = 0¡£³Ø»¯²ãÖ»ÓÐÒ»×鳬²ÎÊýpool_size
ºÍ ²½³¤strides£¬Ã»ÓÐÐèҪѧϰµÄÄ£ÐͲÎÊý¡£
3¡¢C3-¾í»ý²ã
µÚÈý²ãʹÓÃ5 * 5´óСµÄ¹ýÂËÆ÷16¸ö£¬²½³¤s = 1£¬padding = 0¡£
4¡¢S4-ϲÉÑù²ã£¨Æ½¾ù³Ø»¯²ã£©
µÚËIJãʹÓÃ2 * 2´óСµÄ¹ýÂËÆ÷£¬²½³¤s = 2£¬padding = 0¡£Ã»ÓÐÐèҪѧϰµÄ²ÎÊý¡£
5¡¢C5-¾í»ý²ã
µÚÎå²ãÊǾí»ý²ã£¬ÓÐ120¸ö5 * 5 µÄµ¥Ôª£¬²½³¤s = 1£¬padding = 0¡£
6¡¢F6-È«Á¬½Ó²ã
ÓÐ84¸öµ¥Ôª¡£Ã¿¸öµ¥ÔªÓëF5²ãµÄÈ«²¿120¸öµ¥ÔªÖ®¼ä½øÐÐÈ«Á¬½Ó¡£
7¡¢Output-Êä³ö²ã
Output²ãÒ²ÊÇÈ«Á¬½Ó²ã£¬²ÉÓÃRBFÍøÂçµÄÁ¬½Ó·½Ê½£¨ÏÖÔÚÖ÷ÒªÓÉSoftmaxÈ¡´ú£¬ÈçÏÂʾÀý´úÂ룩£¬¹²ÓÐ10¸ö½Úµã£¬·Ö±ð´ú±íÊý×Ö0µ½9£¨ÒòΪLenetÓÃÓÚÊä³öʶ±ðÊý×ֵģ©£¬Èç¹û½ÚµãiµÄÊä³öֵΪ0£¬ÔòÍøÂçʶ±ðµÄ½á¹ûÊÇÊý×Öi¡£
ÈçÏÂKeras¸´ÏÖLenet-5£º  
ËÄ¡¢CNNͼÏñ·ÖÀà-keras
ÒÔkerasʵÏÖ¾µäµÄCIFAR10ͼÏñÊý¾Ý¼¯µÄ·ÖÀàΪÀý£¬´úÂ룺https://github.com/aialgorithm/Blog
ѵÁ·¼¯ÊäÈëÊý¾ÝµÄÑùʽΪ£º(50000, 32, 32, 3)¶ÔÓ¦ (Ñù±¾Êý, ͼÏñ¸ß¶È£¬ ¿í¶È,
RGB²ÊɫͼÏñͨµÀΪ3) 
չʾÊý¾Ý¼¯£¬¹²ÓÐ10ÀàͼÏñ£º

Êý¾Ý¼°±êǩԤ´¦Àí

¹¹Ôì¾í»ýÉñ¾ÍøÂç: ÊäÈë²ã->¶à×é¾í»ý¼°³Ø»¯²ã->È«Á¬½ÓÍøÂç->softmax¶à·ÖÀàÊä³ö²ã¡££¨ÈçÏÂͼ²¿·ÖÍøÂç½á¹¹£© 
Ä£ÐͱàÒ룺É趨RMSprop ÓÅ»¯Ëã·¨£»É趨·ÖÀàËðʧº¯Êý.

Ä£ÐÍѵÁ·: ¼òµ¥ÑéÖ¤5¸öepochs

Ä£ÐÍÆÀ¹À£º²âÊÔ¼¯accuracy: 0.716£¬¿É¼ûѵÁ·/²âÊÔ¼¯ÕûÌåµÄ׼ȷÂʶ¼²»Ì«¸ß£¨Ç·ÄâºÏ£©£¬¿ÉÒÔÔö¼ÓepochÊý¡¢Ä£Ð͵÷ÓÅÑé֤Ч¹û¡£
¸½ ¾í»ýÉñ¾ÍøÂçÓÅ»¯·½·¨£¨tricks£©£º
³¬²ÎÊýÓÅ»¯£º¿ÉÒÔÓÃËæ»úËÑË÷¡¢±´Ò¶Ë¹ÓÅ»¯¡£ÍƼö·Ö²¼Ê½³¬²ÎÊýµ÷ÊÔ¿ò¼ÜKeras Tuner°üÀ¨Á˳£ÓõÄÓÅ»¯·½·¨¡£
Êý¾Ý²ãÃæ£ºÊý¾ÝÔöÇ¿¹ã·ºÓÃÓÚͼÏñÈÎÎñ£¬Ð§¹ûÌáÉý´ó¡£³£ÓÃÓÐͼÏñÑù±¾±ä»»¡¢mixupµÈ¡£¸ü¶àÓÅ»¯·½·¨¾ßÌå¿É¼û£ºhttps://arxiv.org/abs/1812.01187



|