Discusión sobre el artículo "Neuroredes profundas (Parte V). Optimización bayesiana de los hiperparámetros de las DNN" - página 3
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Para el Bayesiano, hay que jugar no sólo con el número de pases, sino también con el número de puntos. Hay que buscar una opción más rápida. Esto es muy tedioso
Para acelerarlo, añade a los parámetros al llamar a BayesianOptimisation
maxit = 1 #1 en lugar de 100 - número de repeticiones para GP_fit para la predicción de hiperplanos
No noté ninguna mejora con 100 repeticiones en comparación con 1, así que ahora uso 1.
Ie.
maxit=1 vía ... se pasará a GPfit:: GP_fit y la optimización se ejecutará 1 vez en lugar de 100.
También puedes pasar:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - de 200*d selecciona 80*d mejores y construye 2*d clusters - donde d es el número de parámetros a optimizar.
Descripción de estos parámetros aquí https://github.com/cran/GPfit/blob/master/R/GP_fit.R
PS. ¿No cambias a TensorFlow? Es sólo un nivel superior.
Aunque Darch tiene poco soporte, han corregido y mejorado algunas cosas, pero en enero lo mandaron de CRAN al archivo por no arreglar errores (había uno con error de evaluación en modo entrenamiento con validación). En mayo sacaron la versión 13, pero luego volvieron a la 12. Ahora la versión 13 ha aparecido de nuevo - aparentemente ha sido terminada.
Para acelerar las cosas, añada a los parámetros al llamar a BayesianOptimisation
maxit = 1 #1 en lugar de 100 - número de repeticiones para GP_fit para la predicción del hiperplano
maxit=1 vía ... se pasará a GPfit:: GP_fit y la optimización se ejecutará 1 vez en lugar de 100.No noté ninguna mejora en 100 repeticiones en comparación con 1, así que uso 1.
Ie.
También puedes pasar:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - elige 80*d mejor de 200*d y construye 2*d clusters - donde d es el número de parámetros a optimizar
Sí, parece que funciona con Darch 30% en entrenamiento y 36% en test. Terminaré el EA, lo pondré a trabajar, y entonces quizás lo haga.
Aunque Darch tiene poco soporte, han corregido y mejorado algunas cosas, pero en enero lo mandaron de CRAN al archivo por no corregir errores (había uno con la estimación de errores en modo entrenamiento con validación). En mayo sacaron la versión 13, pero luego volvieron a la 12. Ahora la versión 13 ha aparecido de nuevo - aparentemente la han terminado.
Gracias por la información. Probaré con tus parámetros.
Hace tiempo que no los visito en Github. Tendré que escribir una propuesta. El paquete darch proporciona el uso de GPU, pero quitaron el paquete que usan para esto de CRAN (para 3.4.4). Y sería interesante ver cómo afectaría la GPU a la velocidad y la calidad.
Suerte
Hay otro freno aquí
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
También puse maxit = 1 en lugar de 100.
A través de ... no se puede pasar, puede simplemente cargar su función Utility_Max en R y utilizar la versión corregida.
Otro retrasado aquí
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
También puse maxit = 1 en lugar de 100.
A través de ... no se puede pasar, puede simplemente cargar su función Utility_Max en R y utilizar la versión corregida.
Lo he comprobado en la optimización del conjunto de redes neuronales del artículo PartVI. Ni maxit ni control tiene un efecto visible en el tiempo de computación. La mayor influencia es el número de neuronas en la capa oculta. Lo dejé así
OPT_Res <- BayesianOptimization(fitnes, bounds = bonds, init_grid_dt = NULL, init_points = 20, n_iter = 20, acq = "ucb", kappa = 2.576, eps = 0.0, verbose = TRUE, maxit = 100, control = c(100, 50, 8)) elapsed = 14.42 Round = 1 numFeature = 9.0000 r = 7.0000 nh = 36.0000 fact = 9.0000 Value = 0.7530 elapsed = 42.94 Round = 2 numFeature = 4.0000 r = 8.0000 nh = 46.0000 fact = 6.0000 Value = 0.7450 elapsed = 9.50 Round = 3 numFeature = 11.0000 r = 5.0000 nh = 19.0000 fact = 5.0000 Value = 0.7580 elapsed = 14.17 Round = 4 numFeature = 10.0000 r = 4.0000 nh = 35.0000 fact = 4.0000 Value = 0.7480 elapsed = 12.36 Round = 5 numFeature = 8.0000 r = 4.0000 nh = 23.0000 fact = 6.0000 Value = 0.7450 elapsed = 25.61 Round = 6 numFeature = 12.0000 r = 8.0000 nh = 44.0000 fact = 7.0000 Value = 0.7490 elapsed = 8.03 Round = 7 numFeature = 12.0000 r = 9.0000 nh = 9.0000 fact = 2.0000 Value = 0.7470 elapsed = 14.24 Round = 8 numFeature = 8.0000 r = 4.0000 nh = 45.0000 fact = 2.0000 Value = 0.7620 elapsed = 9.05 Round = 9 numFeature = 7.0000 r = 8.0000 nh = 20.0000 fact = 10.0000 Value = 0.7390 elapsed = 17.53 Round = 10 numFeature = 12.0000 r = 9.0000 nh = 20.0000 fact = 6.0000 Value = 0.7410 elapsed = 4.77 Round = 11 numFeature = 9.0000 r = 2.0000 nh = 7.0000 fact = 2.0000 Value = 0.7570 elapsed = 8.87 Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 elapsed = 14.16 Round = 13 numFeature = 8.0000 r = 6.0000 nh = 41.0000 fact = 10.0000 Value = 0.7390 elapsed = 21.61 Round = 14 numFeature = 9.0000 r = 6.0000 nh = 47.0000 fact = 7.0000 Value = 0.7620 elapsed = 5.14 Round = 15 numFeature = 13.0000 r = 3.0000 nh = 3.0000 fact = 5.0000 Value = 0.7260 elapsed = 5.66 Round = 16 numFeature = 6.0000 r = 9.0000 nh = 1.0000 fact = 9.0000 Value = 0.7090 elapsed = 7.26 Round = 17 numFeature = 9.0000 r = 2.0000 nh = 25.0000 fact = 1.0000 Value = 0.7550 elapsed = 32.09 Round = 18 numFeature = 11.0000 r = 7.0000 nh = 38.0000 fact = 6.0000 Value = 0.7600 elapsed = 17.18 Round = 19 numFeature = 5.0000 r = 3.0000 nh = 46.0000 fact = 6.0000 Value = 0.7500 elapsed = 11.08 Round = 20 numFeature = 6.0000 r = 4.0000 nh = 20.0000 fact = 6.0000 Value = 0.7590 elapsed = 4.47 Round = 21 numFeature = 6.0000 r = 2.0000 nh = 4.0000 fact = 2.0000 Value = 0.7390 elapsed = 5.27 Round = 22 numFeature = 6.0000 r = 2.0000 nh = 21.0000 fact = 10.0000 Value = 0.7520 elapsed = 7.96 Round = 23 numFeature = 7.0000 r = 1.0000 nh = 41.0000 fact = 7.0000 Value = 0.7730 elapsed = 12.31 Round = 24 numFeature = 7.0000 r = 3.0000 nh = 41.0000 fact = 3.0000 Value = 0.7730 elapsed = 7.64 Round = 25 numFeature = 8.0000 r = 4.0000 nh = 16.0000 fact = 7.0000 Value = 0.7420 elapsed = 6.24 Round = 26 numFeature = 13.0000 r = 5.0000 nh = 6.0000 fact = 1.0000 Value = 0.7600 elapsed = 8.41 Round = 27 numFeature = 11.0000 r = 8.0000 nh = 8.0000 fact = 7.0000 Value = 0.7420 elapsed = 8.48 Round = 28 numFeature = 6.0000 r = 7.0000 nh = 15.0000 fact = 2.0000 Value = 0.7580 elapsed = 10.11 Round = 29 numFeature = 12.0000 r = 6.0000 nh = 17.0000 fact = 4.0000 Value = 0.7310 elapsed = 6.03 Round = 30 numFeature = 8.0000 r = 3.0000 nh = 12.0000 fact = 1.0000 Value = 0.7540 elapsed = 8.58 Round = 31 numFeature = 13.0000 r = 5.0000 nh = 18.0000 fact = 2.0000 Value = 0.7300 elapsed = 6.78 Round = 32 numFeature = 13.0000 r = 2.0000 nh = 15.0000 fact = 8.0000 Value = 0.7320 elapsed = 9.54 Round = 33 numFeature = 10.0000 r = 3.0000 nh = 37.0000 fact = 9.0000 Value = 0.7420 elapsed = 8.19 Round = 34 numFeature = 6.0000 r = 1.0000 nh = 42.0000 fact = 3.0000 Value = 0.7630 elapsed = 12.34 Round = 35 numFeature = 7.0000 r = 2.0000 nh = 43.0000 fact = 8.0000 Value = 0.7570 elapsed = 20.47 Round = 36 numFeature = 7.0000 r = 8.0000 nh = 39.0000 fact = 2.0000 Value = 0.7670 elapsed = 11.51 Round = 37 numFeature = 5.0000 r = 9.0000 nh = 18.0000 fact = 3.0000 Value = 0.7540 elapsed = 32.71 Round = 38 numFeature = 7.0000 r = 7.0000 nh = 40.0000 fact = 6.0000 Value = 0.7540 elapsed = 28.33 Round = 39 numFeature = 7.0000 r = 9.0000 nh = 38.0000 fact = 5.0000 Value = 0.7550 elapsed = 22.87 Round = 40 numFeature = 12.0000 r = 6.0000 nh = 48.0000 fact = 3.0000 Value = 0.7580 Best Parameters Found: Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 maxit = 100, control = c(100, 50, 8))Mejor 10
Valor - F1 promedio. No es un mal rendimiento.
Para acelerar los cálculos, tenemos que reescribir algunas funciones del paquete. Lo primero es sustituir todas las funciones ncol(), nrow(), que son muchas, por dim()[1], dim()[2]. Se ejecutan decenas de veces más rápido. Y probablemente, ya que sólo hay operaciones matriciales, usar la GPU (paquete gpuR). No voy a ser capaz de hacerlo yo mismo, ¿puedo sugerir al desarrollador?
Suerte
Lo he comprobado en la optimización del conjunto de redes neuronales del documento PartVI. Ni maxit ni control tienen un tiempo de ejecución visible. La mayor influencia es el número de neuronas en la capa oculta. Lo dejé así
Mejor 10
Valor - F1 medio. No es una mala actuación.
Para acelerar los cálculos, tenemos que reescribir algunas funciones del paquete. Lo primero es sustituir todas las funciones ncol(), nrow() por dim()[1], dim()[2]. Se ejecutan decenas de veces más rápido. Y probablemente, ya que sólo hay operaciones matriciales, usar la GPU (paquete gpuR). No podré hacerlo yo mismo, ¿puedo sugerírselo al desarrollador?
Suerte
Sólo optimizar algunos parámetros, he optimizado 20 piezas, y cuando los puntos conocidos se convierten en 20-40 piezas, a continuación, el cálculo de sólo GPfit tomó decenas de minutos, en tales condiciones, verá la aceleración.
Y el número de neuronas afecta sólo el tiempo de cálculo de la propia NS.
Sólo optimizar algunos parámetros, he optimizado 20 piezas, y cuando los puntos conocidos se convierten en 20-40 piezas, a continuación, el cálculo de sólo GPfit tomó decenas de minutos, en tales condiciones se verá la aceleración.
Y el número de neuronas afecta sólo el tiempo de cálculo de la propia NS.
Supongo que sí.
Nuevo artículo Deep Neural Networks (Part V). Bayesian optimization of DNN hyperparameters ha sido publicado:
Autor: Vladimir Perervenko