Guía de estructuración de proyectos de Machine Learning

Estructure sus proyectos de aprendizaje automático para crear resultados tangibles y aumentar la eficiencia del equipo

Foto de Samuel Zeller en Unsplash

AI está ahora en la mente de todos. Las empresas establecidas se están interrumpiendo a sí mismas y están haciendo un cambio terriblemente lento para convertirse en organizaciones impulsadas por datos, mientras que las nuevas empresas deben implementar estrategias de datos claras y eficientes para ser relevantes.

grandes empresas, un desafío común sigue siendo: ¿cómo estructurar y administrar un proyecto de aprendizaje automático?

Este artículo ofrece un marco para ayudarlo a administrar un proyecto de aprendizaje automático. Por supuesto, tendrá que adaptarlo a las necesidades específicas de su empresa, pero lo llevará en la dirección correcta.

¿Por qué necesito una estrategia de AI?

Por supuesto, debemos comenzar con por qué . ¿Por qué es importante desarrollar una estrategia de inteligencia artificial dentro de la empresa?

El problema en los proyectos de aprendizaje automático es que hay muchas formas de mejorar el rendimiento del modelo:

  • Recopila más datos
  • Entrena el algoritmo por un tiempo más prolongado
  • Cambie la arquitectura del modelo
  • Obtenga un conjunto de capacitación más diverso

Sin embargo, perseguir una estrategia incorrecta puede resultar en una pérdida importante de tiempo y dinero. Podría pasar seis meses recolectando más datos para capacitación, solo para darse cuenta de que apenas mejoró su modelo. De manera similar, podría entrenar a ciegas su modelo por más tiempo (y pagar por el tiempo de cálculo adicional) y no ver ninguna mejora en absoluto.

De ahí la importancia de una estrategia de IA bien definida. Ayudará a que el equipo sea más eficiente y aumente el ROI de sus proyectos de AI.

Ortogonalización

Los profesionales del aprendizaje automático más efectivos tienen una visión clara de qué ajustar para lograr un mejor resultado.

Ortogonalización se refiere a tener un control con una función muy específica.

Por ejemplo, una silla de oficina tiene una palanca para subirla y bajarla, mientras que las ruedas de la silla hacen que se mueva horizontalmente. En este caso, la palanca es un control con la función de subir y bajar la silla. Las ruedas forman un control con la función de mover la silla horizontalmente.

Por lo tanto, se dice que estos controles son ortogonales : al girar la silla sobre sus ruedas no se bajará, como si se presionara la palanca la silla no hará que se mueva hacia atrás.

El mismo concepto debe aplicarse a los proyectos de aprendizaje automático. Una sola modificación del proyecto debe tener un impacto en un solo aspecto. De lo contrario, mejorará en un área, pero disminuirá el rendimiento en otra, y el proyecto quedará estancado.

¿Cómo se traduce esto en proyectos de IA?

Primero, debemos considerar la cadena de suposiciones en el aprendizaje automático.

Cadena de suposiciones en el aprendizaje automático

Se supone que si el modelo funciona bien en el conjunto de entrenamiento, entonces funcionará bien en el conjunto de desarrollo, entonces funcionará bien en el conjunto de prueba, entonces funcionará bien en el mundo real.

Esta es una lista bastante común de supuestos en todos los proyectos de AI. Ahora, ¿cuál es el modelo que no funciona bien en una de estas situaciones?

  • Conjunto de entrenamiento: entrena una red más grande o cambia el algoritmo de optimización
  • Dev set: usa la regularización o un conjunto de entrenamiento más grande
  • Test set: usa un conjunto de desarrollo más grande
  • Mundo real: cambie la distribución del conjunto de desarrollo (más información más adelante) o cambie la función de costo

La lista anterior ofrece controles ortogonales claros para mejorar el modelo en situaciones muy específicas. Una vez que su modelo tenga un buen desempeño en un conjunto, continúe con su mejora en otro conjunto.

Ahora, ¿cómo sabe si su modelo funciona bien?

Estableciendo un objetivo

Como se describe anteriormente, necesita un objetivo claro para determinar si un modelo está funcionando bien. De ahí la importancia de establecer una métrica de evaluación, así como de satisfacer y optimizar las métricas.

Métrica de evaluación de número único

Tener una métrica de evaluación única permite una evaluación más rápida de un algoritmo.

