èªçŸ¥å¿E†å­¦æ¼”習 E1.6.ï¼Eæ‹E½“ï¼EA HREF="http://www.psy.bun.kyoto-u.ac.jp/kojima/">å°å³¶Eˆæ–‡å­¦ç ”ç©¶ç§‘ï¼E/A>

階層型ニューラルãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ¢ãƒEƒ«ã®
プログラミングã¨ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ä¾E/DIV>



E.ãEã˜ã‚ã«

å‰å›žã®ç™ºè¡¨ã§ã¯åŸºæœ¬çšEªéšŽå±¤åž‹ãƒ‹ãƒ¥ãƒ¼ãƒ©ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ¢ãƒEƒ«ã§ã‚るパãEセプトロンã¨ãƒãƒƒã‚¯ãƒ—ロパゲーションã«ã¤ãE¦ã€ãã®åŸºæœ¬çšEªã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’紹介ã—ãŸãŒã€ä»Šå›žã®ç™ºè¡¨ã§ã¯ã€å®Ÿéš›ã«ã“ã†ã—ãŸã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’利用ã—ã¦ãƒ—ログラムをçµE¿ã€ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®ä»•çµE¿ã¨å‡¦çE‚’実演ã™ã‚‹ã€EBR> ã¾ãŸã€å¿E†å­¦å®Ÿé¨“やモãƒEƒ«ã®æ¤œè¨¼ã«éš›ã—ã¦ã€ã“ãE—ãŸã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚EEログラムã¯ã©ã®ã‚ˆã†ãªåˆ©ç”¨ã®ä»•æ–¹ãŒã‚ã‚‹ãEã‹ã‚’検討ã—ãŸã„ã€EBR>
・・・ã¨ãE†ã‚ã‘ã§ã€webã ã‘å¾¡è¦§ã®æ–¹ã¯ã€ã‚‚ã—よã‚ã—ã‘れã°å‰å›žã®ç§ãE発表ã®ãƒ¬ã‚¸ãƒ¥ãƒ¡ã‚’御覧ã«ãªã£ã¦ã‹ã‚‰ã“ã“を見ã¦ãEŸã ã‘ã‚‹ã¨ã‚ˆã‚ã—ã„ã‹ã¨æ€ã„ã¾ã™ã€EBR>
EŠä»Šå›žã®ç™ºè¡¨ã§ç”¨ãEŸãƒ—ログラムã¯ã€åEã¦å°å³¶ãŒä½œæEã—ãŸã‚‚ãEã§ã‚りã€CEC++言語ã§ä½œæEã—ãŸã€EBR> EŠä½¿ç”¨ã—ãŸã‚³ãƒ³ãƒ‘イラã¯ã€BorlandC++BuilderVer4.0ã§ã‚ã‚‹ã€EBR>
E‘.パーセプトロンEˆãã®E‘)〜ドãƒEƒˆå…¥åŠ›æ•°å­—è­˜åˆ¥ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã€E/font>

ã“ãEプログラムã¯ã€E¼“×5ãEマトリãƒE‚¯ã‚¹ã«ãƒžã‚¦ã‚¹ã§ãƒE‚¸ã‚¿ãƒ«é¢¨ã«æ•°å­—ãEå½¢ã«ãƒ‰ãƒƒãƒˆã‚’入力ã—ã¦ãEã€ãã®æ•°å­—ãŒå¥E•°ã‹åEæ•°ã‹ã‚’判別ã™ã‚‹ã¨ãE†ç°¡å˜ãªå­¦ç¿’ãEログラムã§ã‚ã‚‹ã€EBR> アルゴリズムã¯ãƒ‘ãEセプトロンアルゴリズムã«å¾“ã£ã¦çµE‚“ã ã€‚åE力関数ã¯ã‚¹ãƒEƒƒãƒ—関数を用ãE€èª¤å·®ã®ä¿®æ­£ã¯ãƒEƒ«ã‚¿ãƒ«ãƒ¼ãƒ«ã«å¾“ã£ãŸã€EBR>
perceptron1
ドット数字ã¨ã—ã¦E“を入力ã—ã¦ã€ã€Œè€Eˆã‚‹ã€ãEタンを押ã—ãŸã¨ã“ã‚ã€EBR> ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯æœ€çµ‚çš„ã«å¥E•°ã¨ã®åˆ¤æ–­ã‚’下ã—ã¦ãE‚‹ã€EBR>
perceptron1

