Optimización de hiperparámetros en Deep Learning

Contenido del Bootcamp Dirigido por: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La optimización de hiperparámetros en Deep Learning es de suma importancia en el manejo de los macrodatos, puesto que a partir de este se llevan a cabo dos de los procesos más utilizados para el manejo de redes neuronales profundas: el learning rate y el batch size.

Por este motivo, contar con este tipo de herramientas para el manejo de los macrodatos se presenta como una gran ventaja dentro del campo del Deep Learning. A continuación, en este post, te compartimos cómo funciona la optimización de hiperparámetros en Deep Learning, de manera que aprendas a hacerlo parte de tu análisis del Big Data.

Optimización de hiperparámetros en Deep Learning

La optimización de hiperparámetros en Deep Learning hace referencia a la serie de cálculos que se desarrollan en el análisis de redes neuronales profundas. En efecto, de entre todos los hiperparámetros, el learning rate y el batch size son dos parámetros directamente relacionados con el algoritmo del gradient descent.

A continuación, vamos a explicar todos los hiperparámetros que influyen en el entrenamiento de una red neuronal y cómo afectan en la optimización de hiperparámetros en Deep Learning.

Learning rate

La forma de actualizar los pesos es mediante estas fórmulas:

Optimización de hiperparámetros en Deep Learning

Lo que multiplica al ∂Etotal∂wn, llamado η, es el learning rate, que es lo que indica la importancia que le damos al error para actualizar cada peso, es decir, la rapidez o cómo de abruptos son los cambios en los pesos.

Así, un η muy alto, hará que los cambios en los pesos sean muy grandes de una iteración a otra, lo que tiene el problema de que podemos llegar a saltarnos nuestro mínimo.

Puedes verlo mejor con la siguiente imagen:

Optimización de hiperparámetros en Deep Learning

Batch size

Vamos a ver ahora qué es el batch size. Para ello, debes recordar a lo que hace referencia el Stochastic Gradient Descent y el Mini-batch Stochastic Gradient Descent:

  • El SGD es un Mini-bacth SGD donde k=1.
  • En el Mini-bacth SGD, la k indica el número de muestras que se utilizan para actualizar los pesos cada vez. Realmente, este no es un parámetro crítico y se suele establecer como el número máximo de muestras potencia de 2 que caben en nuestra GPU.

Ahora, te ponemos una serie de ejemplos sobre la optimización de hiperparámetros en Deep Learning con Batch Size para que lo comprendas mejor.

Imagina que tenemos una GPU con 8GB de memoria, ¿cuántas muestras nos caben si cada imagen ocupa 1MB? Resulta que depende de la arquitectura de la red. Las capas densas o Fully Connected, que son las tradicionales en las que todas las neuronas se interconectan con todas las neuronas de la siguiente capa, son las que más parámetros tienen y, por consiguiente, las que más memoria ocupan.

Por otra parte, también tenemos capas convolucionales, de pooling, de dropout y de muchos otros tipos. Así que, en la práctica, es difícil calcular a mano cuál es el número máximo de muestras que podemos usar.

Lo que se hace es probar con tamaños de batch potencia de 2 e ir disminuyéndolo si tenemos un error de memoria. Por ejemplo, podríamos empezar con 512, y si nos da error, ir bajando a 256, 128, 64, 32, 16, 8, 4, 2 e, incluso, a 1. Dependiendo de la arquitectura de nuestra red, puede llegar a pasarnos que tengamos que usar k=1, y por tanto, Stochastic Gradient Descent.

Aunque muchas veces es preferible disminuir el tamaño de la imagen, por ejemplo, de 512×512 a 256×256 o 128×128 píxeles, y usar un k mayor.

Por ejemplo, podríamos tener que usar k=1 con imágenes de 512×512 y la arquitectura DenseNet. No habría ningún problema, simplemente tardaríamos más tiempo en llegar a una solución adecuada.

¿Cuál es el siguiente paso del Big Data?

En este post, te hemos presentado cómo funciona la optimización de hiperparámetros en Deep Learning; sin embargo, este tipo de campo que manipula las redes neuronales para el manejo del Big Data es muchísimo más amplio. Por esta razón, te recordamos que esta es solo la punta de un gran iceberg y que hace falta mucho más estudio al respecto para llegar a dominarlo.

Desde KeepCoding, te aconsejamos nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. Gracias a él, aprenderás lo que todo buen data scientist tiene saber para destacar dentro del sector tecnológico. Te formaremos en herramientas y lenguajes imprescindibles, como este proceso de optimización de hiperparámetros en Deep Learning, al tiempo que te daremos una buena base de estadística, álgebra, cálculo y geometría, que también son indispensables. Además, durante todo el tiempo que estás en el bootcamp, en exclusiva, podrás acceder sin ningún límite a nuestros webinars, cursos y materiales extra en nuestra plataforma online. ¡Échale un vistazo a nuestro temario e inscríbete pronto!

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado