12 consejos para el entrenamiento de aprendizaje automático

0
34

Para tomar decisiones de forma más rápida y precisa, las empresas recurren cada vez más al aprendizaje automático, posiblemente la aplicación más práctica de la IA en la actualidad. Los sistemas de aprendizaje automático aplican algoritmos a los datos para obtener información sobre éstos sin programación explícita: se trata de usar datos para responder preguntas. Como tal, las empresas están aplicando el aprendizaje automático a una amplia gama de problemas, desde patrones de compra de clientes, hasta mantenimiento predictivo.

Pero antes que un sistema de aprendizaje automático pueda responder preguntas, primero debe estar capacitado en datos y resultados. Esto se debe a que, aunque no están programados explícitamente, los sistemas de aprendizaje automático necesitan desarrollar y perfeccionar su capacidad para hacer predicciones a partir de datos, por medio de la experiencia con el mismo tipo de datos que utilizará para responder preguntas. Por ejemplo, para predecir si un componente está a punto de fallar, primero se debe entrenar a un sistema de aprendizaje automático para que lo haga alimentando conjuntos de lecturas de sensores de componentes funcionales y defectuosos.

Esta etapa aparentemente prosaica entre la elección de su algoritmo de aprendizaje automático y la implementación de su modelo de datos es, en realidad, un paso clave para acertar en el aprendizaje automático: si se equivoca, terminará con un sistema que no ofrece lo que desea. Existen algunos errores comunes que, a menudo, ocurren al entrenar sistemas de aprendizaje automático; también hay decisiones que deben tomarse desde el principio, mucho antes de que se implemente un sistema de aprendizaje automático, que será difícil y costoso abordar más adelante.

Esto es lo que usted debe tener en cuenta.

Garantizar la calidad de los datos
Antes de que pueda comenzar a entrenar su sistema de aprendizaje automático, debe preparar sus datos.

«Aclarar los datos lleva mucho tiempo y a menudo se subestima: configurar una infraestructura de datos moderna, identificar qué datos puede ingestar o generar, y hacer la limpieza puede llevar mucho tiempo”, afirma Eric Gardner, director de activación de ventas del AI Products Group de Intel.

Esto incluye tratar con datos duplicados, corruptos y faltantes, para garantizar que los datos que va a alimentar a su sistema sean de buena calidad y relevantes para la tarea en cuestión.

«Antes de comenzar, los CIO y los líderes de TI deben involucrar a las partes interesadas del negocio con anticipación, para determinar el problema comercial que se debe resolver”, afirma Eric Boyd, vicepresidente corporativo de la Plataforma de IA de Microsoft. De esa forma, los científicos de datos pueden diseñar los experimentos correctos y concentrarse en los datos necesarios para esos experimentos.

«Cuando los equipos toman el rumbo opuesto -comenzar con una gran cantidad de datos y luego ver qué tipo de nuevas ideas resultan al aplicar el ML- su enfoque rara vez arroja resultados viables”, advierte. «No se trata de big data; se trata del tipo correcto de datos”.

Realice ajustes ante el sesgo potencial
Además de procesar previamente sus datos, también necesita saber si hay datos atípicos o sesgos en sus datos, y cómo los datos del mundo real pueden diferir de sus datos de entrenamiento. El sesgo, que puede dar como resultado sistemas entrenados en suposiciones defectuosas, debe considerarse desde el principio; porque el aprendizaje automático puede amplificar cualquier sesgo presente en su conjunto de entrenamiento o incluso introducirlo.

«Las amenazas de calidad, sesgo y riesgos/integridad necesitan gobernanza y conocimiento sobre cómo se utilizarán los datos desde el principio”, advierte Boyd. «Las herramientas de interpretación y equidad del modelo, como Fairlearn y LIME, junto con las prácticas establecidas de gobernanza corporativa, pueden ayudar a los líderes de TI a administrar sus proyectos de capacitación de ML, y acelerar el proceso de validación del modelo, ahorrando tiempo y ajustándose a posibles sesgos”. Saber de dónde provienen sus datos es fundamental para esto.

Involucre a expertos en los campos
Para entrenar muchos sistemas de aprendizaje automático, los datos de entrenamiento deben estar etiquetados. Aquí, el juicio humano entra en juego para elegir la etiqueta y los ejemplos correctos de esa etiqueta.