å…ˆã»ã©ã®ç­”ãˆã«å¯¾ã—ã¦ã€æ­£è§£ã§ã‚る為「å¥E•°ã€ãEタンを押ã—ãŸå¾ŒãEç”»é¢ã€EBR> ã“ãEå ´åˆã€E‡ã¿ã®æ›´æ–°ã¯è¡Œã‚ãªãE€EBR>
perceptron1
今度ã¯ã€E¼’ã¨å…¥åŠ›ã—ã¦ã€ã€Œè€Eˆã‚‹ã€ãEタンを押ã—ã€ãEログラムãŒâ€å¥E•°â€ã¨åˆ¤æ–­ã—ãŸãŒã€æ­£è§£ã¨ã—ã¦ã€ŒåEæ•°ã€ãEタンを押ã—ãŸå¾ŒãEç”»é¢ã€EBR> ã“ãEå ´åˆã€æ¬¡ã®å…¥åŠ›ã¾ã§ã«ãƒ—ログラムã¯é‡ã¿ã®æ›´æ–°ã‚’行ã†ã€EBR>

E’.パーセプトロンEˆãã®E’)〜手書ãç·šåE識別プログラムã€E/font>

ã“ãEプログラムã¯ã€ãEã‚¦ã‚¹ã§æã„ãŸæ‰‹æ›¸ããEç·šåEã®å½¢ã‚’ã€ãã­ããEã‹ã‚¸ã‚°ã‚¶ã‚°ã‹ã¨ãE†ã‚ˆã†ãªå½¢ã§åˆE¡žã™ã‚‹ã“ã¨ã‚’学習ã™ã‚‹ãEログラムã§ã‚ã‚‹ã€EBR> ã“ãEプログラムも基本çšE«ã¯E‘.ãEパãEセプトロンã®ãƒ—ログラムã¨åŒæ§˜ãEアルゴリズムã«å¾“ã†ãŒã€è©³ç´°ã¯ãƒEƒ¢ãƒ³ã‚¹ãƒˆãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã‚½ãƒ¼ã‚¹ã‚’呈示ã—ãªãŒã‚‰èª¬æ˜Žã™ã‚‹ï¼ˆã¨ãE†ã“ã¨ã§ã€å®Ÿéš›ã«ã¯æ¼”習中ã«ã‚½ãƒ¼ã‚¹ã‚’追ã£ã¦è‰²ã€Eª¬æ˜Žã—ã¾ã—ãŸãŒã€ã“ã“ã§ã¯çœç•¥ã—ã¾ã™ï¼‰ã€EBR>
perceptron2
マウスã§å…¥åŠ›éƒ¨ã«é©å½“ã«æ›²ç·šã‚’æãã€ã€Œæ€è€E€ãEタンã§è¨ˆç®—ã—ãŸå¾Œã€ã‚³ãƒ³ãƒ”ュータã®å‡ºåŠ›ãŒâ€ãã­ããEâ€ã§ã‚ã‚‹ã¨ãªã£ã¦ãE‚‹ç”»é¢ã€EBR> ã‚‚ã¡ã‚ã‚“ã€æ•™å¸«Eˆãƒ¦ãƒ¼ã‚¶E‰ãŒããEç·šåEã‚’ã©ãE‰ãˆã‚‹ã‹ã«ã‚ˆã£ã¦ãƒ—ログラムã®å­¦ç¿’ãE仕方ã¯å¤‰ã£ã¦ãã‚‹ã€EBR> é€E«è¨€ãˆãEã€ãƒ¦ãƒ¼ã‚¶ã®ã‚¯ã‚»ã‚’ãEログラムã¯å­¦ç¿’ã—ã¦ãEã“ã¨ã«ãªã‚‹ã€EBR> ã“ãEクセã®ãƒ‘ターンをè¤E•°ã®ãƒ¦ãƒ¼ã‚¶ã«é–¢ã—ã¦æŠ½è±¡åŒ–ã—ãŸã‚‚ã®ãŒã€ä¸€ç¨®ã®ã‚る概念ã«å¯¾ã™ã‚‹ãƒ—ロトタイプ的ãªè¡¨è±¡ã§ã‚ã‚‹ã¨è€Eˆã‚‹äº‹ã‚‚ååEå¯èƒ½ã§ã‚ã‚‹ã€EBR>
perceptron2
ã¡ãªã¿ã«ã€ã“れãEã€ã‚¸ã‚°ã‚¶ã‚°ã§æã„ãŸã¤ã‚‚りã®ã‚‚ãEã‚’â€ãã­ããEâ€ã¨åˆ¤æ–­ã—ãŸç‚ºã«ã€ã€Œã‚¸ã‚°ã‚¶ã‚°ã€ãEタンを押ã—ã¦é–“é•ãE§ã‚る事を教ãˆãŸçŠ¶æ…‹ã§ã‚ã‚‹ã€EBR>

