ãã¥ãŒã©ã«ãããã®ãã€ããŒãã©ã¡ãŒã¿ãæé©åããæ¹æ³ã«ã€ããŠãPythonã¢ãã«ã§è©Šè¡é¯èª€ããªããç§ãªãã®èãããŸãšããŠããããšæã£ãŠããŸããåäœçè§£ããããŠããã®ã§ã©ã€ãã©ãªã䜿ããPythonã ãã§æžããŠããŸãããã€ããŒãã©ã¡ãŒã¿ã®çš®é¡ã«ãã£ãŠã¯å±€ãæ·±ããããã£ãŒããã¥ãŒã©ã«ãããã¢ãã«ãæ±ãããŒãããããŸãã
䜿çšããPythonã¢ãã«ã¯å ¬éããŠããã®ã§ã¢ããã€ã¹ãééããããã°æããŠãã ããã
ãã€ããŒãã©ã¡ãŒã¿ãšã¯
åŠç¿åã«èšå®ãã以äžã®ãããªãã®ã§ãåŠç¿ã§èªå調æŽãããã©ã¡ãŒã¿ïŒéã¿ããã€ã¢ã¹ïŒãšã¯åºå¥ããŠããŸãã
- åŠç¿çãâ Part1
- éã¿åæå€ïŒÂ±1, Xavier, Gaussian, HeïŒâ Part2
- 掻æ§å颿°ïŒSigmoidïŒTanh, ReLUïŒâ Part3
- äžæ¬éã¿æŽæ°ã鿬¡çéã¿æŽæ°ããããããåŠç â Part4
- ã¬ã€ã€ãŒæ°ããã¥ãŒãã³æ° â Part5
- ãã©ã¡ãŒã¿ã®æŽæ°æ¹æ³ïŒSGDãAdamãAdGardãMomentamãSMPROSãRMSPropïŒ â Part6
- æ£èŠå â Part7
åãã€ããŒãã©ã¡ãŒã¿ã¯äžã€ã¥ã€Partã«åããŠæ±ã£ãŠããäºå®ã§ããæ¬Partã¯å眮ããšåŠç¿çã®è©±ãšããããšã§ã
ãã¥ãŒã©ã«ãããã®æ§èœã¯å ¥åããŒã¿ãšäžè¿°ã®ãã€ããŒãã©ã¡ãŒã¿ã«äŸåããŠãããåŸè ã¯ãããªãã®è©Šè¡é¯èª€ãå¿ èŠã ãšæããŸããä»å以äžã®ãããªãããã¯ãŒã¯æ§æã§ããã®ãã€ããŒãã©ã¡ãŒã¿ïŒä»åã¯åŠç¿çïŒããã¥ãŒãã³ã°ãåŠç¿åæ°ãèª€å·®ãæ¹åããããšãããèŠãŠãããŸãã
ã»ãã¥ãŒã©ã«ãããã¯ãŒã¯å³

ã»åŠç¿åæ°ãšèª€å·®ã®é·ç§»

Pythonãµã³ãã«ã³ãŒã
TensorFlowãCaffeãªã©ã®ãã¥ãŒã©ã«ãããã©ã€ãã©ãªã¯äœ¿ãããPythonã§æžããŠããŸãã
åäœç¢ºèªããã®ã¯ä»¥äžã®ç°å¢ã§ãããPython2.7ã§ãå°ãã ãåãããšãã¿ãŠããŸãã
- Ubuntu 14.04.5 LTS
- Python Version 3.6.0 |Anaconda 4.3.0 (64-bit)|
- numpy==1.11.3
- matplotlib==2.0.0
ã¢ãã«äœææã®åèæžç±ã¯äžèšã«ãªããŸãã
åŠç¿ãšãã¥ãŒã©ã«ãããã¯ãŒã¯ çæ²¢ éžå€«(è)ïŒæ£®ååºç

