æè¿ä½ããSONYããã®Neural Network Consoleã®youtubeåç»ãå å®ãã¦ãã¨è³ã«ãã¾ããï¼ç®ã«ããï¼)ã
youtubeãã£ã³ãã«ã¯ãã¡ãã
ä»åã¯DNNã®å¾©ç¿ãå ¼ãã¦è¦è´ãã¦ã¿ãã®ã§ããã®ã¡ã¢ã§ãã
- tl; dr;
- Deep Learningå
¥é
- ä»Deep Learningã«åãçµãã¹ãçç±
- Deep Learningã¨ã¯ï¼
- Deep Learningã§ã§ãããã¨
- ãã¥ã¼ã©ã«ãããã¯ã¼ã¯è¨è¨ã®åºç¤
- 層æ°ããã¥ã¼ãã³æ°ã決ããæé
- ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®å¤å±¤åãã¯ããã¯
- ãã¥ã¼ã©ã«ãããã¯ã¼ã¯å¦ç¿ã®ä»çµã¿
- Recurrent Neural Networksã¨ã¯ï¼
- Generative Adversarial Networks (GAN)ã¨ã¯ï¼
- æ°å¼ãªãã§ç解ããLSTM (Long short-term memory)
- Transfer Learningï¼è»¢ç§»å¦ç¿ï¼
- éååã«ãããã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®ã³ã³ãã¯ãå
- ææ³
tl; dr;
- ç¾èã¯ä¸è¦ã«å¦ãããåç»è¦ã¾ãããã
Deep Learningå ¥é
åçãªã¹ãã¯ãã¡ãã§ãã
ä»Deep Learningã«åãçµãã¹ãçç±
ãã¡ãã¯Deep Learningã®æ´å²ã«å§ã¾ããã©ã®ãããªã¨ããã«å¿ç¨ã§ãããã«ã¤ãã¦ç´¹ä»ããã¾ãã DeepLearning ã¯ç»åèªèã³ã³ãã¹ãã§æ³¨ç®ããå§ããç¾å¨ã§ã¯é³å£°èªèã¸ã®å¿ç¨ãAlphaGoã«ããå²ç¢ã§ã®ããæ£å£«ã¸ã®åå©ãªã©ãåºç¯ãªé åã§å±éããã¦ãããã¨ããããã¾ãã é«ã精度ã§èªèã§ããä¸æ¹ãä»ã¾ã§ã®èªèå¨ãã¤ããããã»ã¹ã¨æ¯è¼ãã¦ãDeep Learningã®éçºããã»ã¹ã大ããç°ãªãé常ã«ç°¡åã§ãããå°éã§ãªãæè¡è ã§ãç°¡åã«å®è£ ã§ãã¾ãã
Deep Learningã¨ã¯ï¼
ãã¡ãã§ã¯ãåºæ¬çãªãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã«ã¤ãã¦ã®è§£èª¬ãè¡ããã¦ãã¾ãã
人工ãã¥ã¼ãã³ã¯äººéã®ç¥çµç´°èã®æ§é ãå ã«ã¢ãã«åããã¦ãã¾ãã ããã¦ããã®äººå·¥ãã¥ã¼ãã³ã®çµã¿åããã«ãã£ã¦ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ãæ§æããã¦ãã¾ãã
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã«ã¯å ¥å層ãä¸é層ãåºå層ããããããã®éãé»æ°ä¿¡å·ãæµããããã«ãã¼ã¿ã®ããåããè¡ããã¾ãã ãã®å¦çãéãã¦ãã¯ãããããã¯ã¼ã¯ã®éã¿ã¯ä¹±æ°ã§ä¸ãããã®ã®ããå¦ç¿ãã¨ããããã»ã¹ã«ãã£ã¦ãäºåã«ä¸ããããçããåºããããã«ãããã¯ã¼ã¯ã®éã¿ãã·ã¹ãã ãèªåã§èª¿æ´ãã¦ããã¾ãã
â»ããã§ã¯å¦ç¿ã«ããã¯ãããã²ã¼ã·ã§ã³ã«ã¤ãã¦ã¯è©³ãã触ãã¾ãã
Deep Learningã§ã§ãããã¨
ãã¥ã¼ã©ã«ãããã¯ç»åã ãã§ã¯ãªããèªç¶è¨èªå¦çãé³å£°ãããããå¶å¾¡ãªã©ãã¾ãã¾ãªç¯å²ã«å¿ç¨ããã¦ãã¾ãã ç»åã«ã¤ãã¦ããç©ä½èªèãSemantic Segmentationãç»åå¤æã¨å¹ åºãèªèå¨ãã¤ãããã¨ãã§ãã¾ãã
æ©æ¢°ç¿»è¨³ã«ããã¥ã¼ã©ã«ãããã¯ã¼ã¯ã使ããã¦ããã使ç¨ããããã¼ã¿ãç»åããåèªåã«ãªã£ã¦ãã¾ããããã«ãã£ã¦ç¿»è¨³ããã£ããããããå®ç¾ããã¦ãã¾ãã
ç»åãè¨èªä»¥å¤ã«ããã¼ã¿ã¨ãã¦ãã¯ãã«ãããã°ä½¿ç¨ã§ãããããä¸åç£ä¾¡å¤ç®å®ãã¸ã§ã¹ãã£èªèãç°å¸¸æ¤ç¥ãããããå¶å¾¡ã«ãå©ç¨ã§ãã¾ãã è¦ããã«ããã£ã¼ãã©ã¼ãã³ã°ã¯ããããªãã¨ã«æ´»ç¨ã§ããæ±ç¨ãªæè¡ã§ãã
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯è¨è¨ã®åºç¤
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®å±¤ã®èãæ¹ã«ã¤ãã¦ç´¹ä»ããã¦ãã¾ãã å ¨çµå層ã§ããAffine層ãTanh層(æ´»æ§åé¢æ°)ãçµã¿åããã£ã¦ä¸ã¤ã®äººå·¥ãã¥ã¼ãã³ãæ§æããã¦ãã¾ãã æ´»æ§åé¢æ°ã«ã¯ç¾å¨ã§ã¯æ§ã ãªãã®ãç»å ´ãã¦ãã¾ãã æå¾ã«SoftMax層ã§åºåã®åã1ã«æããããã¾ãã
ç¾å¨ã§ã¯Affine層ã ãã§ã¯ãªãç³ã¿è¾¼ã¿(Convolution)層ã使ããããã¨ãå¤ãã§ãã Convolution層ã«ãã£ã¦ãç»åã®å°ããªåºç»ã«å¯¾ããè¨ç®ãç»åå ¨ä½ã«ã¹ã©ã¤ããã¦è¨ç®ãã¦ããè¨ç®ã«ãªãã¾ãã ã¾ãããã¦ã³ãµã³ããªã³ã°ã¨ãã¦Max Poolingã«ã¤ãã¦ãç´¹ä»ããã¦ãã¾ãã
æå¾ã®å±¤ã¯ãSigmoidé¢æ°ãSoftmaxé¢æ°ãªã©ã使ç¨ããé¢æ°ã使ãåãããã¨ã§è§£ãããåé¡ã«åããã¦ããã¾ãã ã¾ãåæ§ã«æå¾ã®é¢æ°ã«ã¤ãã¦ããLossãBinaryCrossEntropyã SquaredErrorãªã©ããã¡ãã使ãåãã¾ãã
層æ°ããã¥ã¼ãã³æ°ã決ããæé
ä¸é層ã¯è§£ãåé¡ã«å¿ãã¦é½åº¦è¨è¨ãããã®ã§ãã åºæ¬çã«ã¯å±¤ãå¤ãã¨ç²¾åº¦ã¯ä¸ããã¾ãããä¸æ¹ã§ãªã½ã¼ã¹ã大éã«ä½¿ããããããã¨ãã¬ã¼ããªãã«ãªãã¾ãã
ãã ãã»ãªãªã¼ã¯åå¨ããã®ã§ããã«åã£ã¦è¨è¨ãã¦ããã¨ãå½ã¦ãã£ã½ãã«ãªããã«æ¸ã¿ã¾ãã Resnet152ã®ä¾ãè¦ãã¨ãã¯ããé常ã«å¤§ããªãã¥ã¼ãã³ã®æ°ã使ç¨ãããã¦ã³ãµã³ããªã³ã°ã«ãã£ã¦å¾ã ã«ãã¥ã¼ãã³ã®æ°ãæ¸ããã¦ããã¾ãã ãã®ã¨ããç»åã®æ°ãå¢ãããã¨ã§ãè¨ç®éãæ¥æ¿ã«æ¸ãããªãããã«æ³¨æãã¾ãã ãã®ãéä¸è§å½¢ã®è¨ç®éã®åå¸ãæèãã¦è¨è¨ãã¦ããã¨ç¡é§ãªãè¨è¨ãé²ãããã¾ãã
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®å¤å±¤åãã¯ããã¯
ãã¥ã¼ã©ã«ãããã®å±¤ãå¢å ãããã¨å¦ç¿ã®åæã«æéããããã誤差ãä¸ãããªããã¨ããåé¡ãããã¾ãã ãã®ãããªåé¡ã«å¤§ãã¦ãããã¤ããã¯ããã¯ãææ¡ããã¦ãã¾ãã
ã¾ãã¯ReLUã使ããã¨ãããã¾ããtanhãsigmoidã¯å¦ç¿ãåæãã«ãããã¨ãããã£ã¦ããã®ã§ReLUã使ããã¾ããï¼å¤æ°å¿ç¨ããï¼
ããããã¼ãã©ã¤ã¼ã¼ã·ã§ã³ã¯ãconvolutionã®ãã¨ã«å¹³å0ãåæ£1ã«æ£è¦åããå¦çã«ãªãã¾ãããããè¡ããã¨ã§ãå¦ç¿ãå®å®ãããã¨ãç¥ããã¦ãã¾ãã
ResNetã¯ãSkipã³ãã¯ã·ã§ã³ãå°å ¥ãããã¨ã§ä½ãå¦çãã¦ããªãä¸é¨ã®ãã¼ã¿ãåºå層ã«ä¼æããå ç®ãã¾ããããã«ãã£ã¦å®å®ãããã¨ãç¥ããã¦ãã¾ãã
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯å¦ç¿ã®ä»çµã¿
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®å¦ç¿ã¯ãã·ã¹ãã ã¨ãã¦ã¯ãããã¯ã¼ã¯ã®éã¿ã表ãå¤æ°ãæ´æ°ãããã¨ãæå³ãã¦ãã¾ãã ãããããå¾é éä¸æ³ã«ãã£ã¦ãå¦ç¿ãè¡ããã¾ãã ã¾ãã¯ãå ¥åä¿¡å·ãåºåããçæ¡ã¨æ¯è¼ãã¾ãã ãã®ã¨ãã®æ£è§£ã¨ã®å·®åï¼Lossï¼ãç®åºãã¾ãã 次ã«ãLossã®ãããã¯ã¼ã¯ã®éã¿ã«å¯¾ããæ¯éãè¨ç®(å¾®å)ãããã®éããããã¯ã¼ã¯ã«Lossãå°ãããªãããã«å ç®ãã¦ããã¾ãã ãããä½åº¦ãç¹°ãè¿ãã¦ããããã¯ã¼ã¯ã®éã¿ãæ´æ°ããå¦ç¿ãå®ç¾ãã¦ãã¾ãã
åç»ã§ã¯ããããã¯ã¼ã¯ã®æ´æ°éã®è¨ç®æ¹æ³ã§ããããã¯ãããã²ã¼ã·ã§ã³ã«ã¤ãã¦ã解説ããã¦ãã¾ãã
Recurrent Neural Networksã¨ã¯ï¼
é常ã®ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã¯ãã£ã¼ããã©ã¯ã¼ããããã¯ã¼ã¯ã§ãRNNã¯ããã«ã«ã¼ã(Recurrent)ãå ããããã«ãªãã¾ãã ãã®æ§é ã«ãã£ã¦RNNã¯ãå ¥åãã¼ã¿ã®ä¸¦ã³ãåæ ããããã¨ãã§ãã¾ãã éå»ã®æåã®ä¸¦ã³ã®æ å ±ãã次ã®æåãäºæ¸¬ã§ããããã¾ãã RNNã§ã¯ãããã¯ãããã²ã¼ã·ã§ã³ã¯æéæ¹åã«ãä¼æãã¦ããã¾ãã
RNNã¯åé¡ã¨ãã¦ãå ¥åï¼åºåã1 or manyãã§åé¡ã§ãã¾ãã ããã«ãã£ã¦ãé³å£°èªèãæ©æ¢°ç¿»è¨³ãæ åèªèãªã©ã«ä½¿ç¨ããã¾ãã
Generative Adversarial Networks (GAN)ã¨ã¯ï¼
ç»åçæã«ä½¿ç¨ãããGANããã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®å¿ç¨ã§ãã ç»åèªèã¨ã¯éã«ãæ°åãå ¥åãã¦ãã®ç»åãçæãããããªå ´åã«ä½¿ç¨ããã¾ãã
GANã§ã¯Generatorï¼ãã§ã¤ã¯ç»åãä½ãï¼ã¨Discriminator(æ¬ç©ã¨å½ç©ãè¦åãã)ã対æããããã¨ã§å¦ç¿ãã¾ãã Generatorãçæããç»åãDiscriminatorã«å ¥åãDiscriminatorã§Lossãè¨ç®ãããã®å¾é ãGeneratorã¾ã§ä¼æãããã®ã§ããäºãå¦ç¿ãå¯è½ã¨ãªã£ã¦ãã¾ãã ããã«ãã£ã¦ãç»åã ããç¨æããã°ããããã¨ã¯åæã«GeneratorãDiscriminatorãå¦ç¿ãã¦ããã¾ãã
Generatorã¯é常ã®CNNã¨ã¯éåãã®æµãã«ãªãã¾ãã®ã§ãã¢ãããµã³ããªã³ã°ãå¿ è¦ã«ãªãã¾ãã Discriminatorã¯CNNã¨åæ§ã«ãæå¾ã¯2å¤åé¡ã«ãã£ã¦æ£èª¤å¤å®ãè¡ãããã«ãªãã¾ãã
æ°å¼ãªãã§ç解ããLSTM (Long short-term memory)
LSTM (Long short-term memory)ã¯RNNã®ä¸ç¨®ã§ãã RNNã¯æéæ¹åã«Recurrentã®æ§é ãæã¤ãã¨ã§ãéå»ã®æ å ±ãèæ ®ãããããã¯ã¼ã¯ãæ§æãããã¨ãã§ãã¾ããã Delay層ã«ãã£ã¦Recurrentãå®ç¾ãã¾ãã
é常ã®RNNã§ã¯é·æã®è¨æ¶ã®ä¿æãé£ããããããLSTMã§ã¯è§£æ±ºãã¾ãã LSTMã§ã¯ãæ¯æå»æ´æ°ãè¡ãDelay以å¤ã«ãåç´ã«å ç®ããCell Stateããããé·æè¨æ¶ãå¯è½ã«ãªã£ã¦ãã¾ãã
ã¾ããLSTMã«ã¯ã¤ã³ãããã²ã¼ããç¨æããã¾ãã ããã«ãã£ã¦ãAffine層ã«å ¥åãããã©ãããæ¯ãåãã¾ãã éã«åºåã®ã³ã³ããã¼ã«ã«ã¢ã¦ããããã²ã¼ããç¨æããã¾ãã ããã«ãã£ã¦ãLSTMèªä½ã®åºåã¨ä¸ç·ã«ã次ã®æå»ã«æç¨ãããªãã¼ã¿ããã®ã¾ã¾å¼ãç¶ãå½¹å²ãæ ãã¾ãã æ´ã«ããã©ã¼ã²ããã²ã¼ããããã¾ãã ããã«ãã£ã¦ãé·æè¨æ¶ããã£ã¨ä¿æãç¶ããã®ã§ã¯ãªããç ´æ£ããæ©è½ãæã¡ã¾ãã ããããçµã¿åããããã¨ã§ãå®å®ãã¦å¦ç¿ãå¯è½ã«ãªãã¾ãã
Transfer Learningï¼è»¢ç§»å¦ç¿ï¼
転移å¦ç¿ã¯ããã§ã«æ§ç¯æ¸ã¿ã®ã¢ãã«ã使ç¨ãã¦ãå¥ã®åé¡ã解ãã¢ãã«ã«åå©ç¨ãããã¨ã§ãã ä¸è¬çã«ãã¼ã¿ãå°ãªãå ´åã«ã¯æ§è½ãåºã«ããããããã®ãããªæè¡ã使ããã¨ã§ãå°ãªããã¼ã¿ã§ã精度ã®åä¸ãæå¾ ããã¾ãã
ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã§ã¯ãå¦ç¿æ¸ã¿ã®ãããã¯ã¼ã¯ã®ååã使ç¨ããå¾åãæ°ããä½ãå¤ãããã¨ã§å®ç¾ãã¾ãã æçµå±¤ã ãã®å¦ç¿ããããã¯å ¨ä½å«ãã¦å¦ç¿ããfine tuningãªã©ã«ãã£ã¦å¦ç¿ãã§ãã¾ãã 転移å¦ç¿ã§ã¯ããã¼ã¿ã®é¡ä¼¼æ§ã»é¢é£æ§ã精度åä¸ã®ãã¤ã³ãã«ãªãã転移å ã®ãã¼ã¿ã®è³ªã転移å ã®ã¢ãã«ã«å¤§ãã«å½±é¿ãä¸ãããã¨ã«ãªãã¾ãã
éååã«ãããã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®ã³ã³ãã¯ãå
DNNã®é«éåææ³ã¨ãã¦éååãè¡ããããã¨ãããã¾ãã ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®è¨ç®ã«ã¯ä¸è¬çã«ã¯è¨ç®éãå¤ããªãã®ã§ãæéçã»ãªã½ã¼ã¹çã«ä½¿ç¨ãé£ããç¶æ³ãããã¾ãã ãããåè·¯è¦æ¨¡ãå°ããã§ããã¨ã¨ãã¸ããã¤ã¹ã§ä½¿ç¨ã§ããããè¦æ¨¡ã®å¤§ããªDNNãæå ã®PCã§åãããããã¦å¬ãããã¨ãããã¾ãã
ããã§ã¯ãªã³ã¿ã¤ãº(éåå)ãè¡ããã¨ã§ãè¨ç®éãå°ãããããã¨ãã§ãã¾ãã æµ®åå°æ°ç¹æ¼ç®ã§ã¯ãªãæ´æ°æ¼ç®ã§è¡ããªã©ã§ãæ¼ç®å¨ãå°ããæ¸ãã®ã§åè·¯è¦æ¨¡ãå°ãããªã£ãããã¾ãã
ãããæ°ãåç´ã«å°ããããã¨ã誤差ã大ãããªãããããã¨ãããã¾ãã ããã§ãå¦ç¿æã«æ´»æ§åé¢æ°ã«é段ç¶ã®æ´»æ§åé¢æ°ã使ç¨ãããªã©ãã¦ãå¦ç¿æããéååãå¯è½ã«ãªãã¾ãã ãã ããé段ç¶ã®æ´»æ§åé¢æ°ã§ã¯ãå¾®åãã§ããªãã®ã§ãã¹ãã¬ã¼ãã¹ã«ã¼ã¨ã¹ãã£ã¡ã¼ã¿ã代ç¨ãããã¨ã§ãå¾®åè¨ç®ãè¿ä¼¼ãã¾ãã
ãã®ä»ãè¨ç®ãã³ã³ãã¯ãã«ããæ¹æ³ã¨ãã¦ãæåãã2å¤åãããã¯ã¼ã¯ããªã©ã®ãã¯ããã¯ãææ¡ããã¦ãã¾ãã
ææ³
SONYããã«åªã売ãããã§ã¯ãªãã§ãããé常ã«ããããããã£ãã§ãã ã³ã£ããããã®ã¯ãRNNãGANãéååã¾ã§åç»ã«ãªã£ã¦ãã¦ãæ¥æ¬èªã®æ¸ç±ã§ãããã¾ã§è§£èª¬ããã¦ããã®ãªããªããªãã®ã§ãæ¥æ¬èªã§ããããç°¡åã«å¦ã¶ã«ã¯é常ã«æç¨ãã¨æãã¾ãã éã«ãå°é家ã«ãªããã¨ããæ¹ã«ã¯ãã¡ãã£ã¨ç°¡åãããã®ã§ã注æãã ããã
å人çã«è±èªãè¦æãã¨ãã«ãã¢ãªã³ã°ã¯çµæ§è¦æãªã®ã§ãæ¥æ¬èªã§ä½ç³»çã«ææãæä¾ããã¦ããã®ã¯ãããããéãã§ãã æç³»ã§æ°å¦ãè¦æã¨ããæ¹ã§ãé£ããæ°å¼ã¯ããã»ã©åºã¦ãã¾ããã®ã§ãããããããä»çµã¿ãä½ç³»çã«ç¥ãããæ¹ã«ã¯é常ã«è¯ãã¨æãã¾ãã é常ã«åå¼·ã«ãªãã¾ããã