ããã«ã¡ã¯ãknewjadeã§ãã ä»åãHATETIRSã§289 linesãŸã§å°éããããšãã§ããŸãããåç»ã¯ãã¡ãïŒ2022-11-26æç¹ã®World Recordã§ãããçŸåšã§ã¯æŽæ°ãããŠããŸãã â David&Felipeã®èšäºïŒ
ããã§ã¯ããã®çµæãåŸãããã®ã¢ãããŒãã説æããŠãããããšæããŸãã
ãããããHATETRISãšã¯ïŒããšããæ¹ã¯ããã¡ãããåç §ãã ããã
ãã®ããŒãžã§ã¯ãã³ã³ãã¥ãŒã¿ã䜿ã£ãæ¢çŽ¢æ¹æ³ãæžãããŠããŸãã 人éããã¬ã€ããäžã§ã®ã²ãŒã ã®æ»ç¥æ¹æ³ã§ã¯ãªãã®ã§ã泚æãã ããã
ãŸãHATETRISã«ããããããŸã§ã®ã¢ãããŒãããã®èª²é¡ãªã©ã®èæ¯ã説æããŠãä»åç®æããç®æšã«ã€ããŠèª¬æããŸãã
æçµæŽæ°æ¥æ | ã¢ãããŒã | ã¹ã³ã¢ | æŽæ°è |
---|---|---|---|
2010-05-04 | 人éãèããŠèŠã€ãã | ã30 | Deasuke ä» |
2017-06-06 | ???ïŒãã¶ãæ©æ¢°æ¢çŽ¢ïŒ | 31 | chromeyhex |
2022-11-25 | Heuristic Beam Search +α | 32ã232 | knewjade(66)~David&Felipe(152)~Tim(232) |
HATETRISãå ¬éããã2010-04ãããçè ã調ã¹ã¯ããã2021-06ãŸã§11幎éã»ã©ã§ãçŽ30ãã€ã³ããæé«ã¹ã³ã¢ã§ããã ãã®æéã®æé ã¯èŠåçãªçœ®ãæ¹ãããŠãããã®ãã»ãšãã©ã§ãã ãã®ç¹ã§31linesã ãã¯ãèŠåæ§ãæ¯èŒçå°ãªãã®ã§ãèè ã¯æ©æ¢°ã«ããæ¢çŽ¢ã䜿ã£ãŠããã®ã§ã¯ãªãããšæšæž¬ããŠããŸãïŒçåœã¯äžæã§ãïŒã
ããã¯ãã ã®ææ³ã§ãããç¹ã«30linesã¯ããªããã¬ã€ãªç©ã¿æ¹ã§ããã皮人éãããç©ã¿ã®ãŽãŒã«ã®ã²ãšã€ã ãšæã£ãŠããŸãã
ãHATETRIS ã»ãã€ãããªã¹ã30段æ¶ã解説åç» â https://www.youtube.com/watch?v=Hd5dNdrrEvQ
32ines以éã®æé ã¯ãã¹ãŠããã°ã©ã ã«ãã£ãŠåŸãã¹ã³ã¢ã§ããããšãæç¢ºã«ãããŠããŸãã ããããã®è§£èª¬èšäºãèŒããŠãããŸããèå³ãããæ¹ã¯ãã²ã芧ãã ããã
- 66lines by knewjade: https://gist.github.com/knewjade/586c9d82bd53f13afa8bcb7a65f8bd5a
- 86lines by David&Felipe: https://hallofdreams.org/posts/hatetris/ (è±èª)
ãããŸã§ã®æ¢çŽ¢æ¹æ³ãã²ãšããšã§ãŸãšãããšãheuristicãªç¹åŸŽéããŒã¹ã®è©äŸ¡é¢æ°ã«ããããŒã ãµãŒãããåºæ¬ã§ã 人éãçµéšçã«è¯ããããªç¹åŸŽãèããŠããããç¹åŸŽéãšããŠèšå®ããŠããŸãã
ãã®heuristicãé Œãã¡ãªãããšããŠãç¹åŸŽéãããŸãå®çŸ©ããŠããããšãç°¡åã«ããããè¯ãçµæãåŸãããããç¹ã§ãã äºåã«ããŒã¿ãçšæããªããŠãè¯ãããšãå€ããç¥èŠãåŠç¿ããŒã¿ããªããããªé åã§ã®ãã¡ãŒã¹ãã¹ããããšããŠéžæããããã§ãã
ãŸãã«èè ãæ¢çŽ¢ãå§ããã¿ã€ãã³ã°ã§ã¯ãæ©æ¢°æ¢çŽ¢ã詊ã¿ã人ã¯å°ãå± ããã®ã®ã誰ãæåã§ããŠããªãç¶æ³ã§ããã 仿¯ãè¿ã£ãŠãããã®ç¶æ³ã§ãå°ãªãäœæ¥ã§çµæãåŸããããããŠãªã¹ã¯ã®äœãç¹åŸŽéããŒã¹ã®ã¢ãããŒããéžãã ã®ã¯ãçµæãšããŠæ£è§£ã ã£ãããªãšæã£ãŠããŸãã
æ¢çŽ¢ãæåããŠã¹ã³ã¢ã䌞ã³ãŠããããšã§ã以åã§ã¯èããããªãã£ãæé ãååšããŠããããšãæããã«ãªã£ãŠããŸããã ãããšåæã«ãè¯ãæé ïŒå°åœ¢ïŒãheuristicã«è¡šçŸããã®ãé£ããç¶æ³ãšãªã£ãŠããŸããã
ããšãã°ãheuristicãªç¹åŸŽéã®ã²ãšã€ã« "holes" ããããŸãã ããã¯ã穎ãããããããå°åœ¢ã¯ã©ã€ã³ãæããã®ãé£ããè¯ããªãããšããçµéšãããšã«ãªã£ãŠããŸãã
以äžã®ç»åã¯289linesã®éäžã®å°åœ¢ã§ãã人éã«ãšã£ãŠã¯æŽã£ãŠãããšããŸãæããããŸãããããããã«ãã®åŸã¯ãã¬ã€ã«æ¶ãããšãã§ããŸãã ã€ãŸããè¯ã穎/æªã穎ãããã¯ããªã®ã§ããããããåºå¥ããŠè©äŸ¡ããã®ã¯çŸç¶ã§ã¯ããªãé£ããã§ãã
ãheuristicã«äŸåããªãæ¢çŽ¢ã®å®çŸãã第äžç®æšãšããŸããã ãã®ããããããŸã§ãšã¯å šãç°ãªãã¢ãããŒãã§åãçµã¿å§ããŸããã ãã®åæ©ã¯ä»¥äžã®ãšããã§ãã
- ã¹ã³ã¢ãæŽæ°ããã®ã§ããã°ãçŸåšã®ã¢ãããŒããããŒã¹ã«æ¹åããŠãè¯ãã£ããã倧ããªæ¹åã¯èŠèŸŒããªããšèããŠãããã
- ã§ããéãHATETRISã«éããªããä»ã®ãããªã¹ã§ã®æ¢çŽ¢ã«ãå¿çšã§ããã¢ãããŒããæ¢ã£ãŠã¿ããã£ããã
1.ã«ã€ããŠã¯ãåè¿°ã®èª²é¡ã®éãã§ãã
2.ã«ã€ããŠå°ã詳ããæžããšããããªã¹ã®äžã§ãæ¯èŒç掻çºã«éçºãããŠãã察æŠAIã«ãããŠããheuristicãããªã倧ããå²åãå ããŠããŸãã ããããNNãªã©ã®æ©æ¢°åŠç¿ãäžå¿ãšãããã®ã¯ãçè ã®ç¥ã£ãŠããããããã¢ã«ãããã¯ãªç¯å²ã§å°ãååšããŠããçšåºŠã§ãå®çšçãªãã®ã¯ã»ãšãã©ãªãå°è±¡ã§ãã
ä»åã®å¯Ÿè±¡ã¯HATETRISã§ãããããã§ããŸãããã°ãããããªãšããã«å±éã§ãããããšèããŸããã ïŒHATETRISã¯ãããªã¹ã®äžã§ãããªãé£ãããããªã¹ãšãããŠããŸãïŒ
ããã§ã¯ä»åã®ã¢ãããŒãã«é¢ä¿ã®ããã«ãŒã«ã«ã€ããŠå°ã説æããŸãã
ããå³å¯ãªã«ãŒã«ã¯å ¬åŒãµã€ãããå ¬åŒã®Gitãªããžããªãåç §ããŠãã ããã
éåžžã®ãããªã¹ã§ã¯äœãèœã¡ãŠãããã¯ã©ã³ãã ãªèŠçŽ ãå«ãŸããŠããããšãå€ãã§ãããHATETRISã§ã¯æ±ºãŸã£ãç¶æ³ã§ã¯ãå¿ ãåããããèœã¡ãŠããŸãã ãããŠããã¯ãååãçŸåšã®å°åœ¢ããæ±ºãŸããŸããïŒäŸå€ã¯Loopã®é ç®ãåç §ã®ããšïŒ
éžæãããããã¯ãããèœã¡ãŠãããå°åœ¢ãæªããªããã®ããéžã°ããŸãã
HATETRISã§ã¯ æªãå°åœ¢ïŒãã£ãŒã«ããé«ãå°åœ¢
ãšå®çŸ©ããŠããã®ã§ã
ã€ãŸããã©ã®ããã«çœ®ããŠããã£ãŒã«ããé«ããªã£ãŠããŸããããåªå
çã«èœã¡ãŠããŸãã
å察ã«ãããšã©ã€ã³ãæ¶å»ã§ããããã¯ãå°åœ¢ãäœãããæããããšå€æãããéžæãããªããªããŸãã
ããå°åœ¢ã®é«ããåãã«ãªãåè£ãè€æ°ããå Žå㯠SZOILJT
ã®åªå
é ã§éžã°ããŸãã
ãããããããéèŠãªæŠç¥ã2ã€ãããŸãã
1. ãã£ãŒã«ãã«å€§ããªè°·ããããšãå°åœ¢å šäœã®é«ããå€ããã«ããã眮ãããããåºãŠãããããã³ã³ãããŒã«ãããããïŒ4åRENã®ãããªã€ã¡ãŒãžïŒ
ã·ã¹ãã ã¯ãè°·åºã«çœ®ããšå°åœ¢å šäœã®é«ãã¯å€ãããªãããšå€æãããããã©ã€ã³ãæ¶å»ã§ããªããããå®å®ããŠéžãã§ãããŸãã ããããããšã§ãèœã¡ãŠããããã®çš®é¡ãå€ããã«ããããã¯ãå®å®ããŠç©ã¿äžãããããªããŸãã
ã©ã€ã³ãæ¶å»ã§ããªããããååšããå Žåã¯ãåºæ¬ãã®ãããéžã°ããŸãã ãããã£ãŠãå®éã«ã©ã€ã³ãæ¶ãããšããã«ã¯ããã¹ãŠã®ããã§ã©ã€ã³ãæ¶å»ã§ããç¶æ ã«ããªããã°ãªããŸããã ãããŠãã®ãšãã«éžã°ããããã¯ãåºæ¬ãåªå é äœãæãé«ãSããã«ã«ãŒã«äžãªããŸãã ïŒäŸå€ã¯å°ãååšããŸããããšãã°ãSããã§2ã©ã€ã³æ¶ãã§ããå Žåã¯Zããã«ãªããŸããïŒ
ãã®ããŒãžã§ã¯ãããããæ¬¡ã®ãããªç¶æ³ããã®ããã«åŒã¶ããšãšããŸãã
- Loop: ããç¹å®ã®ãã£ãŒã«ããããäœããã®æäœãçµãŠãåã³åããã£ãŒã«ãã®ç¶æ ã«æ»ãããš
- Infinite Loop: Loopãç¹°ãè¿ãããšã§ãã²ãŒã ãæ°žé ã«çµãããªãç¶æ ã«ããããš
HATETRISã§ã¯ããã®2ã€ã®æå³ã¯å°ãç°ãªããŸãã ãã®çç±ã¯ãã«ãŒã«ãšããŠãã²ãŒã äžã«åãå°åœ¢ãçŸããå¯èœæ§ãæ€ç¥ãããšã次ã®åªå é äœã®ãããéžæããããšããã«ãŒã«ãããããã§ãã
ããInfinite Loopãå®çŸããããšãããšããŸãã¯åçŽãªLoopãå®çŸããäžã§ãããã«å€åããããã«å¯ŸããŠãLoopããªããã°ãªããŸããïŒãããåºçŸããããããå°åœ¢ã§è¡ãå¿ èŠããããŸãïŒããã®ãããInfinite Loopã¯ããããååšããªãã ãããšæãããŸãã
ã§ã¯ãLoopèªäœã¯ã©ãã§ããããšãããšååšããŸãïŒä»åã®æ¢çŽ¢ã®éçšã§çºèŠããŸããïŒã 以äžã®ç»åã§ãã¹ã³ã¢105ã®å°åœ¢ã§ã¯Sãããèœã¡ãŠããã¯ãã§ããããã®å Žåã¹ã³ã¢95ã®å°åœ¢ã«é·ç§»ã§ããŠããŸããããZããã«ä¿®æ£ãããŠããŸãã ïŒå°åœ¢ãå®å šã«äžèŽããåã«å€åããŠããããšã«æ³šæããŠãã ããïŒ â replay
以åã®æ¢çŽ¢ã§ã¯ããã®Loopãååšããªããšä»®å®ããŠã·ãã¥ã¬ãŒã·ã§ã³ããããšã§ãããŒã¿ã®åæžïŒé«éåïŒãè¡ã£ãŠããŸããã ããããä»åLoopãçºèŠããŠããŸã£ããããã·ãã¥ã¬ãŒã¿ãŒäžã§ã¯å®éã§ã¯èµ·ããªãåããããŠããŸãåºæ¥äºããããŸããã
ãããããããæ¢çŽ¢ãå§ããæ¹ã¯ããã®ããšã«æ³šæããŠããã ãããšãããããããŸãã
ããããã¯ãä»åã®ã¢ãããŒãã®è©³çްã説æããŠãããŸãã ãã®ããã¥ã¡ã³ãã§ã¯ãåºæ¬çã«æçµæ§æã«ãã©ãŒã«ã¹ããŠèª¬æããŸãã ãã®éçšã§å€±æããç¥èŠããããããããŸãããããã¯ãŸãå¥ã®æ©äŒã«ã§ã...ã
ä»åã®ã¢ãããŒãã§ã¯ã倧ãã3ã€ã®ã¹ãããã1ãµã€ã¯ã«ãšããŠããã®ãµã€ã¯ã«ãäœåãåãããšã§å°ããã€æ¹åããŠãããŸããã 以äžã®ç»åã¯ãã®æµããå³ç€ºãããã®ã§ãã
ããã§ã¯ãåã¹ããããæ¬¡ã®é çªã§èª¬æããŸãããªãããã¹ãŠã®ã¹ãããã¯ãåã®ã¹ãããã®ææç©ãããšã«äœãã宿œããæµãã«ãªã£ãŠããŸãã
- Neural Networkã®æ§æ
- Search
- Refine
- Learn
- ãµã€ã¯ã«ã®åæç¶æ
ãŸãã¯ããã«ãæ¢çŽ¢ã§å©çšããè©äŸ¡é¢æ°ã®Neural Networkã«ã€ããŠèª¬æããŸãã ãã®ãããã¯ãŒã¯ã¯ããå°åœ¢ã®ãããã¯ã®é 眮ããåãåããããã®å°åœ¢ãã©ã®ãããè¯ããããèšç®ããŸãã
ä»åã®ã¢ãããŒãã§ã¯3-Layer Neural Networkãå©çšããŠããŸããç·ãã©ã¡ãŒã¿æ°ã¯ 122905(hidden24) -> 245809(hidden48)
ã§ãã
è©äŸ¡ãããå°åœ¢ã¯ããã®ãŸãŸã®åœ¢ã§ãããã¯ãŒã¯ã«æž¡ãã®ã§ã¯ãªãããã®å°åœ¢ã§åºçŸããŠãããããã¯ã®çµã¿åããã®é »åºŠãæž¡ããŸãã ïŒãã®ããããã¯ã®çµã¿åãããã®ããšããã¿ãŒã³ãšåŒãã§ããŸãïŒ
ã«ãŠã³ããããã¿ãŒã³ã¯å€§ãã2çš®é¡ãããŸãã
-
row patterns:
- 1è¡ããšã®ãããã¯é 眮ã0-1022ã®æ°åã«å¯Ÿå¿ãããŠããã®æ°åããšã®é »åºŠãæ°ããŠå ¥åããŸã
- ãããã£ãŠã1ãã£ãŒã«ãã«ã€ã
16ãã¿ãŒã³
ãå«ãïŒåãæ°åã§ãéè€åãã«ãŠã³ãããïŒ - ãã¹ãŠãããã¯ã§åãŸã£ãŠããç¶æ (1023)ã¯èµ·ããªãæ³å®ãããŠããŸãã
-
3x4 conv.2D patterns:
- å¹ 3é«ã4ããšã®ãããã¯é 眮ã0-4095ã®æ°åã«å¯Ÿå¿ãããŠããã®æ°åããšã®é »åºŠãæ°ããŠå ¥åããŸã ïŒkernel size=(3x4), stride=1ïŒ
- ãªããå£ã»åºãããã1ã€åã®ãããã¯ãå«ããŠãã¿ãŒã³åããŸãããã ãã倩äºïŒèµ€ç·ããäžã®ç©ºéïŒã¯å«ããŸãã
- ãããã£ãŠã1ãã£ãŒã«ãã«ã€ã
10x14ãã¿ãŒã³
ãå«ãïŒåãæ°åã§ãéè€åãã«ãŠã³ãããïŒ
ãè£è¶³ã å®è£
äžã®ãã°ã«ãããçè
ãå®éã«äœ¿çšãããã®ã¯æ¬¡ã®ç¹ã§ç°ãªããŸãã
* row patternsã0-1023ã«å¯Ÿå¿ãããŠããããã©ã¡ãŒã¿ãäœåã«å«ãŸããŠãã
* conv.2D patternsã§ãäžçªäžã®è¡ãå«ããŠãããã`10x13ãã¿ãŒã³`ã§å
¥åããŠãã
ããã§ã¯ãããŸã§ãæ¬æ¥æ³å®ããŠããæ§æã説æããŠããŸããããããããšãæ§èœã«åœ±é¿ããããããããŸãããããäºæ¿ãã ããã
é ãå±€ã®æ°ã¯24ããå§ããŸããã éäžãæ¢çŽ¢ãåæ»ããã¿ã€ãã³ã°ã§48ã«å€æŽããŸããã
é ãå±€ã®æŽ»æ§å颿°ã«ã¯ãtanhExp颿°ãçšããŸããã
ãã®ã»ãã¯äžè¬çãªNNãšåãã§ãã
å
¥åãããå°åœ¢ã®è¯ããæ°å€ãšããŠè¿åŽããŸãã
åºåå±€ã®æŽ»æ§å颿°ã«ã¯ãtanh颿°ãçšããŸããã
ãã®ããã -1(æª) <= y <= 1(è¯)
ã§æ°å€åãããŸãã
ãã®ãããã¯ãŒã¯ã®æ§æã¯NNUEããçæ³ãåŸãŠããŸããã æçµçãªãããã¯ãŒã¯ã ããã¿ããšãäžè¬çãªNNãšNNUEã®ãã€ããªãããªæ§æããšèšãããšæã£ãŠããŸãã
ãã®æ§æã«è³ã£ãæµãã¯ä»¥äžã®ãšããã§ãã
- åŠç¿ã«äœ¿ãããŒã¿ã0ããäœãåºãå¿ èŠãããããããããã«ãããã©ã¡ãŒã¿æ°ã®å€ã倧ããªãããã¯ãŒã¯ã¯é£ããã£ã
- éåžžNNã§ä»åŸãããã¯ãŒã¯ã倧ãããããšGPUã®èšç®è³æºã®åé¡ã«ããããããå人çã«ã¯é«éã«èšç®å¯èœãªNNUEãæ¡çšãããã£ã
- äžæ¹ã§ããã©ã¡ãŒã¿ã®å°ãªãNNUEã䜿çšããå ŽåããæŽæ°ã«ãã誀差ãã©ã®çšåºŠåœ±é¿ããã®ãããšãã£ããªã¹ã¯ããããããšæãããããããNNUEãå šã䜿çšããããšããªãïŒæ©æ¢°åŠç¿ãå°éã§ãªãèªåã«ã¯å€æã§ããªãã£ã
ãã®ãããäžè¬çãªfloatãªNNã®æ¹ãã¢ãã«ã®è¡šçŸçãªãªã¹ã¯ã¯å°ãªãããã§ã ãŸããäžéå±€ãåŸãã倿Žããããšã¯æ¯èŒç容æã«ã§ãããã«æã£ããããå ¥åå±€ã ãNNUEã®ãããªæ§æã«ãªããŸããã
å®éãå ¥åå±€ã ãã§ããèšç®ã®å€§éšåãããŸãã¹ãããã§ããŠããå°è±¡ããããŸãã
ããä»åŸãããã¯ãŒã¯ã倧ããããŠããéã¯ãæ¬æ¥ã®NNUEã®åœ¢ãç®æãã®ãè¯ãã®ããªãšãä»ã®èªåã¯èããŠããŸãã
Beam Searchã§ã1ã²ãŒã ãéããŠæ¢çŽ¢ããŸãã ãã®ã¹ãããã§ã®äž»ç®çã¯ã以éã®ã¹ãããã®åŠç¿ã§äœ¿ãç€é¢ãçæããããšã§ãã
ãã®ã»ãã倧ããªç¹åŸŽãããã¯ã¢ããããŠèª¬æããŸãã
ãã®æ¢çŽ¢ã§æå€§åããã®ã¯ãã¹ããã1ã®ãããã¯ãŒã¯ã®è©äŸ¡å€ã§ãã ãã®è©äŸ¡å€ã«ã¯heuristicãªç¹åŸŽéãã¹ã³ã¢ãããå«ã¿ãŸããã ãã ããïŒã»ãŒå¯äžïŒheuristicãªä»çµã¿ãšããŠãS,Zããã§åèµ·çã«ã©ã€ã³ãæ¶å»ããåŸã®ç€é¢ãè©äŸ¡ããŠããã®äžã§æå€§å€ãæ¡çšããŠããŸãã ïŒDavid&Felipeã®ã¢ã€ãã¢ããçæ³ãåŸãŸãããïŒ
ããŒã å¹ ã¯100k or 200kã§ããDavid & Felipeã«ãããšãheuristicãªææ³ã§ã¯100k=68ãšã®ããšã§ã4åã»ã©ã®æ¹åãšãªã£ãŠããŸãã
ä»åã¯è©Šè¡é¯èª€ããªããåŠç¿ããéœåäžããµã€ã¯ã«ãé²ããªãããã¹ã³ã¢ã®åæ»ã»äœäžãèµ·ãããšãã«ããã€ãã®èšå®ã倿ŽããŠããŸãã 倿Žããèšå®ã¯ãã£ãã以äžã®ãšããã§ãã
å€åããèšå® | v1 | v2 | v3 | v4 |
---|---|---|---|---|
ããŒã å¹ | 100k | 200k | 200k | 200k |
ååè£ãçµç±ããç€é¢æ å ± | ãªã | ãªã | ãã | ãã |
é ãå±€ã®æ° | 24 | 24 | 24 | 48 |
ç¹ã«ãååè£ãçµç±ããç€é¢æ å ±ãã¯ãLoopãçºèŠããããšã§æ¢çŽ¢ãå®å šã«åæ¢ãããããæ¥éœå®è£ ããããšã«ããŸããã ãã ãã¯ããããç€é¢æ å ±ãæ®ããªããåŠç¿ããŠããããå®è¡æéãããªã䌞ã³ãŠããŸã£ãŠãããããããŸããã
å®éã«NNã§åŠç¿ãããæåž«ããŒã¿ãäœæããŠãããŸãã æåž«ããŒã¿ã®äœãæ¹ã¯æ¬¡ã®æµãã§è¡ããŸãã
-
1: Beam Searchã®éäžã®åè£ãããådepthã§4kåã®å°åœ¢ãã©ã³ãã ã«ãµã³ããªã³ã°ããŸãã
-
2: 1.ã®åç€é¢ããå¹ 200ã®Beam Searchãè¡ãããããããã«10å眮ããå ã®å°åœ¢ã§æãè¯ãè©äŸ¡å€ãæ±ããŸãã
- è©äŸ¡å€ã¯NNã®åºåå€ãçŽæ¥å©çšããŸãïŒSZã«ããåèµ·ã¯é©çšããŸããïŒ
- éäžãŸã§ã®è©äŸ¡å€ã¯æåž«ããŒã¿ã«ã¯åæ ããŸããããããŸã§10æå ã®è©äŸ¡å€ããã®ãŸãŸè¿ããŸã
- ããã10æå
ã§åè£ãæ®ããªãïŒã²ãŒã ãç¶è¡ã§ããªãïŒå Žåã¯ãè©äŸ¡å€ã
-1
ãšããŠæ±ããŸã
-
3: ã1.ã®ç€é¢ã®è©äŸ¡å€xããã2.ã®ããæ·±ãè©äŸ¡å€yããšããŠã
t = x + 0.5 * (y - x)
ãæåž«ããŒã¿ã®è©äŸ¡å€ãšããŠãã¡ã€ã«ã«ä¿åããŸãã
ãªã3.ã§ãè©äŸ¡å€ã0.5åããŠããã®ã¯ãäžåºŠã§æ¥æ¿ã«å€åããã®ãé²ãããã«å°å
¥ããŠããŸãã
ãã®å€ã®å¹æã¯ã匷ååŠç¿ã® åŠç¿ça=0.933
ãšåããããªåããããããšãæåŸ
ããŠããŸãã
ãã®è©äŸ¡å€ã®ç²Ÿç·»åãè¡ããšãåºæ¬çã«å šäœããã€ãã¹æ¹åã«åããŸãã ããã§ãæåŸã«ãã®ãµã€ã¯ã«ããšã«ãè©äŸ¡å€ãæåž«ããŒã¿å šäœã®æå°å€ã»æå€§å€ã[-1,1]ã«ãªãããã«ããŒãã©ã€ãºããŸãã
ãŸãã¯ããã«ãã¹ããã1ã®åè£ãšãªã£ãå°åœ¢ã¯ãæ¯èŒçè¯ãå°åœ¢ã§ããã¯ãããšèããŠããŸãã ãã®ã¹ãããã§ã¯ããã®å°åœ¢ãæ¬åœã«è¯ãã®ããæ€èšŒãããã§ãŒãºãšããŠãèªåã¯æããŠããŸãã
ããè¯ãå°åœ¢ã§ããã»ã©ãè©äŸ¡å€ãäžããã«ããéžæè¢ãååšããŠãããããç·©ããã«äœäžãããã åå¯Ÿã«æªãå°åœ¢ã§ããã»ã©ãè©äŸ¡å€-1ã®ç€é¢ã«è¿ããããæ¥éã«äœäžããããããšä»®å®ããŠããã ãã®ã®ã£ããã«ãã£ãŠæ¬¡ã®æ¢çŽ¢ã®ç²ŸåºŠãäžãããšèããŠããŸãã
ã¹ããã2ã§çæããåŠç¿ããŒã¿ïŒå°åœ¢ãšç²Ÿç·»åããè©äŸ¡å€ã®ãã¢ïŒãåºã«ãããã¯ãŒã¯ã®éã¿ãæŽæ°ããŸãã ãªãåŠç¿ããŒã¿ãšããŠãçŽè¿3ãµã€ã¯ã«ã§çæããããŒã¿ãå©çšããŸãã
äŸïŒçŸåš5ãµã€ã¯ã«ç®ã®å ŽåãåŠç¿å¯Ÿè±¡ãšãªãããŒã¿ã¯ã3,4,5ãµã€ã¯ã«ç®ã§çæããããŒã¿ã«ãªããŸã
ãã®ã¹ãããã§ã®åŠç¿ã¯ãäžè¬çãªNeural Networkã®ãããããåŠç¿ãšåçã§ãã
- æå€±é¢æ°ïŒäºä¹èª€å·® (Mean Squared Error)
- æé©åã¢ã«ãŽãªãºã ïŒAdam
- ããããµã€ãºïŒ8192
- Early stopping: 3epoché£ç¶ã§lossãæªåããå ŽåïŒãããã¯100epochã«å°éããå ŽåïŒã«çµäºããŠãåŠç¿äžã«æãlossãå°ããWeightãæ¡çšãã
ãããŸã§ã®èª¬æã§ã1ãµã€ã¯ã«ã®èª¬æã¯çµãããšãªããŸãã "Learn"ã§çæããããããã¯ãŒã¯ãããšã«ãæ°ãã«"Search"ãéå§ã§ããŸãã
æåŸã«ããã®ãµã€ã¯ã«ãã©ã®ãããªç¶æ ããéå§ãããã説æããŸãã
ä»åã®ã¢ãããŒãã§ã¯"Search"ãããµã€ã¯ã«ãéå§ããŸããããã®ãšãäœããã®è©äŸ¡å€ãããã¯ãŒã¯ãå¿ èŠãšãªããŸãã ããããããšã©ã³ãã ãªéã¿ã®ãããã¯ãŒã¯ããå§ããããšãã§ãããããããŸããããä»åã¯åŠç¿ãæ©ãè¡ãããã«ãããããå¥ãªæ¹æ³ã§åŠç¿ããŸããã
ããã§ã¯ãã®åæåŠç¿ã«ã€ããŠèª¬æããŸãã
ä»åã®Neural Networkã§å ¥åãããã¿ãŒã³ã«ã¯ããã£ãŒã«ãã®é«ãã«äŸåãããã®ããããŸããã ãããã£ãŠãããšãã°ããã²ãŒã ã®é«ããåå(8)ã§ãã£ãŠããåãããã«å ¥åããããšãã§ããŸãã
ãŸããã²ãŒã ã®é«ããäœãå Žåãå šæ¢çŽ¢ã§çè«å€ãæ±ããããšãã§ããŸããïŒåè: David & Felipe's commentïŒ
ããã§ãé«ã4ã7ãå
šæ¢çŽ¢ããŠåŸãããå°åœ¢ãããšã«ããã®å°åœ¢ããåŸãããã¹ã³ã¢ãé«ã7ã®çè«ã¹ã³ã¢12ã§ãããã³ã°ããå€ãè©äŸ¡å€ãšããŠèšç®ããŸãïŒeval = (score/12 - 0.5) * 2
ïŒã
ãã®ãšããããããã®å°åœ¢ã®é«ãã16ãšããŠæ±ããã«ãå
¥åãããã¿ãŒã³ã®åèšé »åºŠãå°ãªãç¶æ
ã®ãŸãŸå
¥åããŠããŸãã
ãã®ããã«ããŠçæããæåž«ããŒã¿ãããšã«ãããã¯ãŒã¯ãåŠç¿ãããŸããä»åã¯ãããŒã¿æ°ãå€ãã®ã§å šäœã®50%ã ããåŠç¿ã«äœ¿çšããŸããã
ã²ãŒã ã®é«ããå€ãããšãå ¥åãããé »åºŠã®ã¹ã±ãŒã«ãå€ãããŸãããã®ããããã®æ¹æ³ã§åŸããããããã¯ãŒã¯ã¯ãåºæ¬çã«å€ã倧ãããªããããïŒ=1ãåºåããããïŒã§ãã ãããä»åã®ã¢ãããŒãã§ã¯ãæ¬åœã«æªãå°åœ¢ã®è©äŸ¡ãåŸã ã«äžããŠããåããããã®ã§ããã®ç¹åŸŽã¯éåžžã«ããã£ããšæã£ãŠããŸãã
æåŸã«ãçè ãä»åã®ææ³ã§æã£ãŠããããšãã€ãã€ããšæžããŠãããŸãã
ä»åè¯ãã£ãããšã¯heuristicãæ¥µåãªãããäžã§ã¹ã³ã¢ãåäžã§ããããšã瀺ããç¹ã§ãã ãããªã¹ã§NN(NNUE)ãäžå¿ã§ããã€æé«ã¹ã³ã¢ãç®æãã¿ãããªäºäŸã¯ãããããŸã ãªããšæãã®ã§ãããã³ã·ã£ã«ã瀺ãããšãã§ããã®ã¯äŸ¡å€ãããããªãšæã£ãŠããŸãã
å人çã«èããŠãã課é¡ãèšè¿°ããŠãããŸãã
ä»åã®ã¢ãããŒãã§ã¯NNãå©çšããŠãããããããããæ©æ¢°åŠç¿ã¿ãããªæ§å³ã«ãªã£ãŠããŸãã äžæ¹ã§ãèªåã¯ãæ©æ¢°åŠç¿ãïŒããšã®åãã«ã¯ãå³å¯ã«ãããšNoã ãšèããŠããŸãã
倧ããªãã€ã³ãã¯ãæåž«ããŒã¿ã®æ£è§£ãšãªãè©äŸ¡å€ããã©ããã®å€ã«åãã£ãŠåæããªããç¹ã§ãã ããšãã°ããã§ã¹ã»å°æ£ã»å²ç¢ãªã©ã®å¯ŸæŠã§ããã°ãåçãã§ããããšãå€ããäžäººçšã®ã²ãŒã ã§ããã°ãã¹ã³ã¢ãã§ããããšãå€ãå°è±¡ã§ãã ã§ãããä»åã¯ã©ãã§ããããŸããããã®ããããå®éã«å®å®æ§ã«äžå®ããããŸãã
èªåã®èå¯ãšããŠã¯ãä»åã®ææ³ã¯ãçŽè¿ã®æ¢çŽ¢ã®çµæãNNã«ãµãã©ã€ãºããŠããã®ãã³ããããšã«æ¬¡ã®ãµã€ã¯ã«ã®æ¢çŽ¢ãè¡ã£ãŠããã®ã§ã¯ïŒããšè§£éããŠããŸãã ã€ãŸãããããŸã§ãã³ãã§ãããªããããããŸããããªããµã€ã¯ã«ãããããçºçããŠããŸããã
以äžããã®èšäºã¯ããã§çµãããšãªããŸãã æåŸã«äžèšã ãã
ãããã®æ¹æ³ãåºç€ã«æ¹åããŠããæ¹ãçŸããããšã¯å šãåé¡ãªããããã¯ãããããªãšæã£ãŠããŸãã ãã ãå人çã«ã¯ã§ããã°ãããã«ã¯äœããã®èªåãªãã®å·¥å€«ããã©ã¹ããŠã»ãããªãšãæã£ãŠããŸãã
ãã®èšäºã誰ãã®åèã«ãªãã°å¹žãã§ãã