Entrenando a las Máquinas: Una introducción a los tipos de Machine Learning


por Yuri Brigance

Anteriormente escribí sobre el aprendizaje profundo en Edge. En este post voy a describir el proceso de configuración de un flujo de trabajo de Machine Learning (ML) de principio a fin para diferentes tipos de Machine Learning.

Existen tres tipos comunes de enfoques de formación de Machine Learning, que revisaremos aquí:

  1. Supervisado
  2. Sin supervisión
  3. Refuerzo

Y puesto que todos los enfoques de aprendizaje requieren algún tipo de datos de entrenamiento, también compartiré tres métodos para construir su conjunto de datos de entrenamiento a través de:

  1. Anotación humana
  2. Anotación automática
  3. Síntesis / Simulación

Aprendizaje supervisado:

El aprendizaje supervisado utiliza un conjunto de entrenamiento etiquetado de entradas y salidas para enseñar a un modelo a producir el resultado deseado. Este enfoque suele basarse en una función de pérdida, que se utiliza para evaluar la precisión del entrenamiento hasta que el error se ha minimizado lo suficiente.

Podría decirse que este tipo de aprendizaje es el más común y, en cierto modo, imita la forma en que un profesor explica la materia a un alumno mediante ejemplos y repeticiones.

Uno de los inconvenientes del aprendizaje supervisado es que requiere grandes cantidades de datos de entrenamiento etiquetados con precisión. Estos datos de entrenamiento pueden ser anotados manualmente (por humanos), mediante anotación automática (anotados por otros modelos o algoritmos) o completamente sintéticos (por ejemplo, imágenes renderizadas o telemetría simulada). Cada enfoque tiene tus pros y tus contras, y pueden combinarse según las necesidades.

Aprendizaje no supervisado:

A diferencia del aprendizaje supervisado, en el que un profesor explica un concepto o define un objeto, el aprendizaje no supervisado da a la máquina la libertad de desarrollar la comprensión por sí misma. A menudo, con el aprendizaje no supervisado, las máquinas pueden encontrar tendencias y patrones que, de otro modo, una persona pasaría por alto. Con frecuencia, estas correlaciones eluden la intuición humana común y pueden describirse como no semánticas. Por eso se suele aplicar el término "caja negra" a estos modelos, como el asombroso GPT-3.

Con el aprendizaje no supervisado, proporcionamos datos al modelo de Machine Learning que no están etiquetados ni estructurados. A continuación, la computadora identifica grupos de datos similares o patrones en los datos. Es posible que la computadora no encuentre los mismos patrones o grupos que esperábamos, ya que aprende a reconocer los grupos y patrones por sí mismo. En muchos casos, no estar limitados por nuestras ideas preconcebidas puede revelar resultados y oportunidades inesperados.   

Aprendizaje por refuerzo:

El aprendizaje por refuerzo enseña a una máquina a actuar de forma semisupervisada. Las máquinas son recompensadas por las respuestas correctas, y la máquina quiere ser recompensada tanto como sea posible. El aprendizaje por refuerzo es una forma eficaz de entrenar a una máquina para que aprenda una tarea complicada, como jugar a videojuegos o enseñar a andar a un robot con patas.

La máquina está motivada para ser recompensada, pero no comparte los objetivos del operario. Por eso, si la máquina puede encontrar la manera de "engañar al sistema" y obtener más recompensa a costa de la precisión, lo hará con avidez. Del mismo modo que las máquinas pueden encontrar patrones que los humanos pasan por alto en el aprendizaje no supervisado, las máquinas también pueden encontrar patrones que pasan por alto en el aprendizaje reforzado y explotar esos patrones invisibles para recibir un refuerzo adicional. Por eso tu experimento debe ser hermético para minimizar la explotación por parte de las máquinas.

Por ejemplo, un twitterbot de inteligencia artificial entrenado con aprendizaje por refuerzo fue recompensado por maximizar la participación. El twitterbot aprendió que la participación era muy alta cuando publicaba sobre Hitler.

Este comportamiento de las máquinas no siempre es un problema: por ejemplo, el aprendizaje por refuerzo ayuda a las máquinas a encontrar fallos en los videojuegos que pueden aprovecharse si no se resuelven.

Conjuntos de datos:

