人工ç¥èœã®æ¹åã¯ãéåžžã®ã²ãŒã ã§å€æã§ããŸãã éå»20幎éã§ãã¢ã«ãŽãªãºã ã¯äžçã®ããããã¬ãŒã€ãŒãäžåããŸãããæåã«ãããã¯ã®ã£ã¢ã³ãšãã§ãã«ãŒãèœã¡ã次ã«ãã§ã¹ãããã€ã²ãŒã ãïŒJeopardyïŒïŒã2015幎ãã¢ã¿ãªãããªã²ãŒã ãæšå¹ŽãGoã
ãããã®æåã¯ãã¹ãŠãæ å ±ã®å¯Ÿç§°æ§ãåããã²ãŒã ã«é¢ãããã®ã§ããããã¬ã€ã€ãŒã¯ã²ãŒã ã®çŸåšã®ç¶æ ã«é¢ããåäžã®æ å ±ãæã£ãŠããŸãã æ å ±ã®å®å šæ§ãšãããã®ç¹æ§ã¯ãã²ãŒã äžã®ããŒã«ã«æ€çŽ¢ãªã©ããããã®æåãä¿èšŒããã¢ã«ãŽãªãºã ã®æ ¹åºã«ãããŸãã
ããããæ å ±ãäžå®å šãªã²ãŒã ã«ã€ããŠã¯ã©ãã§ããããïŒ
ãã®ãããªã²ãŒã ã®æãæçœãªäŸã¯ããŒã«ãŒã§ãã ãã®ã²ãŒã ãšãã®åé¡ã解決ããã¢ã«ãŽãªãºã ãå®éã«åŠçããããã«ãæ©æ¢°åŠç¿ã«åºã¥ããŠã²ãŒã ããããäœæããããã®ããã«ãœã³ãéå¬ããŸãã ã«ããã®äžã§ãã«ãŒãã«è§Šããããšãªããã©ããšããŒã«ãŒã§æãè©Šãã¢ã«ãŽãªãºã ãæããæ¹æ³ã«ã€ããŠã
1. æ
å ±ãäžå®å
šãªã²ãŒã ã®AI
- ããã°ã©ãã³ã°ãšãŒãžã§ã³ãã®åé¡
- ããŒã«ãŒã®ããã®AI
- ãœãªã¥ãŒã·ã§ã³ã®å®çšç䟡å€
2. ãºãã«ãã³ã¯ããŒã«ãã ãã£ã¬ã³ãž
- åå è
ã®ä»äº
- 競äºããã°ã©ã
3. ããã°ã©ãã³ã°æŠç¥
- åçŽãªãããã®äŸ
- ã²ãŒã ã®ãªãã¬ã€ã®åæ
- çºéã®ããã®ãœãªã¥ãŒã·ã§ã³ã®æºå
4. æŠç¥äœæã®ã¢ãããŒã
- å€å
žçãªã¢ãããŒã
- æ©æ¢°åŠç¿ã¢ãããŒã
5. ããã«ãœã³ãã©ãããã©ãŒã
6. åç
§
1.æ å ±ãäžå®å šãªã²ãŒã ã®AI
äžçã«ã¯ãè€æ°ã®ãšãŒãžã§ã³ãéã®çžäºäœçšã«é¢é£ããã¿ã¹ã¯ããã£ã±ãã§ãã æŽå²çã«ããããã®ãã«ããšãŒãžã§ã³ãã®ç¶æ³ã§ã¯äººã ãäž»ãªåå è ã§ããããAIã®éçºã«ãããå¹³çãªåå è ããã³å¯Ÿè©±å¯èœãªãšãŒãžã§ã³ããšããŠã¢ã«ãŽãªãºã ãæ¥åžžç掻ã«å°å ¥ããæ©äŒããããŸãã çŸåšããã®ãããªã³ã³ãã¥ãŒã¿ãŒãšãŒãžã§ã³ãã¯ãèªåé»è©±ã·ã¹ãã ã®ãããªåçŽã§ç¡å®³ãªãã®ãããã»ãã¥ãªãã£ç®¡çãèªåŸèŒžé管çã®ãããªéèŠãªãã®ãŸã§ãå€ãã®åé¡ã解決ããŸãã ããã«ãããå€ãã®æ¥åžžã®ããã»ã¹ãå€§å¹ ã«èªååããŠãææ決å®ãã¢ã«ãŽãªãºã ã«ç§»ãã人ã®è² è·ã軜æžã§ããŸãã
ã³ã³ãã¥ãŒã¿ãšãŒãžã§ã³ãã䜿çšããå€ãã®ã¿ã¹ã¯ã®æ©èœã¯ãããã°ã©ãã³ã°ã®è€éãã«åœ±é¿ããçŸå®äžçã®å€æ°ã®å¶éã§ãã ã³ã³ãã¥ãŒã¿ãŒãšãŒãžã§ã³ãã«ãšã£ãŠæãéèŠãªããšã¯ãææ決å®ã«å¿ èŠãªãã¹ãŠã®æ å ±ãžã®ã¢ã¯ã»ã¹ã§ãã ãããAIã®ã¢ãã«ã¿ã¹ã¯ã«ã©ã®ããã«åœ±é¿ããããã€ãŸããšãŒãžã§ã³ããã²ãŒã ããã¬ã€ããæ¹æ³ãèŠãŠã¿ãŸãããã
é察称æ§ãšäžå®å šãªæ å ±ãæã€ã²ãŒã ã¯ããã€ã§ãå®å šã«å©çšã§ããçæ³çãªæ å ±ãæã€é¡äŒŒãµã€ãºã®ã²ãŒã ãšæ¯èŒããŠãéåžžã«è€éãªææ決å®ã¢ãããŒããå¿ èŠãšããŸãã ãã€ã§ãæé©ãªè§£æ±ºçã¯ãçžæã®æŠç¥ã®ç¥èã«äŸåããŸããããã¯ãéå»ã®è¡åããã®ã¿æšå®ã§ãããç§ãã¡ã«é ããã圌ãã ããã¢ã¯ã»ã¹ã§ããæ å ±ã«äŸåããŸãã ãããã圌ãã®ä»¥åã®è¡åã¯ãŸããç§ãã¡ã®è¡åã«ã€ããŠã®åœŒãããé ãããæ å ±ãšç§ãã¡ã®è¡åããã®æ å ±ãã©ã®ããã«é瀺ãããã«äŸåããŠããŸãã ãã®ååž°çãªããã»ã¹ã¯ãå¹æçãªææ決å®ã¢ã«ãŽãªãºã ãæ§ç¯ããéã®äž»ãªå°é£ã瀺ããŠããŸãã
ããã°ã©ãã³ã°ãšãŒãžã§ã³ãã®åé¡
ãšãŒãžã§ã³ããšã¯ãææ決å®ããã»ã¹ã®èªåŸçãªåå è ãã€ãŸãå人ãšã³ã³ãã¥ãŒã¿ãŒã®äž¡æ¹ãæå³ããŸãã ãã«ããšãŒãžã§ã³ãç°å¢ã§ã¯ããšãŒãžã§ã³ãã¯äºãã«å¯Ÿè©±ããä»ã®ãšãŒãžã§ã³ãã®æŠç¥ãç®æšãããã³èœåãåžžã«ææ¡ããŠããããã§ã¯ãããŸããã ãã®ãããªç°å¢ã§çµæãæ倧åãããšãŒãžã§ã³ãã®æé©ãªåäœã¯ãä»ã®ãšãŒãžã§ã³ãã®ã¢ã¯ã·ã§ã³ã«äŸåããŸãã ãã«ããšãŒãžã§ã³ãç°å¢ã§å¹æçãªãšãŒãžã§ã³ããæ§ç¯ããã«ã¯ãä»ã®ãšãŒãžã§ã³ãã®ã¢ã¯ã·ã§ã³ã«é©å¿ãããã®æŠç¥ãã¢ãã«åãããã®è¡åã«åºã¥ããŠåŠç¿ããå¿ èŠããããŸãã
ãšãŒãžã§ã³ãããªã¢ã«ã¿ã€ã ã§é©å¿ããããã«ã¯ãçµæãéæããããã«æé©ãªã¢ã¯ã·ã§ã³ãéžæããå¿ èŠããããŸãã 匷ååŠç¿ã¢ãããŒãã䜿çšããŠããšãŒãžã§ã³ãã¯èªåã®è¡åã«å¯Ÿããå ±é ¬ãç²åŸããŸãã ãŸãããšãŒãžã§ã³ãã¯ãèšç»ãããæŸåãšæ¢æ»ã®åãçµã¿ã«åŸãããšã§ãã©ã³ã¹ãåããä»ã®ãã¬ã€ã€ãŒã®æŠç¥ã«é¢ããæçšãªæ å ±ãèŠã€ããããšããŸãã
åé¡ã®ãã§ã«é£ãã声æã«å ããŠããšãŒãžã§ã³ãã¯ãæ å ±ãäžå®å šãªãã«ããšãŒãžã§ã³ãç°å¢ã§ã®äœæ¥ã«é¢é£ããä»ã®å¶éã«çŽé¢ããŸãã ãšãŒãžã§ã³ããçŽé¢ããäž»ãªå°é£ãæžãçããŸãã
- éãããæ°ã®èŠ³æž¬ã ååãšããŠããšãŒãžã§ã³ãã¯ãã¬ãŒãã³ã°çšã®å°æ°ã®èŠ³å¯çµæã®ã¿ãå©çšã§ããŸãã ããã¯ã人éãšãŒãžã§ã³ãã®åå ãé·ãéå©çšã§ããªãã£ãå®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ç¹ã«éèŠã§ãã
- 確çç芳枬ã ãšãŒãžã§ã³ãã®çžäºäœçšç°å¢ãšãšãŒãžã§ã³ãèªäœã®äž¡æ¹ã¯ãå€ãã®å Žåãå€æ°ã®ã©ã³ãã ãªèŠå ã®åœ±é¿ãåããŸãã ãšãŒãžã§ã³ãã®åäœãä»ã®å€æ°ã®ã©ã³ãã å€æ°ã«äŸåããã©ã³ãã å€æ°ã§ããå Žåããã¬ãŒãã³ã°ãšé©å¿ã«åœ¹ç«ã€ä¿¡å·ãåé¢ããããšã¯ç¹ã«å°é£ã«ãªããŸãã
- 芳å¯ãããæ å ±ã®äžå®å šãã ããã¯ããšãŒãžã§ã³ããåäœããç°å¢ã®éèŠãªããããã£ã§ãã éšåçãã€éãããæŠèŠã®ã¿ããšãŒãžã§ã³ãã«å©çšå¯èœã§ãããäžçã«é¢ããã»ãšãã©ã®æ å ±ããšãŒãžã§ã³ãããé ããŠããŸãã
- åçãªåäœã æéã®çµéãšãšãã«ããšãŒãžã§ã³ãã¯äºãã®è¡åã«é©å¿ãããã¬ãŒãã³ã°ãšé©å¿ã®éã«è¡ãããé²æãå¹³æºåã§ããŸãã ç°å¢ã¯æéãšãšãã«å€åãããšãŒãžã§ã³ããæ°ããã¢ã¯ã·ã§ã³ãæŠç¥ãè¡åãåŒãèµ·ããããšããããŸãã
ãããã®ç¹æ§ã¯ãã¹ãŠãã³ã³ãã¥ãŒã¿ãŒãšãŒãžã§ã³ãã®äœæã«é倧ãªå°é£ã課ããŸãã ãããã®å°é£ã®1ã€ã§ããšãŒãžã§ã³ãã®åäœãã¢ãã«åããããšã¯è€éãªç§åŠéçŽçãªã¿ã¹ã¯ã§ããããã®ãããªãšãŒãžã§ã³ãã®ãšã³ãžãã¢ãšèè ããããã®å°é£ã®å®å šãªãªã¹ãã«å¯ŸåŠããªããã°ãªããªãå®éã®ç°å¢ã¯èšããŸã§ããããŸããã è€éãªç°å¢ã®äžè¬çãªã±ãŒã¹ã«ã€ããŠè©±ããŸãããã次ã«ã²ãŒã ã«ç§»ããŸãããã
ããŒã«ãŒAI
説æãããã¹ãŠã®ããããã£ãåããè€éãªç°å¢ã®è¯ãäŸã¯ãããŒã«ãŒã§ãã ããã«ã¯ãã«ãŒãã«é¢ããæ å ±ã®äžå®å šããåå ããŠãããã¬ã€ã€ãŒã®æŠç¥ãã«ãŒãã®é åžã«é¢é£ããã©ã³ãã æ§ã®èŠçŽ ãããã³ã²ãŒã äžã«èª¬æãããã®ä»ã®å°é£ãå«ãŸããŸãã ããã«ãã²ãŒã ã®ç¶æ³ãç¹åŸŽä»ããå¯èœãªã²ãŒã ç¶æ ã®æ°ã¯èšå€§ã§ãã ãšãŠã巚倧ãªã®ã§ãGoã«å£ãïŒå¯Ÿæ°ã¹ã±ãŒã«ã§ïŒã ãã§ãïŒç¡å¶éã®Hold'emã«ã¯10 160ãããGoã«ã¯çŽ10 170ãããŸãã
ããŒã«ãŒã¯ãã£ã³ã¹ã®ã²ãŒã ã§ãããšããäºå®ã«ãããããããå ¬åŒã¹ããŒããšããŠèªèãããŠãããã»ãŒãã¹ãŠã®åœïŒãã·ã¢ãå«ãïŒã«å šåœã¹ããŒãããŒã«ãŒé£çããããŸãã ä»æ¥ããã®ã²ãŒã ã«ã¯äžçäžã«äœçŸäžäººãã®ãã¡ã³ãããŸãããããŒã«ãŒããŸã äžçã®äººæ°ããã»ã©é ããšãã§ãããã¬ã€ã€ãŒã ãã§ãªãç§åŠè ãããé«ãè©äŸ¡ãããŠããŸããã çŸä»£ã®ã²ãŒã çè«ã®å é§è ã§ãããžã§ã³ã»ãã©ã³ã»ãã€ãã³ã¯ããã®ãã©ããšãããã®ã²ãŒã ã«éåžžã«é äºããã次ã®ããã«è¿°ã¹ãŸããã
ãçŸå®ã®ç掻ã¯ããã©ããå°ããªæ¬ºceptionãä»ã®äººãããªãã«æåŸ ããããšãèããããšããæãç«ã£ãŠããŸãã ãããç§ã®çè«ã§ã²ãŒã ãè¡šããã®ã§ããã ãžã§ã³ã»ãã©ã³ã»ãã€ãã³
ããŒã«ãŒåãAIã®éçºã®æŽå²ã¯30幎以äžãããŸãããæãé¡èãªææã¯æåéãéå»3幎éã«çããŠããŸãã
æåã®ããŒã«ãŒããã°ã©ã ãšã¢ã«ãŽãªãºã ã¯80幎代ã«ç»å ŽããŸãããããšãã°ã1984幎ã«åœŒãäœæããStratosphereããŒãã¡ã³ãã§ãã¢ãè¡ã£ãMike Caro Oracã·ã¹ãã ã§ãã 1991幎ãããŒã«ãŒåãAIã®éçºã«ç¹åããäžçåã®ç 究ã°ã«ãŒããã¢ã«ããŒã¿å€§åŠïŒã«ããïŒã§èšç«ãããŸããã 1997幎ããã®ã°ã«ãŒãã¯ããŒã«ãŒåãAIã®æåã®æåããæå³ã®ããå®è£ ã§ããLokiã·ã¹ãã ãå®èšŒããŸããã ããã¯å¹³åçãªäººéã®ãã¬ãŒã€ãŒããããããã«æªãã¬ãã«ã§ãã¬ãŒããŸããããããã¯ç 究åéå šäœã«ãšã£ãŠéèŠãªãã€ã«ã¹ããŒã³ã§ããã 2000幎代ã«ã¯ãããŒã«ãŒãããã®AIãæžããšãããã©ãã€ã ã«å€åããããŸããã ç 究è ã¯ããã£ãŒããã«ãŒã®ãã§ã¹ã§ã®æåïŒ1996幎ã«ã®ã£ãªãŒã«ã¹ããããç ŽããŸããïŒã«è§ŠçºãããããŒã«ãŒã¢ãããŒããããããŒã«ãŒåãã®æ¬æ Œçãªæ¹æ³è«ãšã·ãã¥ã¬ãŒã·ã§ã³åé¡ã®å®åŒåã«ç§»è¡ããŸããã
2015幎ãã¢ã«ããŒã¿å€§åŠã¯Cepheusã·ã¹ãã ãå°å ¥ããŸãããããã¯æåéããããŒã«ãŒã®çš®é¡ã®1ã€ã§ããã決å®ããããºã¢ããããŒã«ãŒïŒç°¡ç¥ããŒãžã§ã³ãçŽ10 18ã²ãŒã ã®ç¶æ³ïŒãã決å®ãããŸããã ããã¯AIã®éçºã«ãããéèŠãªãã€ã«ã¹ããŒã³ã§ããããã¯ãçŸæç¹ã§å®å šãªæé©ãœãªã¥ãŒã·ã§ã³ãåããæ å ±ãäžå®å šãªå¯äžã®ã²ãŒã ã§ããããã§ãã ããã¯ãã»ãã§ãŠã¹ã2ãæéãã¬ã€ããããšã§éæãããŸããïŒGoã®ã²ãŒã ã§äžçãã£ã³ããªã³ãç Žã£ãAlphaGoãåãæ¹æ³ã§èšç·ŽãããŸããïŒã
ãã®ã·ã¹ãã ã¯ãäžéšã®æã§ãããã倱ãããšããããããçæ³çã§ã¯ãªãããšã«æ³šæããããšãéèŠã§ãã ãã ããååãªæ°ã®ã²ãŒã ãããã°ãã»ãã§ãŠã¹ãåŒãç¶ãåè ãšãªããŸãã ãŸãããããºã¢ããããŒã«ãŒã®ç¡å¶éããŒãžã§ã³ã«ã¯ãã²ãŒã ã®ç¶æ ãå€ããããããåæ§ã®å®å šãªãœãªã¥ãŒã·ã§ã³ããŸã ãªãããšã«æ³šæããããšãéèŠã§ãã
ä»å¹ŽãããŒã«ãŒãããã®äžçã§2ã€ã®éèŠãªã€ãã³ããåæã«éå¬ãããŸããã ã¢ã«ããŒã¿å€§åŠã¯ãç¡å¶éã®ãããºã¢ããããŒã«ãŒããã¬ã€ããããã®DeepStackã¢ã«ãŽãªãºã ãå°å ¥ããŸããã ãã£ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ã«åºã¥ããŠãã¢ã«ãŽãªãºã ã¯ããã®ãã¬ã€ã€ãŒãå«ãå€ãã®äººéã®ã©ã€ãã«ãæã¡è² ããããšã«æåããAlphaGoã¯äººéã®çŽæãæš¡å£ããŠãåŠç¿ãããããšãã§ããå€ãã®ã²ãŒã ãç¶ç¶çã«ãã¬ã€ããŸããã
Live Libratus Tournament vs Human
ããŒã«ãŒãããã®äžçã§2017幎ã®æãéèŠãªã€ãã³ãããããŠããããAIå šè¬ã ã«ãŒãã®ãŒã¡ãã³å€§åŠã®Libratusã·ã¹ãã ã¯ãããã®ããŒã«ãŒãã¬ã€ã€ãŒãç¡äºã«åããŸãããããã¯ãäžçæé«ã®ç¡å¶éã®ãããºã¢ããããŒã«ãŒãã¬ã€ã€ãŒã§æ§æãããããŒã ã§ãã 圌ãã«ãããšãã¢ã«ãŽãªãºã ã¯éåžžã«è¯ãã£ãã®ã§ã圌ã¯äžæ£è¡çºãããŠã©ã€ãã«ã«ãŒããèŠãŠããããã«èŠããŸããã è©Šåã¯20æ¥éã®ããŒãã¡ã³ãäžã«ãªã¢ã«ã¿ã€ã ã§è¡ãããã¢ã«ãŽãªãºã ã®ã¢ã¯ã·ã§ã³ã¯ãããããŒã°ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã§ã«ãŠã³ããããŸããã
ãœãªã¥ãŒã·ã§ã³ã®å®çšçãªäŸ¡å€
ããŒã«ãŒãããã¯å®éã®ã¿ã¹ã¯ã«é©çšã§ããªãããã«èŠããŸããããã®éçºã«ãããã«ãŒãã²ãŒã ããç·Žç¿ã«ç§»ããå€ãã®æ¹æ³ãããããããŸããã æé«ã®äººéã®ãã¬ãŒã€ãŒãå æããçŸä»£ã®ããŒã«ãŒãããã®ã¢ã«ãŽãªãºã ã¯æ®éçã§ãããäžè¬çã«äžå®å šã§é察称ãªæ å ±ãå«ãç°å¢ã§ãšãŒãžã§ã³ãããã¬ãŒãã³ã°ããããšãç®çãšããŠããŸãã ã»ãã¥ãªãã£ããããŒã±ãã£ã³ã°ãŸã§ãåæ§ã®è€éãã®ç°å¢ã§ææ決å®ãå¿ èŠãªå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ãããã転éããããšãã§ããŸããããã§ã¯ããªãŒãã£ãšã³ã¹ã®å ¥æãã·ãã¥ã¬ãŒãã§ããŸãã
éè¡æ¥çã§ã¯ãé«åºŠãªããŒã«ãŒãããã®èåŸã«ããã¢ã«ãŽãªãºã ãã¢ããªã±ãŒã·ã§ã³ãèŠã€ããå€ãã®å®éçãªåé¡ããããŸãã Sberbankã®ãã®ãããªããžãã¹ã¿ã¹ã¯ã®äžã§ããŸã第äžã«ãä»ã®å€ãã®ãªããžã§ã¯ããã³ã¯ã®åžå Žã§ã®ãªã¹ã¯ãªã¿ãŒã³ãšäŸ¡æ Œèšå®ã®ç®¡çã«æ³šç®ãã䟡å€ããããŸãã ãã ãããããã®ã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ãã¯ãCustomer Value ManagementãNext Best Actionãªã©ã®ã¿ã¹ã¯ã«ç°¡åã«æ¡åŒµã§ããŸãã
2.ãºãã«ãã³ã¯ããŒã«ãã ãã£ã¬ã³ãž
æ©æ¢°åŠç¿ããŒã¹ã®Gamebot Hackathon
æ©æ¢°åŠç¿ãšäººå·¥ç¥èœã®éçºãä¿é²ããããã«ããªã³ã©ã€ã³ç«¶äºãå è¡ãããŠããŒã¯ãªããã«ãœã³ãéå¬ããŸãã æ©æ¢°åŠç¿ã®å°é家ãæåŸ ããŠãäžç¢ºå®æ§ã«çŽé¢ããŠæé©ãªæ±ºå®ãäžããä»ã®ããŒã«ãŒãã¬ãŒã€ãŒã®è¡åãã¢ãã«åã§ãã人工çãªã²ãŒãã³ã°ã€ã³ããªãžã§ã³ã¹ãäœæããŠã¿ãŠãã ããã
ãä»æ¥ã®äººå·¥ç¥èœã¯ãåççãªã¢ã«ãŽãªãºã ãéçºããã ãã§ãªããåžå Žåå è ã®äžåçãªè¡åããããŒãã¡ã³ãã®å Žåã®ããã«ããŒã«ãŒãã¬ã€ã€ãŒã®ã¢ãã«åã«ã圹ç«ã€ã¯ãã§ããã Sberbankã®äžçŽå¯ç€Ÿé·ã§ããAlexander Vedyakhin
åè³è ã®æ¥çžŸãSberbankã®äººå·¥ç¥èœã®éçºã«æŽ»çšãããããšãé¡ã£ãŠããŸãã ããã«ããããããããããã®éçºãå®éã«é©çšãããåã«å¹ŽãçµéãããšããŠãããã®ãããªããã«ãœã³ã¯ãã®ãããªã¢ãã«ã®åé¡ã«é¢ããç§åŠã®çºå±ã«ãšã£ãŠéèŠã§ãã
åå è ã®ä»äº
ããŒã«ãŒããããäœæããå¿ èŠãããã²ãŒã ã¯ãæã人æ°ã®ããããŒã«ãŒã¿ã€ãã§ãïŒããŒãªããããããµã¹ããŒã«ãã ã§ãã ãŸããæãé£ããçš®é¡ã®ã²ãŒã ã§ãããåäžã®ç 究ã°ã«ãŒããæåã«è¿ã¥ããŠããããã§ã¯ãããŸããã2人ã§ã¯ãªã9人ã®ãã¬ã€ã€ãŒãåå ããã²ãŒã ã®çµã¿åããã®æ°ã¯èšå€§ã§10 160ã«éããŸãã
åå è ã¯ãããŒã«ãŒããã¬ã€ãããšãŒãžã§ã³ããå®è£ ããå¿ èŠããããŸãã ããŒã«ãŒã²ãŒã ã¯é£ç¶ããäžé£ã®é åžïŒã©ãŠã³ãïŒã§ããããã¹ãŠã®ããŒã«ãŒãããã1人ã®ãã¬ãŒã€ãŒã«ããæ®ã£ãŠããªãå ŽåããŸãã¯ã©ãŠã³ãæ°ã®å¶éã«éãããŸã§çµäºããŸãã åã²ãŒã ã§ã¯ãããããã¬ãŒã€ãŒã®9人ã®ãšãŒãžã§ã³ããåå ããŸãã
åå è ã®ãšãŒãžã§ã³ããããã²ãŒã ãšããŒãã¡ã³ããã©ã³ãã ã«åœ¢æããããã®çµæã«å¿ããŠæè¯ã®æŠç¥ã決å®ãããŸãã ã²ãŒã ã®éå§æã«ãåãšãŒãžã§ã³ãã«ã¯ã¿ã€ã ãã³ã¯ãäžããããããã䜿çšããŠããŒãã¡ã³ãäžã«æ±ºå®ãäžãããšãã§ããŸãã ãšãŒãžã§ã³ããå¶éæéãè¶ ããå ŽåããŸãã¯ãšãŒãžã§ã³ããããŒã¿è»¢éãããã³ã«ã«å¯Ÿå¿ããªãå¿çãéä¿¡ããå Žåãã·ãã¥ã¬ãŒã¿ãŒã¯ããŒãã¡ã³ããçµäºãããŸã§åãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã«ãŒããèªåçã«ç Žæ£ããŸãã
競æããã°ã©ã
ã³ã³ãã¹ãã¯2ã€ã®ã¹ããŒãžã§éå¬ãããŸããå人ã®äºéžããŒãã¡ã³ããš100人ã®ãã¡ã€ããªã¹ãã®ããŒã ãªãã©ã€ã³ããã«ãœã³ã§ãã ãªã³ã©ã€ã³äºéžã¹ããŒãžãééããäžäœ100人ã®åå è ã¯ããã©ã€ããŒããªãã©ã€ã³ããã«ãœã³ã«æåŸ ãããŸãã
- 8æ30æ¥12:00
競äºã®ãã©ãããã©ãŒã ã§ã®ç«¶äºã®ãªã³ã©ã€ã³ã¹ããŒãžã®éå§ããœãªã¥ãŒã·ã§ã³ã®éä¿¡ã®éå§ã - 9æ18æ¥ã03ïŒ00ïŒ9æ15æ¥23:59ãã延é·ïŒ
ãªã³ã©ã€ã³ã¹ããŒãžãéããåå è ãè©äŸ¡ãããã¡ã€ããªã¹ããéžåºããŸãïŒããã100ïŒã - 9æ23æ¥10:00
Sberbank Corporate Universityã§ã®ããã«ãœã³ã®ãªãã©ã€ã³ã¹ããŒãžã®éå§ã - 9æ24æ¥ã16ïŒ00ã
ããã«ãœã³æ±ºåããŸãšããæè³åŒã
äºéžãªã³ã©ã€ã³ã¹ããŒãžã¯åå¥ã«éå¬ãããŸãã ãªã³ã©ã€ã³æ®µéã§ã¯ãåå è ãèªåã®ããŒã«ãŒãããã®æžãæ¹ãåŠã¶ããšãã§ããããã«ã競äºããŒã ããªãã©ã€ã³ããã«ãœã³ã®ãã¹ãç°å¢ãæäŸããŸãã ãŸãããªã³ã©ã€ã³ã¹ããŒãžã§ã¯ãæ¯æ¥åå0æã«ãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠããããã®è©äŸ¡ãæ¯æ¥æ±ºå®ãã100以äžã®ã©ã³ãã ããŒãã¡ã³ããéå¬ãããŸãã ãªãã©ã€ã³æ®µéã§ã¯ãåå è ã¯ããŒã ãçµæããåå è ã®è©äŸ¡ã決å®ããããŒãã¡ã³ãããã¹ãŠã®åå è éã§1æéããšã«è¡ãããŸãã
ããã«ãœã³ã¯ãSberbank Corporate Universityã®Academy of Technology and DataãçŽæ¥åå ããŠéå¬ãããŸããããã«ãœã³ã®ãã¡ã€ãã«ã¯ããã¡ã€ããªã¹ããã¢ã«ãŽãªãºã ãæçµæ±ºå®ããå¿ èŠãããCorporate Universityã®ãã£ã³ãã¹ã§éå¬ãããŸãã
ãºãã«ãã³ã¯ã³ãŒãã¬ãŒããŠãããŒã·ãã£ãã£ã³ãã¹
ãªãã©ã€ã³åå è ã«ã¯ãã¢ã¹ã¯ã¯ãããã£ã³ãã¹ãžã®éè¿ãããã«ã®å®¿æ³ãé£äºããã®ä»ã®ãµãŒãã¹ãšçŽ æŽããããã£ã³ãã¹ã®æ©äŒãæäŸãããŸãã ããã®ã³ã¡ã³ããŒã¿ãŒã®åå ã«ãããã³ã³ãã¹ãã®æ±ºåæŠãšãããéã®ããŒã«ãŒããŒãã¡ã³ããè¡ãããŸãã
æ®å¿µãªããããã·ã¢ã®åžæ°ã ãããã®ç«¶äºã«åå ã§ããŸãã ã¢ã¹ã¯ã¯ãžã®ç©æµãåå è èªèº«ã«æ®ã£ãŠããŸãã ãã®ç¹ã§ãããã100ã«ãã人ã®ãªãã©ã€ã³ããã«ãœã³ã®å Žæã¯ããªãããã®çç±ã§ãªãã©ã€ã³ã¹ããŒãžã«æ¥ãããšãã§ãããè©äŸ¡ããŒãã«ã®ãªã¹ãã§ãããã®æ¬¡ã®å Žæã«è»¢éãããŸãã
äžäœ3ããŒã ã®è³éã¯60äžã«ãŒãã«ã§ãã
3.ããã°ã©ãã³ã°æŠç¥
ããŒã«ãŒããããå®çŸããåå©ã«å°ãæ¹æ³ãèŠãŠã¿ãŸãããã ãããè¡ãã«ã¯ã3ã€ã®ããšãå¿ èŠã§ãã
-ç§ãã¡ãèªä¿¡ãæã£ãŠããããã°ã©ãã³ã°èšèªïŒPythonããã³C ++ã«æ¢è£œã®äŸããããŸãïŒã
-ç§ãã¡ã®ããããåäœããããŒã«ãŒã²ãŒã ã®ã·ãã¥ã¬ãŒã¿ãŒã ã·ãã¥ã¬ãŒã¿ãŒãšããŠã PyPokerEngineãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã䜿çšãããŸã
-ãããèªäœã®ã³ãŒããã·ãã¥ã¬ãŒã¿å
ã§ã²ãŒã ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
æåã«ããããåŠçããŠãããã»ã©é£ãããªãããšã確èªããŸãããã
ç°¡åãªãããã®äŸ
Pythonã§æãåçŽãªãããã®äŸãèŠãŠã¿ãŸããããæ¯åCALLæäœãå®è¡ããŸããã€ãŸããåžžã«ããèªäœã«èªä¿¡ããããããã ãã§çžæã®è³ããå¹³æºåããŸãã
from pypokerengine.players import BasePokerPlayer class FishPlayer(BasePokerPlayer): def declare_action(self, valid_actions, hole_card, round_state): call_action_info = valid_actions[1] action, amount = call_action_info["action"], call_action_info["amount"] return action, amount def receive_game_start_message(self, game_info): pass def receive_round_start_message(self, round_count, hole_card, seats): pass def receive_street_start_message(self, street, round_state): pass def receive_game_update_message(self, action, round_state): pass def receive_round_result_message(self, winners, hand_info, round_state): pass
ãããã¯ãdeclare_actionãããã®æç¹ã§ã®ã²ãŒã ã€ãã³ããã³ãã©ãŒã¡ãœãããšã¢ã¯ã·ã§ã³éžæã¡ãœãããå®è£ ãããŠãããªããžã§ã¯ãã§ãã ã©ã€ãã©ãªã®ããã¥ã¡ã³ãã§ãã²ãŒã æŠç¥ã®å®è£ ã«ã€ããŠè©³ããèªãããšãã§ããŸãã
ã²ãŒã æŠç¥ã®éçºã¯Pythonèšèªã ãã§ãªããä»ã®ããã°ã©ãã³ã°èšèªã§ãå®è£ ã§ããŸãã APIã®èª¬æãšãããäœæã®ã¬ã€ãã«ã€ããŠã¯ã ãããã®æºåã«é¢ããã¬ã€ããåç §ããŠãã ãã ã
æ¯æ¥00:00 MSKã«ãã·ã¹ãã ã«éä¿¡ããããã¹ãŠã®ãããéã§ããŒãã¡ã³ããéå¬ãããŸãã åå è ãè€æ°ã®ãšãŒãžã§ã³ããéä¿¡ããå ŽåãæåŸã«éä¿¡ããã決å®ã®ã¿ãèæ ®ãããŸãã
ããŒãã¡ã³ãäžãåãããã¯ã©ã³ãã ãªã©ã€ãã«ãšã®äžé£ã®ã²ãŒã ããã¬ã€ããŸã-ä»ã®åå è ã®ãããã§ãã çµæããŒãã«ã¯ãããŒãã¡ã³ãã®ãã¹ãŠã®ã²ãŒã ã®çµæã«åºã¥ããŠããããããã®æ®ãã®ãããã®å¹³åéã®éé ã«äœæãããŸãã
ããŒãã¡ã³ãã²ãŒã ã§ã¯ãæ£ç¢ºã«9ã€ã®ããããåå ããŸãã ã©ãŠã³ãã®æ倧æ°ã¯50ã§ããã²ãŒã ã®éå§æã«ãåãããã¯1,500ããããåãåããã¹ã¢ãŒã«ãã©ã€ã³ãã®ãµã€ãºã¯15ã§ãã
ããã¯ãPyPokerEngineã®æ¬¡ã®ã©ãŠã³ããã©ã¡ãŒã¿ãŒã«å¯Ÿå¿ããŸãã
config = setup_config(max_round=50, initial_stack=1500, small_blind_amount=15)
ã²ãŒã ãªãã¬ã€åæ
ããŒãã¡ã³ãã®çµäºæã«ãåå è ã¯ãã¹ãŠã®ãããã®ã²ãŒã ãã°ãå«ãã¢ãŒã«ã€ãã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã£ãŠãã²ãŒã äžã®ã¢ã¯ã·ã§ã³ãèŠãŠã察æŠçžæã®æŠç¥ãåæã§ããŸãã ãã ããä»ã®åå è ããããã®ãã¬ã€ã¹ã¿ã€ã«ãåæãã次ã®ããŒãã¡ã³ãã«åããŠããããåŸ ã¡äŒããããšãã§ããŸãã
ã²ãŒã ã®ãªãã¬ã€ãå«ããµã³ãã«ãã¡ã€ã«ïŒ example_game_replay.json
ã²ãŒã ã®ãªãã¬ã€ã¯ããã£ãŒã«ããæã€JSONãªããžã§ã¯ããšããŠèšé²ãããŸãã
ã«ãŒã« ïŒã²ãŒã ãã©ã¡ãŒã¿ãŒ
seats ïŒãããã«é¢ããæ
å ±ãç¹ã«ãåãããã®ååã瀺ãããŠããåå-ãã®ååã¯ãããããéä¿¡ããåå è
ã«å¯Ÿå¿ããŠããŸã
rounds ïŒãããã«ãã£ãŠå®è¡ãããã¢ã¯ã·ã§ã³ã瀺ããã¹ãŠã®ã©ãŠã³ãã®ãªã¹ã
çºéã®ããã®ãœãªã¥ãŒã·ã§ã³ã®æºå
ç¹å¥ã«æºåãããdockerã€ã¡ãŒãžã¯ãããããèµ·åããããã®ç°å¢ãšããŠäœ¿çšãããŸãã ZIPã¢ãŒã«ã€ãã«ããã¯ããããããã³ãŒãããã¹ãã·ã¹ãã ã«éä¿¡ããå¿ èŠããããŸãã
ã¢ãŒã«ã€ãã®äŸïŒ
â example-python-bot.zip
â example-cpp-bot.zip
ã¢ãŒã«ã€ãã«ãŒãã«ã¯ã次ã®å 容ã®metadata.jsonãã¡ã€ã«ãå«ãŸããŠããå¿ èŠããããŸãã
{ "image": "sberbank/python", "entry_point": "python bot.py" }
ããã§ãimageã¯ãœãªã¥ãŒã·ã§ã³ãèµ·åããdockerã€ã¡ãŒãžã®ååãentry_pointã¯ãœãªã¥ãŒã·ã§ã³ãèµ·åããã³ãã³ãã§ãã ãããããã°ã©ã ã®å ŽåãçŸåšã®ãã£ã¬ã¯ããªã¯ã¢ãŒã«ã€ãã®ã«ãŒãã«ãªããå®è¡å¯èœãã¡ã€ã«ã«å ããŠãä»ã®è£å©ãã¡ã€ã«ãé 眮ã§ããŸãã ã¢ãŒã«ã€ãã®ãµã€ãºå¶éã¯1GBã§ãã
ã»ãšãã©ãã¹ãŠã®ããã°ã©ãã³ã°èšèªã«ã€ããŠãããããå®è¡ã§ããããã«ãŒç°å¢ããããŸãã
- sberbank / python-å€æ°ã®ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããPython3
- gcc-ã³ã³ãã€ã«ãããC / C ++ãœãªã¥ãŒã·ã§ã³ãå®è¡ããŸãïŒ è©³çŽ°ã¯ãã¡ã ïŒ
- node -JavaScriptãå®è¡ããŸã
- openjdk -Javaçš
- mono -CïŒã®å Žå
- DockerHubããããŠã³ããŒãã§ããä»ã®ç»åãé©ããŠããŸãã
å®è¡å¯èœãªã³ãã³ãã¯ãstdin / stdoutãä»ããŠã²ãŒã ã·ãã¥ã¬ãŒã¿ãšäº€æãããŸãã ã·ãã¥ã¬ãŒã¿ãŒã¯ã event_type<\t>data
圢åŒã§ãstdinè¡ã®1ã€ã®ã€ãã³ããéä¿¡ããŸããããã§ã data
ã¯ã€ãã³ããã©ã¡ãŒã¿ãŒãæã€JSONãªããžã§ã¯ãã§ãã ã·ãã¥ã¬ãŒã¿ãŒãstdinã«äŸçµŠããå
¥åã®äŸ ã ã€ãã³ããšãã®ãã©ã¡ãŒã¿ãŒã®èª¬æ ã
declare_action
ã€ãã³ããžã®å¿çdeclare_action
ãããã¯æ¬¡ã®åœ¢åŒã®è¡ã§stdoutã«å¿çããå¿
èŠããããŸãã
action<\t>amount
ããã§ã action
ã¯ãã¬ãŒã€ãŒãå©çšã§ããã¢ã¯ã·ã§ã³ïŒãã©ãŒã«ããã³ãŒã«ãã¬ã€ãºïŒã®1ã€ã§ãéã¯ã¬ã€ãºã¢ã¯ã·ã§ã³ã®ãããæ°ããã®ä»ã®å Žåã¯0ã§ãã
ãããã¡I / Oã䜿çšããå Žåã¯ãã¢ã¯ã·ã§ã³ãstdoutã«æžã蟌ãã åŸflush()
å¿
ããããã¡ãflush()
ïŒ flush()
ïŒããŠãã ããã ããããªããšãã·ãã¥ã¬ãŒã¿ãŒãã¡ãã»ãŒãžãåä¿¡ããªãå¯èœæ§ãããããããã«å¶éæéããããŸãã
äžèšã®äŸã«ç€ºãããã«ãPyPokerEngineã©ã€ãã©ãªã䜿çšããŠPythonã§ããããéçºããã®ãæã䟿å©ã§ãã Python 3ãã€ã³ã¹ããŒã«ãããŠããsberbank / pythonã®dockerç°å¢ã§å®è¡ããããšããå§ãããŸãããŸããPyPokerEngineèªäœãšçŽ³å£«ã®ããŒã¿ãµã€ãšã³ãã£ã¹ãã®ã»ããïŒnumpyãscipyãpandasãsklearnãtensorflowãkerasïŒãå«ãã©ã€ãã©ãªã®å€§èŠæš¡ãªã»ãããå®è¡ããããšããå§ãããŸãã ã€ã³ã¹ããŒã«æžã¿ã®Pythonããã±ãŒãžã®å®å šãªãªã¹ãã¯ããã®ãã¡ã€ã«ã«ãããŸã ã
å®å šãªpythonãããã®ãµã³ãã«ã³ãŒãã以äžã«ç€ºããŸãã
import sys import json from pypokerengine.players import BasePokerPlayer class MyPlayer(BasePokerPlayer): # Do not forget to make parent class as "BasePokerPlayer" # we define the logic to make an action through this method. (so this method would be the core of your AI) def declare_action(self, valid_actions, hole_card, round_state): # valid_actions format => [raise_action_info, call_action_info, fold_action_info] call_action_info = valid_actions[1] action, amount = call_action_info["action"], call_action_info["amount"] return action, amount # action returned here is sent to the poker engine def receive_game_start_message(self, game_info): pass def receive_round_start_message(self, round_count, hole_card, seats): pass def receive_street_start_message(self, street, round_state): pass def receive_game_update_message(self, action, round_state): pass def receive_round_result_message(self, winners, hand_info, round_state): pass if __name__ == '__main__': player = MyPlayer() while True: line = sys.stdin.readline().rstrip() if not line: break event_type, data = line.split('\t', 1) data = json.loads(data) if event_type == 'declare_action': action, amount = player.declare_action(data['valid_actions'], data['hole_card'], data['round_state']) sys.stdout.write('{}\t{}\n'.format(action, amount)) sys.stdout.flush() elif event_type == 'game_start': player.set_uuid(data.get('uuid')) player.receive_game_start_message(data) elif event_type == 'round_start': player.receive_round_start_message(data['round_count'], data['hole_card'], data['seats']) elif event_type == 'street_start': player.receive_street_start_message(data['street'], data['round_state']) elif event_type == 'game_update': player.receive_game_update_message(data['new_action'], data['round_state']) elif event_type == 'round_result': player.receive_round_result_message(data['winners'], data['hand_info'], data['round_state']) else: raise RuntimeError('Bad event type "{}"'.format(event_type))
{ "image": "sberbank/python", "entry_point": "python bot.py" }
C \ C ++ã®å Žåã¯ãã³ã³ãã€ã«ãããèšèªã§ããããèµ·åããæé ã«ã泚æããŠãã ãã ã ãããã®åºè·æºåã«é¢ãã詳现ãªããã¥ã¡ã³ãã¯ã ãã¡ãããå ¥æã§ããŸã ã
4.æŠç¥äœæã®ã¢ãããŒã
ããŒã«ãŒãããã®éçºã®30幎ã®æŽå²ã®äžã§ãããŒã«ãŒæŠç¥ã®éçºã«å¯Ÿããã¢ãããŒãã®ããã€ãã®ãã¡ããªãŒãäœæãããŸããã
å€å žçãªã¢ãããŒã
å®è£ ãæãç°¡åã§æéã®ããããªãæ¹æ³ã®1ã€ã¯ããšãã¹ããŒãã·ã¹ãã ã§ãã å®éãããã¯ã²ãŒã ã®ç¶æ³ãäºåå®çŸ©ãããã¯ã©ã¹ã®1ã€ã«å²ãåœãŠãäžé£ã®åºå®IF-THENã«ãŒã«ã§ãã çµã¿åããã®åŒ·ãã«å¿ããŠãã·ã¹ãã ã¯å€ãã®å©çšå¯èœãªãœãªã¥ãŒã·ã§ã³ã®1ã€ãæäŸããŸãã
ãŸãããã®åé¡ã¯ãçŽç²ã«æ°åŠçãªæ¹æ³ã§è§£æ±ºã§ããåæç¹ã§ããã·ã¥å¹³è¡¡ã®èŠ³ç¹ããæé©ãªãœãªã¥ãŒã·ã§ã³ãèšç®ã§ããŸãã ãã ããä»ã®åå è ã®ãœãªã¥ãŒã·ã§ã³ãæé©ãªå Žåããœãªã¥ãŒã·ã§ã³ã¯æé©ã«ãªããŸãã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®æ€çŽ¢ã¯ãªãœãŒã¹ã倧éã«æ¶è²»ãããããå®éã«ã¯ãã«ãŒã«ã®å€æ°ã®å¶éãããå Žåã«ã®ã¿äœ¿çšã§ããŸãã ããšãã°ããããµã¹ããŒã«ãã ã§ã¯ã2人ã®ãšãŒãžã§ã³ãã®å¶éãããå ŽåããŸãã¯ç¹å®ã®ã²ãŒã ã®ç¶æ³ãçºçããå Žåã§ãã
æ©æ¢°åŠç¿ã®ã¢ãããŒã
éçšæŠç¥ã¯ããå¹æçã§ãæµãã¯ã©ã¹ã¿ãŒã«åå²ããåã¯ã©ã¹ã¿ãŒã«å¯ŸããŠå¯ŸææŠç¥ãå®è£ ãããŸãã ã»ãšãã©ã®åªç§ãªããŒã«ãŒãã¬ã€ã€ãŒã¯ãã®ã¢ãããŒãã䜿çšããŠããŸãã ãããã人éãšã¯ç°ãªããã³ã³ãã¥ãŒã¿ãŒã«ã¯èšå€§ãªæ°ã®ã²ãŒã çµæãæŽçã§ãããšããå©ç¹ããããã©ã€ãã«ã®è¡åãé©åã«äºæž¬ããããšã§ãæ°åŠçãªæåŸ ã«é¢ããŠæãåçæ§ã®é«ã決å®ãäžãããšãã§ããŸãã ãã®å Žåã®å¯ŸæŠçžæã®è¡åãäºæž¬ããã«ã¯ãéå»ã®è©Šåã§ã®ã²ãŒã ã®çµ±èšãåéããæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ãå®è£ ããããšãéåžžã«åœ¹ç«ã¡ãŸãã ã¢ã«ãŽãªãºã ã®äœè ã«ãšã£ãŠæ®å¿µãªããšã«ããã¯ãã«ãªã³ã³ãã¥ãŒã¿ãŒã§ãã£ãŠããã»ãšãã©ã®ã²ãŒã ã®ç¶æ³ã§èµ·ããããã€ãã³ãã®çµæããã¹ãŠåé¡ããããšã¯äžå¯èœã§ããããã ã¢ã³ãã«ã«ãããªãŒæ€çŽ¢ãªã©ã®æé©åã¢ã«ãŽãªãºã ã䜿çšããå¿ èŠããããŸãã ãã®ãããªæŠç¥ã®å®è£ ã®äŸ ã
æåŸã«ãæŠç¥ã®äœæã«ããã«æœè±¡çã«ã¢ãããŒãããå ¥åã«ã²ãŒã ç¶æ³ã®ãã©ã¡ãŒã¿ãŒããããåºåã«ãã¥ãŒã©ã«ãããã¯ãŒã¯ãå®è£ ã§ããŸã-å€ãã®å¯èœãªè§£æ±ºçã ãã®ã¢ãããŒãã®æ¬ ç¹ã«ã¯ããã®å Žåããã¬ãŒãã³ã°ã«å€§ããªããŒã¿ã»ãããå¿ èŠã«ãªããšããäºå®ãå«ãŸããŸãã ãã®ãã€ãã¹ã¯ãAlphaGoã¢ãããŒããšåæ§ã®æ¹æ³ã§èªåèªèº«ãšéã¶ããã«ãã¥ãŒã©ã«ãããã¯ãŒã¯ãèµ·åããããšã§å¹³æºåã§ããŸããã1æ¥ä»¥äžã®ãã¬ãŒãã³ã°ãšã¢ããªã³ã°ã®æºåãå¿ èŠã§ãã ããŒã«ãŒããããäœæããããã®ããè€éãªç§åŠçã¢ãããŒãã«ã€ããŠã¯ã10幎以äžã«ããã£ãŠãã®åé¡ã解決ããŠããã«ããã¢ã«ããŒã¿å€§åŠã®ææã«ããèšäºãèªãããšãã§ããŸãã
Deepstack Neural Network Architecture
ç¹ã«ãæåã«èª¬æããDeepStackã¢ã«ãŽãªãºã ã§äœ¿çšããããã¥ãŒã©ã«ãããã¯ãŒã¯ã®ã¢ãŒããã¯ãã£ãäžã«ç€ºããŸãã ãããã®ãµã€ãºã«é¢ããããŒã¿ãå ¬éãããã«ãŒããããã³ãã¬ãŒã€ãŒã«é¢ããæ å ±ã¯ãããã¯ãŒã¯ã®å ¥ãå£ã«éä¿¡ããããã®åŸããããã®ããŒã¿ã¯ãã«ãŒããã³ãã¯ã©ã¹ã¿ãŒãã®è¡šçŸã«å€æãããŸãã ãã®æ å ±ã¯7å±€ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®å ¥åã«éããããã®åŸããã®çµæã¯ãŒããµã ã®ã²ãŒã çè«çåºæºãæºããããã«ããã«åŸåŠçãããŸãã DeepStackã®è©³çŽ°ã¯ãã¢ã«ããŒã¿å€§åŠã®èšäºã«èšèŒãããŠããŸãã
ã芧ã®ãšãããä»æ¥æãå°é£ãªAIã²ãŒã ã®1ã€ã«å¯Ÿããå¯èœãªãœãªã¥ãŒã·ã§ã³ã®ç¯å²ã¯åºå€§ã§ãã Sberbank Holdem Challengeã®åå è ã¯ãããããåå©ã«å°ãã¢ãããŒããçµã¿åãããèªç±ã«äœ¿çšã§ããŸãã
5.ããã«ãœã³ãã©ãããã©ãŒã
ãªã³ã©ã€ã³æ®µéã解決ããããã®äœæ¥ãã©ãããã©ãŒã ã¯ã holdem.sberbank.aiã§å ¥æã§ããŸãã ãã®äžã«ãå¿ èŠãªãã¹ãŠã®è³æãããããªã³ã©ã€ã³ã¹ããŒãžã«ãœãªã¥ãŒã·ã§ã³ãç»é²ããã³éä¿¡ã§ããŸãã
ãã®ãããªè€éãªã¿ã¹ã¯ã«ã¯å€ãã®æéãå¿ èŠã§ããããšãç解ããŠããããããªã³ã©ã€ã³æ®µéã§ã®æ±ºå®ã®è¶ 人çãªçµæã¯æåŸ ããŠããŸããã ãã ãããªã³ã©ã€ã³ãã§ãŒãºã§ã¯ãç¬èªã®ããŒã«ãŒããããäœæããæ¹æ³ããã©ãããã©ãŒã ãšãœãªã¥ãŒã·ã§ã³ã®åœ¢åŒãç解ããæ¹æ³ãåŠã¶ããšãã§ããŸãã
ãããŠãã¡ãããå°ãã®åªåã§ã競äºã®ãªãã©ã€ã³æ®µéã«å°éããããšãã§ããŸã-ãããã®åºæ¬çãªäŸã¯ãŸã ããã100ã«ãããŸã:)
ãªã³ã©ã€ã³ãã§ãŒãºãçµäºãããŸã§ããš2é±é以å ã§ããæ¥ãã§ãã ããïŒ
6.åç §
Sberbank Holdem Challenge HackathonããŒã
Sberbank Holdem Challengeãã©ãããã©ãŒã
2017幎ã®ããŒã«ãŒãããLibratusã®æå
20幎éã®AIããŒã«ãŒéçºïŒEnïŒ
AIããŒã«ãŒã¢ãããŒãã®æŠèŠ
ã¢ã«ããŒã¿å€§åŠããŒã«ãŒã¢ããªã±ãŒã·ã§ã³ç 究ã°ã«ãŒã
ãããºã¢ããã¢ã³ãªããããããŒã«ãŒã«åã€ããã«äœ¿çšãããDeepStackã¢ã«ãŽãªãºã
DeepStackã®èè
ã«ãã詳现ãªèšäºïŒEnïŒ
ãããµã¹ããŒã«ãã ããŒã«ãŒã²ãŒã ã«ãŒã«]