Llegamos a ustedes gracias a:



Columnas de opinión

10 claves para que los desarrolladores tengan un Machine learning exitoso

Por: Alexander Gray, Ph.D., director de tecnología de Skytree

[31/07/2015] Al proporcionar la capacidad de descubrir patrones enterrados en lo profundo de los datos, el machine learning tiene el potencial de hacer aplicaciones más potentes y más sensible a las necesidades de los usuarios. Los algoritmos bien afinados permiten que se extraiga valor de las inmensas fuentes de datos dispares y sin los límites del pensamiento y análisis humano. Para los desarrolladores, el machine learning ofrece la promesa de aplicar la analítica crítica del negocio a cualquier aplicación con el fin de cumplir con todo, desde la mejora de la experiencia del cliente, hasta proporcionar recomendaciones de productos con contenido hiper-personalizado.

Los proveedores de nube como Amazon y Microsoft han sido noticia en los últimos tiempos al ofrecer soluciones de machine learning en la nube que prometen una manera fácil para que los desarrolladores puedan integrar el poder del machine learning en sus aplicaciones. Si bien la promesa parece genial, los desarrolladores deben tener cuidado.

Las herramientas de machine learning basadas en la nube pueden actuar como una forma para que los desarrolladores sumerjan sus pies en las posibilidades que crea el machine learning y puedan ofrecer nuevas funcionalidades. Cuando se utiliza de forma incorrecta, sin embargo, estas herramientas cosechan resultados pobres, lo cual puede ser frustrante para los usuarios. Como cualquier persona que probó la herramienta de detección de edad de Microsoft,probablemente descubrió, la facilidad plug-and-play en el uso viene con importantes problemas de precisión -no es algo en lo que uno deba confiar para aplicaciones críticas o cuando se toman decisiones importantes.

Los desarrolladores que buscan incorporar el machine learning en sus aplicaciones tienen que ser conscientes de algunas claves del éxito:

1. Mientras más datos tiene un algoritmo, es más preciso, así que evite la sobremuestra en la medida de lo posible. La teoría del machine learning tiene una caracterización muy intuitiva del error de predicción. En resumen, la diferencia en el error de predicción entre un modelo de machine learning y el predictor óptimo (el que logra el mejor error posible en teoría) se puede descomponer en tres partes:

  1. El error debido a no tener la forma funcional correcta para el modelo
  2. El error debido a no encontrar los parámetros óptimos para el modelo
  3. El error debido a no alimentar datos suficientes para el modelo

Si los datos de entrenamiento son limitados, puede no ser capaz de soportar la complejidad del modelo necesario para el problema. Las leyes fundamentales de las estadísticas nos dicen que debemos utilizar todos los datos que tenemos si podemos, en lugar de una sub muestra.

2. La selección del método de machine learning que funcione mejor para un problema dado es clave y, a menudo, determina el éxito o el fracaso. Por ejemplo, Gradient Boosting Trees (GBT) es un algoritmo de aprendizaje ampliamente utilizado por los profesionales de la industria debido a su precisión. Sin embargo, a pesar de su gran popularidad, no debe ser tratado ciegamente como el algoritmo para cada problema. En su lugar, siempre se debe usar el algoritmo que mejor se adapte a las características de los datos para tener resultados más precisos.

Para demostrar este concepto, se puede hacer un experimento que compara la exactitud entre GBT y el algoritmo linear Support Vector Machine (SVM) en el popular dataset de categorización de textos RCV1. Hemos observado que el SVM lineal es superior a GBT en términos de tasa de error en este problema. Esto se debe a que en el dominio de texto, los datos son a menudo altamente dimensionales. Un clasificador lineal puede perfectamente separar N ejemplos en N - 1 dimensiones, y por lo tanto, un modelo simple probablemente funcione bien con esos datos. Por otra parte, cuanto más simple el modelo, menos problemático es aprender los parámetros con un número finito de ejemplos de entrenamiento para evitar sobreajuste y entregar un modelo preciso.

Por otro lado, GBT es altamente no lineal y más potente, pero más difícil de aprender y más propenso a sobrepasarse en un entorno. A menudo termina con una precisión inferior.