El Machine Learning implica disponer de datos con los que aprender. La calidad y cantidad de los datos de entrenamiento tiene mucho que ver con el rendimiento del algoritmo. Un conjunto de datos de entrenamiento suele consistir en muestras u observaciones. Cada muestra de entrenamiento puede ser una imagen, un clip de audio, un fragmento de texto, una secuencia de registros históricos o cualquier otro tipo de datos estructurados. Dependiendo del enfoque de Machine Learning que adopte, cada muestra también puede incluir anotaciones (salidas / soluciones correctas) que se utilizan para enseñar el modelo y verificar los resultados. Los conjuntos de datos de entrenamiento suelen dividirse en grupos en los que el modelo sólo se entrena en un subconjunto de todos los datos disponibles. Esto permite que una parte del conjunto de datos se utilice para validar el modelo, para garantizar que el modelo ha generalizado suficientes datos para funcionar bien en datos que no ha visto antes.

Independientemente del enfoque de entrenamiento que adopte, su modelo puede ser propenso a sesgos que pueden introducirse inadvertidamente a través de datos de entrenamiento desequilibrados, o la selección de entradas incorrectas. Un ejemplo es una herramienta de evaluación del riesgo penal mediante IA utilizada por los tribunales para evaluar la probabilidad de reincidencia de un acusado basándose en su perfil. Debido a que el modelo fue entrenado con datos históricos, que incluían años de desproporcionada persecución de grupos minoritarios y de bajos ingresos por parte de las fuerzas del orden, el modelo resultante produjo puntuaciones de riesgo más altas para los individuos de minorías y bajos ingresos. Es importante recordar que la mayoría de los modelos de Machine Learning detectan correlaciones estadísticas, y no necesariamente causalidades.

Por lo tanto, es muy conveniente disponer de un conjunto de datos de entrenamiento amplio y equilibrado para el algoritmo, que no siempre está disponible o es fácil de obtener. Se trata de una tarea que las empresas que desean aplicar el Machine Learning a tus casos de uso pueden pasar por alto en un primer momento. La adquisición del conjunto de datos es tan importante como la propia arquitectura del modelo.

Una forma de garantizar que el conjunto de datos de entrenamiento esté equilibrado es mediante el enfoque del Diseño de Experimentos (DOE), en el que se planifican y analizan experimentos controlados para evaluar los factores que controlan el valor de un parámetro o grupo de parámetros de salida. El DOE permite manipular múltiples factores de entrada, determinando su efecto en la respuesta del modelo. De este modo, se pueden excluir ciertas entradas que pueden dar lugar a resultados sesgados, así como comprender mejor las complejas interacciones que se producen en el modelo.

He aquí tres ejemplos de cómo se recopilan, y en algunos casos se generan, los datos de formación:

  1. Datos etiquetados en humanos:

Lo que denominamos datos etiquetados humanos es cualquier cosa que haya sido anotada por un ser humano vivo, ya sea mediante crowdsourcing o consultando una base de datos y organizando el conjunto de datos. Un ejemplo podría ser la anotación de puntos de referencia faciales alrededor de los ojos, la nariz y la boca. Estas anotaciones son bastante buenas, pero en algunos casos pueden ser imprecisas. Por ejemplo, la definición de "la punta de la nariz" puede ser interpretada de forma diferente por las distintas personas encargadas de etiquetar el conjunto de datos. Incluso tareas sencillas, como dibujar un recuadro alrededor de manzanas en fotos, pueden tener "ruido" porque el recuadro puede tener más o menos relleno, puede estar ligeramente descentrado, etcétera.

Si se dispone de datos etiquetados por personas, es un buen comienzo. Pero contratar anotadores humanos puede ser caro y propenso a errores. Existen varios servicios y herramientas, desde AWS SageMaker GroundTruth hasta varias startups que facilitan el trabajo de etiquetado a los anotadores y también conectan a los proveedores de anotaciones con los clientes.

Podría ser posible encontrar un conjunto de datos existente en el dominio público. En un ejemplo con puntos de referencia faciales, tenemos WFLW, iBUG y otros conjuntos de datos disponibles públicamente que son perfectamente adecuados para el entrenamiento. Muchos tienen licencias que permiten su uso comercial. Es una buena idea investigar si alguien ya ha producido un conjunto de datos que se adapte a tus necesidades, y podría valer la pena pagar por un pequeño conjunto de datos para arrancar su proceso de aprendizaje.

2. Anotación automática:

En términos sencillos, la anotación automática consiste en utilizar un algoritmo existente o crear uno nuevo para añadir anotaciones a los datos brutos de forma automática. Parece el huevo y la gallina, pero es más factible de lo que parece.

