±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÉî¶ÈѧϰģÐÍѹËõºÍ¼ÓËÙËã·¨µÄÈý¸ö·½Ïò£¬·Ö±ðΪ¼ÓËÙÍøÂç½á¹¹Éè¼Æ¡¢Ä£ÐͲüôÓëÏ¡Ê軯¡¢Á¿»¯¼ÓËÙ¡£
±¾ÎÄÀ´×ÔÓÚSIGAI¹«Öںţ¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
ÕªÒª
ĿǰÔÚÉî¶ÈѧϰÁìÓò·ÖÀàÁ½¸öÅɱð£¬Ò»ÅÉΪѧԺÅÉ£¬Ñо¿Ç¿´ó¡¢¸´ÔÓµÄÄ£ÐÍÍøÂçºÍʵÑé·½·¨£¬ÎªÁË×·Çó¸ü¸ßµÄÐÔÄÜ£»ÁíÒ»ÅÉΪ¹¤³ÌÅÉ£¬Ö¼ÔÚ½«Ëã·¨¸üÎȶ¨¡¢¸ßЧµÄÂ䵨ÔÚÓ²¼þƽ̨ÉÏ£¬Ð§ÂÊÊÇÆä×·ÇóµÄÄ¿±ê¡£¸´ÔÓµÄÄ£Ð͹ÌÈ»¾ßÓиüºÃµÄÐÔÄÜ£¬µ«ÊǸ߶îµÄ´æ´¢¿Õ¼ä¡¢¼ÆËã×ÊÔ´ÏûºÄÊÇʹÆäÄÑÒÔÓÐЧµÄÓ¦ÓÃÔÚ¸÷Ó²¼þƽ̨ÉϵÄÖØÒªÔÒò¡£ËùÒÔ£¬¾í»ýÉñ¾ÍøÂçÈÕÒæÔö³¤µÄÉî¶ÈºÍ³ß´çΪÉî¶ÈѧϰÔÚÒÆ¶¯¶ËµÄ²¿Êð´øÀ´Á˾޴óµÄÌôÕ½£¬Éî¶ÈѧϰģÐÍѹËõÓë¼ÓËÙ³ÉΪÁËѧÊõ½çºÍ¹¤Òµ½ç¶¼ÖØµã¹Ø×¢µÄÑо¿ÁìÓòÖ®Ò»¡£
I. ¼ÓËÙÍøÂçÉè¼Æ
·Ö×é¾í»ý
·Ö×é¾í»ý¼´½«ÊäÈëµÄfeature maps·Ö³É²»Í¬µÄ×é£¨ÑØchannelά¶È½øÐзÖ×飩£¬È»ºó¶Ô²»Í¬µÄ×é·Ö±ð½øÐоí»ý²Ù×÷£¬¼´Ã¿Ò»¸ö¾í»ýºËÖÁÓÚÊäÈëµÄfeature
mapsµÄÆäÖÐÒ»×é½øÐÐÁ¬½Ó£¬¶øÆÕͨµÄ¾í»ý²Ù×÷ÊÇÓëËùÓеÄfeature maps½øÐÐÁ¬½Ó¼ÆËã¡£·Ö×éÊýkÔ½¶à£¬¾í»ý²Ù×÷µÄ×ܲÎÊýÁ¿ºÍ×ܼÆËãÁ¿¾ÍÔ½ÉÙ£¨¼õÉÙk±¶£©¡£È»¶ø·Ö×é¾í»ýÓÐÒ»¸öÖÂÃüµÄȱµã¾ÍÊDz»Í¬·Ö×éµÄͨµÀ¼ä¼õÉÙÁËÐÅÏ¢Á÷ͨ£¬¼´Êä³öµÄfeature
mapsÖ»¿¼ÂÇÁËÊäÈëÌØÕ÷µÄ²¿·ÖÐÅÏ¢£¬Òò´ËÔÚʵ¼ÊÓ¦ÓõÄʱºò»áÔÚ·Ö×é¾í»ýÖ®ºó½øÐÐÐÅÏ¢ÈںϲÙ×÷£¬½ÓÏÂÀ´Ö÷Òª½²Á½¸ö±È½Ï¾µäµÄ½á¹¹£¬ShuffleNet[1]ºÍMobileNet[2]½á¹¹¡£
1) ShuffleNet½á¹¹£º

ÈçÉÏͼËùʾ£¬Í¼aÊÇÒ»°ãµÄgroup convolutionµÄʵÏÖЧ¹û£¬ÆäÔì³ÉµÄÎÊÌâÊÇ£¬Êä³öͨµÀÖ»ºÍÊäÈëµÄijЩͨµÀÓйأ¬µ¼ÖÂÈ«¾ÖÐÅÏ¢
Á÷ͨ²»³©£¬ÍøÂç±í´ïÄÜÁ¦²»×㡣ͼb¾ÍÊÇshufflenet½á¹¹£¬¼´Í¨¹ý¾ùÔÈÅÅÁУ¬°Ñgroup convolutionºóµÄfeature
map°´Í¨µÀ½øÐоùÔÈ»ìºÏ£¬ÕâÑù¾Í¿ÉÒÔ¸üºÃµÄ»ñȡȫ¾ÖÐÅÏ¢ÁË¡£ ͼcÊDzÙ×÷ºóµÄµÈ¼ÛЧ¹ûͼ¡£ÔÚ·Ö×é¾í»ýµÄʱºò£¬Ã¿Ò»¸ö¾í»ýºË²Ù×÷µÄͨµÀÊý¼õÉÙ£¬ËùÒÔ¿ÉÒÔ´óÁ¿¼õÉÙ¼ÆËãÁ¿¡£
2) MobileNet½á¹¹£º