Por ejemplo, es común Usa la precisión y el recuerdo para un clasificador. Sin embargo, hay una compensación entre estos dos indicadores. En su lugar, utilice la puntuación de F1, que es la media armónica de la precisión y el recuerdo. Por lo tanto, se usa una sola métrica, y es mucho más fácil evaluar la calidad de los diferentes modelos y acelera las iteraciones.

Satisfacer y optimizar las métricas

Una vez que tenga una única métrica de evaluación, es común realizar un seguimiento de otras métricas importantes.

Por ejemplo, es posible que desee crear un clasificador con un puntaje de F1 de al menos 0,90 y un tiempo de ejecución de menos de 200 ms. En este caso, el puntaje de F1 es la métrica de optimización mientras que el tiempo de ejecución es la métrica de satisficing .

Una métrica de optimización generalmente será la misma que su métrica de evaluación, y Sólo debería tener una métrica de optimización. Las otras métricas de interés serán las métricas de satisfacción y le ayudarán a elegir el mejor modelo general que satisfaga la métrica de optimización.

Conjuntos de capacitación, desarrollo y pruebas

Los conjuntos de prueba, desarrollo y desarrollo se mencionaron anteriormente, pero son ¿Exactamente?

Los conjuntos de entrenamiento y desarrollo (o holdout) se utilizan para entrenar un modelo. El conjunto de entrenamiento generalmente se usa para ajustar el modelo a los datos, y el conjunto de desarrollo se usa para hacer predicciones y modificar el modelo.

Luego, el conjunto de prueba es un ejemplo de datos de la vida real en los que se prueba el algoritmo. para ver cómo funcionaría.

Entrene / dev / pruebe distribuciones

Una vez que tenga diferentes conjuntos de datos, debe asegurarse de que la distribución sea representativa de los datos que espera obtener en el futuro.

Por ejemplo Si desea crear un modelo para etiquetar imágenes de cargas móviles, no tiene sentido entrenar el modelo en imágenes de alta resolución de Internet. Es probable que las cargas móviles tengan una resolución más baja, las imágenes pueden ser borrosas y los objetos pueden no estar perfectamente centrados. Por lo tanto, los conjuntos train / dev / test deberían contener ese tipo de imágenes.

Además, desea que cada conjunto provenga de la misma distribución . Por ejemplo, está creando un modelo para predecir la rotación de clientes, y el 6% de su conjunto de datos contiene instancias de abandono. Entonces, su tren, desarrollo y conjunto de pruebas también deben tener aproximadamente el 6% de los datos como instancias de rotación.

Tamaño del tren / desarrollo / prueba

¿Qué tan grande debe ser cada conjunto?

Por lo general, la división utilizada para ser 60/20/20 para el tren / dev / test set respectivamente. Esto sigue siendo válido si los datos no son muy abundantes.

Sin embargo, en el caso de que tenga millones de casos, una división más apropiada sería 98/1/1, porque el modelo aún puede validarse en más de 10 000 puntos de datos.

En comparación con el rendimiento a nivel humano

Recientemente, comenzamos a ver titulares en los que los sistemas de IA superan a los humanos o se acercan mucho al rendimiento humano.

Desafortunadamente, los humanos son muy buenos en muchas tareas y Es muy difícil lograr que los sistemas de inteligencia artificial se acerquen a nuestro rendimiento. Se requieren cantidades colosales de datos, y el rendimiento de su modelo eventualmente se estabilizará, lo que dificultará la mejora.

Aún así, ¿cómo puedo mejorar un modelo?

En el caso de que su modelo tenga un ajuste excesivo, debe reducir la varianza :

  • Recolectando más datos
  • Regularización (L2, abandono, aumento de datos)
  • Cambie el modelo

En el caso de que su modelo no esté ajustando los datos, debe reducir el sesgo. por:

  • Entrenando un modelo más grande o más complejo
  • Use un mejor algoritmo de optimización o entrene por más tiempo
  • Cambie el modelo

Si ninguno de los métodos anteriores tiene un impacto significativo, entonces los datos se etiquetan Por los humanos es el siguiente paso. Aunque costoso y arduo, este paso acercará su modelo lo más posible al desempeño a nivel humano.

Últimas palabras

Construir un sistema AI es un proceso iterativo. Es importante construir rápido, probar y mejorar. No intente construir un sistema muy complejo al principio, pero no construya algo demasiado simple.

Espero que esto le ayude a administrar y planificar mejor su proyecto de AI. El potencial de la IA es enorme en muchas industrias y aprovechar esta oportunidad es importante. Tener una estrategia de IA clara lo ayudará a navegar por la ola en lugar de ser envuelto.

 

Dejá un comentario