Por ejemplo, es posible que ya disponga de un conjunto de datos parcialmente etiquetado. Imaginemos que está etiquetando flores en fotos de ramos y quiere identificar cada flor. Tal vez ya tenga una parte de estas imágenes anotadas con tulipanes, girasoles y narcisos. Pero todavía hay imágenes en el conjunto de datos de entrenamiento que contienen tulipanes que no han sido anotados, y nuevas imágenes siguen llegando de tus fotógrafos.

¿Qué se puede hacer? En este caso, puede tomar todas las imágenes existentes en las que ya se han anotado los tulipanes y entrenar un modelo simple de detector de sólo tulipanes. Una vez que este modelo alcance una precisión suficiente, podrá completar automáticamente las anotaciones que falten sobre los tulipanes. Se puede seguir haciendo lo mismo con las demás flores. De hecho, puede recurrir a la colaboración de personas para que anoten sólo un pequeño lote de imágenes con una nueva flor específica, y eso debería ser suficiente para construir un detector específico que pueda anotar automáticamente el resto de las muestras. De este modo, se ahorra tiempo y dinero al no tener que anotar cada imagen del conjunto de entrenamiento o cada nueva imagen sin procesar. El conjunto de datos resultante puede utilizarse para entrenar un detector de producción más completo, capaz de detectar todos los tipos de flores. La anotación automática también le ofrece la posibilidad de seguir mejorando su modelo de producción mediante la anotación continua y automática de nuevos datos en bruto a medida que llegan. De este modo se consigue un ciclo cerrado de formación y mejora continuas.

Otro ejemplo es el de las anotaciones incompatibles. Por ejemplo, es posible que desee detectar posiciones 3D de cajas rectangulares a partir de imágenes de webcam, pero todo lo que tiene son puntos de referencia 2D para las esquinas visibles de las cajas. ¿Cómo estimar y anotar las esquinas ocluidas de cada caja, por no hablar de averiguar su posición en el espacio 3D? Pues bien, puede utilizar un modelo morphable de análisis de componentes principales (PCA) de una caja y ajustarlo a puntos de referencia 2D, y luego desproyectar la forma 3D detectada en el espacio 3D utilizando intrínsecos de la cámara. De este modo se obtienen anotaciones 3D completas, incluidas las esquinas ocluidas. Ahora puede entrenar un modelo que no requiera ajuste PCA.

En muchos casos se puede elaborar un algoritmo determinista convencional para anotar las imágenes. Claro que estos algoritmos pueden ser demasiado lentos para funcionar en tiempo real, pero no se trata de eso. Se trata de etiquetar los datos brutos para entrenar un modelo que pueda inferirse en milisegundos.

La anotación automática es una opción excelente para crear rápidamente un enorme conjunto de datos de entrenamiento, especialmente si los datos ya están parcialmente etiquetados. Sin embargo, al igual que ocurre con las anotaciones humanas, la anotación automática puede introducir errores y ruido. Considere cuidadosamente qué anotaciones deben descartarse basándose en una métrica de confianza o en alguna revisión humana, por ejemplo. Aunque incluya algunas muestras erróneas, es probable que el modelo generalice con éxito con un conjunto de entrenamiento lo suficientemente grande, y las muestras erróneas pueden filtrarse con el tiempo.

3. Datos sintéticos

Con los datos sintéticos, las máquinas se entrenan en renderizados o en simulaciones hiperrealistas: pensemos, por ejemplo, en un videojuego sobre los desplazamientos urbanos. En las aplicaciones de visión por computadora, muchos datos sintéticos se obtienen mediante renderizado, ya se trate de personas, coches, escenas enteras u objetos individuales. Los objetos 3D renderizados pueden colocarse en diversos entornos simulados para aproximarse al caso de uso deseado. Tampoco nos limitamos a los renderizados, ya que es posible producir datos sintéticos para simulaciones numéricas en las que el comportamiento de las variables individuales es bien conocido. Por ejemplo, el modelado de la dinámica de fluidos o la fusión nuclear es extremadamente intensivo desde el punto de vista computacional, pero las reglas se conocen bien: son las leyes de la física. Por tanto, si queremos aproximarnos rápidamente a la dinámica de fluidos o a las interacciones del plasma, primero podríamos producir datos simulados utilizando la computación clásica y, a continuación, introducir estos datos en un modelo de Machine Learning para acelerar la predicción mediante la inferencia ML.