ÈçÉÏͼËùʾ£¬mobilenet²ÉÓÃÁËdepthwise separable convolutionsµÄ˼Ï룬²ÉÓÃdepthwise
(»ò½Ðchannelwise)ºÍ1x1 pointwiseµÄ·½·¨½øÐзֽâ¾í»ý¡£ÆäÖÐdepthwise
separable convolutions¼´¶Ôÿһ¸öͨµÀ½øÐоí»ý²Ù×÷£¬¿ÉÒÔ¿´³ÉÊÇÿ×éÖ»ÓÐÒ»¸öͨµÀµÄ·Ö×é¾í»ý£¬×îºóʹÓÿªÏú½ÏСµÄ1x1¾í»ý½øÐÐͨµÀÈںϣ¬¿ÉÒÔ´ó´ó¼õÉÙ¼ÆËãÁ¿¡£
·Ö½â¾í»ý
·Ö½â¾í»ý£¬¼´½«ÆÕͨµÄkxk¾í»ý·Ö½âΪkx1ºÍ1xk¾í»ý£¬Í¨¹ýÕâÖÖ·½Ê½¿ÉÒÔÔÚ¸ÐÊÜÒ°ÏàͬµÄʱºò´óÁ¿¼õÉÙ¼ÆËãÁ¿£¬Í¬Ê±Ò²¼õÉÙÁ˲ÎÊýÁ¿£¬ÔÚijÖ̶ֳÈÉÏ¿ÉÒÔ¿´³ÉÊÇʹÓÃ2k¸ö²ÎÊýÄ£Äâk*k¸ö²ÎÊýµÄ¾í»ýЧ¹û£¬´Ó¶øÔì³ÉÍøÂçµÄÈÝÁ¿¼õС£¬µ«ÊÇ¿ÉÒÔÔÚ½ÏÉÙËðʧ¾«¶ÈµÄǰÌáÏ£¬´ïµ½ÍøÂç¼ÓËÙµÄЧ¹û¡£

ÓÒͼÊÇÔÚͼÏñÓïÒå·Ö¸îÈÎÎñÉÏÈ¡µÃ·Ç³£ºÃµÄЧ¹ûµÄERFNet[3]µÄÖ÷Ҫģ¿é£¬³ÆÎªNonBottleNeck½á¹¹½è¼ø×ÔResNet[4]ÖеÄNon-Bottleneck½á¹¹£¬ÏàÓ¦¸Ä½øÎªÊ¹Ó÷ֽâ¾í»ýÌæ»»±ê×¼¾í»ý£¬ÕâÑù¿ÉÒÔ¼õÉÙÒ»¶¨µÄ²ÎÊýºÍ¼ÆËãÁ¿£¬Ê¹ÍøÂç¸üÇ÷½üÓÚefficiency¡£
Bottleneck½á¹¹

ÓÒͼΪENet[5]ÖеÄBottleneck½á¹¹£¬½è¼ø×ÔResNetÖеÄBottleneck½á¹¹£¬Ö÷ÒªÊÇͨ¹ý1x1¾í»ý½øÐнµÎ¬ºÍÉýά£¬ÄÜÔÚÒ»¶¨³Ì¶ÈÉÏÄܹ»¼õÉÙ¼ÆËãÁ¿ºÍ²ÎÊýÁ¿¡£ÆäÖÐ1x1¾í»ý²Ù×÷µÄ²ÎÊýÁ¿ºÍ¼ÆËãÁ¿ÉÙ£¬Ê¹ÓÃÆä½øÐÐÍøÂçµÄ½µÎ¬ºÍÉýά²Ù×÷£¨¼õÉÙ»òÕßÔö¼ÓͨµÀÊý£©µÄ¿ªÏú±È½ÏС£¬´Ó¶øÄܹ»´ïµ½ÍøÂç¼ÓËÙµÄÄ¿µÄ¡£
C.ReLU[7]½á¹¹

C.ReLUÀ´Ô´ÓÚCNNsÖм伤»îģʽÒý·¢µÄ¡£Êä³ö½ÚµãÇãÏòÓÚÊÇ"Åä¶ÔµÄ"£¬Ò»¸ö½Úµã¼¤»îÊÇÁíÒ»¸ö½ÚµãµÄÏà·´Ãæ£¬¼´ÆäÖÐÒ»°ëͨµÀµÄÌØÕ÷ÊÇ¿ÉÒÔͨ¹ýÁíÍâÒ»°ëͨµÀµÄÌØÕ÷Éú³ÉµÄ¡£¸ù¾ÝÕâ¸ö¹Û²ì£¬C.ReLU¼õÉÙÒ»°ëÊä³öͨµÀ(output
channels)µÄÊýÁ¿£¬È»ºóͨ¹ýÆäÖÐÒ»°ëͨµÀµÄÌØÕ÷Éú³ÉÁíÒ»°ëÌØÕ÷£¬ÕâÀïʹÓà negationʹÆä±ä³ÉË«±¶£¬×îºóͨ¹ýscale²Ù×÷ʹµÃÿ¸öchannel(ͨµÀ)µÄбÂʺͼ¤»îãÐÖµÓëÆäÏà·´µÄchannel²»Í¬¡£
SqueezeNet[8]½á¹¹

SqueezeNet˼Ïë·Ç³£¼òµ¥£¬¾ÍÊǽ«ÔÀ´¼òµ¥µÄÒ»²ãconv²ã±ä³ÉÁ½²ã:squeeze²ã+expand²ã£¬¸÷×Ô´øÉÏRelu¼¤»î²ã¡£ÔÚsqueeze²ãÀïÃæÈ«ÊÇ1x1µÄ¾í»ýkernel£¬ÊýÁ¿¼ÇΪS11;ÔÚexpand²ãÀïÃæÓÐ1x1ºÍ3x3µÄ¾í»ýkernel£¬ÊýÁ¿·Ö±ð¼ÇΪE11ºÍE33£¬ÒªÇóS11
< input map number¡£expand²ãÖ®ºó½« 1x1ºÍ3x3µÄ¾í»ýoutput
feature mapsÔÚchannelά¶ÈÆ´½ÓÆðÀ´¡£
Éñ¾ÍøÂçËÑË÷[18]
Éñ¾½á¹¹ËÑË÷£¨Neural Architecture Search£¬¼ò³ÆNAS£©ÊÇÒ»ÖÖ×Ô¶¯Éè¼ÆÉñ¾ÍøÂçµÄ¼¼Êõ£¬¿ÉÒÔͨ¹ýËã·¨¸ù¾ÝÑù±¾¼¯×Ô¶¯Éè¼Æ³ö¸ßÐÔÄܵÄÍøÂç½á¹¹£¬ÔÚijЩÈÎÎñÉÏÉõÖÁ¿ÉÒÔæÇÃÀÈËÀàר¼ÒµÄË®×¼£¬ÉõÖÁ·¢ÏÖijЩÈËÀàÖ®Ç°Î´ÔøÌá³öµÄÍøÂç½á¹¹£¬Õâ¿ÉÒÔÓÐЧµÄ½µµÍÉñ¾ÍøÂçµÄʹÓúÍʵÏֳɱ¾¡£
NASµÄÔÀíÊǸø¶¨Ò»¸ö³ÆÎªËÑË÷¿Õ¼äµÄºòÑ¡Éñ¾ÍøÂç½á¹¹¼¯ºÏ£¬ÓÃijÖÖ²ßÂÔ´ÓÖÐËÑË÷³ö×îÓÅÍøÂç½á¹¹¡£Éñ¾ÍøÂç½á¹¹µÄÓÅÁÓ¼´ÐÔÄÜÓÃijЩָ±êÈ羫¶È¡¢ËÙ¶ÈÀ´¶ÈÁ¿£¬³ÆÎªÐÔÄÜÆÀ¹À£¬¿ÉÒÔͨ¹ýNAS×Ô¶¯ËÑË÷³ö¸ßЧÂʵÄÍøÂç½á¹¹¡£
×ܽá
±¾½ÚÖ÷Òª½éÉÜÁËÄ£ÐÍÄ£ÐÍÉè¼ÆµÄ˼·£¬Í¬Ê±¶ÔÄ£Ð͵ļÓËÙÉè¼ÆÒÔ¼°Ïà¹ØÈ±ÏݽøÐзÖÎö¡£×ܵÄÀ´Ëµ£¬¼ÓËÙÍøÂçÄ£ÐÍÉè¼ÆÖ÷ÒªÊÇ̽Ë÷×îÓŵÄÍøÂç½á¹¹£¬Ê¹µÃ½ÏÉٵIJÎÊýÁ¿ºÍ¼ÆËãÁ¿¾ÍÄÜ´ïµ½ÀàËÆµÄЧ¹û¡£
II. Winograd¡¢Ä£ÐͲüôÓëÏ¡Ê軯
FFT / WinogradµÄ¾í»ýËã·¨[19]
FFT / WinogradµÄ¾í»ýËã·¨¼´Í¨¹ýijÖÖÏßÐԱ任½«feature mapºÍ¾í»ýºË±ä»»µ½ÁíÍâÒ»¸öÓò£¬¿Õ¼äÓòϵľí»ýÔÚÕâ¸öÓòϱäΪÖðµãÏà³Ë£¬ÔÙͨ¹ýÁíÒ»¸öÏßÐԱ任½«½á¹û±ä»»µ½¿Õ¼äÓò¡£FFT¾í»ý²ÉÓøµÀïÒ¶±ä»»´¦Àífeature
mapºÍ¾í»ýºË£¬¸µÀïÒ¶Äæ±ä»»´¦Àí½á¹û£»Winograd¾í»ýʹÓÃÁËÆäËûµÄÏßÐԱ任¡£

