Éî¶ÈÉñ¾­ÍøÂçÈ«Ãæ¸ÅÊö ÏÂÔØ±¾ÎÄ

Éî¶ÈÉñ¾­ÍøÂçÈ«Ãæ¸ÅÊö ´Ó»ù±¾¸ÅÄʵ¼ÊÄ£ÐͺÍÓ²¼þ»ù´¡

Éî¶ÈÉñ¾­ÍøÂç(DNN)Ëù´ú±íµÄÈ˹¤ÖÇÄܼ¼Êõ±»ÈÏΪÊÇÕâÒ»´Î¼¼Êõ±ä¸ïµÄ»ùʯ(Ö®Ò»)¡£½üÈÕ£¬ÓÉ IEEE Fellow Joel Emer Áìµ¼µÄÒ»¸öÍŶӷ¢²¼ÁËһƪÌâΪ¡¶Éî¶ÈÉñ¾­ÍøÂçµÄÓÐЧ´¦Àí£º½Ì³ÌºÍµ÷ÑÐ(Efficient Processing of Deep Neural Networks: A Tutorial and Survey)¡·µÄ×ÛÊöÂÛÎÄ£¬´ÓËã·¨¡¢Ä£ÐÍ¡¢Ó²¼þºÍ¼Ü¹¹µÈ¶à¸ö½Ç¶È¶ÔÉî¶ÈÉñ¾­ÍøÂç½øÐÐÁ˽ÏÎªÈ«ÃæµÄÊáÀíºÍ×ܽᡣ¼øÓÚ¸ÃÂÛÎĵįª·ù½Ï³¤£¬»úÆ÷Ö®ÐÄÔÚ´ËÎÄÖÐÌáÁ¶ÁËÔ­ÂÛÎĵÄÖ÷¸ÉºÍ²¿·ÖÖØÒªÄÚÈÝ¡£

Ŀǰ£¬°üÀ¨¼ÆËã»úÊÓ¾õ¡¢ÓïÒôʶ±ðºÍ»úÆ÷ÈËÔÚÄÚµÄÖî¶àÈ˹¤ÖÇÄÜÓ¦ÓÃÒѹ㷺ʹÓÃÁËÉî¶ÈÉñ¾­ÍøÂç(deep neural networks£¬DNN)¡£DNN ÔںܶàÈ˹¤ÖÇÄÜÈÎÎñÖ®ÖбíÏÖ³öÁ˵±Ç°×î¼ÑµÄ׼ȷ¶È£¬µ«Í¬Ê±Ò²´æÔÚ׿ÆË㸴ÔӶȸߵÄÎÊÌâ¡£Òò´Ë£¬ÄÇЩÄܰïÖú DNN ¸ßЧ´¦Àí²¢ÌáÉýЧÂʺÍÍÌÍÂÁ¿£¬Í¬Ê±ÓÖÎÞËðÓÚ±íÏÖ׼ȷ¶È»ò²»»áÔö¼ÓÓ²¼þ³É±¾µÄ¼¼ÊõÊÇÔÚÈ˹¤ÖÇÄÜϵͳ֮Öй㷺²¿Êð DNN µÄ¹Ø¼ü¡£

ÂÛÎĵØÖ·£ºhttps://arxiv.org/pdf/1703.09039.pdf

±¾ÎÄÖ¼ÔÚÌṩһ¸ö¹ØÓÚʵÏÖ DNN µÄÓÐЧ´¦Àí(efficient processing)µÄÄ¿±êµÄ×îнøÕ¹µÄÈ«ÃæÐԽ̳̺͵÷²é¡£ÌØ±ðµØ£¬±¾ÎÄ»¹¸ø³öÁËÒ»¸ö DNN ×ÛÊö¡ª¡ªÌÖÂÛÁËÖ§³Ö DNN µÄ¶àÖÖÆ½Ì¨ºÍ¼Ü¹¹£¬²¢Ç¿µ÷ÁË×îеÄÓÐЧ´¦ÀíµÄ¼¼ÊõµÄ¹Ø¼üÇ÷ÊÆ£¬ÕâЩ¼¼Êõ»òÕßÖ»ÊÇͨ¹ý¸ÄÉÆÓ²¼þÉè¼Æ»òÕßͬʱ¸ÄÉÆÓ²¼þÉè¼ÆºÍÍøÂçËã·¨ÒÔ½µµÍ DNN ¼ÆËã³É±¾¡£±¾ÎÄÒ²»á¶Ô°ïÖúÑо¿ÕߺʹÓÒµÕß¿ìËÙÉÏÊÖ DNN Éè¼ÆµÄ¿ª·¢×ÊÔ´×öÒ»¸ö×ܽᣬ²¢Í¹ÏÔÖØÒªµÄ»ù×¼Ö¸±êºÍÉè¼Æ¿¼Á¿ÒÔÆÀ¹ÀÊýÁ¿¿ìËÙÔö³¤µÄ DNN Ó²¼þÉè¼Æ£¬»¹°üÀ¨Ñ§½çºÍ²úÒµ½ç¹²Í¬ÍƼöµÄËã·¨ÁªºÏÉè¼Æ¡£