Existen numerosos ejemplos de aplicaciones comerciales de los datos sintéticos. Por ejemplo, ¿qué pasaría si tuviéramos que anotar los recibos de compra de un minorista internacional a partir de recibos en papel escaneados sin procesar? Sin metadatos, tendríamos que revisar y anotar manualmente miles de imágenes de recibos para evaluar las intenciones del comprador y su significado semántico. Con un generador de datos sintéticos, podemos parametrizar las variaciones de un recibo y representarlas con precisión para producir imágenes sintéticas con anotaciones completas. Si descubrimos que nuestro modelo no funciona bien en un escenario concreto, podemos renderizar más muestras según sea necesario para rellenar los huecos y volver a entrenar.

Otro ejemplo real se da en la fabricación, donde los robots "pick-and-place" utilizan la visión por computadora en una cadena de montaje para empaquetar u ordenar y ensamblar productos y componentes. Los datos sintéticos pueden aplicarse en este escenario porque podemos utilizar los mismos modelos 3D que se usaron para crear moldes de inyección de los distintos componentes para hacer renderizaciones como muestras de entrenamiento que enseñan a las máquinas. Se pueden renderizar fácilmente miles de variaciones de dichos objetos volteándolos y rotándolos, así como simular diferentes condiciones de iluminación. Las anotaciones sintéticas serán siempre 100% precisas.

Aparte de la renderización, otro enfoque consiste en utilizar imágenes generadas por redes generativas adversariales (GAN) para crear variación en el conjunto de datos. El entrenamiento de los modelos GAN suele requerir un número decente de muestras en bruto. Con un autoencoder GAN completamente entrenado es posible explorar el espacio latente y ajustar los parámetros para crear variación adicional. Aunque es más complejo que los motores de renderizado clásicos, los GAN están ganando adeptos y tienen su lugar en el ámbito de la generación de datos sintéticos. No hay más que ver estos retratos generados de gatos falsos.

Elegir el enfoque adecuado:

El Machine Learning está en auge en todos los sectores y en empresas de todos los tamaños. Dependiendo del tipo de datos, la cantidad y la forma en que estén almacenados y estructurados, Valence puede recomendar un camino a seguir que podría utilizar una combinación de los enfoques de generación de datos y formación descritos en este post. El orden en que se aplican estos enfoques varía según el proyecto, y se reduce aproximadamente a cuatro fases:

  1. Puesta en marcha del proceso de formación. Esto incluye la recopilación o generación de datos de entrenamiento iniciales y el desarrollo de una arquitectura de modelo y un enfoque de entrenamiento. Puede que sea necesario realizar algún análisis estadístico (DOE) para determinar las mejores entradas para producir los resultados y predicciones deseados.
  2. Construir la infraestructura de formación. El acceso a la unidad de procesamiento gráfico (GPU) en la nube puede resultar caro. Aunque algunos modelos pueden entrenarse en hardware local al principio del proyecto, a largo plazo es deseable contar con una infraestructura de entrenamiento escalable y sin servidores, así como con una estrategia adecuada de gestión del ciclo de vida de los experimentos de ML.
  3. Ejecución de experimentos. En esta fase empezamos a entrenar el modelo, ajustando el conjunto de datos y experimentando con la arquitectura del modelo y los hiperparámetros. Recogeremos muchas métricas de los experimentos para medir las mejoras.
  4. Infraestructura de inferencia. Esto incluye integrar el modelo entrenado en su sistema y ponerlo a trabajar. Puede tratarse de una inferencia basada en la nube, en cuyo caso elegiremos el mejor enfoque sin servidor que minimice los gastos en la nube al tiempo que maximiza el rendimiento y la estabilidad. También puede ser inferencia en el borde, en cuyo caso puede que tengamos que optimizar el modelo para que se ejecute en una CPU de borde de baja potencia, GPU, TPU, VPU, FPGA o una combinación de ellas. 

Lo que me gustaría que todos los lectores entendieran es que estos modelos son sencillos en su sofisticación. Hay un proceso de descubrimiento al inicio de cada proyecto en el que identificamos las necesidades de datos de entrenamiento y qué arquitectura de modelo y enfoque de entrenamiento obtendrán el resultado deseado. Parece relativamente sencillo desencadenar una red neuronal en una gran cantidad de datos, pero hay muchos detalles a tener en cuenta a la hora de configurar los flujos de trabajo de Machine Learning. Al igual que la investigación física en el mundo real, el Machine Learning requiere la creación de un "laboratorio digital" que contenga las herramientas y materias primas necesarias para investigar hipótesis y evaluar resultados. El Machine Learning tiene tal variedad de aplicaciones realmente increíbles que es probable que haya un lugar para él en su organización como parte de su viaje digital.

Recursos adicionales: