ããããã®æ°Ž
1幎å以äžåã
ãDARPAã¯æ©æ¢°åŠç¿ã«é©åœãèµ·ããã€ããã§ãã
ããšãããã¥ãŒã¹ãéããŸããã ãã¡ãããDARPAã¯ç¢ºççããã°ã©ãã³ã°ã«é¢é£ããç ç©¶ããã°ã©ã ã«ã®ã¿ãéãå²ãåœãŠãŸããã 確ççããã°ã©ãã³ã°èªäœã¯ãDARPAãªãã§ããªãé·ãéååšããéçºãããŠããŸããããŸããMITãªã©ã®äž»èŠãªå€§åŠãšMicrosoftãªã©ã®å€§äŒæ¥ã®äž¡æ¹ã§ç ç©¶ãè¡ãããŠããŸãã ãããŠãDARPAãMicrosoftãMITãªã©ã¯ç¡é§ã§ã¯ãããŸããã æ©æ¢°åŠç¿ããããŠãããã人工ç¥èœå
šè¬ã«ãšã£ãŠéåžžã«ææã§ããããããã®é åã«çްå¿ã®æ³šæãæã£ãŠãã ããã æ©æ¢°åŠç¿ã®ç¢ºççããã°ã©ãã³ã°ã¯ãéåžžã®ããã°ã©ãã³ã°ã®é«æ°Žæºèšèªãšåã圹å²ãæãããšèšãããŠããŸãã ç§ãã¡ã¯å¥ã®é¡äŒŒç¹ããããããŸã-圌ãå€ãè¯ãAIã®ããã«æŒããããããŒã°ã®åœ¹å²ãæã¡ãŸãã ãããããã®ãããã¯ã®RuNetã§ã®ã¿ãããã€ãã®ãªã³ã¯ã®ã¿ãèŠã€ããããšãã§ããåºæ¬çã«äžè¬ååã®èª¬æã®ã¿ãå«ãŸããŠããŸãã ãããããããã¯ç¢ºççããã°ã©ãã³ã°ã®å¯èœæ§ãæããã«ãªãå§ããã°ããã§ããããããäž»ãªåŸåã«ãªã£ãŠããªããšããäºå®ã«ãããã®ã§ãã ãããã確ççèšèªã«ã¯äœãå¯èœãŸãã¯å¯èœã§ããïŒ
確ççããã°ã©ãã³ã°èšèªã®2ã€ã®äž»èŠãªã¯ã©ã¹ãåºå¥ã§ããŸãããããã¯ããã€ãžã¢ã³ãããã¯ãŒã¯ïŒãŸãã¯ä»ã®ã°ã©ãã£ã«ã«ãªç¢ºççã¢ãã«ïŒã®åœ¢åŒã§ã®ã¿çæã¢ãã«ãå®çŸ©ã§ããèšèªããŸãã¯ãã¥ãŒãªã³ã°å®å
šèšèªã§ãã
åè
ã®ä»£è¡šçãªãã®ã¯ãMicrosoftã§éçºãããInfer.NETã§ãã ãã®äžã§ãçæã¢ãã«ãšããŠãã€ãžã¢ã³ãããã¯ãŒã¯ã䜿çšããŠãããããã§ã圌ãã«ç¥ãããŠãã广çãªåºåæ¹æ³ã䜿çšã§ããããšãããããŸããã åœç¶ãããç¥ãããæšè«æ¹æ³ãåããããç¥ãããã¯ã©ã¹ã®ã¢ãã«ã䜿çšããŠããããã€ãã®æ ¹æ¬çã«æ°ããåé¡ã解決ããå¯èœæ§ã¯ãããŸããïŒãããŠãéããããã«ããã³ãã·ã³ã«åºã¥ããã£ãŒãã©ãŒãã³ã°ãããã¯ãŒã¯ãªã©ã®çæã¢ãã«ã§ããããã®ãããªèšèªã§ã¯è¡šçŸã§ããŸããïŒããŒã«ã éçºè
ã«ãããšããã®ããŒã«ã䜿çšãããšãæ°åè¡ã®ã³ãŒãããå æãããéåžžã®èšèªã§å¹æçãªåºåæé ãåå¥ã«å®è£
ããå¿
èŠãããå Žåãäž»èŠã³ã³ããŒãã³ãã®å®å
šãã€ãžã¢ã³ããŒãžã§ã³ã®åæãªã©ãæ°æéã§éèªæãªç¢ºçã¢ãã«ãå®è£
ããããšãå¯èœã§ãç¥èãšæ°é±éã®ä»äºã ãããã£ãŠã確ççããã°ã©ãã³ã°ã«ãããã°ã©ãã£ã«ã«ã¢ãã«ã®äœ¿çšã¯ã¯ããã«ç°¡åã§æé ãªäŸ¡æ Œã«ãªããŸãã
ãã ãããã¥ãŒãªã³ã°å®å
šç¢ºçèšèªã«ã¯ãã¯ããã«å€§ããªå¯èœæ§ããããŸãã ãããã«ãããæ¢åã®æ©æ¢°åŠç¿ã¡ãœããããã§ã«è§£æ±ºæ¹æ³ãç¥ã£ãŠããã¿ã¹ã¯ã®ã¯ã©ã¹ãè¶
ããããšãã§ããŸãã åœç¶ããã®ãããªèšèªã§ã¯ãåºåå¹çã®åé¡ãçºçããŸãããããã¯ãŸã 解決ã«ã¯ã»ã©é ããããå®éã®åé¡ã®ã¹ã±ãŒã©ããªãã£ãäœäžããŸãã ãã ãããã®æ¹åã¯ç©æ¥µçã«éçºãããŠããã確ççæ±çšèšèªã®è峿·±ãå®çšçãªåé¡ã«å¯ŸããŠå¹æçãªåºåãéæããæ¹æ³ã瀺ãå€ãã®ç ç©¶ããããŸãã è¿ãå°æ¥ããããã®ãœãªã¥ãŒã·ã§ã³ãç¹å®ã®èšèªã§äœ¿çšã§ããããã«ãªãããšãæãŸããŸãã ããã«ããã¥ãŒãªã³ã°å®å
šç¢ºçèšèªã¯ãèªç¥ã¢ããªã³ã°ããã³äžè¬çãªäººå·¥ç¥èœã«é¢é£ããç ç©¶ã§éåžžã«æçšã§ããããšããã§ã«èšŒæãããŠããŸãã ãããã®çç±ãããç§ãã¡ã¯ãã¥ãŒãªã³ã°å®å
šèšèªã®äŸã«åºã¥ããŠç¢ºççããã°ã©ãã³ã°ã®åºæ¬åçãæ£ç¢ºã«æ€èšããŸãããã¥ãŒãªã³ã°å®å
šèšèªããã¯ãLispèšèªïŒããå
·äœçã«ã¯æ¹èš-SchemeïŒã®æ¡åŒµã§ããChurchãéžæããŸããã ãã®èšèªã®å©äŸ¿æ§ïŒå°ãªããšãåããŠç¥ãããïŒã¯ããã®èšèªã®Webå®è£
ïŒWebæäŒïŒã®ååšã«ããã远å ã®ãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããã«å®éšã§ããŸãã
ã ãããã€ã³ãã«
確ççèšèªã®ããã°ã©ã ã¯ãäžèŠãéåžžã®èšèªã®ããã°ã©ã ãšå€ãããªããããããŸããã ããããŸãã«æäŒã§è¡ãããããšã§ãã éåžžã®Lispãšåæ§ã«ããã®èšèªå€æ°ã§ã¯ã颿°ãå®çŸ©ã§ãã確å®çãªèšç®ãå®è¡ãããŸãã ããšãã°ã次ã®ããã°ã©ã ã¯ã1ã€ã®åŒæ°ã®é¢æ°ãå®çŸ©ããååž°åŒnïŒ= N *ïŒn â 1ïŒïŒã䜿çšããŠéä¹ãèšç®ããn = 10ã«å¯ŸããŠãã®é¢æ°ãåŒã³åºããŸãã
(define (fn) (if (= n 0) 1 (* n (f (â n 1))))) (f 10)
ãŸãããã®èšèªã§ã¯ãïŒæ¬äŒŒïŒã©ã³ãã 颿°ã®åŒã³åºããããå ŽåããããŸãã ããšãã°ã確ç0.3ã§åŒã³åºãïŒããªãã0.3ïŒãè¡ããšãå€#tãè¿ããã確ç0.7-#fã§è¿ãããŸãã ãã®ãããªé¢æ°ã¯ãLispã§æ¬¡ã®ããã«åºæ¬çã«å®è£
ãããŸãã
(define (flip p) (< (random) p))
Churchã¯ãä»ã®ç¢ºççèšèªãšåæ§ã«ãç¹å®ã®ååžã«åŸã£ãŠã©ã³ãã ãªå€ãè¿ãå€ãã®çµã¿èŸŒã¿é¢æ°ãåããŠããŸãã ããšãã°ãïŒgaussian x0 sïŒã¯ãæå®ããããã©ã¡ãŒã¿ãŒã§ã¬ãŠã¹ååžãã宿°ã®ã©ã³ãã 倿°ãè¿ããŸãã ä»ã®å®çŸããã確çååžãšããŠãåäžãå€é
ããã£ãªã¯ã¬ãããŒã¿ãã¬ã³ããéåžžååšããŸãã ãããã®é
åžã¯ãã¹ãŠãéåžžã®èšèªã§æåã§å®è£
ããã®ãããã»ã©é£ãããªããChurchãšLispã®éã«æ ¹æ¬çãªéãã¯ãããŸããã
ãã ããéåžžã®ã»ãã³ãã£ã¯ã¹ã«å ããŠãæäŒããã°ã©ã ã«ã¯ç¢ºçè«çãªã»ãã³ãã£ã¯ã¹ãããããã®æ çµã¿ã§ã¯ãã©ã³ãã 颿°ã®åŒã³åºããå«ãããã°ã©ã ã¯ãéå§æã«ã©ã³ãã 倿°ã®ç¹å®ã®å€ãçæããã ãã§ãªãããããã®ç¢ºçååžãèšå®ãããšæ³å®ãããŠããŸãã ãã®ãããïŒgaussian x0 sïŒã¯ãã¬ãŠã¹ååžããã©ã³ãã 倿°ã®ç¹å®ã®å€ãè¿ãã ãã®é¢æ°ã§ã¯ãªããã¬ãŠã¹ååžãã®ãã®ã§ãã
ããããããã°ã©ã ã§å®çŸ©ããããããã®ç¢ºçååžãååŸããæ¹æ³ã¯ïŒ ããšãã°ãããã°ã©ã ãæ³åããŠãã ãã
(if (flip 0.4) (flip 0.1) (flip 0.6))
ã€ãŸãã確ç0.4ã§ã¯ããã®åŒã®å€ã¯PïŒ#tïŒ= 0.1ããã³PïŒ#fïŒ= 0.9ã§ããã確ç0.6ã§ã¯ãPïŒ#tïŒ= 0.6ããã³PïŒ#fïŒ= 0.4ã§ãã ãã®åŒã«ãã£ãŠäžããããæçµçãªååžã¯ãPïŒ#tïŒ= 0.4ããã³PïŒ#fïŒ= 0.6ããã©ãã«ãªããŸããïŒ ãã®ç¢ºçè«çãªã»ãã³ãã£ã¯ã¹ã¯ãå€ãã®å Žåããµã³ããªã³ã°ããã»ã¹ã«ãã£ãŠå®çŸãããŸããããã°ã©ã ãäœåºŠãå®è¡ãããã®å®è¡çµæã®éžæãæ§ç¯ããããšãã§ããŸãã ãã¡ããããã®ãããªæé ã¯éåžžã®èšèªã§å®è£
ããããšãç°¡åã§ãïŒå®éãSimula-67ã¯ç¢ºççããã»ã¹ãã¢ãã«åããããã«ãã®æ¹æ³ã§å®æçã«äœ¿çšãããŠããŸããïŒã
ãã ããçŸä»£ã®ç¢ºçèšèªã¯ããã«é²ãã§ãããã°ã©ã ã®å®è¡çµæã«èª²ãããæ¡ä»¶ããµã³ããªã³ã°ããã»ã¹ã«è¿œå ããŸãã ãã®èãæ¹ã¯ãæãåçŽãªé害ãµã³ããªã³ã°ã«ã€ãªãããŸããããã¯ãæäŒã§ã¯æåŠã¯ãšãªæ©èœã«ãã£ãŠå®è£
ãããŸãã ãã®å
¥å颿°ã¯ã確ççããã°ã©ã ïŒå®çŸ©ã®ã»ãããšããŠïŒãæ»ãå€ãèšç®ããæåŸãã2çªç®ã®åŒãæåŸã®åŒã¯æ¡ä»¶ïŒè¿°éšïŒã§ãããå®è¡äžã«trueã«ãªããŸãã ããã°ã©ã ãæ€èšãã
(rejection-query (define A (flip 0.4)) (define B (flip 0.6)) B (or AB))
reject-queryã¯ãæåŸã®æ¡ä»¶ïŒããïŒãŸãã¯ABïŒïŒãæºãããããŸã§éä¿¡ãããããã°ã©ã ãå®è¡ããæåŸãã2çªç®ã®åŒã®å€ïŒããïŒãè¿ããŸãïŒããBïŒãå€ã®éžæãååŸããã«ã¯ãrepeat颿°ã䜿çšã§ããŸãã æäŒã«ã¯ããã¹ãã°ã©ã ãããããããããã®çµã¿èŸŒã¿é¢æ°ããããŸãã å°ãé«åºŠãªããã°ã©ã ãæ€èšããŠãã ããã
(define (get-sample) (rejection-query (define A (flip 0.4)) (define B (flip 0.6)) B (or AB))) (hist (repeat 1000 get-sample))
èµ·åæã«ã次ã®çµæãåŸãããŸãïŒ#f-21ïŒ
ãïŒt-79ïŒ
ïŒéå§ããéå§ãŸã§ã®æ°å€ã¯ãããã«ç°ãªãå ŽåããããŸãïŒã ãã®çµæã¯ãBã®å€ã#tã§ããã確çã0.8ãããããã«å°ããããšãæå³ããŸãã ããã°ã©ã Bã§PïŒ#tïŒ= 0.6ã®ãã€ããªç¢ºç倿°ã§ããå Žåããã®ç¢ºçã¯ã©ãããæ¥ãŸãããïŒ æããã«ããã€ã³ãã¯æ¡ä»¶ã課ãããšã§ãïŒïŒãŸãã¯ABïŒã ãµã³ããªã³ã°ããã»ã¹ã§ã¯ãAãŸãã¯Bèªäœãçã§ãããããªBã®å€ã®ã¿ãåãå
¥ããå®éã«ã¯äºåŸç¢ºçPïŒB | A + BïŒãèæ
®ããŸãã Bayesianã«ãŒã«ã䜿çšããŠããã®ç¢ºçãæåã§èšç®ã§ããŸãã
PïŒB | A + BïŒ= PïŒA + B | BïŒPïŒBïŒ/ PïŒA + BïŒ=
=ïŒPïŒA | BïŒ+ PïŒB | BïŒâPïŒA | BïŒPïŒB | BïŒïŒPïŒBïŒ/ïŒPïŒAïŒ+ PïŒBïŒâPïŒAïŒP ïŒBïŒïŒ=
=ïŒPïŒAïŒ+ 1 â PïŒAïŒïŒPïŒBïŒ/ïŒPïŒAïŒ+ PïŒBïŒâPïŒAïŒPïŒBïŒïŒ= 0.6 /ïŒ0.4 + 0.6â0.4 * 0.6 ïŒ= 0.789ã
ãã ãããã®ãããªåºæ¬ããã°ã©ã ã®å Žåããã€ãºèŠåã®æåé©çšã«ã¯æéãããããéèŠãªããã°ã©ã ã®å Žåã¯ãå€ãåæçã«èšç®ã§ããªãå ŽåããããŸãã
ãã®ããããµã³ããªã³ã°ã«ãããç¹å®ã®æ¡ä»¶ã課ãããŠããå Žåã«ã察象ã®ã©ã³ãã 倿°ã®äºåŸç¢ºçãèšç®ã§ããŸãã ããã¯ãã¢ãã«ã®éžæãäºæž¬ãè¡ãããã®æ©æ¢°åŠç¿ã§åºã䜿çšãããŠãããã€ãžã¢ã³ã«ãŒã«ã«ä»£ãããã®ã§ãã åæã«ãå€ãã®äººã«ãšã£ãŠç¢ºççãªèšèªã§ããã°ã©ã ãæžãããšã¯ããã€ãºèŠåãé©çšãããããã¯ããã«çè§£ãããããã®ã§ãã ãã¡ãããããããµã³ããªã³ã°èªäœã¯äžè¬çãªããã°ã©ãã³ã°èšèªã§éåžžã«ç°¡åã«å®è£
ã§ããŸããã確ççãªèšèªã¯ããã«éå®ãããŸããã
ç¹ã«ãæäŒã§ã¯ããµã³ããªã³ã°ã®ããã®å¥ã®é¢æ°-enumeration-queryãå®è£
ãããŠããŸãã ããã°ã©ã ãå®è¡ãã
(enumeration-query (define A (flip 0.4)) (define B (flip 0.6)) B (or AB))
åºåã§ã¯ãïŒïŒïŒt #fïŒïŒ0.7894736842105263 0.2105263157894737ïŒïŒãåŸãããŸãã 確çPã®æ£ç¢ºãªå€ïŒB | A + BïŒã¯ããã§å°ãåºãããŸãïŒãã¡ãããæéã®ãããã°ãªãããå²åŒããŸãïŒã enumeration-queryã¯ãããã°ã©ã ãäœåºŠãèµ·åããã ãã§ãªããå®è¡ãã¹ãåæãã確çãèæ
®ããŠã©ã³ãã 倿°ã®ãã¹ãŠã®å¯èœãªå€ãå埩åŠçããŸãã ãã¡ããããã®ãããªããµã³ããªã³ã°ãã¯ãã©ã³ãã 倿°å€ã®å¯èœãªçµã¿åããã®ã»ããã倧ããããªãå Žåã«ã®ã¿æ©èœããŸãã
æäŒã§ã¯ãMCMCïŒã¢ã³ãã«ã«ããã«ã³ããã§ãŒã³ïŒã«åºã¥ãããããµã³ããªã³ã°ãã€ãŸãã¡ããããªã¹ãã€ã¹ãã£ã³ã°ã¹ã¢ã«ãŽãªãºã ãã€ãŸãããã·ãŒãžã£ã®åå-mh-queryã®ããé«åºŠãªä»£æ¿ããããŸãã ãã®ã¯ãšãªããã·ãŒãžã£ã¯ãæå®ãããæ°ã®ãµã³ãã«ãããã«çæããŸãïŒãŸãã1ã€ã®è¿œå ãã©ã¡ãŒã¿ãŒ-lagãåãåããŸãïŒã ãã®æé ãå®è£
ãèªæã§ã¯ãªããããäºåå®çŸ©ããã確çèšèªã䜿çšããïŒéåžžã®èšèªã§åçŽãªãµã³ããªã³ã°æé ã®ç¬èªã®å®è£
ã䜿çšããã®ã§ã¯ãªãïŒããšã¯çã«ããªã£ãŠããŸãã
ãã ãã確ççããã°ã©ãã³ã°ãæäŸããäž»ãªãã®ã¯èãæ¹ã§ãã
åºæ¬ããå¿çšãŸã§
éçºè
ãç°ãªãã°ã確ççããã°ã©ãã³ã°ã®ã¢ããªã±ãŒã·ã§ã³ãç°ãªããŸãã å€ãã¯æ©æ¢°åŠç¿ã®åé¡ã解決ããããã«ãããçŽæ¥é©çšããŠããŸãã æäŒã®èè
ã§ãããã¢ã»Dã»ã°ãããã³ãšãžã§ã·ã¥ã¢ã»Bã»ããã³ããŠã ã¯ã圌ãã®ãŠã§ãããã¯ãèªç¥ã®ç¢ºççã¢ãã«ãã§ãèªç¥ã¢ããªã³ã°ã®ããã®ç¢ºççããã°ã©ãã³ã°ã®äœ¿çšã瀺ããŠããŸãã ãŸãã確çè«çèšèªã®æšè«ã®èгç¹ããèšç»åé¡ã®è§£æ±ºçã衚ãããšãããã«äŸ¿å©ã§ããããç¥ãããŠããŸãã ãŸããç¥èã®è¡šçŸãšãã®å°åºãããã³æ©æ¢°èªèã®ã¿ã¹ã¯ïŒç»åèªèãå«ãïŒã«ãé©çšã§ããããšãããããŸããã ãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã¹ãŠå€ããå°ãªããæçåãããŠããŸãããããããã¹ãŠã«å
±éã®ãã¬ãŒã ã¯ãŒã¯ãååšããããšã¯ã確ççããã°ã©ãã³ã°ãAIã®ã倧統äžçè«ãã«ãªãåŸãããšã瀺åããŠããŸãã å¯èœãªäœ¿çšã®æãåçŽãªäŸãèŠãŠã¿ãŸãããã
ãšãã¹ããŒãã·ã¹ãã ã®æãå
žåçãªäŸã®1ã€ã¯ãå»ç蚺æã§ãã ç¹ã«ãMYCINã·ã¹ãã ã¯ã次ã®åœ¢åŒã®ã«ãŒã«ã·ã¹ãã ã«åºã¥ããŠæ§ç¯ãããŸããã
ã«ãŒã«52ïŒ
ãã
- æåã®å Žæã¯è¡ã§ã
- çµç¹ã®ã°ã©ã ã¯NEGã§ã
- çµç¹ã®åœ¢æ
ã¯ãããã§ã
- æ£è
ã®ç«å·ã¯æ·±å»ã§ã
ãããã匱ã瀺åçãªèšŒæ ããããŸãïŒ0.4ïŒ
- çµç¹ã®ã¢ã€ãã³ãã£ãã£ã¯ã·ã¥ãŒãã¢ãã¹ã§ã
æããã«ããã®çš®ã®èŠåã¯æäŒã®ãããªèšèªã§ãã説æãããŠããŸãã åæã«ãåŒãåºãæç¶ããå®è£
ããå¿
èŠã¯ãããŸãã-ã«ãŒã«ã®ã·ã¹ãã ãæžãã ãã§ãã èšåãããæ¬ãèªç¥ã®ç¢ºççã¢ãã«ãã®äŸã次ã«ç€ºããŸãã
(define samples (mh-query 1000 100 (define lung-cancer (flip 0.01)) (define TB (flip 0.005)) (define cold (flip 0.2)) (define stomach-flu (flip 0.1)) (define other (flip 0.1)) (define cough (or (and cold (flip 0.5)) (and lung-cancer (flip 0.3)) (and TB (flip 0.7)) (and other (flip 0.01)))) (define fever (or (and cold (flip 0.3)) (and stomach-flu (flip 0.5)) (and TB (flip 0.2)) (and other (flip 0.01)))) (define chest-pain (or (and lung-cancer (flip 0.4)) (and TB (flip 0.5)) (and other( flip 0.01)))) (define shortness-of-breath (or (and lung-cancer (flip 0.4)) (and TB (flip 0.5)) (and other (flip 0.01)))) (list lung-cancer TB) (and cough fever chest-pain shortness-of-breath))) (hist samples "Joint inferences for lung cancer and TB")
ãã®ããã°ã©ã ã¯ãèºãããçµæ žã颚éªãªã©ãçºçããŠããæ£è
ã®äºå確çãæ±ºå®ããŸãã æ¬¡ã«ãç¹å®ã®ç
æ°ã§å³ãçºç±ãèžçãæ¯åãã芳å¯ãã確çãæ±ºå®ããŸãã æ»ãå€ã¯ãæ£è
ãçããã³/ãŸãã¯çµæ žãæ£ã£ãŠãããã©ããã®ããŒã«å€ã®ãã¢ã§ãã æåŸã«ãæ¡ä»¶ã¯ã芳å¯ãããçç¶ã®ã»ããã§ãïŒã€ãŸãããã¹ãŠã®å€æ°ã®å€ãå³ç±èžçãæ¯åã-#tã§ããå Žåããµã³ããªã³ã°ãå®è¡ãããŸãïŒã
ããã°ã©ã ã®çµæã¯æ¬¡ã®ããã«ãªããŸãïŒïŒ#f #fïŒ-4ïŒ
ãïŒ#f #tïŒ-58ïŒ
ãïŒ#t #fïŒ-37ïŒ
ãïŒ#t #tïŒ-1ïŒ
ãµã³ãã«ãçç¶ã®ãªã¹ããæäŸãã颿°ã«ããããšã¯ç°¡åã§ããããã¯ããµã³ããªã³ã°ã®ããã«mh-queryã§äœ¿çšãããããŸããŸãªæ£è
ã®èšºæãå¯èœã«ããŸãã ãã¡ããããã®äŸã¯éåžžã«åçŽåãããŠããŸããã確ççããã°ã©ãã³ã°ã®ã¹ã¿ã€ã«ã§ã¯ãç¥èã衚çŸããããã«ã€ããŠçµè«ãåºãããšã¯éåžžã«å¯èœã§ãã
åœç¶ãæ©æ¢°åŠç¿ã®åé¡ã解決ããããšã¯å¯èœã§ãã ãããã®éãã¯ãæªç¥ã®ãã©ã¡ãŒã¿ãŒãã¢ãã«èªäœã®ãã©ã¡ãŒã¿ãŒã§ããããã®ã¢ãã«ã«ãããã¬ãŒãã³ã°ãµã³ãã«ã®çæããµã³ããªã³ã°ã®æ¡ä»¶ãšããŠæ©èœããããšã ãã§ãã ããšãã°ãäžèšã®ããã°ã©ã ã§ã¯ããã©ãŒã ã®è¡ã®æ°åïŒdefine lung-cancerïŒflip 0.01ïŒïŒããããèªäœãã©ã³ãã ã«èšå®ããã倿°ã§çœ®ãæããããšãã§ããŸãïŒdefine p-lung-cancerïŒuniform 0 1ïŒïŒãããŠããã¬ãŒãã³ã°ãµã³ãã«ã®åæ£è
ã«ã€ããŠãèºããã®å€ã¯ãã§ã«èºããã®ç¢ºçã§æ±ºå®ãããŠããŸãã
ç¹ã®éåããå€é
åŒã®ãã©ã¡ãŒã¿ãŒãæšå®ããç°¡åãªäŸã䜿çšããŠããã®å¯èœæ§ãæ€èšããŸãã æ¬¡ã®ããã°ã©ã ã§ã¯ãcalc-polyã¯xã§wsãã©ã¡ãŒã¿ãŒã䜿çšããŠå€é
åŒã®å€ãèšç®ããŸãã generate颿°ã¯ãæå®ãããxsãªã¹ãã®åå€ã«calc-polyãé©çšãã察å¿ãã瞊座æšã®ãªã¹ããè¿ããŸãã ãã€ãºã®å€ãæé ïŒ ãè¿äŒŒçã«ã2ã€ã®äžããããå€ãæ¯èŒããŸãïŒãããã®å€ãçããå Žåã颿°ã¯ç¢ºç1ã§#tãè¿ããŸããçãããªãå Žåãããããç°ãªãã»ã©ãïŒtãè¿ãå¯èœæ§ã¯äœããªããŸãïŒã
(define (calc-poly x ws) (if (null? ws) 0 (+ (car ws) (* x (calc-poly x (cdr ws)))))) (define (generate xs ws) (map (lambda (x) (calc-poly x ws)) xs)) (define (noisy-equals? xy) (flip (exp (* -3 (expt (- xy) 2))))) (define (samples xs ys) (mh-query 1 100 (define n-coef 4) (define ws (repeat n-coef (lambda () (gaussian 0 3)))) ws (all (map noisy-equals? (generate xs ws) ys)))) (samples '(0 1 2 3 4) '(0.01 1.95 6.03 12.01 20.00))
mh-queryåŒã³åºãå
ã§ãn-coefãã©ã¡ãŒã¿ãŒã¯ãå€é
åŒã®ä¿æ°ã®æ°ïŒã€ãŸããæ¬¡æ°+ 1ïŒã決å®ããŸãã wsã¯ãæ£èŠååžã«åŸã£ãŠçæãããã©ã³ãã 倿°ã§æ§æããããªã¹ãã§ãã æ»ãå€ã¯ãå€é
åŒãã©ã¡ãŒã¿ãŒã®ãªã¹ãã§ãã ãµã³ããªã³ã°ã®æ¡ä»¶ã¯ãysã®æå®ããããã¹ãŠã®å€ããæå®ãããwsã®å€é
åŒã«ãã£ãŠçæããããã¹ãŠã®çžŠåº§æšãšãè¿äŒŒãçããããšã§ãã ããã§ã¯ãæ¡ä»¶ä»ãã®å®è£
ã1ã€ã ãèŠæ±ããŸãïŒãã©ã¡ãŒã¿ãŒãã¯ãã«ã®ãã¹ãã°ã©ã ãäœæããã®ã¯ããŸã䟿å©ã§ã¯ãªãããïŒã ãã®ã¯ãšãªã®çµæã¯ãããšãã°ãå€é
åŒ2.69 + 1.36x + 0.53x ^ 2â0.10x ^ 3ãå®çŸ©ãããªã¹ãïŒ2.69 1.36 0.53 -0.10ïŒã«ãªããŸãã
äžè¬ã«ãå®éã®ãã©ã¡ãŒã¿ãŒã䜿çšããã¢ãã«ã«é¢ããçµè«ã¯ãæäŒèšèªã®æåŒ·ã®åŽé¢ã§ã¯ãããŸããïŒãã ããããã¯äžè¬çãªç¢ºççããã°ã©ãã³ã°ã®ã°ããŒãã«ãªäžå©çãšèŠãªãããã¹ãã§ã¯ãããŸããïŒã ãã ãããã®äŸã§ã¯ãmh-queryã¯äœããã®åœ¢ã§æ©èœããŸãã ããã確èªããã«ã¯ãã¯ãšãªã®ãã©ã¡ãŒã¿ãŒå€ã決å®ãã代ããã«ãããæç¹ã§äºæž¬ãè¿ãããã«äŸé Œã§ããŸãã æåŸã®ã³ãŒããæ¬¡ã®ããã«æžãçŽããŸãã
(define (samples xs ys) (mh-query 100 100 (define n-coef 4) (define ws (repeat n-coef (lambda () (gaussian 0 3)))) (calc-poly 5 ws) (all (map noisy-equals? (generate xs ws) ys)))) (hist (samples '(0 1 2 3 4) '(0.01 1.95 6.03 12.01 20.00)))
ã€ãŸããx = 5ã§æãå¯èœæ§ã®é«ãïŒå©çšå¯èœãªããŒã¿ãå«ãïŒå€ãèŠæ±ããŸãã ç°ãªãéå§æã«ãæ®å¿µãªããããã¹ãã°ã©ã ã®æå€§å€ã¯ãããã«ç°ãªãå€ã«èœã¡ãŸãïŒçè«çã«ã¯ãMCMCã¡ãœããã¯çã®ååžãžã®åæãä¿èšŒããŸãããéçã«ã®ã¿ïŒããéåžžããããã®å€ã¯éåžžã«ããããããã§ãããã ããã§ããç¡æãã§ïŒ1è¡ã眮æããããšã§ïŒå®å
šãªãã€ãžã¢ã³äºæž¬ãåãåã£ãããšã«æ³šæããŠãã ããïŒæè¯ã®ã¢ãã«ãéžæããŠãããã ãã§äºæž¬ãã代ããã«ãx = 5ã§å€ã®äºåŸååžãåãåããŸããã ã
ããããããã ãã§ã¯ãããŸããã ç¹°ãè¿ããŸããã1è¡-ïŒdefine n-coef 4ïŒ->ïŒdefine n-coefïŒrandom-integer 5ïŒïŒã眮ãæããããšã«ãããç°ãªãæ°ã®ãã©ã¡ãŒã¿ãŒãæã€ã¢ãã«éã§èªåéžæãè¡ãããšãã§ããŸãã ããã«ãn-coefã®å€ããµã³ããªã³ã°ãããšïŒéåžžã«å®å®ããŠããããã§ã¯ãããŸãããïŒãæãå¯èœæ§ã®é«ãå€ã¯n-coef = 3ïŒã€ãŸããç¹å®ã®ãã€ã³ãã»ããã«åã蟌ãŸããæŸç©ç·ïŒã§ããããšãããããŸãã ãã®å€æŽã«ãããäºæž¬ãããå®å®ããŸãã ã€ãŸããåãã¬ãŒãã³ã°ã®å¹æã¯ãããŸããïŒ ããã§ã¯ãããé«ã次æ°ã®å€é
åŒãéžæãããªãã®ã¯ãªãã§ããããããã¯äžããããç¹ã«ããæ£ç¢ºã«è¡ãããšãã§ããããã§ãã äºå®ããµã³ããªã³ã°æã«ãå€é
åŒã®ãã©ã¡ãŒã¿ãŒã®é©åãªå€ããæšæž¬ãããããšã¯ã髿¬¡ã®å€é
åŒãããåçŽã§ã¯ãããŸããããããã£ãŠããã¹ãã«åæ Œãããã©ã¡ãŒã¿ãŒãçæãã確çã¯ã3çªç®ããã2çªç®ã®å€é
åŒã®æ¹ãé«ããªããŸãã åæã«ãäžæ¬¡ã®å€é
åŒã¯å€§ããªåå·®ãäžããŸãã 倧å¹
ã«äœäžããŸãã
確ççããã°ã©ãã³ã°ã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯äºæ³å€ã®ããã«èŠãããããããªãå¥ã®ã¢ããªã±ãŒã·ã§ã³ãèŠãŠã¿ãŸãããã ããããæŒductiveçãåé¡ã®è§£æ±ºçã§ãã æåã«äžããããéä¹èšç®é¢æ°ã䜿çšããŸãããåºå®å€ã§åŒã³åºã代ããã«ãåŒæ°ã¯ã©ã³ãã 倿°ã§ãããšä»®å®ããŸãããéä¹èªäœã®å€ã«å¶éã課ãããŸãïŒ
(define (fn) (if (= n 0) 1 (* n (f (- n 1))))) (enumeration-query (define n (random-integer 20)) n (equal? (fn) 120))
çããšããŠãn = 5ã§ç¢ºç1ã衚瀺ãããŸãã120ã®ä»£ããã«100ãèšå®ãããšãããã°ã©ã ã¯ãµã€ã¯ã«ã«å
¥ããïŒrejection-queryãŸãã¯mh-queryã䜿çšããŸãããããã¯æ¬ ç¹ãšèããããŸãïŒ ã å³å¯ãªå¹³çã§ã¯ãªãããã®ä»ã®å¶éãæ¡ä»¶ãšããŠèšå®ããããšãã§ããŸãã
åæ§ã«ãããè€éãªåé¡ã解決ã§ããŸãã ãµãã»ããã®åèšã®åé¡ã解決ããããšããŸãïŒãã®äžã§ãäžããããæ°ã®ã»ãããããåèšãäžããããæ°ã«çãããµãã»ãããèŠã€ããå¿
èŠããããŸãïŒéåžžããã®æ°ãšããŠ0ãåããããµãã»ããã空ã§ãªãããšãå¿
èŠã§ã;ãããããã§ãã¯ãåãé€ãããã«è§£ã®éèªææ§ãéãŒãã®åèšãåããŸãïŒã 確ççããã°ã©ãã³ã°ã¯ã©ãã§è¡ãããã®ã§ããããïŒ ããããã©ã³ãã 倿°ã¯åã«æªç¥ã®éã§ãïŒäºå確çãäžããããŸãïŒã ã©ããªåé¡ã§ãããµãã»ããã®åèšã®åé¡ãå«ããæªç¥ã®ãã®ãèŠã€ããå¿
èŠããããŸãã æ¬¡ã®åºæ¬ããã°ã©ã ãèŠãŠã¿ãŸãããïŒsummãfoldã§æžãããšã§ç°¡åã«ã§ããŸãïŒã
(define (solution xs v) (rejection-query (define ws (repeat (length xs) flip)) (define (summ xs ws) (if (null? xs) 0 (+ (if (car ws) (car xs) 0) (summ (cdr xs) (cdr ws))))) ws (equal? (summ xs ws) v))) (solution '(-1 3 7 5 -9 -1) 1)
ããã§ãwsã¯ã©ã³ãã ãªããŒã«å€ã®ãªã¹ãã§ãã summããã·ãŒãžã£ã¯ããªã¹ãwsã®å¯Ÿå¿ããèŠçŽ ãtrueã§ãããªã¹ãxsã®èŠçŽ ã®åèšãèšç®ããŸãã æ¬¡ã«ãçµæã®åèšãæå®ãããæ°vã«çãããšããæ¡ä»¶ãæºããããwsã®å€ãèŠæ±ããŸãã ãã®ããã°ã©ã ãå®è¡ãããšã次ã®çµæãåŸãããšãã§ããŸãïŒïŒ#f #t #t #f #t #fïŒãããã¯ãã¡ããæ£ããïŒ3 + 7-9 = 1以éïŒã
åœç¶ãæäŒã¯å¥è·¡ãèµ·ãããããã®ä»äºã®æ¬¡å
ã倧ãããããšãããã«å¯ŸåŠããããšãã§ããªããªããŸãã ãã ããåãèšèªã䜿çšããŠããã®ãããªç°ãªãAIã¿ã¹ã¯ãå°ãªããšãæç€ºïŒããã³éšåçã«è§£æ±ºïŒã§ããããšã¯é©ãã«å€ããŸããã ããŠã广çãªæ€éã®åé¡ã¯ä»ãŸã§ãçŸåšãæ®ã£ãŠããŸãã 確ççèšèªã§ã¯ãå°ãªããšãæãçŽç²ãªåœ¢ã§éç«ã£ãŠããŸãã