E“.ãƒãƒE‚¯ãƒ—ロパゲーション〜コンピュータ親父ã€E/font>

ã“ãEプログラムã¯ã€ã„ã‚ゆる排他的論ç†å’Œå•題ãE学習をã™ã‚‹ã‚‚ãEã§ã‚ã‚‹ã€EBR> æ–­ã‚ã£ã¦ãŠããŒã€æƒ…å ±ã®è¡¨ç¾ã®ä»•æ–¹ã«ã‚ˆã£ã¦ã¯ã€å¤–見的ã«ã¯æŽ’他的論ç†å’Œã§ã‚ã‚‹å•題もパãEセプトロンã§å­¦ç¿’ã•ã›ã‚‹äº‹ãŒã§ãã‚‹Eˆã™ãªã‚ã¡ã€ç·šå½¢åˆE›¢å¯èƒ½ãªå•題ã«ã§ãã‚‹E‰ãEã¯è¨€ãE¾ã§ã‚‚ãªãã€ã“ã®ãƒ—ログラムもããE§ã‚ã‚‹ã€EBR> ãŸã ã€ä»Šå›žã¯æ•¢ãˆã¦æƒE ±è¡¨ç¾ã‚’排他的論ç†å’Œå•題ã«åˆã†ã‚ˆã†ã«ã—ãŸã€EBR> 基本çšE«ã¯åˆæœŸã®ãƒãƒƒã‚¯ãƒ—ロパゲーションã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’è¸è¥²ã—ãŸã€EBR> 出力関数ã¯ã€ã™ã¹ã¦ã®å±¤ã‹ã‚‰ã®å‡ºåŠ›ã«é–¢ã—ã¦ã‚·ã‚°ãƒ¢ã‚¤ãƒ‰é–¢æ•°ã§å‡ºåŠ›ã—ãŸã€EBR> 誤差ã®ä¿®æ­£ã¯ä¸€èˆ¬åŒ–デルタルールã§ã‚ã‚‹ã€EBR>
状æ³è¨­å®šï¼ˆï¼Ÿï¼‰ã¨ã—ã¦ã¯ã€æ•™å¸«Eˆãƒ¦ãƒ¼ã‚¶E‰ãEオカン役ã§ã€ã‚³ãƒ³ãƒ”ュータ親父ã«å­ã©ã‚‚ãŒå‹é”ã‚’éƒ¨å±‹ã«æ³Šã‚ã¦ãE„ã‹ã©ãE‹å°‹ãEã‚‹å ´é¢ã§ã‚ã‚‹ã€EBR> ã“ã“ã§ã€ãEログラム上ãEåŒæ€§åŒå£«ã‚’ï¼E0)(11)ã¨è¡¨ç¾ã—ã€ç•°æ€§åŒå£«ã‚E01)(10)ã¨è¡¨ç¾ã—ãŸã€EBR> ã¤ã¾ã‚Šã€ç”·åŒå£«ã€å¥³åŒå£«ãªã‚‰ãEã€å®¿æ³ŠãE許å¯ã•れるãŒã€ç”·å¥³ã§ã¯ãƒ€ãƒ¡ã¨ãE†åˆ¤æ–­ã‚’コンピュータ親父ãŒã§ãるよã†ã«ãªã‚‹ã¨ãE†ã“ã¨ã§ã‚ã‚‹ã€EBR>

backpropagation
ã¨ã‚Šã‚ãˆãšã€ã€Œè¦ªçˆ¶ã®æ„見ã€ãEタンã§ã“ãE男二人ã®çµE¿åˆã‚ã›ã«ã¤ãE¦å°‹ãEãŸå ´é¢ã€EBR> 親父ã¯â€ãƒ€ãƒ¡â€ï¼ˆã¤ã¾ã‚Šã€ä¸æ­£è§£E‰ã¨è¨€ã£ã¦ãE‚‹ã€EBR> ã¡ãªã¿ã«ã€E‡ã¿ã®åˆæœŸå€¤ã¯ä¹±æ•°ã§âˆ’1〜1ãEé–“ã§ç™ºç”Ÿã•ã›ã¦ãE‚‹ã€EBR>