Para el aprendizaje automático supervisado, obtener las etiquetas correctas en sus datos de capacitación es clave, así que asegúrese de que los expertos en el campo participen desde el principio. También necesitará conocimiento experto para las herramientas emergentes de aprendizaje automático, como los modelos causales, que utilizan técnicas bayesianas para tratar de determinar qué variables representan causas y cuáles representan efectos.

«Los modelos tradicionales tienden a centrarse en la correlación sin tener en cuenta la causalidad, por lo que, si bien pueden identificar una relación entre variables, no definirán qué tan significativamente se influyen entre sí”, afirma Sam Bourton, CTO de QuantumBlack. Las correlaciones espurias son comunes: un modelo no causal destinado a mitigar la sequía podría resaltar la relación entre el aumento de las ventas de helados y el empeoramiento de la sequía -y podría concluir que prohibir los helados también eliminaría la sequía. Un experto en el campo puede proporcionar pistas al modelo y verificar, durante la fase de capacitación, que su interpretación de cómo las variables se relacionan entre sí tiene sentido.

Debido a que los expertos en un determinado campo probablemente no son también expertos en aprendizaje automático, Bourton sugiere usar visualizaciones que aclaren el modelo para ellos. El kit de herramientas CausalNex de código abierto para construir modelos causales puede crear gráficos que muestren las relaciones de las variables en el modelo.

Obtenga la división correcta de datos para capacitación y validación
La capacitación por sí sola no dará como resultado un aprendizaje automático operativo y sólido. Debe probar y validar el sistema para asegurarse de que su capacitación sea suficiente para brindar resultados confiables. Esto significa que necesitará más datos de capacitación de los que podría esperar, para asegurarse de haber reservado suficientes datos para las pruebas. Gardner sugiere una proporción del 70% de los datos para el entrenamiento y el 30% para las pruebas. «Entrene para lo que considere ser un buen nivel de precisión, y luego regrese y pruébelo regularmente en el conjunto de datos de control”, afirma Gardner.

También es posible que deba reservar algunos datos para la validación, donde usted sintoniza para confirmar que el modelo se ajusta a sus datos y para asegurarse de que no se ha ajustado en exceso, con el fin de que el modelo no pueda hacer frente a nuevas situaciones más allá de los datos de entrenamiento. Aristotelis Kostopoulos, vicepresidente de soluciones de productos de inteligencia artificial en Lionbridge, sugiere utilizar del 60% al 80% de los datos para el entrenamiento, con el 20% o el 10% para entrenamiento y validación respectivamente. «Use su conjunto de validación para ejecutar sus hiperparámetros con el propósito de determinar cosas como cuántas neuronas y cuántas capas tiene, y la tasa de aprendizaje”.

Use datos sintéticos
Si no tiene suficientes datos de entrenamiento, o si fuese imposible recopilar un rango de datos lo suficientemente diverso porque la captura de datos es onerosa, puede usar datos sintéticos -ya sea transformando los datos que tiene para que se conviertan en múltiples ejemplos (el Snow Leopard Trust voltea horizontalmente imágenes de leopardos de las nieves para ayudar a entrenar el reconocimiento de imágenes, con el fin de detectar a los animales en cualquier dirección que estén mirando) o generando todo el tejido de la información. Microsoft no pudo realizar capturas de movimiento a suficientes personas de diferentes tamaños y formas en suficientes poses diferentes para obtener todos los datos necesarios con el fin de entrenar su cámara Kinect, por lo que sintetizó millones de imágenes que muestran cientos de miles de poses de profundidad.

«Los datos sintéticos son buenos cuando usted no cuenta con los datos reales: puede crear conjuntos realmente buenos, y puede usar otras técnicas como rotar imágenes; pero debe tener cuidado de no introducir sesgos allí”, advierte Kostopoulos.

El método de aprendizaje automático que elija afecta la cantidad de datos con los que necesitará entrenar, por lo que, si tiene un conjunto de datos pequeño, puede elegir el aprendizaje activo parcialmente supervisado, donde puede usar un conjunto de datos más pequeño que esté anotado.

Diferencie de acuerdo con versiones sus conjuntos de datos, así como sus modelos de aprendizaje automático
El aprendizaje automático requiere una reevaluación constante de los modelos que, muy probablemente, necesite volver a entrenar. «En algunos casos, cuando entrena un modelo y alcanza un cierto nivel de precisión, tal vez haya terminado, pero en muchos casos tiene que incorporar nuevos datos, volver a entrenar el modelo y obtener un poco más de precisión”, señala Gardner.