ãã®ç¬¬6ç« ã§ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ä»çµã¿ãå°åºæ¹æ³ã詳ãã説æããŠãããŸãããµã³ãã«ã®Cããã°ã©ã ãèŒã£ãŠããŸãããAmazonã®è©äŸ¡ã«ãããããã«æžç±ã«èšèŒã®å
¥åããŒã¿ã§å®è¡ãããšåæããŸããããã 以äžã®ããã«åŠç¿åæ°20äžåãŸã§å¢ãããš17äžåçšåºŠã§åæããŸãã®ã§ããã®æ¬éãã«å®è¡ããã®ã«ããŸããããªãæ¹ãããã°è©ŠããŠã¿ãŠãã ããã
# define NUM_LEARN 200000 // åŠç¿ã®ç¹°ãè¿ãåæ°ãããã§æå®ãã
Pythonã¢ãã«ã§äžèšæžç±ãšåæ§ã®ãã€ããŒãã©ã¡ãŒã¿èšå®ããããšåæãããŸã§çŽ11äžåãšãªãããçšåºŠåçŸã§ããŠããŸããããåºçºç¹ãšããŠæé©åãããŠãããããšæããŸãã
æ¬çš¿ã®å¯Ÿè±¡ç¯å²ã«ã€ããŠ
æ¬çš¿ã察象ã«ããŠããã®ã¯ãå€å žçãªå±€ã®æµ ããã¥ãŒã©ã«ãããã¯ãŒã¯ãïŒå±€çšåºŠã®ãã£ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ã®ãã€ããŒãã©ã¡ãŒã¿æ¢çŽ¢ã§ãç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ã«ã€ããŠã®è©Šè¡ã¯ããŠããªãã§ãïŒä»åŸè©Šãããã§ããïŒããŸãããã¥ãŒã©ã«ãããã¯ãŒã¯ã®åäœãåŠç¿æ¹æ³ãšãã£ãåäœèª¬æãããŠããŸããããã¡ãã¯äžèšã§ãããæžç±ã以äžã§è©³ããèŒã£ãŠããŸããç¹ã«äžèšæžç±ã®èª€å·®éäŒææ³ãå³ãã€ãã£ãŠèª¬æããæ¹æ³ã¯ãšãŠãããããããã£ãã§ãã
ãŒãããäœãDeep Learning
ââPythonã§åŠã¶ãã£ãŒãã©ãŒãã³ã°ã®çè«ãšå®è£
ãæè€ 康æ¯
(è)ïŒO'Reilly Japan

æ¬é¡ã®åŠç¿çã«ã€ããŠ
äžèšãã€ããŒãã©ã¡ãŒã¿ãåæå€ïŒæ¹åã®äœå°ãããå€ãšããŠãŸããã®ç¶æ ã確èªããŠãããããšæããŸãã
- åŠç¿ç 0.05
- éã¿åæå€ -1 ãš 1 ã®äº€äº
- 掻æ§å颿°ïŒSigmoid
- 鿬¡çéã¿æŽæ°æ¹æ³
- ã¬ã€ã€ãŒããã¥ãŒãã³æ°ãå ¥åïŒïŒïŒäžéïŒïŒïŒåºåïŒïŒ
- ãã©ã¡ãŒã¿æŽæ°æ¹æ³ïŒSGD
- æ£èŠåïŒãªã
å³ã«ãããšä»¥äžã®ããã«ãªããŸãã

ïŒå±€ã®ãããã¯ãŒã¯æ§æã§ã掻æ§å颿°ã¯Sigmoidãã€ãã£ãŠããŸããéã¿ã®åæå€ã¯+1ãš-1ã®äº€äºãèšç·ŽããŒã¿ã¯ïŒã€ãããªããXDATAïŒèŠçŽ äžã®ïŒã®åæ°ãå¶æ°ã§ããã°YDATAãïŒãšããŠããŸãã倿°ïŒXDATA,YDATA,TDATAãW[]ïŒã¯ãœãŒã¹ã³ãŒããšå¯Ÿå¿ããŠããã®ã§è¿œããšãã®åèã«ããŠãã ããã
äžèšã®å³ã¯ãã£ãŒããã©ã¯ãŒãæã®å³ãªã®ã§ãã€ããŒãã©ã¡ãŒã¿ã®ããã€ãã¯å³äžã«åºãŠããŸããããã®ãã¡ããã¯ãã©ã¯ãŒãã®å³ãæžãã€ãããªã®ã§ããã§å床確èªãããŠãã ããã
å®è¡çµæã§ããïŒã€ã®èšç·ŽããŒã¿ãã¹ãŠã§èª€å·®ã0.01æªæºã«ãªããŸã§èšç·ŽããŸããã
暪軞ã¯åŠç¿åæ°ã瞊軞ã¯äžæ®µã®ã°ã©ãã§èª€å·®ãæ®ãã®ïŒã€ã¯nåå±€ã®éã¿W[0],W[1]ã®æšç§»ã§ãã