backpropagation
å…ˆã»ã©ã®çŠ¶æ…‹ã§ã€ã€Œå対ã€ãEタンを押ã—ãŸã¨ã“ã‚ã€EBR> プログラム上ã§ã¯ã€ã“ã“ã§èª¤å·®ã®ä¿®æ­£è¨ˆç®—を行ã£ã¦ãE‚‹ã€EBR> ç„¡è«–ã€ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯ä¸€èˆ¬åŒ–デルタルールã§ã‚ã‚‹ã€EBR>
backpropagation
今度ã¯ã€ç”·å¥³ã®çµE¿åˆã‚ã›ã«å¯¾ã—ã¦ã€è¦ªçˆ¶ãŒãƒ€ãƒ¡å‡ºã—ã—ãŸã¨ã“ã‚ã€EBR> ã“ãEå ´åˆãE正解ãªã®ã ãŒã€ãƒ‘ーセプトロンã¨ç•°ãªã‚Šã€åE力関数ãŒã‚·ã‚°ãƒ¢ã‚¤ãƒ‰ã§ã‚る為ã€å¾®å¦™ã«é‡ã¿ã¯å¤‰åŒ–ã™ã‚‹ã€EBR>

E”.ãEログラミングã®éš›ãEç•™æ„点ãªã©

アルゴリズム自体ãE記述ã¯ãれã»ã©é›£ã—ãã¯ãªãE€EBR> 一番ã®å•題ãEã€Efont color = #"ff0000">入力情報ã¨å‡ºåŠ›æƒ…å ±ã‚’ã©ã®ã‚ˆã†ãªå½¢ã§è¡¨ç¾ã™ã‚‹ãE/font>ã§ã‚ã‚‹ã€EBR> ã“れらãEæ‰ãˆæ–¹ã¯ã€ã™ãªã‚ã¡å¿E†å­¦ã«ãŠã„ã¦ã¯ã¾ã•ã«äººé–“ãEèªçŸ¥æ©ŸèEã®æ‰ãˆæ–¹ããEã‚‚ãEã¨ã‚‚言ãˆã‚‹ã€E
従ã£ã¦ã€Efont color = #"ff0000">計算機科学çšE€æ•°å­¦çšE€å·¥å­¦çšEªæ„味ã§ã®åйçŽEš„ã§ã‚·ãƒ³ãƒ—ルãªè¡¨ç¾ãŒå¿Ešã—ã‚‚å¿E†å­¦çšE«å¦¥å½“ã§ã‚ã‚‹ã¨ã¯è¨€ãˆãªãE/font>ã“ã¨ã«ã¯æ³¨æ„ã—ãªã‘れã°ãªã‚‰ãªãE€EBR> ã“ãEå•題ã¨ã‚‚関連ã—ã¦ã€ãƒ‹ãƒ¥ãƒ¼ãƒ©ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ãƒ¦ãƒ‹ãƒƒãƒˆæ•°ã‚E±¤ã®æ•°ã‚‚é‡è¦ãªå•題ã¨ãªã‚‹ãEã¯è¨€ãE¾ã§ã‚‚ãªãE€EBR>

基本çšE«ã€ä»Šå›žã®æ¼”ç¿’ãEç›®çšEEã€å‚加è€E«éšŽå±¤åž‹ãEニューラルãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®åŸºæœ¬çšEªå‹•作ã¨ããE原ç†ãªã‚‰ãEã«ã€ãれをコンピュータ上ã§è¡¨ç¾ã—ã¦è¨ˆç®—ã™ã‚‹ã¨ãE†ã“ã¨ãŒä¸»ãŸã‚‹ç›®çšE§ã‚ã£ãŸç‚ºã€å±¤æ•°ã‚EE力ãE最低é™ã®ã‚‚ãEã¨ã—ãŸãŒã€ç§å€‹äººã®ç ”究用ã«ä½œæE予定ã§ã‚ã‚‹ã‚‚ãEã¯å¤šå°‘ãªã‚Šã¨ã‚‚è¤E›‘ã«ãªã‚‹äºˆå®šï¼ˆã‚†ãˆã«æœªå®šï¼‰ã§ã‚りã¾ã™ã€EBR>
今回ã®ç™ºè¡¨ãªã‚‰ãEã«æœ¬ãƒšãEジã®å†E®¹ã«é–¢ã—ã¦ä½•ã‹ã”ã–ãE¾ã—ãŸã‚‰ã€å°å³¶ã¾ã§ã€EBR>
MailEEA HREF="mailto:kojima@psy.bun.kyoto-u.ac.jp">kojima@psy.bun.kyoto-u.ac.jp
HPEEA HREF="http://www.psy.bun.kyoto-u.ac.jp/kojima/">http://www.psy.bun.kyoto-u.ac.jp/kojima/