¡Ö¤¤¤é¤¹¤È¤ä¡×¤È¸À¤¨¤Ð¡¢¤«¤ï¤¤¤¤¥¤¥é¥¹¥È¤Ç¤µ¤Þ¤¶¤Þ¤Ê¥·¥Á¥å¥¨¡¼¥·¥ç¥ó¤Î²èÁü¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¿Íµ¤¤ò½¸¤á¤ë¥Õ¥ê¡¼¤ÎÁǺॵ¥¤¥È¤Ç¤¹¡£¤½¤ó¤Ê¡Ö¤¤¤é¤¹¤È¤ä¡×¤Ë½Ð¤Æ¤¯¤ë¿Í´ÖÉ÷¤Î²èÁü¤ò¼«Æ°¤ÇÀ¸À®¤¹¤ë¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤ò@mickey24¤µ¤ó¤¬ºîÀ®¤·¤Þ¤·¤¿¡£

¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤Ï¡¢@mickey24¤µ¤ó¤¬ºîÀ®¤·¤¿¥Ü¥Ã¥È¤Î@mickey24_bot¤Ë¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢@mickey24_bot¤ËÂФ·¤ÆTwitter¾å¤Ç¡Ö¿Í´Ö²èÁü¤òºî¤Ã¤Æ¡×¤È¥ê¥×¥é¥¤¤òÁ÷¤ì¤Ð²èÁü¤ò¼«Æ°À¸À®¤·¤Æ¤¯¤ì¤Þ¤¹¡£



¤³¤Î¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤Î³«È¯¤ËÍѤ¤¤¿³Ø½¬¥â¥Ç¥ë¤ä³«È¯¤Î·Ð²á¤Ë¤Ä¤¤¤Æ¡¢@mickey24¤µ¤ó¤Ï¼«¿È¤Î¥Ö¥í¥°¤Ë¤Þ¤È¤á¤Æ¤ª¤ê¤«¤Ê¤êÆɤ߱þ¤¨¤¬¤¢¤ê¤Þ¤¹¡£

Deep Learning¤Ç¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤òºî¤Ã¤¿ÏáÊDCGAN¡¢Wasserstein GAN¡Ë - ¤Ì¤¤¤°¤ë¤ß¥é¥¤¥Õ¡©

http://mickey24.hatenablog.com/entry/irasutoya_deep_learning



¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤ÇÀ¸À®¤µ¤ì¤¿¿Í´Ö²èÁü¤ÏËˤ¬ÀÖ¤¯¤Ê¤Ã¤Æ¤¤¤ëÅÀ¤äÍ¥¤·¤²¤Êɽ¾ð¤Ê¤É¡¢ËܲȤ¤¤é¤¹¤È¤ä¤ÎÆÃħ¤ò¤è¤¯Âª¤¨¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£¤¿¤À¤·¡¢¤³¤ì¤é¤ÏÀ¸À®¤µ¤ì¤¿²èÁü¤Î¤¦¤Á¡Ö¤½¤ì¤Ê¤ê¤Ë¤­¤ì¤¤¤Ê¤â¤Î¤Î°ìÎã¡×¤À¤½¤¦¤Ç¤¹¡£



