No es un secreto para ningún practicante de computer vision, particularmente en 2022, que los avances más trascendentales en el área han venido de la mano del deep learning.
Las redes neuronales profundas han revolucionado todas las áreas de computer vision, tales como:
Es por ese motivo que en este artículo nos dedicaremos a resaltar cuáles son los cuatro elementos, ingredientes o componentes básicos que debemos tomar en cuenta al momento de entrenar una red neuronal.
Después de todo, una casa se construye desde las bases, y lo mismo aplica para nuestro conocimiento.
¡Empecemos!
Los Cuatro Elementos Clave al Entrenar una Red Neuronal
Si entrenar una red fuese el equivalente a hornear un pastel, los ingredientes mínimos necesarios para cocinarlo serían los siguientes:
- 1Un conjunto de datos.
- 2Una función de pérdida.
- 3Una arquitectura.
- 4Un método de optimización.
A continuación ahondaremos en cada uno de estos puntos.
Conjunto de Datos
Por supuesto, hay que empezar por el principio (¡Doh!): Los datos.
Como bien sabemos, las redes neuronales, en su mayoría, son algoritmos de aprendizaje supervisado, lo que significa que su aprendizaje viene de detectar patrones en un conjunto grande de datos.
De manera más concreta, los datos deben estar etiquetados para que la red, paulatinamente, vaya aprendiendo a relacionar ciertas características con tales etiquetas.
Por ejemplo, si queremos entrenar un clasificador de perros y gatos, nuestro conjunto de datos estaría compuesto por montones de imágenes de tales animales, donde indicamos cuáles contienen perros y cuáles gatos.
Vale destacar que en un contexto profesional, rara vez tenemos control sobre los datos, especialmente cuando nos referimos a:
Es nuestro trabajo como expertos el entrenar un modelo que se desempeñe lo mejor posible, a pesar de las condiciones (posiblemente) poco ideales de los datos a nuestra disposición.
Función de Pérdida
Si los datos constituyen la fuente de conocimiento de nuestro modelo, la función de pérdida es la vara que usamos para medir su progreso.
La función de pérdida mide qué tan lejos están las predicciones de la red de la verdad; la distancia entre ambas, como habrás adivinado, se denomina pérdida.
Así, a medida que la red aprende, la pérdida debería aproximarse a cero.
Dependiendo del tipo de problema (clasificación binaria, clasificación múltiple, regresión, etcétera), contamos con diversas funciones de pérdida, como cross-entropy, binary cross-entropy, MSE, MAE, entre muchas otras.
Arquitectura
La arquitectura de una red es donde la mayor parte de nuestro poder de decisión residirá, ya que el 99% de las veces los datos nos serán dados (no tendremos ni voz ni voto en cómo fueron recopilados), y la función de pérdida será una de un conjunto reducido de opciones.
Sin embargo, la arquitectura de una red puede influir drásticamente en la calidad del modelo final. También dependiendo del tipo de problema que busquemos resolver, tendremos que optar por diseños más sofisticados.
Algunos de los factores que nos ayudarán a diseñar nuestra arquitectura son:
También el tipo de problema influye:
Método de Optimización
El elemento final en nuestra receta es el algoritmo de optimización.
Típicamente, utilizaremos Stochastic Gradient Descent (SGD), Adam o RMSprop.
El algoritmo de optimización es fundamental, puesto que es el que se encarga de llevar a cabo el aprendizaje como tal, ya que su labor es ajustar los parámetros de la red para reducir la pérdida.
Junto con la arquitectura, la escogencia del optimizador es donde pasaremos la mayor parte de nuestro tiempo experimentando, probando hipótesis, nuevos diseños e ideas.
Solo con el tiempo lograremos desarrollar un instinto, un olfato lo suficientemente agudo como para dar con la combinación correcta en menos tiempo.
Resumen
El día de hoy hablamos sobre los cuatro elementos fundamentales para entrenar una red neuronal independientemente del contexto:
- 1Un conjunto de datos.
- 2Una función de pérdida.
- 3Una arquitectura.
- 4Un método de optimización.
La combinación apropiada de estos cuatro ingredientes es lo que nos da acceso al incomparable poder de deep learning.
No obstante, así como un maestro pastelero tiene que dedicar cientos, e incluso miles de horas a su arte para eventualmente hornear el postre perfecto, nosotros también tendremos que experimentar muchísimas veces para poder desarrollar nuestros superpoderes como practicantes de deep learning.
¡Hasta la próxima!