åŠç¿ã®æåãšæåŸãããã¯å€ã倧ããå€åããŠããŸããããã以å€ã®ã»ãšãã©ã®ãšããïŒ100000ã600000åãããïŒã¯èª€å·®ãããç¶æ ã«ãé¢ãããããŸãå€åããªãåŠç¿ããããã§ããªãããšãèŠãããšãã§ããŸãããã®æéã®åŠç¿ãå éãããããåŠç¿ç0.05â0.5â5â50ãšå€æŽããŠã¿ãŸããããœãŒã¹ã³ãŒãã¯ä»¥äžãä¿®æ£ããŠãã ãããåæå€ã¯ïŒã«ããŠãããŸãã
EPSILON = 5.0 # Learning Rate
åŠç¿çãå¢ãããæã®åŠç¿åæ°çµæã察æ°ã°ã©ãã«ããŸãããïŒãµã³ãã«ã¯å°ããã®è¶³ããªãæ°ãããã®ã§ããã®äžéå€ãèšæž¬ããŠããŸããã°ã©ããã¿ããšæšªè»žïŒåŠç¿çã«åæ¯äŸããŠçžŠè»žïŒåŠç¿åæ°ãæžã£ãŠããã®ãããããŸãããã åŠç¿ç50ã¯å€§ããããããã§ã誀差ãåæããªãã£ãããã°ã©ãã«ã®ããŠããŸããã

äžèšã°ã©ãã®å³ããïŒçªãã«ãããåŠç¿ç 5.0ãåŠç¿åæ° 564ã®æã®åŠç¿é·ç§»ã°ã©ãã§ããåŠç¿ç0.05ã®ãšããšæ¯èŒãããšåŠç¿å
šäœãéããŠèª€å·®ãå€åããŠããã®ãããããå¹çããïŒåŠç¿ããŠããããã«èŠããŸãã

ãŸãšã
æåã«è©ŠããåŠç¿ç0.05ã§ã¯ãç¹å®ã®ãã¬ãŒãã³ã°ããŒã¿ïŒãªã¬ã³ãžè²ã®tr:1ïŒã§èª€å·®ãé·æéæ®ã£ãŠããŸãããæçµçã«ã¯åæããŠããŸãããã®ããšããåŠç¿çã倧ããããŠãã®åŸé ãæ©ãäžã£ããšããŠãæçµçã«ã¯ãã¡ããšåæããå¯èœæ§ããããå®é倧ãããããšããããæ©ãåæãåŠç¿åæ°ãæžã£ããšãã£ã圢ã§ããããããã®ç¹ã«ã€ããŠã¯ã¢ãŒã¡ã³ã¿ã â»çãå°å ¥ããã»ããããã¹ããŒãã«åŠç¿åæ°ã¯æžããããããŸãããâ»ã¢ãŒã¡ã³ã¿ã ã«ã€ããŠã¯Part7ã§èå¯ããããšæããŸãã
åŠç¿çãé倧(ä»åã¯50)ã®å Žåã¯ããããåæããŸãããããã以äžã§ããã°ã©ã®å€ã§ãåŠç¿åæ°ãšåŒãæãã«åæããŠããã®ã§ããã®ç¹ã¯ãã€ããŒãã©ã¡ãŒã¿ã®èª¿æŽé£æåºŠã§ãããšã®äœãæ¹ãªã®ãããããŸããã
次å
次ååãæ±ããã€ããŒãã©ã¡ãŒã¿ã¯"éã¿ã®åæå€"ã§ããäžéå±€ãšåºåå±€ã®éã®çµç·ã¯ïŒæ¬ãªã®ã§ãäžèšã°ã©ãã®W[1]ã«ã¯ãã©ã€ã³ãïŒã€ããã¹ããšããïŒã€ãããããŸããããã®ç¹ã«ã€ããŠéã¿ã®åæå€ã倿Žããããšã§å¯Ÿå¿ããŠããŸãããŸãä»åã®ã¢ãã«ããå±€ãïŒã€å¢ãããïŒå±€ã«ãããã£ãŒããã¥ãŒã©ã«ããããæ±ããŸãã