¤³¤Î¼«Æ°¤Ç¤¤¤é¤¹¤È¤äÉ÷¤Î²èÁü¤òÀ¸À®¤·¤Æ¤¯¤ì¤ë¡Ö¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¡×¤Ï¡¢¡ÖDCGAN¡×¤È¡ÖWasserstein GAN¡×¤òÍѤ¤¤Æ³Ø½¬¤µ¤»¤¿¤â¤Î¤À¤½¤¦¤Ç¤¹¡£³Ø½¬¤Ë¤ÏÌó1Ëü5000Ëç¤Î¤¤¤é¤¹¤È¤ä²èÁü¤«¤é¡¢¡Ö¤Ò¤È¤ê¤Î¿Í´Ö¤¬ºÜ¤Ã¤Æ¤¤¤ÆÇØ·Ê¿§¤Ê¤É¤¬¤¢¤Þ¤êÊ£»¨¤Ç¤Ê¤¤²èÁü¡×Ìó4000Ëç¤ò¼êÆ°¤ÇÁªÊ̤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¤È¤Î¤³¤È¤Ç¤¹¡£¤Þ¤¿¡¢2016ǯ¸åȾ¤ËȯÇ䤵¤ì¤¿MacBook Pro¤Ç¤Ï³Ø½¬¤Ë»þ´Ö¤¬¤«¤«¤ê²á¤®¤¿¤½¤¦¤Ç¡¢Google Cloud Platform¤Î̵ÎÁÏȤò»È¤Ã¤Æ¡ÖCloud ML Engine¤ÎCPU¡ß1¡ÜGPU¡ß1¡×¤Ç³Ø½¬¤µ¤»¤¿ÌÏÍÍ¡£

¢¡GAN¤Ë¤Ä¤¤¤Æ

¤Þ¤º¡¢µ¡³£³Ø½¬¤Î¥¢¥ë¥´¥ê¥º¥à¤Î°ì¼ï¤Ç¤¢¤ë¡ÖGAN(Generative Adversarial Network)¡×¤òÍѤ¤¡¢¡Ö·±Îý¥Ç¡¼¥¿¤ÈGenerator¤¬À¸À®¤·¤¿¥Ç¡¼¥¿¤ò¸«Ê¬¤±¤ëDiscriminator¡×¡ÖDiscriminator¤òñÙ¤»¤ë¤è¤¦¤Ê¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ëGenerator¡×¤ò¸ò¸ß¤Ë¶¥¤ï¤»¤ë¤è¤¦¤Ë³Ø½¬¤¹¤ë¤³¤È¤Ç¡¢ºÇ½ªÅª¤Ë·±Îý¥Ç¡¼¥¿¤Ë»÷¤¿¥Ç¡¼¥¿¤òÀ¸À®¤Ç¤­¤ëGenerator¤òºî¤ê¾å¤²¤Þ¤¹¡£

¡¦Generator

Generator¤Ï¡ÖDiscriminator¤òñÙ¤»¤ë¤è¤¦¤Ê¤¤¤é¤¹¤È¤äÉ÷¿Í´Ö²èÁü¤ò½ÐÎϤ¹¤ëCNN¥Ù¡¼¥¹¤Î¥â¥Ç¥ë¡×¤Ç¡¢¤Ò¤È¤Ä¤ÎÆþÎÏ¥Ù¥¯¥È¥ë¤´¤È¤ËÂбþ¤¹¤ë¤Ò¤È¤Ä¤Î²èÁü¤ò½ÐÎϤ·¤Þ¤¹¡£



¡¦Discriminator

¤½¤ì¤ËÂФ·¤ÆDiscriminator¤Ï¡ÖËÜʪ¤Î¤¤¤é¤¹¤È¤ä¤Î²èÁü¤ÈGenerator¤¬À¸À®¤·¤¿²èÁü¤ò¸«Ê¬¤±¤ë¤³¤È¤¬¤Ç¤­¤ëCNN¥Ù¡¼¥¹¤Î¥â¥Ç¥ë¡×¤Ç¡¢¥¹¥«¥é¡¼Ãͤò½ÐÎϤ·¡¢ÆþÎϲèÁü¤¬ËÜʪ¤Î¤¤¤é¤¹¤È¤ä¤Î²èÁü¤ÈȽÄꤷ¤¿¾ì¹ç¤ÏÂ礭¤ÊÃÍ¡¢Generator¤¬À¸À®¤·¤¿²èÁü¤À¤ÈȽÄꤷ¤¿¾ì¹ç¤Ï¾®¤µ¤ÊÃͤò½Ð¤¹¤è¤¦¤Ë³Ø½¬¤µ¤»¤Þ¤¹¡£