3. Para obtener un gran modelo, se deben elegir bien el método y los parámetros relacionados con él. Esto puede no ser sencillo para quienes no son científicos de datos. Los algoritmos modernos de machine learning tienen una serie de botones para ajustar. Por ejemplo, el popular algoritmo GBT por sí solo puede tener hasta una docena de ajustes de parámetros, incluyendo la forma de controlar el tamaño del árbol, la tasa de aprendizaje, la metodología de muestreo para las filas o columnas, la función de pérdida, las opciones de regularización, y más. Un proyecto típico requiere encontrar los mejores valores para cada uno de los parámetros con el fin de obtener la máxima precisión posible para un determinado conjunto de datos, y esta no es tarea fácil. La intuición y la experiencia ayudan, pero para obtener mejores resultados, un científico de datos tiene que entrenar a un gran número de modelos, mirar sus puntuaciones con validación cruzada y decidir qué parámetros intentar a continuación.

4. Los modelos de machine learning sólo pueden ser tan buenos como los datos. La recopilación de datos y la limpieza indebida perjudicarán su capacidad para construir modelos de machine learning predictivos y generalizables. La experiencia recomienda revisar cuidadosamente los datos con expertos en el tema, para obtener información sobre el proceso de generación de datos detrás de las escenas de datos. A menudo, este proceso puede identificar problemas de calidad de datos relativos a los registros, las características, valores o toma de muestras.

5. Comprender las características de los datos y mejorarlos (mediante la creación de nuevas características y la eliminación de las existentes) tiene un alto impacto en términos de previsibilidad. Una tarea fundamental del machine learning es representar los datos en bruto dentro de un rico espacio de características que puede ser explotado de manera efectiva por el algoritmo de machine learning. Por ejemplo, la transformación de características es un método popular que se logra mediante el desarrollo de nuevas propiedades basadas en las originales a través de transformaciones matemáticas. El espacio de características resultante (es decir, la colección utilizada para caracterizar los datos) capta mejor las diversas propiedades complejas de los datos (tales como la no linealidad y la interacción entre características múltiples), que son importantes para los procesos de aprendizaje exitosos.

6. Seleccionar la función objetivo/pérdida apropiada inspirada en el valor de negocio es importante para el éxito final de la aplicación. Casi todos los algoritmos de machine learning se formulan como problemas de optimización. Basado en la naturaleza del negocio, establecer apropiadamente o ajustar la función objetiva de la optimización es un paso clave para el éxito del machine learning.

SVM, como ejemplo, optimiza la generalización de error para un problema de clasificación binaria suponiendo que todos los tipos de errores son ponderados del mismo modo. Esto no es apropiado para los problemas sensibles al costo, tales como la detección de fallas, en los que el costo de ciertos tipos de errores podría pesar más que los otros. En este caso, se recomienda ajustar la función de pérdida SVM añadiendo más sanciones a ciertos tipos de error para dar cuenta de su peso.

7. Garantizar la correcta manipulación de los datos de entrenamiento y de prueba de tal modo que los datos de las pruebas imiten a los datos entrantes cuando el modelo se implementa en la producción. Podemos ver, por ejemplo, lo importante que es esto para los datos dependientes del tiempo. En este caso, utilizar el enfoque estándar de la validación cruzada para los modelos de formación, afinación, y de pruebas daría lugar a salidas engañosas o inexactas. Esto sucede porque no imita correctamente la naturaleza de los datos entrantes en la etapa de despliegue. Para corregir esto, uno debe imitar cómo se utiliza el modelo cuando se despliega. Se debe utilizar una validación cruzada basada en el tiempo en donde el modelo entrenado se valida en los datos más recientes en términos de tiempo.

8. Comprender el error de generalización del modelo antes de su despliegue. La generalización del error mide lo bien que un modelo se desempeña con los datos que no se ven. El hecho de que un modelo se desempeñe bien en los datos de entrenamiento no necesariamente significa que vaya a generalizar así en los datos que no se ven. Un proceso de evaluación del modelo cuidadosamente diseñado, que imita el uso real de la implementación, es necesario para estimar el error de generalización del modelo.

Es fácil violar las reglas de validación cruzada sin darse cuenta, y hay maneras no evidentes de realizar la validación cruzada de forma incorrecta, que suele ocurrir cuando se intenta tomar atajos computacionales. Es fundamental prestar especial atención a la validación cruzada adecuada y diligente antes de implementar cualquier modelo para obtener una estimación científica del desempeño de la implementación.

