Translate

2019년 5월 8일 수요일

R을 이용한 딥러닝 (2)



 앞서 포스트에서 데이터를 잘 만들었다면 이를 저장한 후 다시 불러들이면 되겠지만, 혹시 잘 안되시는 경우를 위해 파일을 별도로 올렸습니다. 압축을 풀면 MNIST_train1.csv, MNIST_test1.csv 두 개의 파일이 나오는데 각각 데이터 갯수를 6000개와 1000개로 줄인 것으로 학습 능력은 그만큼 떨어지는 대신 시간은 훨씬 짧게 걸립니다. 만약 전체 6만개와 1만개 파일을 이용해서 실습을 하는 경우 한 번 돌리는데 몇 시간이 필요한 경우가 생겨 실제로는 예제를 연습하기가 쉽지 않습니다. 그래서 파일을 10% 정도로 줄인 것입니다. 


 일단 파일이 준비되면 H2O 라이브러리를 불러들이고 local H2O를 시작합니다. 자원 할당은 시스템 사양에 따라 달라지겠지만, 저는 컴퓨터 논리 CPU의 절반인 8개를 할당했습니다. 각자 사양에 맞춰 진행하면 될 것 같습니다. 


library(h2o)

localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE,min_mem_size = "10G",nthreads = 8)

trainfile = "H:/data/deeplearning/MNIST_train1.csv"
train = h2o.importFile(path = trainfile,sep=",")

testfile = "H:/data/deeplearning/MNIST_test1.csv"
test = h2o.importFile(path = testfile,sep=",")


 이제 실제 학습을 진행해 보겠습니다. 


# To see a brief summary of the data, run the following command
summary(train)
summary(test)

y <- span="">
x <- names="" setdiff="" span="" train="" y="">

# We encode the response column as categorical for multinomial
#classification
train[,y] <- as.factor="" span="" train="" y="">
test[,y] <- as.factor="" span="" test="" y="">

# Train a Deep Learning model and valid

  model_cv <- h2o.deeplearning="" x="1:784,</span">
                               y = 785,
                               training_frame = train,
                               activation = "RectifierWithDropout",
                               hidden =  c(800,200,800),
                               input_dropout_ratio = 0.2,
                               l1 = 1e-5,
                               epochs = 200)

  model_cv


 여기서 뉴런은 800/200/800개로 된 딥러닝 모델을 만들었는데, 훈련 자료만 입력해서 일단 학습을 시켜봤습니다. epochs는 몇 회 학습을 할 것인지를 결정하는 옵션으로 hidden의 신경망과 더불어 학습 시간을 좌우하는 중요 옵션이니 잘 활용할 필요가 있습니다. 비슷한 결과라면 당연히 시간이 짧은 편이 유리합니다. 제대로 진행됐다면 아래와 비슷한 결과물이 출력될 것입니다. 





> # Train a Deep Learning model and valid
>   model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(800,200,800),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 200)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_1 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 849,801 weights/biases, 9.8 MB, 603,562 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   800 RectifierDropout 50.00 % 0.000010 0.000000  0.171791 0.260461 0.000000    0.005984   0.040483  0.213295 0.083011
3     3   200 RectifierDropout 50.00 % 0.000010 0.000000  0.010684 0.010028 0.000000   -0.010907   0.049532  0.918480 0.064619
4     4   800 RectifierDropout 50.00 % 0.000010 0.000000  0.043320 0.028553 0.000000   -0.019463   0.049687  0.373009 0.177849
5     5     1           Linear      NA 0.000010 0.000000  0.002385 0.000937 0.000000    0.000776   0.024837 -0.164671 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  0.2040526
RMSE:  0.4517218
MAE:  0.3310534
RMSLE:  0.0947054
Mean Residual Deviance :  0.2040526


 
 이 경우 모델에 대해서 주는 정보가 앞서 봤던 지표인 MSE. RMSE 이외에 MAE (mean absolute error)와 RMSLE (root mean squared log error)가 있는데 당연히 이것이 작을 수록 에러가 적다는 의미이기 때문에 더 좋은 모델이 됩니다. 참고로 위의 수치는 시드값을 주지 않는 이상 할 때마다 조금씩 달라질 수 있다는 점을 알아야 합니다. DNN 역시 우리와 마찬가지로 공부할 때마다 조금씩 다른 결과를 보여줄 수 있습니다. 비록 거의 비슷하긴 하지만 말이죠. 여기서 뉴런을 더 딥하게 만들어 4개의 층을 만들어 보겠습니다. 


 참고로 웹브라우저 상에서도 http://localhost:54321로 결과를 볼 수 있습니다. getmodel로 들어가 모델들을 확인할 수 있습니다. 