¢¡DCGAN¤ÈWasserstein GAN¤Ë¤Ä¤¤¤Æ

¡ÖDCGAN(Deep Convolutional GAN)¡×¤Ï¡¢GAN¤ò»È¤Ã¤Æ¾ö¤ß¹þ¤ß¥Ë¥å¡¼¥é ¥ë¥Í¥Ã¥È¥ï¡¼¥¯(CNN)¤ò³Ø½¬¤·¤Æ¤¤¤¯¼êË¡¤Ç¤¹¡£CNN¤ò»È¤¦¤Î¤Ç²èÁüÀ¸À®¤ËŬÍѤ¹¤ë»öÎ㤬¿¤¯¡¢ÏÀʸ¤Ç¤Ï¡ÖBatch Normalization¡×¤ä¡ÖLeakyReLU¡×¤È¤¤¤Ã¤¿¹©ÉפòÍѤ¤¤ë¤³¤È¤ÇGAN¤Ë¤è¤ëCNN¤Î³Ø½¬¤¬°ÂÄꤹ¤ë¤È¤µ¤ì¤Æ¤¤¤ë¤È¤Î¤³¤È¡£

¤½¤·¤Æ¡ÖWasserstein GAN¡×¤ÏGAN¤Î³Ø½¬ÊýË¡¤ò²þÎɤ·¤¿¤â¤Î¤Ç¡¢Discriminator¤äÌÜŪ´Ø¿ô¤ò¹©Éפ¹¤ë¤³¤È¤Æ¡¢GAN¤Î³Ø½¬¤Î¼ý«¤·¤Ë¤¯¤µ¤ä¡Ömode corruption¡×¤È¤¤¤Ã¤¿ÌäÂê¤ò·Ú¸º¤Ç¤­¤ë¤È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¢¡Generator¤ÈDiscriminator¤Î³Ø½¬

DCGAN¤ÈWasserstein GAN¤òÍѤ¤¤ÆGenerator¤ÈDiscriminator¤ò¸ò¸ß¤Ë³Ø½¬¤µ¤»¤Þ¤¹¡£

¡¦Generator¤Î³Ø½¬¤Î¾ì¹ç

Generator¤Î³Ø½¬¤Ç¤Ï¡¢Discriminator¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¸ÇÄꤷ¡¢Discriminator¤¬½ÐÎϤ¹¤ë¥¹¥«¥é¡¼ÃÍ(yG)¤¬Â礭¤ÊÃͤˤʤë¤è¤¦¡¢Generator¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¹¹¿·¤·¤Þ¤¹¡£³Ø½¬¤ò³¤±¤ë¤³¤È¤Ç¡¢ÍýÁÛŪ¤Ë¤Ï¤É¤ó¤ÊÆþÎÏ¥Ù¥¯¥È¥ë(z)¤òÍ¿¤¨¤Æ¤âDiscriminator¤òñÙ¤»¤ë¤¯¤é¤¤ËÜʪ¤Ã¤Ý¤¤²èÁü¤¬½ÐÎϲÄǽ¤Ë¤Ê¤ë¤È¤Î¤³¤È¡£



¡¦Discriminator¤Î³Ø½¬¤Î¾ì¹ç