Para asegurarse de que comprende un modelo de aprendizaje automático y puede explicar lo que hace, debe poder probarlo y validarlo en varios conjuntos de datos, por lo que su canal de aprendizaje automático debe ser reproducible y auditable. Para incorporar de manera efectiva nuevos datos para volver a entrenar, volver a probar y volver a implementar el modelo, al menos necesita un proceso MLOps efectivo y parcialmente automatizado, utilizando herramientas como Kubeflow. Hacer un seguimiento de varios conjuntos de capacitación, con detalles como procedencia, limpieza de datos, transformación y validación es una parte importante de eso. Puede hacerlo en una hoja de cálculo, a través de los cuadernos Jupyter, o adoptando hojas de datos estandarizadas para conjuntos de datos.

El conjunto de datos y los metadatos de capacitación son muy importantes para explicar los resultados del aprendizaje automático más adelante, afirma David Aronchik, cofundador de Kubeflow, y ahora jefe de estrategia de aprendizaje automático de código abierto en Microsoft.

«Tal vez desee explicar el modelo, o quiera probar el sesgo o probar un conjunto completo de datos diferentes; no volver a entrenarlo, sino probar los datos de producción reales para asegurarse de que no falle”, afirma Aronchik. «La capacidad explicativa se basa en metadatos sobre capacitación. Necesita saber cosas como cómo se formaron sus datos y qué valores atípicos excluyó; ¿Las estadísticas descuidan a una población en particular por razones históricas? ¿Fue entrenado ingenuamente o llevó a cabo un análisis de la población?

Asegure sus datos de entrenamiento contra el envenenamiento de datos
No olvide lo básico. Incluso con el aprendizaje automático, debe pensar en el modelado de amenazas y la seguridad durante el entrenamiento. Al igual que con cualquier dato importante, los datos de entrenamiento deben almacenarse de forma segura, no en una computadora portátil personal. Pero también debe poder rastrear de dónde provienen sus datos, a dónde van y quién puede acceder a ellos en el camino.

«Aunque esto puede ser difícil, recopile sus datos de múltiples fuentes, si es posible”, afirma Kenny Daniel, CTO y cofundador de Algorithmia. «Si su modelo está demasiado ajustado, puede estar abierto a ataques adversos, como dar una imagen borrosa y pixelada y obtener una predicción a cambio”.

Eso no es solo un problema teórico. En el 2013, los atacantes inyectaron fragmentos de firmas de virus en archivos no infectados que cargaron en un sitio de detección de virus en línea, que lo entrenó para ignorar algunos archivos maliciosos porque coincidían con archivos que habían sido declarados limpios. En el 2017, un alto volumen de tráfico falso utilizado para jugar con la reputación de un certificado digital, alertó a Microsoft del hecho de que los atacantes habían descubierto cómo su sistema de aprendizaje automático calculaba la reputación de los certificados y lo engañaban para que confiara en un código malicioso.

El aprendizaje automático no supervisado es más susceptible al envenenamiento de datos; e, incluso, la simple manipulación de imágenes con el tipo de filtros en los smartphones puede producir algo que puede parecerle una buena foto a un humano, pero puede afectar su modelo. Según Microsoft, comprometer el 3% de los datos de entrenamiento puede resultar en una caída del 11% en la precisión del modelo. Es difícil defenderse de esto, pero los atacantes solo podrán controlar una pequeña fracción de las muestras de entrenamiento, por lo que puede validar y desinfectar datos, monitorear el ciclo de entrenamiento en busca de anomalías, buscar el conjunto de las funciones día a día, usar múltiples modelos y tener tanto una evaluación automatizada como humana de la calidad de los modelos recién entrenados antes de implementarlos. 

«Si las empresas desean que los sistemas y productos de aprendizaje automático sean robustos para las amenazas presentes y futuras, entonces es fundamental centrarse en asegurar el proceso de procesamiento de datos”, afirma Ariel Herbet-Ross, investigador de Open AI que se especializa en aprendizaje automático y seguridad adversarias.