¶ÁÕß½«´Ó±¾ÎÄÖÐÁ˽⵽ÒÔϸÅÄÀí½â DNN µÄ¹Ø¼üÉè¼Æ¿¼Á¿;ͨ¹ý»ù×¼ºÍ¶Ô±ÈÖ¸±êÆÀ¹À²»Í¬µÄ DNN Ó²¼þʵÏÖ;Àí½â²»Í¬¼Ü¹¹ºÍƽ̨֮¼äµÄȨºâ;ÆÀ¹À²»Í¬ DNN ÓÐЧ´¦Àí¼¼ÊõµÄÉè¼ÆÓÐЧÐÔ;Àí½â×îеÄʵÏÖÇ÷ÊÆºÍ»úÓö¡£

Ò»¡¢µ¼Óï

Éî¶ÈÉñ¾­ÍøÂç(DNN)ĿǰÊÇÐí¶àÈ˹¤ÖÇÄÜÓ¦ÓõĻù´¡ [1]¡£ÓÉÓÚ DNN ÔÚÓïÒôʶ±ð [2] ºÍͼÏñʶ±ð [3] ÉϵÄÍ»ÆÆÐÔÓ¦Óã¬Ê¹Óà DNN µÄÓ¦ÓÃÁ¿ÓÐÁ˱¬Õ¨ÐÔµÄÔö³¤¡£ÕâЩ DNN ±»²¿Êðµ½ÁË´Ó×Ô¶¯¼ÝÊ»Æû³µ [4]¡¢°©Ö¢¼ì²â [5] µ½¸´ÔÓÓÎÏ· [6] µÈ¸÷ÖÖÓ¦ÓÃÖС£ÔÚÕâÐí¶àÁìÓòÖУ¬DNN Äܹ»³¬Ô½ÈËÀàµÄ׼ȷÂÊ¡£¶ø DNN µÄ³öÖÚ±íÏÖÔ´ÓÚËüÄÜʹÓÃͳ¼ÆÑ§Ï°·½·¨´Óԭʼ¸Ð¹ÙÊý¾ÝÖÐÌáÈ¡¸ß²ãÌØÕ÷£¬ÔÚ´óÁ¿µÄÊý¾ÝÖлñµÃÊäÈë¿Õ¼äµÄÓÐЧ±íÕ÷¡£ÕâÓë֮ǰʹÓÃÊÖ¶¯ÌáÈ¡ÌØÕ÷»òר¼ÒÉè¼Æ¹æÔòµÄ·½·¨²»Í¬¡£

È»¶ø DNN »ñµÃ³öÖÚ׼ȷÂʵĴú¼ÛÊǸ߼ÆË㸴ÔÓÐԳɱ¾¡£ËäȻͨÓüÆËãÒýÇæ(ÓÈÆäÊÇ GPU)£¬ÒѾ­³ÉΪÐí¶à DNN ´¦ÀíµÄíÆÖù£¬µ«Ìṩ¶Ô DNN ¼ÆËã¸üרÃÅ»¯µÄ¼ÓËÙ·½·¨Ò²Ô½À´Ô½ÈÈÃÅ¡£±¾ÎĵÄÄ¿±êÊÇÌṩ¶Ô DNN¡¢Àí½â DNN ÐÐΪµÄ¸÷ÖÖ¹¤¾ß¡¢ÓÐЧ¼ÓËÙ¼ÆËãµÄ¸÷Ïî¼¼ÊõµÄ¸ÅÊö¡£

¸ÃÂÛÎĵĽṹÈçÏ£º

? ? ? ? ? ? ?

Section II ¸ø³öÁË DNN ΪʲôºÜÖØÒªµÄ±³¾°¡¢ÀúÊ·ºÍÓ¦Óá£

Section III ¸ø³öÁË DNN »ù´¡×é¼þµÄ¸ÅÊö£¬»¹ÓÐĿǰÁ÷ÐÐʹÓÃµÄ DNN Ä£ÐÍ¡£ Section IV ÃèÊöÁË DNN Ñз¢ËùÄÜÓõ½µÄ¸÷ÖÖ×ÊÔ´¡£

Section V ÃèÊöÁË´¦Àí DNN Óõ½µÄ¸÷ÖÖÓ²¼þƽ̨£¬ÒÔ¼°ÔÚ²»Ó°Ïì׼ȷÂʵÄÇé¿öϸĽøÍÌÍÂÁ¿(thoughtput)ºÍÄÜÁ¿µÄ¸÷ÖÖÓÅ»¯·½·¨(¼´²úÉú bit-wise identical ½á¹û)¡£

Section VI ÌÖÂÛÁË»ìºÏÐźŻØÂ·ºÍеĴ洢¼¼ÊõÈçºÎ±»ÓÃÓÚ½üÊý¾Ý´¦Àí(near-data processing)£¬´Ó¶ø½â¾ö DNN ÖÐÊý¾ÝÁ÷Í¨Ê±ÃæÁÙµÄÍÌÍÂÁ¿ºÍÄÜÁ¿ÏûºÄÄÑÌâ¡£

Section VII ÃèÊöÁ˸÷ÖÖÓÃÀ´¸Ä½ø DNN ÍÌÍÂÁ¿ºÍÄܺĵÄÁªºÏËã·¨ºÍÓ²¼þÓÅ»¯£¬Í¬Ê±×îС»¯¶Ô׼ȷÂʵÄÓ°Ïì¡£ Section VIII ÃèÊöÁË¶Ô±È DNN Éè¼ÆÊ±Ó¦¸Ã¿¼ÂǵĹؼü±ê×¼¡£

¶þ¡¢Éî¶ÈÉñ¾­ÍøÂç(DNN)µÄ±³¾°

ÔÚÕâÒ»²¿·Ö£¬ÎÒÃǽ«ÃèÊöÉî¶ÈÉñ¾­ÍøÂç(DNN)ÔÚÈ˹¤ÖÇÄÜÕâ¸ö´ó¿ò¼ÜϵÄλÖã¬ÒÔ¼°Ò»Ð©´Ù½øÆä·¢Õ¹µÄµÄ¸ÅÄî¡£ÎÒÃÇ»¹½«¶ÔÆäÖ÷ÒªµÄ·¢Õ¹Àú³ÌºÍÏÖ½×¶ÎÖ÷ÒªµÄÓ¦ÓÃÁìÓò×öÒ»¸ö¼òµ¥µÄ½éÉÜ¡£

1. È˹¤ÖÇÄܺÍÉî¶ÈÉñ¾­ÍøÂç

¸ù¾Ý John McCarthy µÄÂÛÊö£¬Éî¶ÈÉñ¾­ÍøÂç(Ò²³ÆÎªÉî¶Èѧϰ)ÊÇÈ˹¤ÖÇÄÜ(AI)´ó¿ò¼ÜϵÄÒ»²¿·Ö¡£¶øÈ˹¤ÖÇÄÜ(AI)ÊÇÀûÓÿÆÑ§Ó빤³Ìѧ´´Ôì¾ßÓÐÈçͬÈËÀàÄÇÑùÄÜʵÏÖÄ¿±êµÄÖÇÄÜ»úÆ÷¡£È˹¤ÖÇÄÜÕâ¸ö´Ê¾ÍÊÇÕâλ¼ÆËã»ú¿ÆÑ§¼ÒÔÚÉϸöÊÀ¼Í 50 Äê´úËù´´Ôì³öµÄ¡£Éî¶ÈѧϰºÍÕû¸öÈ˹¤ÖÇÄܵĹØÏµ¾ÍÈçÏÂͼËùʾ¡£

ͼ 1£ºÉî¶ÈѧϰÔÚÈ˹¤ÖÇÄÜ´ó¿ò¼ÜϵÄλÖÃ

2. Éñ¾­ÍøÂçºÍÉî¶ÈÉñ¾­ÍøÂç(DNN)

