ããæ°
ãã®èšäºã§ã¯ãå®éã«ãã£ãŒãã©ãŒãã³ã°ã䜿çšããæ¹æ³ãåŠç¿ããŸãã SVHN ããŒã¿ã»ããã®Caffeãã¬ãŒã ã¯ãŒã¯ã䜿çšãããŸãã
深局åŠç¿ ãã®è©±é¡ã®èšèã¯é·ãéè³ã«é¿ããŠããŸããããå®éã«è©ŠããŠã¿ãããšã¯ã§ããŸããã§ããã ãããä¿®æ£ããè¯ãæ©äŒãèŠã€ããŸããïŒ å¹Žæ«å¹Žå§ã«ã¯ãç»å解æã³ãŒã¹ã®äžç°ãšããŠå®¶çªå·ãèªèããããã«ã«ã°ã«ã³ã³ãã¹ããèªããããŸããã
ããç¥ãããŠããSVHNãµã³ãã«ã®äžéšãæäŸãããŸãããããã¯ããã¬ãŒãã³ã°ã®73257ã€ã¡ãŒãžãšãã¹ãïŒæªå²ãåœãŠïŒãµã³ãã«ã®26032ã€ã¡ãŒãžã§æ§æãããŠããŸãã 1æ¡ã«ã€ã10ã¯ã©ã¹ã®ã¿ã ç»åã¯RGBè²ç©ºéã§32x32ã§ãã ãã³ãããŒã¯ã瀺ãããã«ããã£ãŒãã©ãŒãã³ã°ã«åºã¥ãæ¹æ³ã¯ã人ã®ç²ŸåºŠãããé«ã粟床ã瀺ããŸã-2ïŒ ã®èª€å·®ã«å¯ŸããŠ1.92ïŒ ïŒ
SVMãšNaive Bayesã«åºã¥ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã®çµéšããããŸããã æ¢ç¥ã®æ¹æ³ãé©çšããã®ã¯éå±ãªã®ã§ããã£ãŒãã©ãŒãã³ã°ã®äœããã€ãŸãç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ã䜿çšããããšã«ããŸããã
ã«ãã§ã®éžæ
ãã£ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ãæäœããããã®ããŸããŸãªã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ããããŸãã ç§ã®åºæºã¯æ¬¡ã®ãšããã§ãã
- ãã¥ãŒããªã¢ã«
- éçºã®ãããã
- å±éã®å®¹æã
- ã¢ã¯ãã£ããªã³ãã¥ããã£ã
Caffeã¯ããããå®ç§ã«æ©ããŸããã
- è¯ããã¥ãŒããªã¢ã«ã圌ãã®ãµã€ãã«ãããŸãã Caffe Summer Bootcampããã®è¬çŸ©ãåå¥ã«ãå§ãããŸãã ã¯ã€ãã¯ã¹ã¿ãŒããšããŠã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®åºç€ã«ã€ããŠã次ã«Caffeã«ã€ããŠèªãããšãã§ããŸãã
- Caffeã䜿ãå§ããã®ã«ããã°ã©ãã³ã°èšèªãå¿
èŠãããŸããã Caffeã¯ãæ§æãã¡ã€ã«ã䜿çšããŠæ§æãããã³ãã³ãã©ã€ã³ããèµ·åãããŸãã
- ãããã€çšã«chef-cookbookãšdocker-imagesããããŸãã
- githubã§ã¯ç©æ¥µçãªéçºãé²è¡äžã§ããGoogleã°ã«ãŒãã§ã¯ããã¬ãŒã ã¯ãŒã¯ã®äœ¿çšã«ã€ããŠè³ªåããããšãã§ããŸãã
ããã«ãCaffeã¯éåžžã«é«éã§ãã GPUã䜿çšããŸãïŒãã ããCPUã§å¯Ÿå¿ã§ããŸãïŒã
èšçœ®
æåã«ã ããã«ãŒã䜿çšããŠã©ãããããã«Caffeãã€ã³ã¹ããŒã«ããCPUã¢ãŒãã§å®è¡ããŸããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ãã¬ãŒãã³ã°ã¯éåžžã«é ãã£ãããæ¯èŒã§ãããã®ã¯ãªããããã¯æ£åžžã§ããããã«æãããã
次ã«ã 25ãã«ã®Amazonã¯ãŒãã³ãèŠã€ããŠãNVIDIA GPUãšCUDAããµããŒãããAWS g2.2xlargeãè©ŠããŠã¿ãããšã«ããŸããã ããã§Chef㧠Caffeããããã€ããŸããã ãã®çµæã41åé«éã«ãªããŸãã-CPUã§ã¯100åã®å埩ã«290ç§ããããŸããããGPUã§ã¯7ç§ã§CUDAã䜿çšã§ããŸããã
ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¢ãŒããã¯ãã£
æ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã§èš±å®¹å¯èœãªå質ãåŸãããã«ç¹åŸŽã®è¯ããã¯ãã«ã圢æããå¿ èŠããã£ãå Žåãããã¯ç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ã§ã¯å¿ èŠãããŸããã äž»ãªããšã¯ãåªãããããã¯ãŒã¯ã¢ãŒããã¯ãã£ãèæ¡ããããšã§ãã
次ã®è¡šèšæ³ã玹ä»ããŸãã
- input-å ¥åã¬ã€ã€ãŒãéåžžããããã¯ç»åãã¯ã»ã«ã§ãã
- conv-ç³ã¿èŸŒã¿å±€[ 1 ]ã
- ããŒã«-ãµããµã³ãã«ã¬ã€ã€ãŒ[ 2 ]ã
- å®å šã«æ¥ç¶-å®å šã«æ¥ç¶ãããå±€[ 3 ]ã
- output-åºåã¬ã€ã€ãŒãç®çã®ç»åã¯ã©ã¹ãçæããŸãã
ç»ååé¡ã®äž»èŠãªã¢ãŒããã¯ãã£ã¯ã次ã®NSã¢ãŒããã¯ãã£ã§ãã
ã¬ã€ã€ãŒã®æ°ïŒconv-> poolïŒã¯ç°ãªãå ŽåããããŸãããéåžžã¯2å以äžã§ãã å®å šãªæ¥ç¶ã®æ°ã¯1æ¥ä»¥äžã§ããinput -> conv -> pool -> conv -> pool -> fully-conn -> fully-conn -> output
ãã®ã³ã³ãã¹ãã®äžç°ãšããŠãããã€ãã®ã¢ãŒããã¯ãã£ãè©ŠãããŸããã ç§ã¯æ¬¡ã®ãã®ã§æãæ£ç¢ºã«ãªããŸããïŒ
input -> conv -> pool -> conv -> pool -> conv -> pool -> fully-conn -> fully-conn -> output
Caffeã¢ãŒããã¯ãã£ã®å®è£
Caffeã¯ãProtobufãã¡ã€ã«ã䜿çšããŠæ§æãããŸãã ã³ã³ãã¹ãã®ã¢ãŒããã¯ãã£ã®å®è£ ã¯ãã¡ãã§ãã åã¬ã€ã€ãŒã®æ§æã«ãããéèŠãªãã€ã³ããèæ ®ããŠãã ããã
å ¥åå±€
å
¥åå±€ã®æ§æ
name: "WinnyNet-F" layers { name: "svhn-rgb" type: IMAGE_DATA top: "data" top: "label" image_data_param { source: "/home/deploy/opt/SVHN/train-rgb-b.txt" batch_size: 128 shuffle: true } transform_param { mean_file: "/home/deploy/opt/SVHN/svhn/winny_net5/mean.binaryproto" } include: { phase: TRAIN } } layers { name: "svhn-rgb" type: IMAGE_DATA top: "data" top: "label" image_data_param { source: "/home/deploy/opt/SVHN/test-rgb-b.txt" batch_size: 120 } transform_param { mean_file: "/home/deploy/opt/SVHN/svhn/winny_net5/mean.binaryproto" } include: { phase: TEST } } ...
æåã®2ã€ã®ã¬ã€ã€ãŒïŒãã¬ãŒãã³ã°ããã³ãã¹ããã§ãŒãºçšïŒã®ã¿ã€ãã¯IMAGE_DATAãã€ãŸã å ¥åãããã¯ãŒã¯ã¯ç»åãåãå ¥ããŸãã ç»åã¯ããã¹ããã¡ã€ã«ã«ãªã¹ããããŸã ã1åã¯ç»åãžã®ãã¹ã2åã¯ã¯ã©ã¹ã§ãã ããã¹ããã¡ã€ã«ãžã®ãã¹ã¯ãimage_data_paramå±æ§ã§æå®ãããŸãã
ç»åã«å ããŠã HDF5 ãLevelDBãããã³lmbdããããŒã¿ãå ¥åã§ããŸãã æåŸã®2ã€ã®ãªãã·ã§ã³ã¯ãäœæ¥é床ãéèŠãªå Žåã«ç¹ã«é¢é£ããŸãã ãããã£ãŠãCaffeã¯ç»åã ãã§ãªããããããããŒã¿ãæ±ãããšãã§ããŸãã æãç°¡åãªäœæ¥æ¹æ³ã¯IMAGE_DATAã䜿çšããããšã§ãããã®ãããã³ã³ãã¹ãã«éžã°ããŸããã
å ¥åã¬ã€ã€ãŒã«ã¯ãtransform_paramå±æ§ãå«ããããšãã§ããŸãã å ¥åããŒã¿ãåããªããã°ãªããªãå€æã瀺ããŸãã éåžžãç»åããã¥ãŒã©ã«ãããã¯ãŒã¯ã«éä¿¡ããåã«ãç»åã¯æ£èŠåãããããããšãã°Local Contrast Normalizationã®ãããªããªãããŒãªæäœãå®è¡ãããŸãã ãã®å Žåãmean_fileãæå®ãããŸãã-å ¥åãããå¹³åãç»åãæžç®ããŸãã
Caffeã¯ãããåŸé éäžæ³ã䜿çšããŸãã å ¥åã¬ã€ã€ãŒã«ã¯batch_sizeãã©ã¡ãŒã¿ãŒãå«ãŸããŠããŸãã 1åã®å埩ã§ããµã³ãã«èŠçŽ ã®batch_sizeããã¥ãŒã©ã«ãããã¯ãŒã¯ã®å ¥åã«å°éããŸãã
ç³ã¿èŸŒã¿ãšãµããµã³ããªã³ã°ã®å±€ïŒconvãpoolïŒ
ç³ã¿èŸŒã¿å±€ãšãµããµã³ããªã³ã°å±€ãæ§æãã
... layers { bottom: "data" top: "conv1/5x5_s1" name: "conv1/5x5_s1" type: CONVOLUTION blobs_lr: 1 blobs_lr: 2 convolution_param { num_output: 64 kernel_size: 5 stride: 1 pad: 2 weight_filler { type: "xavier" std: 0.0001 } } } layers { bottom: "conv1/5x5_s1" top: "conv1/5x5_s1" name: "conv1/relu_5x5" type: RELU } layers { bottom: "conv1/5x5_s1" top: "pool1/3x3_s2" name: "pool1/3x3_s2" type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layers { bottom: "pool1/3x3_s2" top: "conv2/5x5_s1" name: "conv2/5x5_s1" type: CONVOLUTION blobs_lr: 1 blobs_lr: 2 convolution_param { num_output: 64 kernel_size: 5 stride: 1 pad: 2 weight_filler { type: "xavier" std: 0.01 } } } layers { bottom: "conv2/5x5_s1" top: "conv2/5x5_s1" name: "conv2/relu_5x5" type: RELU } layers { bottom: "conv2/5x5_s1" top: "pool2/3x3_s2" name: "pool2/3x3_s2" type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layers { bottom: "pool2/3x3_s2" top: "conv3/5x5_s1" name: "conv3/5x5_s1" type: CONVOLUTION blobs_lr: 1 blobs_lr: 2 convolution_param { num_output: 128 kernel_size: 5 stride: 1 pad: 2 weight_filler { type: "xavier" std: 0.01 } } } layers { bottom: "conv3/5x5_s1" top: "conv3/5x5_s1" name: "conv3/relu_5x5" type: RELU } layers { bottom: "conv3/5x5_s1" top: "pool3/3x3_s2" name: "pool3/3x3_s2" type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } ...
3mã¯ãã¿ã€ããCONVOLUTIONã®ç³ã¿èŸŒã¿å±€ã§ãã 以äžã¯ãã¢ã¯ãã£ãåé¢æ°cã¿ã€ãã®è¡šç€ºã§ãïŒRELUã 4çªç®ã®ã¬ã€ã€ãŒã¯ãã¿ã€ããPOOLã®ãµããµã³ãã«ã¬ã€ã€ãŒã§ãã 次ã®2åã¯ãconvãpoolã¬ã€ã€ãŒã®ç¹°ãè¿ãã§ããããã©ã¡ãŒã¿ãŒã¯ç°ãªããŸãã
ãããã®ã¬ã€ã€ãŒã®ãã©ã¡ãŒã¿ãŒã®éžæã¯çµéšçã§ãã
å®å šã«æ¥ç¶ãããåºåå±€ïŒå®å šæ¥ç¶ãåºåïŒ
å®å
šã«æ¥ç¶ãããã¬ã€ã€ãŒãšåºåã¬ã€ã€ãŒã®æ§æ
... layers { bottom: "pool3/3x3_s2" top: "ip1/3072" name: "ip1/3072" type: INNER_PRODUCT blobs_lr: 1 blobs_lr: 2 inner_product_param { num_output: 3072 weight_filler { type: "gaussian" std: 0.001 } bias_filler { type: "constant" } } } layers { bottom: "ip1/3072" top: "ip1/3072" name: "ip1/relu_5x5" type: RELU } layers { bottom: "ip1/3072" top: "ip2/2048" name: "ip2/2048" type: INNER_PRODUCT blobs_lr: 1 blobs_lr: 2 inner_product_param { num_output: 2048 weight_filler { type: "xavier" std: 0.001 } bias_filler { type: "constant" } } } layers { bottom: "ip2/2048" top: "ip2/2048" name: "ip2/relu_5x5" type: RELU } layers { bottom: "ip2/2048" top: "ip3/10" name: "ip3/10" type: INNER_PRODUCT blobs_lr: 1 blobs_lr: 2 inner_product_param { num_output: 10 weight_filler { type: "xavier" std: 0.1 } } } layers { name: "accuracy" type: ACCURACY bottom: "ip3/10" bottom: "label" top: "accuracy" include: { phase: TEST } } layers { name: "loss" type: SOFTMAX_LOSS bottom: "ip3/10" bottom: "label" top: "loss" }
å®å šã«æ¥ç¶ãããã¬ã€ã€ãŒã®ã¿ã€ãã¯INNER_PRODUCTã§ãã åºåå±€ã¯ãæ倱é¢æ°ïŒã¿ã€ãïŒSOFTMAX_LOSSïŒãšç²ŸåºŠå±€ïŒã¿ã€ãïŒACCURACYïŒã«ãã£ãŠå±€ã«æ¥ç¶ãããŸãã 粟床ã¬ã€ã€ãŒã¯ãã¹ã段éã§ã®ã¿æ©èœããæ€èšŒãµã³ãã«ã§æ£ããåé¡ãããç»åã®å²åã瀺ããŸãã
weight_fillerå±æ§ãæå®ããããšãéèŠã§ãã 倧ããå Žåãæ倱é¢æ°ã¯æåã®å埩ã§NaNãè¿ãããšãã§ããŸãã ãã®å Žåãweight_fillerå±æ§ã®stdãã©ã¡ãŒã¿ãŒãæžããå¿ èŠããããŸãã
ãã¬ãŒãã³ã°ãªãã·ã§ã³
åŠç¿æ§æ
net: "/home/deploy/opt/SVHN/svhn/winny-f/winny_f_svhn.prototxt" test_iter: 1 test_interval: 700 base_lr: 0.01 momentum: 0.9 weight_decay: 0.004 lr_policy: "inv" gamma: 0.0001 power: 0.75 solver_type: NESTEROV display: 100 max_iter: 77000 snapshot: 700 snapshot_prefix: "/mnt/home/deploy/opt/SVHN/svhn/snapshots/winny_net/winny-F" solver_mode: GPU
ååã«èšç·Žããããã¥ãŒã©ã«ãããã¯ãŒã¯ãååŸããã«ã¯ãåŠç¿ãã©ã¡ãŒã¿ãŒãèšå®ããå¿ èŠããããŸãã Caffeã§ã¯ããã¬ãŒãã³ã°ãã©ã¡ãŒã¿ãŒã¯protobufæ§æãã¡ã€ã«ãä»ããŠèšå®ãããŸãã ãã®ã³ã³ãã¹ãã®èšå®ãã¡ã€ã«ã¯ãã¡ãã§ãã å€ãã®ãã©ã¡ãŒã¿ãŒããããŸããããã®ãã¡ã®ããã€ãããã詳现ã«æ€èšããŸãã
- net-åœäŒè°äºå ã®ã¢ãŒããã¯ãã£ã®æ§æãžã®ãã¹ã
- test_interval-NSããã¹ããããå埩åæ°ïŒãã§ãŒãºïŒãã¹ãïŒã
- ã¹ãããã·ã§ãã-NSã®åŠç¿ç¶æ
ãä¿æãããå埩åæ°ã
Caffeã§ã¯ããã¬ãŒãã³ã°ãäžæåæ¢ããŠåéã§ããŸãã
ãã¬ãŒãã³ã°ãšãã¹ã
NSã®ãã¬ãŒãã³ã°ãéå§ããã«ã¯ããã¬ãŒãã³ã°ãã¡ã€ã«ãèšå®ãããŠããæ§æãã¡ã€ã«ã§caffe trainã³ãã³ããå®è¡ããå¿ èŠããããŸã ã
> caffe train --solver=/home/deploy/winny-f/winny_f_svhn_solver.prototxt
ç°¡åãªãã¬ãŒãã³ã°ãã°
....................... I0109 18:12:17.035543 12864 solver.cpp:160] Solving WinnyNet-F I0109 18:12:17.035578 12864 solver.cpp:247] Iteration 0, Testing net (#0) I0109 18:12:17.077910 12864 solver.cpp:298] Test net output #0: accuracy = 0.0666667 I0109 18:12:17.077997 12864 solver.cpp:298] Test net output #1: loss = 2.3027 (* 1 = 2.3027 loss) I0109 18:12:17.107712 12864 solver.cpp:191] Iteration 0, loss = 2.30359 I0109 18:12:17.107795 12864 solver.cpp:206] Train net output #0: loss = 2.30359 (* 1 = 2.30359 loss) I0109 18:12:17.107817 12864 solver.cpp:516] Iteration 0, lr = 0.01 ....................... I0109 18:13:17.960325 12864 solver.cpp:247] Iteration 700, Testing net (#0) I0109 18:13:18.045385 12864 solver.cpp:298] Test net output #0: accuracy = 0.841667 I0109 18:13:18.045462 12864 solver.cpp:298] Test net output #1: loss = 0.675567 (* 1 = 0.675567 loss) I0109 18:13:18.072872 12864 solver.cpp:191] Iteration 700, loss = 0.383181 I0109 18:13:18.072949 12864 solver.cpp:206] Train net output #0: loss = 0.383181 (* 1 = 0.383181 loss) ....................... I0109 20:08:50.567730 26450 solver.cpp:247] Iteration 77000, Testing net (#0) I0109 20:08:50.610496 26450 solver.cpp:298] Test net output #0: accuracy = 0.916667 I0109 20:08:50.610571 26450 solver.cpp:298] Test net output #1: loss = 0.734139 (* 1 = 0.734139 loss) I0109 20:08:50.640389 26450 solver.cpp:191] Iteration 77000, loss = 0.0050708 I0109 20:08:50.640470 26450 solver.cpp:206] Train net output #0: loss = 0.0050708 (* 1 = 0.0050708 loss) I0109 20:08:50.640494 26450 solver.cpp:516] Iteration 77000, lr = 0.00197406 ....................... I0109 20:52:32.236827 30453 solver.cpp:247] Iteration 103600, Testing net (#0) I0109 20:52:32.263108 30453 solver.cpp:298] Test net output #0: accuracy = 0.883333 I0109 20:52:32.263183 30453 solver.cpp:298] Test net output #1: loss = 0.901031 (* 1 = 0.901031 loss) I0109 20:52:32.290550 30453 solver.cpp:191] Iteration 103600, loss = 0.00463345 I0109 20:52:32.290627 30453 solver.cpp:206] Train net output #0: loss = 0.00463345 (* 1 = 0.00463345 loss) I0109 20:52:32.290644 30453 solver.cpp:516] Iteration 103600, lr = 0.00161609
1ã€ã®æ代ã¯ïŒ73257-120ïŒ/ 128ã= 571å埩ã§ãã 1æ代ããããããã«å€ãã700åã®ç¹°ãè¿ãã§ãæ€èšŒãµã³ãã«ã®ãããã¯ãŒã¯ç²ŸåºŠã¯84ïŒ ã§ãã 134æ代ã«ã¯ã粟床ã¯ãã§ã«91ïŒ ã§ãã 181ãšããã¯-88ïŒ ã ããšãã°ã1000幎ãªã©ãããå€ãã®æ代ã®ãããã¯ãŒã¯ããã¬ãŒãã³ã°ãããšã粟床ãå®å®ããããé«ããªããŸãã ãã®ã³ã³ãã¹ãã§ã¯ããã¬ãŒãã³ã°ã¯181ãšããã¯ã§äžæ¢ãããŸããã
Caffeã§ã¯ã--snapshotãªãã·ã§ã³ãè¿œå ããããšã«ãããã¹ãããã·ã§ãããããããã¯ãŒã¯ãã¬ãŒãã³ã°ãåéã§ããŸãã
> caffe train --solver=/home/deploy/winny-f/winny_f_svhn_solver.prototxt --snapshot=winny_net/winny-F_snapshot_77000.solverstate
æªå²ãåœãŠç»åã®ãã¹ã
NSããã¹ãããã«ã¯ããããã¯ãŒã¯ã¢ãŒããã¯ãã£ã®å±éæ§æãäœæããå¿ èŠããããŸãã ããã§ã¯ãåã®æ§æãšã¯ç°ãªãã粟床ã¬ã€ã€ãŒããªããå ¥åã¬ã€ã€ãŒãåçŽåãããŠããŸãã
26032ã€ã¡ãŒãžã§æ§æããããã¹ããµã³ãã«ã¯ãããŒã¯ã¢ãããªãã§å®è¡ãããŸãã ãã®ãããã³ã³ãã¹ãã®ãã¹ãéžæã®ç²ŸåºŠãè©äŸ¡ããã«ã¯ã ããã€ãã®ã³ãŒããèšè¿°ããå¿ èŠããããŸã ã Caffeã«ã¯PythonãšMatlabã®ã€ã³ã¿ãŒãã§ãŒã¹ããããŸã ã
Caffeã«ã¯ãããŸããŸãªæ代ã®ãããã¯ãŒã¯ããã¹ãããããã®ã¹ãããã·ã§ããããããŸãã 134æ代ã®ãããã¯ãŒã¯ã¯88.7ïŒ ã®ç²ŸåºŠïŒkaggleã§ã®ãã©ââã€ããŒãã¹ã³ã¢ïŒã瀺ãã181æ代ã®ãããã¯ãŒã¯ã¯87.6ïŒ ã§ããã
粟å¯ãªã¢ã€ãã¢
修士è«æã«ãããšãå®è£ ãããã¢ãŒããã¯ãã£ã®ç²ŸåºŠã¯96ïŒ ã«éããå¯èœæ§ããããŸãã
åŸããã粟床88.7ïŒ ãé«ããã«ã¯ã©ãããã°ããã§ãã
- ãããã¯ãŒã¯ãããå€ãã®æ代ã«åããŠãã¬ãŒãã³ã°ããŸãã ããšãã°ãé¡ã®ããŒãã€ã³ãæ€åºã®ãã£ãŒãã©ãŒãã³ã°ãã¥ãŒããªã¢ã«ã§ã¯ããããã¯ãŒã¯ã¯1000ã®æ代ãæããŸããã
- æåŸ å€ã0ã§åæ£ã1ã«ãªãããã«ããŒã¿ãæšæºåããŸãããããè¡ãã«ã¯ãHDF5ãŸãã¯LevelDb / lmdbã䜿çšããŠããŒã¿ãä¿åããŸãã
- åŠç¿ãªãã·ã§ã³ãæäœããŸãã ããšãã°ã100æ代ããšã«learning_rateãæžãããŸãã
- ããããã¢ãŠãã¬ã€ã€ãŒã䜿çšããããšãã§ããŸããããã®ããã«ã¯1000幎ãããããã«å€ãã®æ代ããããã¯ãŒã¯ã§ãã¬ãŒãã³ã°ããå¿ èŠããããŸãã
- SVHNããŒã¿ã»ããã«ã¯ãè¿œå ã®600,000åã®ã¿ã°ä»ãç»åãå«ãŸããŠããŸãã ãããã¯ç 究ã§äœ¿çšãããŸãããã³ã³ãã¹ãã®äžç°ãšããŠããããã®äœ¿çšã¯äžå ¬å¹³ã«ãªããŸãã ãã®å Žåã䜿çšå¯èœãªããŒã¿ã«åºã¥ããŠæ°ããããŒã¿ãçæã§ããŸãã
ãããã«
å®çŸãããç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ç²ŸåºŠã¯88.9ïŒ ã§ããã ããã¯æè¯ã®çµæã§ã¯ãããŸããããæåã®ãã³ã±ãŒãã«ãšã£ãŠã¯æªããããŸããã æ倧96ïŒ ã®ç²ŸåºŠåäžã®å¯èœæ§ããããŸãã
Caffeãã¬ãŒã ã¯ãŒã¯ã®ãããã§ããã£ãŒãã©ãŒãã³ã°ã«æ²¡é ããŠãããã»ã©é£ãããããŸããã ããã€ãã®æ§æãã¡ã€ã«ãäœæãã1ã€ã®ã³ãã³ãã§åŠç¿ããã»ã¹ãéå§ããã ãã§ååã§ãã ãã¡ããã人工ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®çè«ã®åºç€ç¥èãå¿ èŠã§ãã ãã®èšäºã®ã¯ã€ãã¯ã¹ã¿ãŒãã®ããã«ãïŒè³æãžã®ãªã³ã¯ã®åœ¢ã§ïŒãããšãã®ä»ã®æ å ±ãæäŸããããšããŸããã