Tenga un conjunto de datos balanceado
Para empezar, asegurarse de evitar que una pequeña cantidad de imágenes represente a un gran porcentaje de capacitación ayuda contra el envenenamiento de datos, y también es importante para obtener un modelo de aprendizaje automático útil. «Los algoritmos entrenados están tan orientados a los datos que, si pasa datos incorrectos, aprenderán cosas malas”, afirma Kostopoulos. «Para poder entrenar con éxito, usted necesita un corpus bien equilibrado. Si está haciendo una clasificación, no deseará que el conjunto de entrenamiento sea 1% un ejemplo y 99% otro ejemplo. Debe tener cuidado al recopilar sus datos para que estén equilibrados”.

Verifique inputs y outputs
Si utiliza una plataforma de aprendizaje automático, a menudo tendrá herramientas integradas para monitorear modelos y capacitación. UiPath AI Fabric, por ejemplo, puede comparar el output del modelo con el input de datos, y Azure Machine Learning (y la herramienta AI Builder en Power BI basada en eso) mostrará métricas como falsos positivos y negativos, precisión (cuántas clasificaciones son correctas) y recall (cuántos positivos verdaderos se clasifican correctamente como positivos).

Si está trabajando en sus propios modelos de aprendizaje automático, use una herramienta de visualización en tiempo real, como Tensor Watch, para que pueda ver los errores y la pérdida de capacitación de los modelos de aprendizaje automático sobre la marcha, sin tener que parar y reiniciar el entrenamiento; eso es importante cuando una ResNet de 50 capas para reconocimiento de imágenes puede tardar 14 días en entrenarse en el conjunto de datos ImageNet.

Elija el hardware adecuado para entrenar
Las GPU son ideales para entrenar sistemas de aprendizaje profundo, que requieren un paralelismo de datos profundo, pero pueden no ser la opción correcta para otras cargas de trabajo.

«La mayoría de los clientes empresariales no verán un beneficio de implementar GPUs o hardware especializado de aceleración de IA cuando comiencen con el aprendizaje automático”, sugiere Gardner. Las CPU que se usan para otras cargas de trabajo durante el horario comercial se pueden reutilizar para entrenar de la noche a la mañana si solo está entrenando un puñado de capas, por lo que puede ahorrar aceleración de hardware para modelos con más de 10 capas o lugares donde un entrenamiento más rápido tiene un impacto en el resultado, como hacer un motor de recomendación más preciso.

Las CPU también se adaptan mejor a modelos de mayor definición, como imágenes médicas, astronomía y exploración de petróleo y gas, afirma Gardner: «Esas imágenes son masivas, con miles de píxeles por miles de píxeles, y no se ajustan a la pequeña huella de memoria de las GPU; la capacitación en las CPU significa que no tiene que cortar o reducir imágenes y puede ejecutarlas a resolución completa”.

Para obtener el mejor rendimiento con capacitación en CPU, busque marcos de trabajo y herramientas que se hayan optimizado para CPU en lugar de GPU.

Aproveche el aprendizaje de transferencia
No entrene desde cero cuando no lo necesite, aconsejaron muchos de nuestros expertos.

«Verifique si hay modelos disponibles públicamente y realice el aprendizaje de transferencia. Será más barato, es más probable que sea más preciso y es mejor para el medio ambiente”, sugirió Daniel.

Esto funciona tomando un modelo entrenado grande, como un modelo de reconocimiento de imagen ResNet de 150 capas, cortando las dos capas superiores y reentrenando solo esas capas con sus propios datos. Por ejemplo, en cuestión de minutos, Azure Cognitive Services Custom Vision capacita el servicio de reconocimiento de imágenes de Microsoft en tan solo 50 ejemplos de cada objeto que desea reconocer. Eso le brinda la conveniencia de un servicio en la nube, pero capacitado a medida para su escenario.

Sea paciente
El aprendizaje automático es aún menos predecible que otros desarrollos de software, y la fase de capacitación puede llevar más tiempo de lo esperado, porque la capacitación es parte del desarrollo del sistema, no parte de volverlo operativo.

«Es un poco más impredecible”, advierte Gardner. «No siempre se puede tener una línea de tiempo fija para resolver el problema o afirmar: ‘En seis meses, tendremos una respuesta’. Existen muchas pruebas y errores en este espacio: en realidad es cuestión de horas, días o semanas dedicadas a la capacitación para detectar cambios sutiles. Realmente se necesita la aceptación de la gerencia para hacer frente a ese nivel de incertidumbre porque, aunque el progreso puede surgir de la nada, con mayor frecuencia lleva mucho más tiempo de lo esperado. No es un proceso lineal directo”.

Mary Branscombe, CIO.com – CIOperu.pe