¿Por qué los modelos de Machine Learning no funcionan?

Cuando estamos estudiando Machine Learning es normal implementar y probar los proyectos típicos que se presentan cuando se va aprendiendo. Acá todo funciona bien. Sin embargo, en escenarios de la vida real, cuando te toca implementar Machine Learning con datos reales los resultados que se obtienen no tienen sentido y es posible que no estés seguro de cuál sea el problema.

Por lo tanto, acá, te quiero explicar tres componentes que deben ser proporcionales entre sí para que un modelo de Machine Learning funcione. Estos componentes son la complejidad del problema, la complejidad del modelo y el tamaño de la muestra. Como desarrolladores de Machine Learning, somos responsables de definir e identificar cada uno de los componentes. Definimos un problema claro, identificamos el modelo y decidimos si necesitamos más datos.

Expliquemos cada uno de estos componentes.

Complejidad del problema

En algunos casos, el problema puede no estar claro y es posible que tengamos que definir el problema exacto nosotros mismos. Este es el primer paso y un buen comienzo siempre hace un buen final. Tratar de definir el problema de la manera más sencilla posible y, al mismo tiempo, asegurarse de que resuelva el reto empresarial.

Veamos algunos ejemplos para aclarar este punto:

  • Digamos que te entregan un proyecto de videovigilancia en el que una cámara graba imágenes de una oficina. La tarea es determinar si hay alguien o no. En un primer enfoque podemos definir un algoritmo de detección humano en los datos del vídeo. Un segundo enfoque sería detectar cualquier movimiento en el video ya que sabemos si hay movimiento en la oficina solamente puede ser causado por un ser humano. El segundo enfoque es mucho más simple que el primero y se espera que un modelo más simple dé los resultados deseados.
  • Supongamos que tienes que desarrollar un algoritmo de clasificación de documentos en el que deseas clasificar los contratos realizados por la empresa. El primer enfoque es aplicar un enfoque basado en la visión que tenga en cuenta cada píxel del documento. Otro enfoque es examinar el texto de los documentos, si los documentos incluyen palabras claves se puede realizar la clasificación. La complejidad del problema en el segundo enfoque es mucho menor que la del primero porque el texto es de baja dimensión en comparación con la imagen. Las dimensiones reducidas significan menos flexibilidad y menos complejidad.

La complejidad del problema se refiere a la diversidad de los datos. Por lo tanto, si tenemos un menor número de dimensiones, el problema es menos complejo.

Complejidad del modelo

La complejidad del modelo se puede inferir a partir del número de las características que se deben establecer durante la fase de entrenamiento. Si el modelo incluye un alto número de características en su interior, entonces es más flexible para aprender cosas. A cambio, necesitarás más datos para entrenar el modelo.

Veamos algunos ejemplos:

Se debe tener algún conocimiento de los diferentes algoritmos que se utilizan. Si sabes cómo funciona un algoritmo y tienes alguna idea sobre el número de características y la complejidad del algoritmo. Por lo tanto, no es necesario pasar tiempo alimentando de datos un modelo complejo.

Más adelante veremos algunos consejos sobre el número de muestras basado en el número de características.

Tamaño de la muestra

Este es el componente más importante a considerar cuando se diseña un modelo de Machine Learning. En ocasiones el tamaño de la muestra es demasiado pequeño, pero, aún así, se dedica tiempo a implementar diferentes modelos y parámetros de ajuste. En algunos casos, unos pocos cientos de muestras son suficientes para la formación, mientras que, en otros, el modelo no puede aprender de miles de muestras.

Mirando los tres componentes, explicados anteriormente, ahora es el momento de ver si se tiene suficientes datos para el modelo y problema de Machine Learning.

¿Cuántas muestras se necesitan?

El número correcto de muestras es un problema abierto. Nadie puede decir cuántas muestras se necesitan para entrenar un modelo sin analizar los datos. Esto se basa más en la experiencia. Sin embargo, es muy importante tener una idea del rango correcto. Es posible que te preguntes sobre el número aproximado de muestras que necesites, y puede ser que pienses que sean 100, 10.000 o inclusive 1 millón.

Acá te voy a dar algunos consejos para estimar el número correcto de muestras.