Éñ¾­ÍøÂç´ÓÉñ¾­ÔªÉæ¼°¶ÔÊäÈëÖµÇó¼ÓȨºÍ½øÐмÆËãÕâÒ»¸ÅÄî¶ø»ñµÃÁé¸Ð¡£ÕâЩ¼ÓȨºÍ¶ÔÓ¦ÓÚÍ»´¥Íê³ÉÖµµÄËõ·ÅÒÔ¼°ÆäºÍÉñ¾­ÔªÖµ¼äµÄ×éºÏ¡£´ËÍ⣬ÒòΪ¼ÆËãÓëÉñ¾­Ôª¼¶ÁªÏà¹ØÁª£¬²¢ÇÒÆäΪ¼òµ¥ÏßÐÔ´úÊýµÄÔËË㣬ËùÒÔÉñ¾­Ôª²»»á½ö½öÊä³ö¼Ó

ȨºÍ¡£Ïà·´£¬ÔÚÉñ¾­ÔªÖÐÓк¯ÊýÖ´ÐÐ×éºÏÊäÈëµÄÔËË㣬¶øÕâÖÖº¯ÊýÓ¦¸ÃÊÇ·ÇÏßÐÔÔËËã¡£ÔÚ·ÇÏßÐÔÔËËãµÄ¹ý³ÌÖУ¬Éñ¾­ÔªÖ»ÓÐÔÚÊäÈ볬¹ýÒ»¶¨·§ÖµÊ±²ÅÉú³ÉÊä³ö¡£Òò´Ëͨ¹ýÀà±È£¬Éñ¾­ÍøÂ罫·ÇÏßÐÔº¯ÊýÔËÓõ½ÊäÈëÖµµÄ¼ÓȨºÍÖС£ÎÒÃǵÈһϻáÃèÊöһЩ·ÇÏßÐÔº¯Êý¡£

ͼ 2£º¼òµ¥µÄÉñ¾­ÍøÂçÀý×Ó¡£(a) Éñ¾­ÔªºÍÍ»´¥£¬(b) Ϊÿһ²ã¼ÆËã¼ÓȨºÍ£¬(c) ǰÏòºÍ·´Ïò(Ñ­»·)ÍøÂ磬(d) È«Á¬½ÓÓë

Ï¡Êè

(a)ÖÐչʾÁ˼ÆËãÉñ¾­ÍøÂçµÄʾÒâͼ¡£Í¼µÄǰ¶ËÊÇÊäÈë²ã£¬¸Ã²ã»á½ÓÊÜÊäÈëÊý¾ÝÖµ¡£ÕâЩÊý¾ÝֵǰÏò´«²¥µ½Éñ¾­ÍøÂçÖмä²ãµÄÉñ¾­ÔªÖУ¬Öмä²ãÒ²³£³ÆÎªÉñ¾­ÍøÂçµÄÒþ²Ø²ã¡£Ò»¸ö»ò¶à¸öÒþ²Ø²ãµÄ¼ÓȨºÍ×îÖÕǰÏò´«²¥µ½Êä³ö²ã£¬¸ÃÊä³ö²ã»á×îÖÕÏòÓû§³ÊÏÖÉñ¾­ÍøÂçµÄÊä³ö½á¹û¡£ÎªÁ˽«ÄÔÆô·¢µÄÊõÓïºÍÉñ¾­ÍøÂçÏàÆ¥Å䣬Éñ¾­ÔªµÄÊä³öͨ³£³ÆÎª¼¤»î(activation)£¬²¢ÇÒÍ»´¥Èç(a)Ëùʾͨ³£³ÆÎªÈ¨ÖØ(weight)¡£

ÔÚÉÏ·½±í´ïʽÖУ¬W_ij ´ú±í×ÅÈ¨ÖØ¡¢x_i ΪÊäÈ뼤»î¡¢y_i ÊÇÊä³ö¼¤»î£¬¶ø f(¡¤) ¾Í´ú±í×ÅÔÚ III-2 ÖÐÃèÊöµÄ·ÇÏßÐÔ¼¤»îº¯Êý¡£

ÔÚÉñ¾­ÍøÂçµÄÁìÓòÄÚ£¬ÓÐÒ»ÃųÆÎªÉî¶ÈѧϰµÄÑо¿¡£ÆÕͨÉñ¾­ÍøÂç»ù±¾Éϲ㼶²»»áºÜ¶à£¬¶øÔÚÉî¶ÈѧϰÀÉñ¾­ÍøÂçµÄ²ã¼¶ÊýÁ¿Ê®·Ö¾Þ´ó£¬ÏÖÈç½ñ»ù±¾ÉÏÉñ¾­ÍøÂç¿ÉÒÔ´ïµ½ 5 µ½ 1000 ¶à²ã¡£ 3. ÍÆÀí vs ѵÁ·

ÕâÒ»½ÚÖУ¬Èçͼ 4 Ëùʾ£¬ÎÒÃǽ«°ÑͼÏñ·ÖÀàÓÃ×÷ѵÁ· DNN µÄÒ»¸öÇ¿¾¢µÄʵÀý¡£ÆÀ¹À DNN ʱ£¬ÎÒÃÇÊäÈëÒ»¸öͼÏñ£¬DNN Ϊÿһ¸ö¶ÔÏó·ÖÀàÊä³ö·ÖÖµÏòÁ¿;·ÖÖµ×î¸ßµÄ·ÖÀཫ³ÉΪͼÏñÖÐ×îÓпÉÄܵĶÔÏó·ÖÀࡣѵÁ· DNN µÄ×ÜÌåÄ¿±êÊǾö¶¨ÈçºÎÉèÖÃÈ¨ÖØÒÔ×î´ó»¯ÕýÈ··ÖÀà(À´×Ô±ê×¢µÄѵÁ·Êý¾Ý)µÄ·ÖÖµ²¢×îС»¯ÆäËû²»ÕýÈ··ÖÀàµÄ·ÖÖµ¡£ÀíÏëµÄÕýÈ··ÖÖµÓë DNN »ùÓÚÆäµ±Ç°È¨ÖØ¼ÆËãµÄ·ÖÖµÖ®¼äµÄ²î±»³ÆÎªËðʧֵ(L)¡£Òò´ËѵÁ· DNN µÄÄ¿±êÊÇÕÒµ½Ò»×éÈ¨ÖØÒÔ×îС»¯´óÐÍÊý¾Ý¼¯ÖÐµÄÆ½¾ùËðʧֵ¡£

ͼ 4£ºÍ¼Ïñ·ÖÀàÈÎÎñ

4. ¿ª·¢ÀúÊ·

? ? ? ? ? ? ?

1940 Äê´ú - Éñ¾­ÍøÂç±»Ìá³ö 1960 Äê´ú - Éî¶ÈÉñ¾­ÍøÂç±»Ìá³ö 1989 Äê - ʶ±ðÊý×ÖµÄÉñ¾­Íø(LeNet)³öÏÖ 1990 Äê´ú - dz²ãÉñ¾­ÍøÓ²¼þ³öÏÖ(Intel ETANN) 2011 Äê - DNN ÓïÒôʶ±ðÈ¡µÃÍ»ÆÆÐÔ½øÕ¹(Microsoft) 2012 Äê - ÓÃÓÚÊÓ¾õµÄ DNN ¿ªÊ¼Ìæ´úÈ˹¤·Å´ó(AlexNet) 2014 Äê+ - DNN ¼ÓËÙÆ÷Ñо¿ÐËÆð(Neuflow¡¢DianNao µÈµÈ)

ͼ 5 µÄ±íÖùÊÇÕâЩÄêÀ´ ImageNet ¾ºÈüÖÐÿ½ì¹Ú¾üµÄ±íÏÖ¡£Äã¿ÉÒÔ¿´µ½×î³õËã·¨¾«È·¶ÈµÄ´íÎóÂÊÔÚ 25% »ò¸ü¶à¡£2012 Ä꣬¶àÂ×¶à´óѧµÄ AlexNet ÍŶÓͨ¹ý GPU À´ÌáÉýÆä¼ÆËãÄÜÁ¦²¢²ÉÓÃÉî¶ÈÉñ¾­ÍøÂç·½·¨£¬°Ñ´íÎóÂʽµµÍÁ˽ü 10% [3]¡£ËûÃǵijɹ¦´øÀ´ÁËÉî¶Èѧϰ·ç¸ñµÄËã·¨µÄ¾®Å磬ÒÔ¼°Í¼Ïñʶ±ð¼¼ÊõµÄ³ÖÐø½ø²½¡£