> model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(800,200,200,800),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 200)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_2 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 890,001 weights/biases, 10.3 MB, 601,758 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   800 RectifierDropout 50.00 % 0.000010 0.000000  0.144651 0.231371 0.000000    0.006540   0.039000  0.307433 0.061740
3     3   200 RectifierDropout 50.00 % 0.000010 0.000000  0.008937 0.007291 0.000000   -0.008280   0.049811  0.952130 0.041575
4     4   200 RectifierDropout 50.00 % 0.000010 0.000000  0.015841 0.013679 0.000000   -0.018627   0.072190  0.737129 0.079147
5     5   800 RectifierDropout 50.00 % 0.000010 0.000000  0.069895 0.045053 0.000000   -0.022287   0.048712  0.720120 0.096289
6     6     1           Linear      NA 0.000010 0.000000  0.001392 0.000391 0.000000   -0.002196   0.015756  0.215260 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  0.2291781
RMSE:  0.4787255
MAE:  0.3190679
RMSLE:  0.1753631
Mean Residual Deviance :  0.2291781


 
 MSE/RMSE/MAE/RMSLE를 보면 오히려 약간 늘어났다는 사실을 알 수 있습니다. 더 깊은 모델이 더 좋은 결과를 보여주지 않은 것이죠. 더 얕은 모델은 어떨까요? 


> model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(800,800),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 200)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_3 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 1,169,601 weights/biases, 13.5 MB, 768,000 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   800 RectifierDropout 50.00 % 0.000010 0.000000  0.166924 0.257318 0.000000    0.006099   0.043079  0.036390 0.085338
3     3   800 RectifierDropout 50.00 % 0.000010 0.000000  0.029768 0.020146 0.000000   -0.010178   0.041947  0.977375 0.076209
4     4     1           Linear      NA 0.000010 0.000000  0.000833 0.000401 0.000000   -0.000158   0.023762  0.112036 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  0.206431
RMSE:  0.4543467
MAE:  0.315353
RMSLE:  NaN
Mean Residual Deviance :  0.206431


 생각보다 큰 차이가 있지는 않습니다. 여기서 epoch를 늘려보면 어떨까요?  


> model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(800,800),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 300)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_4 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 1,169,601 weights/biases, 13.5 MB, 1,072,201 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   800 RectifierDropout 50.00 % 0.000010 0.000000  0.183996 0.275787 0.000000    0.005372   0.042287 -0.121058 0.098303
3     3   800 RectifierDropout 50.00 % 0.000010 0.000000  0.033856 0.020338 0.000000   -0.011571   0.044719  0.998392 0.103063
4     4     1           Linear      NA 0.000010 0.000000  0.000928 0.000425 0.000000    0.000717   0.024313  0.107939 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  0.3171086
RMSE:  0.5631239
MAE:  0.4387138
RMSLE:  NaN
Mean Residual Deviance :  0.3171086

 

 되려 별로 결과가 좋지 않습니다. 이번에는 오토인코더와 비슷한 모델을 사용해보겠습니다. 기본적인 아이디어는 모래 시계처럼 중간이 잘록한 형태의 신경망을 만들어 입력 신호를 다시 복원하는 것입니다. 여기서는 400/200/2/200/400의 신경망을 만들어 보겠습니다. 

# autoencoder


> model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(400, 200, 2, 200, 400),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 200)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_5 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 426,003 weights/biases, 5.0 MB, 1,080,000 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   400 RectifierDropout 50.00 % 0.000010 0.000000  0.117370 0.212231 0.000000    0.010417   0.054571  0.119259 0.110808
3     3   200 RectifierDropout 50.00 % 0.000010 0.000000  0.009224 0.009703 0.000000   -0.018213   0.067514  1.006075 0.091013
4     4     2 RectifierDropout 50.00 % 0.000010 0.000000  0.001595 0.001157 0.000000    0.017373   0.141770  1.912306 0.232235
5     5   200 RectifierDropout 50.00 % 0.000010 0.000000  0.041396 0.188829 0.000000   -0.145912   0.147096  0.834432 0.844081
6     6   400 RectifierDropout 50.00 % 0.000010 0.000000  0.080982 0.110674 0.000000   -0.029381   0.073252  0.869751 0.098928
7     7     1           Linear      NA 0.000010 0.000000  0.002397 0.001085 0.000000    0.005996   0.029974 -0.073048 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  2.45604
RMSE:  1.567176
MAE:  1.434909
RMSLE:  0.475296
Mean Residual Deviance :  2.45604


 되려 훨씬 좋지 않은 결과가 나왔습니다. epoch를 600으로 늘리면 이것보다는 좋지만 그래도 여전히 좋지 않은 결과가 나옵니다.  


> model_cv <- h2o.deeplearning="" x="1:784,</p">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(400, 200, 2, 200, 400),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 600)
  |===========================================================================================================================================================| 100%
