abril 22, 2022 10:00 am

Jesús

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:

  • Clasificación de imágenes.
  • Detección de objetos.
  • Reconocimiento facial.
  • OCR.
  • Segmentación de objetos.
  • Conducción autónoma.
  • … y un grán etcétera.

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:

  1. 1
    Un conjunto de datos.
  2. 2
    Una función de pérdida.
  3. 3
    Una arquitectura.
  4. 4
    Un 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:

  • Distribución.
  • Método de recolección.
  • Calidad.
  • Número de muestras.

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:

  • Tamaño de nuestro conjunto de datos.
  • Número de clases.
  • Similitud entre las clases.
  • Variación intraclase (por ejemplo, razas de perros).

También el tipo de problema influye:

  • Para series de tiempo, texto y data secuencial típicamente usaremos RNNs, LSTMs o CNNs unidimensionales o tridimensionales.
  • Para clasificación de imágenes, CNNs.
  • Para segmentación de imágenes, U-Net.
  • … etcétera.

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:

  1. 1
    Un conjunto de datos.
  2. 2
    Una función de pérdida.
  3. 3
    Una arquitectura.
  4. 4
    Un 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!

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.