9. Saber cómo tratar los datos no estructurados y semi-estructurados, tales como texto, series temporales, datos espaciales, gráficos, y las imágenes. La mayoría de algoritmos de machine learning lidian con los datos en un espacio determinado donde un objeto está representado por un conjunto de características, en la que cada cual describe una función del objeto. En la práctica, en lugar de ser introducidos en el conjunto en este formato, los datos a menudo se presentan en forma cruda y deben ser moldeados en el formato conveniente para el consumo de los algoritmos de machine learning. Por ejemplo, uno tiene que saber cómo utilizar diversas técnicas de visión por computadora para la extracción de características a partir de imágenes, o cómo aplicar las técnicas de procesamiento de lenguaje natural para dotar al texto de características.

10. Aprender a traducir los problemas de negocio en algoritmos de machine learning. Algunos problemas importantes de los negocios, como la detección de fraudes, recomendación de productos, y la orientación de anuncios, tienen formulaciones "estándar" de machine learning que han tenido un éxito razonable en la práctica. Incluso para estos problemas conocidos, existen formulaciones menos conocidas pero más potentes que conducen a una mayor precisión predictiva. Para problemas de negocios fuera de la pequeña serie de ejemplos típicamente discutidos en blogs y foros, las formulaciones adecuadas de machine learning son menos evidentes.

Si es un desarrollador, el aprendizaje de estas 10 claves del éxito pueden parecer una tarea difícil, pero no se desanime. En verdad, los desarrolladores no son científicos de datos. Sería injusto pensar que un desarrollador puede explotar al máximo todas las ofertas de herramientas de machine learning. Pero eso no significa que los desarrolladores no tengan la oportunidad de aprender un cierto nivel de la ciencia de datos con el fin de mejorar sus aplicaciones. Con las soluciones empresariales adecuadas y una mayor automatización, los desarrolladores pueden hacer todo, desde la construcción de modelos hasta su implementación, utilizando las mejores prácticas de machine learning para mantener una alta precisión.

La automatización es clave para la proliferación del machine learning dentro de las aplicaciones. Incluso si pudiera producir un pequeño ejército de científicos de datos para que trabajen de la mano con los desarrolladores, no hay suficiente talento para todo. Los avances como Automodel de Skytree pueden ayudar a que los desarrolladores determinen automáticamente los parámetros y algoritmos óptimos para la máxima precisión del modelo. Una interfaz fácil de usar puede guiar a los desarrolladores a través del proceso de formación, la puesta a punto, y prueba de modelos, mientras previene errores estadísticos.

La automatización en el proceso de aprendizaje de la máquina, en muchos aspectos, incorpora los principios de la inteligencia artificial para el científico de datos o desarrollador, permitiendo que los algoritmos piensen, aprendan y lleven una gran parte de la carga de construcción de modelos. Dicho esto, es un error pensar que los científicos de datos pueden ser desconectados del machine learning, especialmente para los modelos de misión crítica. Tenga cuidado con la promesa de una funcionalidad simple de usar que se puede aplicar sin pensar en la exactitud, la sofisticación, o la escalabilidad de la tecnología con que se cuenta -esto normalmente no entrega la alta precisión predictiva y en consecuencia un alto valor comercial que el machine learning ofrece. Peor aún, la entrega de modelos pobres en una aplicación puede llegar a ser contraproducente y rápidamente crear desconfianza en el producto o servicio entre sus usuarios.

Alexander Gray, Ph.D., es director de tecnología de Skytree y profesor asociado en la Facultad de Informática de Georgia Tech. Su trabajo se ha centrado en las técnicas algorítmicas para la fabricación de machine learning manejable en conjuntos de datos masivos. Comenzó a trabajar con datos científicos a gran escala en 1993 en el Jet Propulsion Laboratory de la NASA en su Machine Learning Systems Group. Recientemente ha servido en la National Academy of Sciences Committee en el análisis de datos masivos como Kavli Scholar, y en Berkeley Simons Fellow, y es asesor y conferencista frecuente sobre el tema de machine learning en big data dentro del mundo académico, la ciencia y la industria.