Warning message:
In .h2o.startModelJob(algo, params, h2oRestApiVersion) :
  Dropping bad and constant columns: [x.88, x.87, x.86, x.85, x.84, x.83, x.82, x.760, x.365, x.761, x.762, x.116, x.754, x.755, x.756, x.757, x.758, x.759, x.197, x.110, x.111, x.112, x.113, x.114, x.477, x.115, x.753, x.589, x.505, x.1, x.3, x.2, x.5, x.4, x.7, x.23, x.6, x.22, x.21, x.20, x.141, x.142, x.780, x.29, x.143, x.781, x.28, x.782, x.27, x.783, x.26, x.421, x.784, x.25, x.24, x.776, x.777, x.778, x.779, x.19, x.18, x.253, x.770, x.17, x.771, x.16, x.772, x.15, x.773, x.14, x.774, x.13, x.533, x.775, x.644, x.645, x.646, x.769, x.44, x.281, x.561, x.49, x.169, x.34, x.33, x.32, x.31, x.30, x.393, x.672, x.673, x.674, x.35, x.700, x.701, x.702, x.703, x.309, x.61, x.60, x.225, x.699, x.732, x.337, x.733, x.616, x.617, x.618, x.56, x.55, x.54, x.53, x.52, x.51, x.50, x.59, x.58, x.730, x.57, x.731, x.449, x.726, x.727, x.728, x.729].

>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1556977766669_6 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 426,003 weights/biases, 5.0 MB, 640,914 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2   400 RectifierDropout 50.00 % 0.000010 0.000000  0.100174 0.195964 0.000000    0.009572   0.052189  0.287158 0.102086
3     3   200 RectifierDropout 50.00 % 0.000010 0.000000  0.010017 0.014022 0.000000   -0.013692   0.068543  0.989972 0.060553
4     4     2 RectifierDropout 50.00 % 0.000010 0.000000  0.001219 0.000811 0.000000    0.021628   0.123249  1.747016 0.023651
5     5   200 RectifierDropout 50.00 % 0.000010 0.000000  0.004834 0.002778 0.000000   -0.116279   0.121237  0.857649 0.158484
6     6   400 RectifierDropout 50.00 % 0.000010 0.000000  0.049192 0.040026 0.000000   -0.023362   0.069099  0.899582 0.065283
7     7     1           Linear      NA 0.000010 0.000000  0.001488 0.000682 0.000000   -0.004557   0.027621  0.071537 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  1.984534
RMSE:  1.408735
MAE:  1.230678
RMSLE:  0.3468884
Mean Residual Deviance :  1.984534


 여러 가지 방법으로 모델을 만들고 비교할 수 있지만, autoML 같은 방법을 쓸 경우 데이터의 양이 많고 신경망의 갯수가 많을 수밖에 없어 상당한 시간이 필요하게 됩니다. 아무튼 H2O를 통해 간단한 딥러닝 모델을 구현해 봤습니다. 


 참고로 1000/100/1000 으로 모델을 만들어 보니 생각보다 좋은 결과가 나왔습니다. 시간도 아주 길지 않아서 괜찮은 듯 합니다. 다음에 계속해 보겠습니다. 


> model_cv <- h2o.deeplearning="" x="1:784,</span">
+                                y = 785,
+                                training_frame = train,
+                                activation = "RectifierWithDropout",
+                                hidden =  c(1000,100,1000),
+                                input_dropout_ratio = 0.2,
+                                l1 = 1e-5,
+                                epochs = 600)
  |============================================================================================================================================================| 100%


>   model_cv
Model Details:
==============

H2ORegressionModel: deeplearning
Model ID:  DeepLearning_model_R_1557063486636_5 
Status of Neuron Layers: predicting y, regression, gaussian distribution, Quadratic loss, 862,101 weights/biases, 10.0 MB, 1,001,489 training samples, mini-batch size 1
  layer units             type dropout       l1       l2 mean_rate rate_rms momentum mean_weight weight_rms mean_bias bias_rms
1     1   659            Input 20.00 %       NA       NA        NA       NA       NA          NA         NA        NA       NA
2     2  1000 RectifierDropout 50.00 % 0.000010 0.000000  0.177852 0.258550 0.000000    0.005795   0.036106  0.138419 0.094516
3     3   100 RectifierDropout 50.00 % 0.000010 0.000000  0.006789 0.007701 0.000000   -0.010645   0.049678  0.909954 0.070663
4     4  1000 RectifierDropout 50.00 % 0.000010 0.000000  0.033034 0.025869 0.000000   -0.028907   0.050627  0.211962 0.141360
5     5     1           Linear      NA 0.000010 0.000000  0.004257 0.001843 0.000000    0.006635   0.029327 -0.483303 0.000000


H2ORegressionMetrics: deeplearning
** Reported on training data. **
** Metrics reported on full training frame **

MSE:  0.07880728
RMSE:  0.2807264
MAE:  0.1910654
RMSLE:  0.08748502


Mean Residual Deviance :  0.07880728

댓글 없음:

댓글 쓰기