Discriminator¤Î³Ø½¬¤Ç¤Ï¡¢Generator¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¸ÇÄꤷ¡¢ËÜʪ¤Î¤¤¤é¤¹¤È¤ä¤Î²èÁü¤òÍ¿¤¨¤¿»þ¤Ë½ÐÎϤ¹¤ë¥¹¥«¥é¡¼ÃÍ(yR)¤È¡¢Generator¤¬À¸À®¤¹¤ë²èÁü¤òÍ¿¤¨¤¿»þ¤Ë½ÐÎϤ¹¤ë¥¹¥«¥é¡¼ÃÍ(yG)¤òµá¤á¤Þ¤¹¡£¤½¤·¤Æ¡¢¡ÖyR ¡Ý yG¡×¤ÎÃͤ¬Â礭¤¯¤Ê¤ë¤è¤¦¤Ë¡¢Discriminator¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ò¹¹¿·¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢ÍýÁÛŪ¤Ë¤ÏGenerator¤¬¤É¤ó¤Ê¤ËËÜʪ¤Î¤¤¤é¤¹¤È¤ä¤Ã¤Ý¤¤²èÁü¤ò½ÐÎϤ·¤Æ¤â¡¢Discriminator¤ÏËÜʪ¤Èµ¶Êª¤ò¸«Ê¬¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤½¤¦¤Ç¤¹¡£



¢¡³Ø½¬¤Î·Ð²á

¼ÂºÝ¤Ë³Ø½¬¤Î²áÄø¤ÇÀ¸À®¤µ¤ì¤¿²èÁü¤Ï¤³¤ó¤Ê´¶¤¸¡£

ºÇ½é¤Ï¤É¤ó¤ÊÆþÎϤËÂФ·¤Æ¤â¥â¥¶¥¤¥¯¤Î¤è¤¦¤Ê²èÁü¤¬½ÐÎϤµ¤ì¤¿ÌÏÍÍ¡£



¼¡Âè¤Ë²èÁü¤¬Çò¤¯¤Ê¤Ã¤Æ¤¤¤­¡¢¡Ö1000¥¹¥Æ¥Ã¥×¤¢¤¿¤ê¤Çȱ¤ÎÌÓ¤ä¿Í¤ÎÈ©¤Ã¤Ý¤¤¿§¤¬ÌÜΩ¤Á»Ï¤á¤Æ¤­¤Þ¤¹¡×¤È¤Î¤³¤È¡£



1500¥¹¥Æ¥Ã¥×¤Û¤É¤Çȱ¤Î¿§¤ÏÈ©¤Ã¤Ý¤¤¿§¤¬¶¯¤¯¤Ê¤Ã¤Æ¤­¤Æ¡Ä¡Ä



4000¥¹¥Æ¥Ã¥×¤Û¤É¤Ç²¿¤È¤Ê¤¯¿Í¤Ã¤Ý¤¤·Á¤¬¤Ü¤ó¤ä¤êÉ⤭¾å¤¬¤Ã¤Æ¤­¤Þ¤¹¡£



7000¥¹¥Æ¥Ã¥×¤Û¤É¤Ç¿Í¤Î´é¤äȱ¤ÎÌӤäݤ¤¥Ñ¡¼¥Ä¤¬Ç§¼±¤Ç¤­¤ë¤â¤Î¤¬Áý¤¨¤Æ¤­¤Æ¡Ä¡Ä



5Ëü¥¹¥Æ¥Ã¥×¤¯¤é¤¤¤Ë¤Ê¤ë¤È²èÁü¤ÎÁƤµ¤¬¸º¤ê¡¢½ÐÎϲèÁü¤ÎÃæ¤Ë¤¤¤¤´¶¤¸¤Î¿Í´Ö¤Ã¤Ý¤¤²èÁü¤¬¸½¤ì»Ï¤á¤¿¤½¤¦¤Ç¤¹¡£¤Ê¤ª¡¢¤³¤³¤«¤éÀè¤Ï¤¢¤Þ¤êÂ礭¤ÊÊѲ½¤¬¸«¤é¤ì¤Ê¤«¤Ã¤¿ÌÏÍÍ¡£