¾ßÌå¶øÑÔFFT½«¿Õ¼äÒâÒåÉϵÄʵÊý±ä»»µ½ÆµÓòÉϵĸ´Êý£¬×îºóÔÚ¸´ÊýÉÏ×öÖðµãÏà³Ë£¬È»ºóÔÙ°ÑÕâ¸öƵÂʵĸ´Êý±ä»¯ÎªÕâ¸ö¿Õ¼äÓòµÄʵÊý¡£WinogradÔòÊÇÒ»Ö±ÔÚʵÊýÓòÉϽøÐб任¡£ÊÂʵÉÏÓÉÓÚFFTÐèÒª¸´Êý³Ë·¨£¬Èç¹ûûÓÐÌØÊâÖ¸ÁîÖ§³ÖµÄ»°ÐèÒªÓÃʵÊý³Ë·¨À´Ä£Ä⣬ʵÊýµÄ¸¡µã¼ÆËãÁ¿¿ÉÄÜϽµµÄ²»¶à¡£Òò´ËFFTҲûÓÐWinogradʵÓá£FFTºÍWinograd±ä»¯Êµ¼ÊÉÏÊÇ¿ÉÒÔʵÏÖ¼«¸ßµÄÒ»¸ö¼ÓËٱȣ¬¾Ù¸öÀý×Ó£¬Winograd±ä»»¶ÔÓÚ3¡Á3¾í»ý£¬×î¸ß¿ÉÒÔʵÏÖ9±¶µÄ¼ÓËٱȣ¬µ«¾«¶ÈËðʧÑÏÖØ¡£µ±È»ÎÒÃÇʵ¼ÊÉϲ»»áÓÃÄÇô´ó£¬¿ÉÄÜ»áÓõ½6±¶£¬ÄÇôÕâʱºò¾«¶ÈËðʧ»¹ÊÇ¿ÉÒÔ½ÓÊܵġ£
Ä£ÐͼôÖ¦
½á¹¹¸´ÔÓµÄÍøÂç¾ßÓзdz£ºÃµÄÐÔÄÜ£¬Æä²ÎÊýÒ²´æÔÚÈßÓ࣬Òò´Ë¶ÔÓÚÒÑѵÁ·ºÃµÄÄ£ÐÍÍøÂ磬¿ÉÒÔѰÕÒÒ»ÖÖÓÐЧµÄÆÀÅÐÊֶΣ¬½«²»ÖØÒªµÄconnection»òÕßfilter½øÐвüôÀ´¼õÉÙÄ£Ð͵ÄÈßÓà¡£
¼ôÖ¦·½·¨»ù±¾Á÷³ÌÈçÏÂ[9]£º
1. Õý³£Á÷³ÌѵÁ·Ò»¸öÉñ¾ÍøÂ磬µÃµ½ÑµÁ·ºÃµÄmodel£»
2. È·¶¨Ò»¸öÐèÒª¼ôÖ¦µÄ²ã£¬Ò»°ãΪȫÁ¬½Ó²ã£¬É趨һ¸ö²Ã¼ôãÐÖµ»òÕß±ÈÀý¡£ÊµÏÖÉÏ£¬Í¨¹ýÐ޸ĴúÂë¼ÓÈëÒ»¸öÓë²ÎÊý¾ØÕó³ß´çÒ»ÖµÄmask¾ØÕó¡£mask¾ØÕóÖÐÖ»ÓÐ0ºÍ1£¬Êµ¼ÊÉÏÊÇÓÃÓÚÖØÐÂѵÁ·µÄÍøÂç¡£
3. ÖØÐÂѵÁ·Î¢µ÷£¬²ÎÊýÔÚ¼ÆËãµÄʱºòÏȳËÒÔ¸Ãmask£¬ÔòmaskλΪ1µÄ²ÎÊýÖµ½«¼ÌÐøÑµÁ·Í¨¹ýBPµ÷Õû£¬¶ømaskλΪ0µÄ²¿·ÖÒòΪÊä³öʼÖÕΪ0Ôò²»¶ÔºóÐø²¿·Ö²úÉúÓ°Ïì¡£
4. Êä³öÄ£ÐͲÎÊý´¢´æµÄʱºò£¬ÒòΪÓдóÁ¿µÄÏ¡Ê裬ËùÒÔÐèÒªÖØÐ¶¨Òå´¢´æµÄÊý¾Ý½á¹¹£¬½ö´¢´æ·ÇÁãÖµÒÔ¼°Æä¾ØÕóλÖá£ÖØÐ¶ÁȡģÐͲÎÊýµÄʱºò£¬¾Í¿ÉÒÔ»¹Ô¾ØÕó¡£
Éñ¾ÍøÂçµÄ²ÎÊýÁ¿ÍùÍù·Ç³£¶à£¬¶øÆäÖд󲿷ֵIJÎÊýÔÚѵÁ·ºÃÖ®ºó¶¼»áÇ÷½üÓÚÁ㣬¶ÔÕû¸öÍøÂçµÄ¹±Ï׿ÉÒÔºöÂÔ²»¼Æ¡£Í¨¹ý¼ôÖ¦²Ù×÷¿ÉÒÔÊ¹ÍøÂç±äµÃÏ¡Ê裬ÐèÒª´æ´¢µÄ²ÎÊýÁ¿¼õÉÙ£¬µ«ÊǼôÖ¦²Ù×÷ͬÑù»á½µµÍÕû¸öÄ£Ð͵ÄÈÝÁ¿£¨²ÎÊýÁ¿¼õÉÙ£©£¬ÔÚʵ¼ÊѵÁ·Ê±£¬ÓÐʱºò»áͨ¹ýµ÷ÕûÓÅ»¯º¯Êý£¬ÓÕµ¼ÍøÂçÈ¥ÀûÓÃÄ£Ð͵ÄËùÓвÎÊý£¬ÊµÖÊÉϾÍÊǼõÉÙ½Ó½üÓÚÁãµÄ²ÎÊýÁ¿¡£×îºó£¬¶ÔÓÚÈçºÎ×Ô¶¯É趨¼ôÖ¦ÂÊ£¬ÈçºÎ×ÔÊÊÓ¦É趨¼ôÖ¦ãÐÖµ£¬ÔÚÕâÀï²»×ö¹ý¶àÌÖÂÛ¡£
ºËµÄÏ¡Ê軯
ºËµÄÏ¡Ê軯£¬ÊÇÔÚѵÁ·¹ý³ÌÖУ¬¶ÔÈ¨ÖØµÄ¸üмÓÒÔÕýÔòÏî½øÐÐÓÕµ¼£¬Ê¹Æä¸ü¼ÓÏ¡Ê裬ʹ´ó²¿·ÖµÄȨֵ¶¼Îª0¡£ºËµÄÏ¡Ê軯·½·¨·ÖΪregularºÍirregular£¬regularµÄÏ¡Ê軯ºó£¬²Ã¼ôÆðÀ´¸ü¼ÓÈÝÒ×£¬ÓÈÆäÊǶÔim2colµÄ¾ØÕó²Ù×÷£¬Ð§Âʸü¸ß£»¶øirregularµÄÏ¡Ê軯»á´øÀ´²»¹æÔòµÄÄÚ´æ·ÃÎÊ£¬²ÎÊýÐèÒªÌØ¶¨µÄ´æ´¢·½Ê½£¬»òÕßÐèҪƽ̨ÉÏÏ¡Êè¾ØÕó²Ù×÷¿âµÄÖ§³Ö£¬ÈÝÒ×Êܵ½´ø¿íµÄÓ°Ï죬ÔÚGPUµÈÓ²¼þÉϼÓËÙ²¢²»Ã÷ÏÔ¡£
ÂÛÎÄ[10]Ìá³öÁËStructured Sparsity LearningµÄѧϰ·½Ê½£¬Äܹ»Ñ§Ï°Ò»¸öÏ¡ÊèµÄ½á¹¹À´½µµÍ¼ÆËãÏûºÄ£¬Ëùѧµ½µÄ½á¹¹ÐÔÏ¡Ê軯Äܹ»ÓÐЧµÄÔÚÓ²¼þÉϽøÐмÓËÙ¡£ÓÉÓÚÔÚGEMMÖн«weight
tensorÀ³ÉmatrixµÄ½á¹¹£¨¼´im2col²Ù×÷£©£¬Òò´Ë¿ÉÒÔͨ¹ý½«filter¼¶Óëshape¼¶µÄÏ¡Ê軯½øÐнáºÏÀ´½«2D¾ØÕóµÄÐкÍÁÐÏ¡Ê軯£¬ÔÙ·Ö±ðÔÚ¾ØÕóµÄÐкÍÁÐÉϲüôµôÌÞ³ýȫΪ0µÄÖµ¿ÉÒÔÀ´½µµÍ¾ØÕóµÄά¶È´Ó¶øÌáÉýÄ£Ð͵ÄÔËËãЧÂÊ¡£¸Ã·½·¨ÊÇregularµÄ·½·¨£¬Ñ¹ËõÁ£¶È½Ï´Ö£¬¿ÉÒÔÊÊÓÃÓÚ¸÷ÖÖÏֳɵÄËã·¨¿â£¬µ«ÊÇѵÁ·µÄÊÕÁ²ÐÔºÍÓÅ»¯ÄѶȲ»È·¶¨¡£
ÂÛÎÄ[11]Ìá³öÁËÒ»ÖÖ¶¯Ì¬µÄÄ£ÐͲüô·½·¨£¬°üÀ¨ÒÔÏÂÁ½¸ö¹ý³Ì£ºpruningºÍsplicing£¬ÆäÖÐpruning¾ÍÊǽ«ÈÏΪ²»ÖÐÒªµÄweight²Ãµô£¬µ«ÊÇÍùÍùÎÞ·¨Ö±¹ÛµÄÅжÏÄÄЩweightÊÇ·ñÖØÒª£¬Òò´ËÔÚÕâÀïÔö¼ÓÁËÒ»¸ösplicingµÄ¹ý³Ì£¬½«ÄÄÐ©ÖØÒªµÄ±»²ÃµôµÄweightÔÙ»Ö¸´»ØÀ´¡£¸ÃËã·¨²ÉÈ¡Á˼ôÖ¦Óë¼Þ½ÓÏà½áºÏ¡¢ÑµÁ·ÓëѹËõÏàͬ²½µÄ²ßÂÔÍê³ÉÍøÂçѹËõÈÎÎñ¡£Í¨¹ýÍøÂç¼Þ½Ó²Ù×÷µÄÒýÈ룬±ÜÃâÁË´íÎó¼ôÖ¦ËùÔì³ÉµÄÐÔÄÜËðʧ£¬´Ó¶øÔÚʵ¼Ê²Ù×÷ÖиüºÃµØ±Æ½üÍøÂçѹËõµÄÀíÂÛ¼«ÏÞ¡£ÊôÓÚirregularµÄ·½Ê½£¬µ«ÊÇȨֵ£¨ÍøÂçÁ¬½Ó£©ÖØÒªÐÔÆÀ¹ÀÔÚ²»Í¬µÄÄ£ÐÍÒÔ¼°²»Í¬µÄ²ãÖÐÎÞ·¨È·¶¨£¬²¢ÇÒÈÝÒ×Êܵ½Ï¡Êè¾ØÕóËã·¨¿âÒÔ¼°´ø¿íµÄÏÞÖÆ£¬ÔÚÏà¹ØGPUµÈÓ²¼þ»·¾³Ï¼ÓËÙ²»Ã÷ÏÔ¡£
III. Á¿»¯¼ÓËÙ
¶þÖµÈ¨ÖØÍøÂç[12]
¶þÖµÈ¨ÖØÍøÂç(BWN)ÊÇÒ»ÖÖÖ»Õë¶ÔÉñ¾ÍøÂçϵÊý¶þÖµ»¯µÄ¶þÖµÍøÂçËã·¨¡£BWNÖ»¹ØÐÄϵÊýµÄ¶þÖµ»¯£¬²¢²ÉÈ¡ÁËÒ»ÖÖ»ìºÍµÄ²ßÂÔ£¬¹¹½¨ÁËÒ»¸ö»ìÓе¥¾«¶È¸¡µãÐÍÖмäÖµÓë¶þÖµÈ¨ÖØµÄÉñ¾ÍøÂç--BinaryConnect¡£BinaryConnectÔÚѵÁ·¹ý³ÌÖÐÕë¶ÔÌØ¶¨²ãµÄÈ¨ÖØ½øÐÐÊýÖµÉϵĶþÖµ»¯£¬¼´°ÑÔʼȫ¾«¶È¸¡µãÈ¨ÖØÇ¿ÐÐÖÃΪ-1¡¢+1Á½¸ö¸¡µãÊý£¬Í¬Ê±²»¸Ä±äÍøÂçµÄÊäÈëºÍ²ãÖ®¼äµÄÖмäÖµ£¬±£ÁôÔʼ¾«¶È¡£¶øÕæÕýÔÚʹÓÃѵÁ·ºÃµÄÄ£ÐÍʱ£¬ÓÉÓÚÈ¨ÖØµÄȡֵ¿ÉÒÔ³éÏóΪ-1¡¢+1£¬Òò´Ë¿ÉÒÔ²ÉÓøüÉÙµÄλÊý½øÐдæ·Å£¬¸üÖØÒªµÄÊÇ£¬ºÜÏÔÈ»È¨ÖØÈ¡ÖµµÄÌØµãʹµÃÔ±¾ÔÚÉñ¾ÍøÂçÖеij˷¨ÔËËã¿ÉÒÔ±»¼Ó·¨´úÌæ¡£
³Ë·¨ÔËËãת±äΪ¼Ó·¨µÄºÃ´¦ÔÚÓÚ£º¼ÆËã»úµ×²ãÓ²¼þÔÚʵÏÖÁ½¸önλ¿íÊý¾ÝµÄ³Ë·¨ÔËËãʱ±ØÐëÍê³É2*nλ¿í¶ÈµÄÂß¼µ¥Ôª´¦Àí£¬¶øÍ¬ÑùÊý¾ÝÔÚÖ´Ðмӷ¨Ê±Ö»ÐèÒªn¸öλ¿íµÄÂß¼µ¥Ôª´¦Àí£¬Òò´ËÀíÂÛÉÏ¿ÉÒԵõ½2±¶µÄ¼ÓËٱȡ£
¶þÖµÉñ¾ÍøÂç[13]
ÓÉÓÚBWNÈ¡µÃµÄ³É¹¦£¬ÈËÃÇ¿ªÊ¼³¢ÊÔ¶Ô¶þÖµÍøÂç½øÐиü¼ÓÉîÈëµÄÑо¿¸ÄÔ죬²¢ÊÔͼ´ÓÖлñµÃ¸ü´óµÄÐÔÄÜÌáÉý¡£ÆäÖУ¬×îÖØÒªµÄ»ù´¡¹¤×÷ÊÇMatthieu
Courbariaux µÈÈËÔÚ¼¸¸öÔºóÌá³öµÄ¶þÖµÉñ¾ÍøÂç(BNN)¡£ÕâÒ»·½·¨ÔÚBWNµÄ»ù ´¡ÉϽøÒ»²½¼Ó´ó¶þÖµ»¯Á¦¶È£¬½ø¶øÍêÈ«¸Ä±äÁËÕû¸öÉñ¾ÍøÂçÖеļÆË㷽ʽ£¬½«ËùÐèµÄ¼ÆËãÁ¿Ñ¹Ëõµ½¼«µÍµÄˮƽ¡£
BNNÒªÇó²»½ö¶ÔÈ¨ÖØ×ö¶þÖµ»¯£¬Í¬Ê±Ò²Òª¶ÔÍøÂçÖмäÿ²ãµÄÊäÈëÖµ½øÐжþÖµ»¯£¬ÕâÒ»²Ù×÷ʹµÃËùÓвÎÓë³Ë·¨ÔËËãµÄÊý¾Ý¶¼±»Ç¿ÖÆ×ª»»Îª¡°-1¡±¡¢¡°+1¡±¶þÖµ¡£ÎÒÃÇÖªµÀ¼ÆËã»úµÄÓ²¼þʵÏÖ²ÉÓÃÁ˶þ½øÖÆ·½Ê½£¬¶øÉñ¾ÍøÂçÖд¦Àí¹ýµÄ¶þÖµÊý¾Ý
Ç¡ºÃÓëÆäÒ»Ö£¬ÕâÑùÒ»À´¾Í¿ÉÒÔ¿¼ÂÇ´Ó±ÈÌØÎ»µÄ½Ç¶ÈÈëÊÖÓÅ»¯¼ÆË㸴ÔÓ¶È¡£
BNNÒ²ÕýÊÇÕâÑù×öµÄ£º½«¶þÖµ¸¡µãÊý¡°-1¡±¡¢¡°+1¡±·Ö±ðÓÃÒ»¸ö±ÈÌØ¡°0¡±¡¢¡°1¡±À´±íʾ£¬ÕâÑù£¬Ô±¾Õ¼ÓÃ32¸ö±ÈÌØÎ»µÄ¸¡µãÊýÏÖÔÚÖ»Ðè1¸ö±ÈÌØÎ»¾Í¿É´æ·Å£¬ÉÔ¼Ó´¦Àí¾Í¿ÉÒÔʵÏÖ½µµÍÉñ¾ÍøÂçǰÏò¹ý³ÌÖÐÄÚ´æÕ¼ÓõÄЧ¹û¡£Í¬Ê±£¬Ò»¶Ô¡°-1¡±¡¢¡°+1¡±½øÐг˷¨ÔËË㣬µÃµ½µÄ½á¹ûÒÀÈ»ÊÇ¡°-1¡±¡¢¡°+1¡±£¬Í¨¹ýÕâÒ»ÌØÐԾͿɽ«Ô±¾µÄ¸¡µãÊý³Ë·¨ÓÃÒ»¸ö±ÈÌØµÄλÔËËã´úÌæ£¬¼«´óµÄѹËõÁ˼ÆËãÁ¿£¬½ø¶ø´ïµ½Ìá¸ßËÙ¶È¡¢½µµÍÄܺĵÄÄ¿µÄ¡£È»¶ø£¬´óÁ¿µÄʵÑé½á¹û±íÃ÷£¬BNNÖ»ÔÚС¹æÄ£Êý¾Ý¼¯ÉÏÈ¡µÃÁ˽ϺõÄ׼ȷÐÔ£¬ÔÚ´ó¹æÄ£Êý¾Ý¼¯ÉÏÔòЧ¹ûºÜ²î¡£
ͬ»òÍøÂç[14](XNOR-net)
XNOR-netÊÇÒ»ÖÖÕë¶ÔCNNµÄ¼òµ¥¡¢¸ßЧ¡¢×¼È·½üËÆ·½·¨£¬ËüµÄºËÐÄ˼ÏëÊÇ£ºÔÚBNNµÄ»ù´¡ÉÏ£¬Õë¶Ô¶þÖµ»¯²Ù×÷¸øÃ¿Ò»²ãÊý¾ÝÔì³ÉµÄÎó²î£¬ÒýÈë×î¼ÑµÄ½üËÆÒò×Ó£¬ÒÔ´ËÀ´ÃÖ²¹¶þÖµ»¯´øÀ´µÄ¾«¶ÈËðʧ£¬Ìá¸ßѵÁ·¾«¶ÈµÄͬʱ»¹Äܱ£³ÖBNNÔÚËٶȺÍÄܺķ½ÃæµÄÓÅÊÆ¡£
ÔÚBNNÖУ¬ÎÞÂÛ¶ÔÈ¨ÖØ¶þÖµ»¯»¹ÊǶÔÖмäÖµ¶þÖµ»¯£¬¶¼»á¸ø±¾ÉíµÄÈ«¾«¶ÈÊý¾ÝÔì³ÉÑÏÖØµÄ¾«¶ÈËðʧ¡£¶øÎÒÃÇÖªµÀÈ«¾«¶ÈÊý¾Ý±¾ÉíÊÇ¿ÉÒԵõ½½ÏºÃµÄѵÁ·Ð§¹ûµÄ£¬Òò´Ë£¬¼õС¶þÖµ»¯´øÀ´µÄ¾«¶ÈËðʧÒԴﵽȫ¾«¶ÈʱÄܹ»ÊµÏÖµÄÁ¼ºÃЧ¹ûÊÇ×îÖ±½ÓµÄ˼·¡£XNOR-netµÄ½â¾ö°ì·¨ÊÇÒýÈë½üËÆÒò×Ó£¬²¢ÇÒÕë¶ÔÈ¨ÖØºÍÖмäÖµ·Ö±ðÒýÈë½üËÆÒò×Ó£¬ÔÚÒ»´Î¼ÆËãºó½«½üËÆÒò×ÓÌí¼Óµ½¼ÆËã½á¹ûÖÐÈ¥£¬Í¨¹ýÉÙÁ¿µÄ¶îÍâ¼ÆËãÀ´ÃÖ²¹¾¡¿ÉÄܶàµÄ¾«¶ÈËðʧ¡£
ͬʱ£¬Èç¹û¾í»ýµÄËùÓвÙ×÷Êý¶¼ÊǶþÖµµÄ£¬Ôò¿ÉÒÔͨXNORºÍλ¼ÆÊý²Ù×÷¹À¼Æ¾í»ý£¬ÈçÏÂͼËùʾ£º

