ÒÔÏÂÄÚÈÝÀ´Ô´ÓÚÒ»´Î²¿ÃÅÄÚ²¿µÄ·ÖÏí£¬Ö÷ÒªÕë¶ÔAI³õѧÕߣ¬½éÉÜ°üÀ¨CNN¡¢Deep Q NetworkÒÔ¼°TensorFlowƽ̨µÈÄÚÈÝ¡£ÓÉÓÚ±ÊÕß²¢·ÇÉî¶ÈѧϰËã·¨Ñо¿Õߣ¬Òò´ËÒÔϸü¶à´ÓÓ¦ÓõĽǶȶÔÕû¸öϵͳ½øÐнéÉÜ£¬¶ø²»»á½øÐÐÏêϸµÄ¹«Ê½ÍƵ¼¡£
** ¹ØÓÚFlappy Bird **
Flappy Bird£¨·Ç¹Ù·½ÒëÃû£º±¿ÄñÏÈ·É£©ÊÇÒ»¿î2013ÄêÄñ·ÉÀàÓÎÏ·£¬ÓÉÔ½ÄϺÓÄÚ¶ÀÁ¢ÓÎÏ·¿ª·¢ÕßÈî¹þ¶«£¨Dong Nguyen£©¿ª·¢£¬ÁíÒ»¸ö¶ÀÁ¢ÓÎÏ·¿ª·¢ÉÌGEARS Studios·¢²¼¡£¡ª¡ª ÒÔÉÏÄÚÀ´×Ô¡¶Î¬»ù°Ù¿Æ¡·
Flappy Bird²Ù×÷¼òµ¥£¬Í¨¹ýµã»÷ÊÖ»úÆÁĻʹBirdÉÏÉý£¬´©¹ýÖù×´ÕÏ°ÎïÖ®ºóµÃ·Ö£¬Åöµ½ÔòÓÎÏ·½áÊø¡£ÓÉÓÚÕÏ°Îï¸ßµÍ²»µÈ£¬¿ØÖÆBirdÉÏÉýºÍϽµÐèÒª·´Ó¦¿ì²¢ÇÒÁé»î£¬ÒªµÃµ½½Ï¸ßµÄ·ÖÊý²¢²»ÈÝÒ×£¬±ÊÕßÄ¿Ç°×î¶àµÃ¹ý10·Ö¡£
±¾ÎÄÖ÷Òª½éÉÜÈçºÎͨ¹ýAI£¨È˹¤ÖÇÄÜ£©µÄ·½Ê½ÍæFlappy BirdÓÎÏ·£¬·ÖΪÒÔÏÂËĸö²¿·ÖÄÚÈÝ£º
Ò»¡¢Flappy Bird ÓÎϷչʾÔÚ½éÉÜÄ£ÐÍ¡¢Ë㷨ǰÏÈÀ´Ö±½Ó¿´ÏÂЧ¹û£¬ÉÏͼÊǸտªÊ¼ÑµÁ·µÄʱºò£¬»ÃæÖеÄСÄñ¾ÍÏñÎÞÍ·²ÔÓ¬Ò»ÑùÂÒ·É£¬ÏÂͼչʾµÄÊÇÔÚ±¾»ú£¨ºóÃæ»á¸ø³öÅäÖã©ÑµÁ·³¬¹ý10Сʱºó£¨ÑµÁ·²½Êý³¬¹ý2000000£©µÄÇé¿ö£¬Æä×îºÃ³É¼¨ÒѾ³¬¹ý200·Ö£¬ÈËÀàÍæ¼ÒÒÑ»ù±¾²»¿ÉÄܳ¬Ô½¡£
ÓÉÓÚ±¾»úÅäÖÃÁËCUDAÒÔ¼°cuDNN£¬²ÉÓÃÁËNVIDIAµÄÏÔ¿¨½øÐв¢ÐмÆË㣬ËùÒÔÕâÀïÌáÇ°ÌùÒ»ÏÂÔËÐÐʱµÄÈÕÖ¾Êä³ö¡£
¹ØÓÚCUDAÒÔ¼°cuDNNµÄÅäÖã¬ÆäÖÐÓÐһЩ¿Ó°üÀ¨£º°²×°CUDAÖ®ºóÑ»·µÇ¼£¬ÆÁÄ»·Ö±æÂÊÎÞ·¨Õý³£µ÷½ÚµÈµÈ£¬¶¼ÊÇÓÉÓÚNVIDIAÇý¶¯°²×°µÄÎÊÌ⣬Õâ²»ÊDZ¾ÎÄÒªÌÖÂÛµÄÖ÷ÒªÄÚÈÝ£¬¶ÁÕß¿É×ÔÐÐGoogle¡£
** /gpu:0 **ÕâÊÇTensorFlowƽ̨ĬÈϵÄÅäÖ÷½·¨£¬±íʾʹÓÃϵͳÖеĵÚÒ»¿éÏÔ¿¨¡£
±¾»úÈíÓ²¼þÅäÖãº
ϵͳ£ºUbuntu 16.04
ÏÔ¿¨£ºNVIDIA GeForce GTX 745 4G
°æ±¾£ºTensorFlow 1.0
Èí¼þ°ü£ºOpenCV 3.2.0¡¢Pygame¡¢Numpy¡¢¡
ϸÐĵÄÅóÓÑ¿ÉÄÜ·¢ÏÖ£¬±ÊÕßµÄÏÔ¿¨ÅäÖò¢²»¸ß£¬GeForce GTX 745£¬ÏÔ´æ3.94G£¬¿ÉÓÃ3.77G£¨×ÀÃæÕ¼ÓÃÁËÒ»²¿·Ö£©£¬ÊôÓÚÈëÃÅÖеÄÈëÃÅ¡£¶ÔÓÚרҵ×öÉî¶ÈѧϰËã·¨µÄÅóÓÑ£¬Õâ¸öÏÔ¿¨±ØÈ»ÊDz»¹»µÄ¡£ÖªºõÉÏÓÐÌû×ӽ̴ó¼ÒÔõôÅäÖøüרҵµÄÏÔ¿¨£¬ÓÐÐËȤµÄ¿ÉÒÔÒƲ½¡£
¶þ¡¢Ä£ÐÍ£º¾í»ýÉñ¾ÍøÂçÉñ¾ÍøÂçËã·¨ÊÇÓÉÖÚ¶àµÄÉñ¾Ôª¿Éµ÷µÄÁ¬½ÓȨֵÁ¬½Ó¶ø³É£¬¾ßÓдó¹æÄ£²¢Ðд¦Àí¡¢·Ö²¼Ê½ÐÅÏ¢´æ´¢¡¢Á¼ºÃµÄ×Ô×éÖ¯×ÔѧϰÄÜÁ¦µÈÌص㡣È˹¤Éñ¾ÔªÓëÉúÎïÉñ¾Ôª½á¹¹ÀàËÆ£¬Æä½á¹¹¶Ô±ÈÈçÏÂͼËùʾ¡£
È˹¤Éñ¾ÔªµÄÊäÈ루x1,x2...xm£©ÀàËÆÓÚÉúÎïÉñ¾ÔªµÄÊ÷Í»£¬ÊäÈë¾¹ý²»Í¬µÄȨֵ£¨wk1, wk2, ....wkn£©£¬¼ÓÉÏÆ«Ö㬾¹ý¼¤»îº¯ÊýµÃµ½Êä³ö£¬×îºó½«Êä³ö´«Êäµ½ÏÂÒ»²ãÉñ¾Ôª½øÐд¦Àí¡£
¼¤»îº¯ÊýΪÕû¸öÍøÂçÒýÈëÁË·ÇÏßÐÔÌØÐÔ£¬ÕâÒ²ÊÇÉñ¾ÍøÂçÏà±ÈÓڻعéµÈËã·¨ÄâºÏÄÜÁ¦¸üÇ¿µÄÔÒò¡£³£Óõļ¤»îº¯Êý°üÀ¨sigmoid¡¢tanhµÈ£¬ËüÃǵĺ¯Êý±í´ïʽÈçÏ£º
ÕâÀï¿ÉÒÔ¿´³ö£¬sigmoidº¯ÊýµÄÖµÓòÊÇ£¨0,1£©£¬tanhº¯ÊýµÄÖµÓòÊÇ£¨-1,1£©¡£
** ¾í»ýÉñ¾ÍøÂç**ÆðÔ´ÓÚ¶¯ÎïµÄÊÓ¾õϵͳ£¬Ö÷Òª°üº¬µÄ¼¼ÊõÊÇ£º
È«Á¬½ÓÍøÂçµÄÎÊÌâÔÚÓÚ£º
ÈËÀàµÄÊÓ¾õϵͳ¾ö¶¨ÁËÈËÔÚ¹Û²ìÍâ½çµÄʱºò£¬×ÜÊÇ´Ó¾Ö²¿µ½È«¾Ö¡£
±ÈÈ磬ÎÒÃÇ¿´µ½Ò»¸öÃÀÅ®£¬¿ÉÄÜ×îÏȹ۲쵽µÄÊÇÃÀÅ®ÉíÉϵÄijЩ²¿Î»£¨×Ô¼ºÌå»á£©¡£
Òò´Ë£¬¾í»ýÉñ¾ÍøÂçÓëÈËÀàµÄÊÓ¾õÀàËÆ£¬²ÉÓþֲ¿¸ÐÖª£¬µÍ²ãµÄÉñ¾ÔªÖ»¸ºÔð¸ÐÖª¾Ö²¿µÄÐÅÏ¢£¬ÔÚÏòºó´«ÊäµÄ¹ý³ÌÖУ¬¸ß²ãµÄÉñ¾Ôª½«¾Ö²¿ÐÅÏ¢×ÛºÏÆðÀ´µÃµ½È«¾ÖÐÅÏ¢¡£
´ÓÉÏͼÖпÉÒÔ¿´³ö£¬²ÉÓþֲ¿Á¬½ÓÖ®ºó£¬¿ÉÒÔ´ó´óµÄ½µµÍѵÁ·²ÎÊýµÄÁ¿¼¶¡£
ËäȻͨ¹ý¾Ö²¿¸ÐÖª½µµÍÁËѵÁ·²ÎÊýµÄÁ¿¼¶£¬µ«Õû¸öÍøÂçÐèҪѵÁ·µÄ²ÎÊýÒÀÈ»ºÜ¶à¡£
²ÎÊý¹²Ïí¾ÍÊǽ«¶à¸ö¾ßÓÐÏàͬͳ¼ÆÌØÕ÷µÄ²ÎÊýÉèÖÃΪÏàͬ£¬ÆäÒÀ¾ÝÊÇͼÏñÖÐÒ»²¿·ÖµÄͳ¼ÆÌØÕ÷ÓëÆäËü²¿·ÖÊÇÒ»ÑùµÄ¡£ÆäʵÏÖÊÇͨ¹ý¶ÔͼÏñ½øÐоí»ý£¨¾í»ýÉñ¾ÍøÂçÃüÃûµÄÀ´Ô´£©¡£
¡¡