³Ø½¬¤Ë¤è¤ê¥â¥Ç¥ë¤¬¤è¤ê¤¤¤é¤¹¤È¤äÉ÷¤Î²èÁü¤ò½ÐÎϤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤­¤¿¤ï¤±¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤É¤ó¤ÊÃͤòÆþÎϤ¹¤ë¤È¤¤¤é¤¹¤È¤äÉ÷¤Î²èÁü¤¬½ÐÎϤµ¤ì¤Æ¤¤¤ë¤Î¤«¤Ïľ´¶Åª¤Ë¤ï¤«¤ê¤Þ¤»¤ó¡£¤½¤³¤Ç¡¢ÆþÎÏÃͤò¼êÆ°¤ÇÊѹ¹¤Ç¤­¤ë¥Ç¥Ð¥Ã¥¬¡¼¤òºî¤ê¡¢ÃͤòÊѹ¹¤¹¤ë¤È²¿¤¬¤É¤¦ÊѲ½¤¹¤ë¤Î¤«¤ò³Î¤«¤á¤é¤ì¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£



¤·¤«¤·¡¢³Ø½¬¤·¤¿¥â¥Ç¥ë¤ò»È¤Ã¤Æ¤â¾ï¤Ë¤­¤ì¤¤¤Ê²èÁü¤¬½ÐÎϤµ¤ì¤ë¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ÆþÎÏ¥Ù¥¯¥È¥ë¤Ë¥Ð¥¤¥¢¥¹¤ò¤«¤±¤ë¤³¤È¤Ç¡¢¥â¥Ç¥ë¤¬¤­¤ì¤¤¤Ê²èÁü¤À¤±¤ò½ÐÎϤ·¤ä¤¹¤¯¤Ê¤ë¤è¤¦¤Ë²þÎɤ¬²Ã¤¨¤é¤ì¤Æ¤¤¤Þ¤¹¡£¼ÂºÝ¤Ë¤É¤¦¤¤¤¦¤³¤È¤ò¹Ô¤¦¤Î¤«¤È¤¤¤¦¤È¡¢¸«±É¤¨¤ÎÎɤ¤²èÁü¤¬½ÐÎϤµ¤ì¤ë¤Þ¤Ç²èÁü¤ÎÀ¸À®¤ò·«¤êÊÖ¤·¡Ä¡Ä

Îɤ¤´¶¤¸¤Î²èÁü¤¬¤Ç¤­¤¿¤é¤½¤ÎÆþÎÏ¥Ù¥¯¥È¥ë¤òµ­Ï¿¡£



¤½¤·¤Æ¡¢µ­Ï¿¤·¤¿ÆþÎÏ¥Ù¥¯¥È¥ë¤Ëɸ½àÊк¹¤¬¾®¤µ¤á(¦Ò=0.5¤¯¤é¤¤)¤ÎÀµµ¬Ê¬ÉÛ¤«¤é¥µ¥ó¥×¥ë¤·¤¿¥Ù¥¯¥È¥ë¤ò²Ã¤¨¡¢¿Í´Ö²èÁüÀ¸À®¥â¥Ç¥ë¤ËÍ¿¤¨¤Þ¤¹¡£¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤­¤ì¤¤¤Ç²¿¤È¤Ê¤¯¸µ²èÁü¤Ë»÷¤¿¤â¤Î¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤½¤¦¤Ç¤¹¡£



¤Ê¤ª¡¢¥Ö¥í¥°¤Ë¤Ï¤½¤Î¾¤ÎGenerator¤äDiscriminator¤Î¥Í¥Ã¥È¥ï¡¼¥¯¹½À®¤ä¥Ñ¥é¥á¡¼¥¿¡¼¤Ë¤Ä¤¤¤Æ¤ä¡¢¤è¤êµ»½ÑŪ¤ÊÏÃÂê¤Ë¤â¿¨¤ì¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¼ÂºÝ¤ËDCGAN¤äWasserstein GAN¤ò»È¤Ã¤Æ¤ß¤è¤¦¤È¤¤¤¦³«È¯¼Ô¤Ï°ì¸«¤Î²ÁÃͤ¢¤ê¤Ç¤¹¡£