ÈçÉÏͼµÚÈýºÍµÚËÄÐÐËùʾ£¬Õý³£Á½¸ö¾ØÕóÖ®¼äµÄµã³ËÈç¹ûÓÃÔÚÁ½¸ö¶þÖµ¾ØÕóÖ®¼ä£¬ÄÇô¾Í¿ÉÒÔ½«µã³Ë»»³ÉXNOR-Bitcounting
operation£¬´Ó32λ¸¡µãÊýÖ®¼äµÄ²Ù×÷Ö±½Ó±ä³É1λµÄXNORÃŲÙ×÷£¬Õâ¾ÍÊǼÓËٵĺËÐÄ¡£
ͬ»òÍøÂçÔÚ´ó¹æÄ£Êý¾Ý¼¯ÉϵÄЧ¹ûÈ¡µÃÁË¾Þ´ó½ø²½£¬ÆäÖÐÔÚImageNetÉϵÄÕýÈ·ÐÔÖ»±ÈÈ«¾«¶ÈµÄÏàÍ¬ÍøÂçµÍÊ®¸ö°Ù·Öµã¡£µ«ÊÇ£¬ÔںܶิÔÓÈÎÎñÖУ¬ÕâÒ»½á¹ûÒÀÈ»²»ÄÜÂú×ãÉú²úÉú»îµÄÐèÒª¡£
ÈýÖµÈ¨ÖØÍøÂç[15]
ÈýÖµÍøÂçÖ÷ÒªÊÇÖ¸ÈýÖµÈ¨ÖØÍøÂç(TWN)¡£¶þÖµÍøÂçÖо«¶ÈµÄËðʧÖ÷ÒªÀ´×ÔÓÚ ¶ÔÊý¾ÝÇ¿ÖÃΪ(-1, +1)ʱÓë±¾ÉíÈ«¾«¶ÈÖ®¼ä²úÉúµÄÎó²î£¬¶øÉñ¾ÍøÂçÖÐѵÁ·µÃµ½µÄ
È¨ÖØ·þ´Ó¾ùֵΪ 0 µÄÕý̬·Ö²¼£¬Õâ¾ÍÒâζמø´ó²¿·ÖÈ¨ÖØÔÚ¶þÖµºó»á²úÉú½«½ü1µÄÎó²î£¬Õâ¶Ô¼ÆËã½á¹ûÔì³ÉµÄÓ°Ï콫ÊÇÊ®·Ö¾Þ´óµÄ¡£ÎªÁ˽â¾öÕâÒ»ÎÊÌ⣬Ìá¸ß¶þÖµÍøÂçµÄÕýÈ·ÂÊ£¬Fengfu
LiºÍ Bo ZhangµÈÈËÔÚ¶þÖµµÄ»ù´¡ÉÏÌá³öÁËTWN¡£
TWNµÄºËÐÄÔÚÓÚ¼ÆËã³öÁ¿»¯ãÐÖµ¦¤£¬½«ÊýÖµ´óС´¦ÓÚãÐÖµÄÚµÄÊý¾ÝÇ¿ÖÃΪ0£¬ÆäËûÖµÒÀȻǿÖÃΪ-1»ò+1£¬¶ÔÓÚãÐÖµµÄ¼ÆË㣬×÷ÕßÒ²¸øÁËÂÛÖ¤£¬Äܹ»×îСÈýÖµ»¯Îó²îËù´øÀ´µÄ¾«¶ÈËðʧ£¬»¹Äܹ»Ê¹Éñ¾ÍøÂçÈ¨ÖØÏ¡Ê軯£¬¼õС¼ÆË㸴ÔӶȵÄͬʱҲÄܵõ½¸üºÃµÄ׼ȷÂʺͷº»¯ÄÜÁ¦¡£ÔÚÔËÐÐЧÂÊÉÏ£¬TWNÓëBWNÏ൱£¬µ«ÊÇ׼ȷÂÊÈ´ÓÐ×ÅÃ÷ÏÔµÄÌáÉý¡£
Á¿»¯Éñ¾ÍøÂç[16]
Song HanµÈÈËÔÚÁ¿»¯Éñ¾ÍøÂç(QNN)·½Ãæ×öÁË´óÁ¿Ñо¿¹¤×÷¡£ÕâÒ»ÍøÂçµÄÖ÷ҪĿµÄÊDzüôµôÊý¾ÝµÄÈßÓྫ¶È£¬Ô±¾32λ¾«¶ÈµÄ¸¡µãÊýÓÉ¡°1
8 23¡±µÄ½á¹¹¹¹³É£¬²Ã¼ôµÄ·½·¨ÊǸù¾ÝԤѵÁ·µÃµ½µÄÈ«¾«¶ÈÉñ¾ÍøÂçÄ£ÐÍÖеÄÊý¾Ý·Ö²¼£¬·Ö±ð¶Ô½×ÂëºÍλÊýµÄ³¤¶È½øÐÐÊʵ±µÄ¼õÉÙ¡£ÊµÑéÖ¤Ã÷£¬¶ÔÓڴ󲿷ֵÄÈÎÎñÀ´Ëµ£¬6λ±ÈÌØ»òÕß8λ±ÈÌØµÄÊý¾ÝÒѾÄܹ»±£Ö¤×ã¹»ºÃµÄ²âÊÔ׼ȷÂÊ¡£
QNNÔÚʵ¼ÊµÄ²Ù×÷ÖÐͨ³£ÓÐÁ½ÖÖÓ¦Ó÷½Ê½£¬Ò»ÖÖÊÇÖ±½ÓÔÚÈí¼þ²ãÃæÊµÏÖÕûÐεÄÁ¿»¯£¬Í¨¹ý¸üÉÙµÄÊý¾ÝλÊýÀ´½µµÍÉñ¾ÍøÂçÔÚʹÓÃʱ¼ÆËãµÄ¸´ÔÓ¶È£»ÁíÒ»ÖÖÖØÒªµÄÓ¦ÓÃÊÇÕë¶ÔÓÚAIרÓÃоƬµÄ¿ª·¢¡£
ÓÉÓÚоƬ¿ª·¢¿ÉÒÔÉè¼Æ¸÷ÖÖλ¿íµÄ³Ë·¨Æ÷£¬Òò´Ë½«Éñ¾ÍøÂçÖÐ32λµÄÈ«¾«¶ÈÊý¾Ý¿ÉÒÔ±»´¦Àí³É6λ»ò8λµÄ¸¡µãÊý£¬Í¬Ê±½áºÏÓ²¼þÖ¸¶¨µÄ³Ë·¨¹æÔò£¬¾Í¿ÉÒÔÔÚÓ²¼þÉÏʵÏÖ¸ü¸ßµÄÔËËãЧÂÊ£¬´ïµ½ÊµÊ±ÔËÐÐÉî¶ÈÉñ¾ÍøÂçµÄÄ¿µÄ¡£ÕâÒ²ÊÇQNN×î´óµÄÀíÂÛÒâÒå¡£µ«ÊÇÈç¹û´ÓÈí¼þ½Ç¶È¶ø·ÇÓ²¼þ½Ç¶È³ö·¢£¬Ö»Êǽ«¸¡µãÊýÁ¿»¯³ÉÕûÐÎÊý£¬¾ÍûÓа취ÏÔÖøµØ½µµÍ¼ÆË㸴ÔÓ¶È£¨³ý·Ç¶ÔÕûÐÎÔÙ½øÐÐÁ¿»¯£©£¬Ò²¾ÍÎÞ·¨´ïµ½ÔÚµÍÅäÓ²¼þ»·¾³ÉÏʵʱÔËÐÐÉî¶ÈÉñ¾ÍøÂçµÄÄ¿µÄ¡£Òò´Ë£¬ÔÚÈí¼þÉè¼ÆµÄ²ãÃæÉÏ£¬QNNÏà±ÈBNN²¢Ã»ÓÐÌØ±ðÃ÷ÏÔµÄÓÅÊÆ¡£
×ܽá
±¾½ÚÖ÷Òª½éÉÜÁ¿»¯¼ÓËÙÔÚÉî¶ÈѧϰģÐÍѹËõºÍ¼ÓËÙ·½ÏòµÄÓ¦Óã¬Éæ¼°µ½µÄÖ÷Òª¼¼Êõ°üÀ¨£º¶þÖµÈ¨ÖØÍøÂç¡¢¶þÖµÉñ¾ÍøÂ硢ͬ»òÍøÂç¡¢ÈýÖµÈ¨ÖØÍøÂç¡¢Á¿»¯Éñ¾ÍøÂçµÈ¡£ÔÚ¶ÔÍøÂç½øÐмÓËÙµÄͬʱ£¬Í¨¹ý²»Í¬µÄÓÅ»¯²ßÂÔÀ´½µµÍ¾«¶ÈµÄËðʧ¡£
×ܽá
±¾ÎÄÖ÷Òª½éÉÜÁËÈýÖÖÖ÷Á÷µÄÉî¶ÈѧϰģÐÍѹËõºÍÄ£ÐͼÓËٵķ½Ïò£¬·Ö±ðΪ£º¼ÓËÙÍøÂç½á¹¹Éè¼Æ£¬¼´Í¨¹ýÓÅ»¯ÍøÂç½á¹¹µÄÉè¼ÆÈ¥¼õÉÙÄ£Ð͵ÄÈßÓàºÍ¼ÆËãÁ¿£»Ä£ÐͲüôºÍÏ¡Ê軯£¬¼´Í¨¹ý¶Ô²»ÖØÒªµÄÍøÂçÁ¬½Ó½øÐвüô£¬Ä£ÐͲüôÖ÷ÒªÕë¶ÔÒѾѵÁ·ºÃµÄÄ£ÐÍ£¬¶øºËµÄÏ¡Ê軯Ö÷ÒªÊÇÔÚѵÁ·µÄ¹ý³ÌÖнøÐÐÓÕµ¼ÑµÁ·£»Á¿»¯¼ÓËÙ£¬¼´Í¨¹ý¶ÔÍøÂçÖеĸ¡µãÖµ½øÐÐÁ¿»¯´¦Àí£¬Ê¹µÃ¸¡µãÊý¼ÆËãת»»ÎªÎ»²Ù×÷£¨»òÕßСÕûÊý¼ÆË㣩£¬²»½öÄܹ»¼õÉÙÍøÂçµÄ´æ´¢£¬¶øÇÒÄܹ»´ó·ù¶È½øÐмÓËÙ£¬Ê¹µÃÉñ¾ÍøÂçÔÚCPUÉϵÄÔËÐгÉΪ¿ÉÄÜ£¡µ±È»£¬Éî¶ÈѧϰģÐÍѹËõºÍ¼ÓËٵķ½·¨²»¾ÖÏÞÓÚÎÒÔÚ±¾ÎÄÖеĽéÉÜ£¬»¹ÓÐÆäËûºÜ¶àÀàËÆµÄѹËõºÍ¼ÓËÙËã·¨£¬ÈçµÝ¹é¶þÖµÍøÂçµÈ |