El número de características en el modelo, que representan la complejidad del modelo, no debe ser mayor que el número de muestras. Piensa en un problema de Regresión Lineal Simple en donde tienes 10 características, 9 variables independientes y 1 variable dependiente, y tan solo tienes 8 muestras por cada característica. Este problema sería casi imposible resolver.

Normalmente se sugiere que el número de muestras debería ser al menos diez veces mayor que el número de características. Esto significa que para entrenar un modelo de regresión con 10 características necesitamos al menos 100 muestras. Este número es normalmente dado por experiencia más no hay prueba que esto debe ser cumplirse completamente, ya que por lo general esto depende de las características de los datos.

En nuestro ejemplo, si los datos tienen una característica lineal, podemos entrenar nuestro modelo con menos muestras. Además, si todas las muestras son similares, necesitamos más para tener un modelo más robusto. También hay otros parámetros que contribuyen al número correcto de muestras. Sin embargo, considerando el número de características en el modelo le da una pista sobre el número de muestras que necesitas.

Diferentes escenarios

Basándonos en el estado de cada parámetro, tenemos 8 escenarios diferentes.

Tamaño pequeño de la muestra

Modelo ML no funciona 1

Si el número de muestras es demasiado pequeño, es mejor pensar en un modelo basado en reglas que en un modelo de Machine Learning. En general, con menos de 50 muestras, no utilizamos el modelo de Machine Learning.

Complejidad del modelo, baja. Complejidad del problema, baja. Tamaño de la muestra, pequeña.

Este es el único caso en que puedes obtener un resultado significativo cuando no tienes suficientes datos. Si el problema no es complejo, escoge un modelo simple y entrénalo con esas muestras.

Complejidad del modelo, alta. Complejidad del problema, baja. Tamaño de la muestra, pequeña.

Debes elegir un modelo más simple ya que la complejidad del modelo debe ser proporcional a la complejidad del problema y al tamaño de la muestra. Incluso si obtienes un mayor rendimiento de un modelo muy complejo, un modelo simple funciona mejor para los datos no vistos. La razón es que la evaluación se basa solo en el pequeño número de datos que no son confiables y al ajustar los parámetros del modelo complejo, probablemente se superpone al modelo. El modelo simple sería más robusto en la práctica.

Complejidad del modelo, baja. Complejidad del problema, alta. Tamaño de la muestra, pequeña.

Si es posible, trata de resolver un subproblema o una versión más simple del problema. Por lo menos, puedes lograr un resultado significativo.

Complejidad del modelo, alta. Complejidad del problema, alta. Tamaño de la muestra, pequeña.

Incluso si obtienes una alta precisión, el modelo fallará en una situación del mundo real cuando se trate de datos no vistos.

Tamaño de la muestra grande

Modelo ML no funciona 2

Tener suficientes muestras es clave para crear un buen modelo de Machine Learning. Cabe destacar que las muestras no deben estar sesgadas. De lo contrario, no hay mucha diferencia entre los tamaños de muestras pequeñas y grandes.

Complejidad del modelo, baja. Complejidad del problema, baja. Tamaño de la muestra, grande.

La selección del modelo no es un gran problema con un problema complejo y un gran tamaño de muestra. La mayoría de los modelos de Machine Learning dan un buen resultado.

Complejidad del modelo, alta. Complejidad del problema, baja. Tamaño de la muestra, grande.

Un modelo complejo puede dar un resultado ligeramente mejor en comparación con un modelo típico. Teniendo en cuenta la explicabilidad y el mantenimiento del modelo, puedes optar por utilizar el modelo más sencillo.

Complejidad del modelo, baja. Complejidad del problema, alta. Tamaño de la muestra, grande.

Si te gusta trabajar con los métodos más modelos, este sería una opción adecuada para ti. Elige un modelo complejo, por ejemplo, aprendizaje profundo, y obtendrás un resultado deseable.

Complejidad del modelo, alta. Complejidad del problema, alta. Tamaño de la muestra, grande.

Puedes ver el poder que tiene Machine Learning en estos casos. Acá es en donde obtendrás los mejores resultados.

Recuerda que cada proyecto es diferente y no se puede formular de la misma forma para cada proyecto. No se puede tener una regla para elegir el mejor modelo sin analizar los datos. Sin embargo, en la práctica, es muy importante tener un entendimiento aproximado de cada uno de los componentes discutidos anteriormente. Esto te ayudará a tomar las acciones correctas para arreglar el modelo de Machine Learning cuando no este funcionando.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *