Apuesto a que ya estás cansado de escuchar que la IA es una de las tendencias definitorias del siglo y posiblemente el enfoque principal en los profesionales de alta tecnología. Sin embargo, esto parece ser bastante cierto. El modo de autoaislamiento del COVID-19 ha destilado los principales problemas que enfrenta la civilización moderna y nos ha demostrado que la inteligencia artificial es capaz de lidiar con los problemas que pueden hacer que nuestras vidas sean más fáciles, convenientes y mucho más cómodas.
Sin embargo, siempre vale la pena recordar que una solución a cualquier problema no llega sin los esfuerzos suficientes. Para AI, los esfuerzos se concentran en el diseño cuidadoso y reflexivo de los modelos de aprendizaje automático y aún más en el proceso de creación de datos de entrenamiento de calidad. Esta última es probablemente la esfera más ignorada, donde los errores cometidos a menudo conducen a fallas y reacciones inadecuadas de los algoritmos inteligentes.
En esta publicación te contamos todo lo que debes saber sobre los datos de entrenamiento en el aprendizaje automático.
Indice
¿Qué son los datos de entrenamiento en el aprendizaje automático?
Responderemos a la pregunta de para qué usamos los datos de entrenamiento en el aprendizaje automático. Pero primero, entendamos bien qué son los datos de entrenamiento.
Los datos de entrenamiento son un conjunto de muestras (como una colección de fotos o videos, un conjunto de textos o archivos de audio, etc.) con etiquetas relevantes y completas asignadas que se utilizan para ajustar los parámetros de una máquina con el objetivo de entrenarla con el ejemplo.
Esto significa que los conjuntos de datos de entrenamiento son una parte esencial de cualquier modelo de ML. Son necesarios para enseñarle al algoritmo cómo hacer predicciones precisas de acuerdo con los objetivos de un proyecto de IA.
Al igual que las personas aprenden mejor de los ejemplos, las máquinas también requieren que comiencen a ver patrones en los datos. Sin embargo, a diferencia de los seres humanos, las computadoras necesitan muchos más ejemplos porque no piensan de la misma manera que los humanos. No ven objetos en las imágenes o no pueden reconocer a las personas en las fotos como nosotros podemos. Hablan sus propios lenguajes de programación que están estructurados de una manera diferente. Requieren un trabajo sustancial y una gran cantidad de datos para entrenar un modelo de aprendizaje automático para identificar las emociones de los videos.
Cuando le enseñas a un niño lo que es un gato, es suficiente mostrarle una sola imagen. Si intentas enseñarle a una computadora a reconocer un gato, necesitarás mostrar miles de imágenes de diferentes gatos, en diferentes tamaños, colores y formas, para que una máquina distinga con precisión a un gato de, por ejemplo, un perro.
Por otro lado, cuando un modelo ML es lo suficientemente sofisticado, puede ofrecer resultados más precisos que un humano. Esto puede parecer contradictorio, pero también tiene que lidiar con las diferencias en cómo nosotros y las máquinas procesamos la información.
Pero hablaremos de eso un poco más tarde. Por ahora, profundicemos en otros conceptos importantes como probar datos, diferentes tipos de datos y métodos de aprendizaje automático.
Dividir un conjunto de datos: datos de entrenamiento frente a datos de prueba en el aprendizaje automático
Ahora, aquí hay otro concepto que debes conocer al hablar sobre el entrenamiento de modelos ML: probar conjuntos de datos. Los datos de entrenamiento y los conjuntos de datos de prueba son dos partes diferentes pero importantes en el aprendizaje automático. Si bien los datos de entrenamiento son necesarios para enseñar un algoritmo de ML, los datos de prueba, como sugiere el nombre, ayudan a validar el progreso del entrenamiento del algoritmo y ajustarlo u optimizarlo para obtener mejores resultados.
En palabras simples, al recopilar un conjunto de datos que usarás para entrenar tu algoritmo, debes tener en cuenta que parte de los datos se usarán para verificar qué tan bien va el entrenamiento. Esto significa que tus datos se dividirán en dos partes: una para entrenamiento y otra para prueba.
Existen diferentes métodos para dividir el conjunto de datos, el más común sigue la relación de Pareto de 80:20 o, a veces, 70:30.
Por supuesto, existen métodos de división más sofisticados, pero por lo general, la proporción simple de 80:20 es suficiente. Hay una cosa más para recordar: la división debe ser aleatoria a menos que desees terminar con datos sesgados y desequilibrados llenos de puntos ciegos. Seguramente, también hay una serie de problemas con la división aleatoria, sin embargo, para muchos problemas de ML, funcionará bien.
Aprendizaje automático con entrenamiento, prueba y… ¿Datos de validación?
Bien, ahora, puedes eliminar solo los datos de prueba y entrenamiento en el aprendizaje automático. Pero si haces eso, corres el riesgo de lidiar con los errores que cometió tu algoritmo al tratar de mejorar durante el proceso de entrenamiento, los errores que seguramente mostrará tu conjunto de datos de prueba.
Un entrenamiento adecuado requiere que el algoritmo vea los datos de entrenamiento varias veces, lo que significa que el modelo estará expuesto a los mismos patrones si se ejecuta sobre el mismo conjunto de datos. Para evitar esto, necesitas un conjunto diferente de datos que ayudarán a tu algoritmo a ver diferentes patrones. Pero al mismo tiempo, no deseas involucrar tu conjunto de datos de prueba antes de que finalice el entrenamiento, ya que lo necesitas para diferentes propósitos.
Entonces, ¿Qué haces? La respuesta obvia es dividir tu conjunto de datos nuevamente, esta vez solo tomando los datos de entrenamiento y asignando una parte de ellos para la validación. Esta validación ayudará a que tu modelo llene los puntos ciegos que podría haber pasado por alto antes y mejorará más rápido.
Pero ya has dividido tu conjunto de datos en datos de entrenamiento y prueba, ¿no es así? ¿Cómo lo divides de nuevo? Lo más común es que vuelva a ser el principio 80:20 (o 70:30), como antes.
De esta manera, terminas con tres conjuntos de datos, cada uno adecuado para su propio propósito.
¿Dónde obtener datos de entrenamiento?
Antes de desglosar cómo se usan los datos de entrenamiento en el aprendizaje automático, hagamos un breve desvío para ver dónde buscarlos. Hay bastantes fuentes diferentes para obtener los conjuntos de datos de entrenamiento, y la elección de estas fuentes depende de tus objetivos, los requisitos de tu proyecto de aprendizaje automático, así como tu presupuesto, tiempo y restricciones de personal.
Conjuntos de datos de entrenamiento de código abierto
Esta podría ser una solución aceptable si tienes mucha suerte o no, para empresas más pequeñas y nuevas empresas que no tienen suficientes recursos gratuitos para gastar en la recopilación y el etiquetado de datos. El gran beneficio de esta opción es que es gratis. Pero hay una trampa: dichos conjuntos de datos no se adaptaron inicialmente para los propósitos específicos de tu algoritmo, sino para algún otro proyecto.
Lo que esto significa es que deberás modificar y probablemente volver a anotar el conjunto de datos para que se ajuste a tus necesidades de capacitación.
Web e IoT
Esta es una forma muy común de recopilar conjuntos de datos de capacitación que utilizan la mayoría de las empresas medianas de aprendizaje automático. Esto significa que utilizas Internet para recopilar los datos. Alternativamente, los sensores, las cámaras y otros dispositivos inteligentes pueden proporcionarte los datos sin procesar que luego deberás anotar a mano.
Esta forma de recopilar un conjunto de datos de entrenamiento se adapta mucho más a tu proyecto porque tu eres quien recopila y anota los datos. La desventaja es que requiere mucho tiempo y recursos, sin mencionar a los especialistas que saben cómo limpiar, estandarizar, anonimizar y etiquetar los datos.
Conjuntos de datos de entrenamiento artificial
Esta es la forma en que comienza a ganar fuerza en los últimos años. Lo que básicamente significa es que primero creas un modelo ML que generará tus datos. Esta es una excelente manera si necesitas grandes volúmenes de datos únicos para entrenar tu algoritmo. Es ahorrativo en términos de recursos financieros y de personal, ya que solo necesitas gastarlos en diseñar el modelo para crear tus datos. Aún así, este método de recopilación de datos de capacitación requiere una gran cantidad de poder computacional, que generalmente no es de libre acceso para las pequeñas y medianas empresas. Además, si realmente necesitas grandes cantidades de datos, llevará algún tiempo generar un voluminoso conjunto de datos de entrenamiento de alta calidad.
Familias de métodos de aprendizaje automático
Ahora que hemos establecido los aspectos esenciales de los datos de entrenamiento junto con el aprendizaje de un vocabulario básico y las fuentes para buscar datos de entrenamiento, echemos un vistazo a los métodos de aprendizaje automático.
Hay dos grandes familias de métodos de aprendizaje automático, y los datos de entrenamiento ocupan un lugar diferente en cada uno de ellos.
Datos de aprendizaje y capacitación no supervisados
El aprendizaje no supervisado es una familia de métodos de ML que utiliza datos sin etiquetar para buscar patrones en los conjuntos de datos sin procesar. Los datos sin etiquetar son los datos sin procesar que no tienen etiquetas significativas que una máquina pueda usar para el entrenamiento.
Como probablemente hayas adivinado, ML no supervisado en realidad no usa datos de entrenamiento ya que, por definición, es aprendizaje automático sin datos de entrenamiento. Se basa en los datos sin procesar sin etiquetas para realizar tareas como agrupación o asociación. Entonces, ¿por qué necesitas saberlo? Porque, incluso para los métodos no supervisados de ML, es útil tener una cantidad (relativamente) pequeña de datos etiquetados para validar y probar los resultados de tu modelo de ML no supervisado.
Datos de formación y aprendizaje supervisados
El aprendizaje supervisado es otra gran familia de métodos de ML. Se basa en datos etiquetados, que son los datos que se han asignado con etiquetas relevantes durante el proceso conocido como anotación o etiquetado.
En pocas palabras, el aprendizaje supervisado se basa en la supervisión, obviamente, lo que significa que debe haber un ser humano para habilitar y observar su progreso. Este enfoque a menudo se conoce como human-in-the-loop.
Human-in-the-Loop y la calidad de los datos de entrenamiento
Hay una serie de tareas que deben manejar los expertos humanos antes de comenzar a entrenar un algoritmo de aprendizaje supervisado. Su objetivo principal es brindarte no solo cualquier conjunto de datos de capacitación, sino uno que sea de alta calidad y relevante para la misión de tu proyecto:
Recopilar los datos
Para entrenar tu modelo, deberás recopilar los datos sin procesar que luego se procesarán. Hay algunos requisitos a tener en cuenta cuando recopilas los datos: debe ser de alta calidad, relevante, completo y (preferiblemente) grande.
¿Por qué importan estos requisitos? Porque no deseas terminar con un modelo de aprendizaje automático que no puede ordenar a tus datos de entrenamiento que no cubren. Existe un gran debate sobre cuál de los requisitos priorizar.
Preparar los datos
Cuando hayas recopilado sus datos que son relevantes para tus objetivos y marques todas las casillas importantes en la lista de requisitos, es hora de hacerlo manejable, así como asegurarte de que cubrirás todos los casos posibles con los que tendrá que lidiar tu modelo en el futuro. Esto significa que tus expertos humanos necesitarán mejorar los datos:
- Limpiándolos
- Eliminando valores duplicados presentes
- Reformatearlos para que se ajusten a los formatos de archivo deseados
- Anonimizar si corresponde
- Haciéndolos normalizados y uniformes
Anotar los datos
Algunos prefieren incluir este paso en el anterior, pero somos expertos en lo que hacemos y, como tales, creemos que el etiquetado es un proceso complejo que merece una atención aparte. Si deseas que tu modelo se entrene bien, es importante que las etiquetas asignadas a tus datos sean consistentes y de alta calidad.
Analizar los datos
Este es el paso final que rara vez se separa del resto ya que se trata del control de calidad de los datos de entrenamiento. No hace falta decir que la falta de control de calidad puede duplicar tu trabajo. Es esencial encontrar todos los pequeños errores que afectan a tu proyecto en las etapas más tempranas posibles, y lo mismo ocurre con la preparación de tus conjuntos de datos de entrenamiento. Es mejor dedicar algo de tiempo a recopilar y anotar tus datos en lugar de comenzar el entrenamiento desde cero.
Como puedes ver, el proceso de obtener un conjunto de datos de entrenamiento para un algoritmo de aprendizaje supervisado es bastante complejo. Además, en la ciencia de datos, obtener un conjunto de datos de entrenamiento adecuado suele ocupar la mayor parte del tiempo.
Si no deseas recopilar y anotar los datos tu mismo, no tienes la capacidad, no sabes cómo probar la precisión de tus datos de entrenamiento o simplemente no quieres lidiar con todo eso, piense en la subcontratación. Solo ten cuidado con los problemas de seguridad que puedan surgir: es importante asegurarse de que el tratamiento y la gestión de tus datos de entrenamiento cumplan con las normas y estándares de privacidad de datos. El mejor consejo es elegir un socio de confianza.
Datos de aprendizaje y capacitación semisupervisados
Los datos etiquetados proporcionan una excelente base para entrenar un algoritmo de ML. Sin embargo, el proceso de recopilar, etiquetar y refinar los datos puede ser abrumador, sin mencionar que es costoso en términos de costes, recursos humanos y tiempo. ¿Qué pasaría si tuvieras una manera de reducir drásticamente la participación de los humanos en el circuito?
Ingresa al aprendizaje semisupervisado, que no es una familia separada de métodos de ML, estrictamente hablando, sino un híbrido entre el aprendizaje supervisado y no supervisado. Utiliza datos etiquetados y no etiquetados y combina los métodos para mejorar la precisión de los datos y reducir el tiempo de entrenamiento de un algoritmo.
Los modelos de aprendizaje semisupervisado requieren una pequeña cantidad de datos etiquetados, que se pueden usar para anotar el volumen mucho mayor de datos sin etiquetar sin procesar utilizando métodos de aprendizaje no supervisados. Después de anotar los datos sin etiquetar de esta manera, puedes proceder a entrenar tu algoritmo ML según lo previsto.
El aprendizaje semisupervisado aún depende de los datos etiquetados y, como tal, de los anotadores humanos que pueden proporcionarlos. Sin embargo, el volumen requerido es significativamente menor, lo que aumenta la eficiencia del proceso de anotación y capacitación.
Aprendizaje profundo con datos de entrenamiento
Hoy en día, «aprendizaje profundo» se ha convertido en la expresión que probablemente escuches con más frecuencia que «aprendizaje automático». La gran venta del aprendizaje profundo es su rendimiento en comparación con otros algoritmos de aprendizaje automático.
La eficiencia y precisión de los algoritmos de aprendizaje profundo se atribuyen a sus raíces ideológicas del funcionamiento de las redes neuronales de un cerebro biológico. En realidad, la denominación es bastante engañosa ya que una red neuronal artificial (ANN) y una biológica son muy diferentes entre sí. Pero ambos funcionan según el principio similar de los nodos de comunicación.
La parte «profunda» en «aprendizaje profundo» se refiere a las múltiples capas que están conectadas por estos nodos. Esto permite que un algoritmo de aprendizaje profundo resuelva varias tareas donde otros algoritmos de aprendizaje automático lineal se dedican a resolver solo una.
Lo que debes tener en cuenta es que la capacidad de los algoritmos de aprendizaje profundo para superar a otros algoritmos de ML depende de la cantidad de datos de entrenamiento que tengan. Tu nuevo modelo elegante puede tener el mejor algoritmo que existe, pero no te ayudará a construir MVP sin suficientes datos de entrenamiento para hacerlo realmente inteligente.
No es ningún secreto que los grandes datos como concepto han ganado mucha fuerza en los últimos años. Hoy en día, se acepta ampliamente que más datos significan predicciones mejores y más precisas. Pero, ¿cuánto es exactamente? Intentemos responder la pregunta que no tiene una respuesta correcta: ¿cuántos datos recopilar para entrenar y probar tu modelo de aprendizaje automático?
¿Cuántos datos de entrenamiento son suficientes?
La respuesta corta es que no hay una respuesta correcta. La respuesta un poco más larga: cada proyecto específico requerirá una cantidad diferente de datos de capacitación, y la única forma de saber cuánto necesitarás es mediante prueba y error.
Hay algunas pautas muy amplias que pueden ayudarte a tener una idea básica de por qué esta pregunta no tiene respuesta:
- Por lo general, los modelos más sofisticados con más atributos y enlaces entre ellos (como las ANN) requerirán más datos para entrenarse adecuadamente.
- El ámbito de aplicación, junto con la complejidad de los fenómenos de la vida real para los que tu modelo está siendo entrenado para predecir, también influyen en la cantidad de datos de entrenamiento que se necesitarán. Cuidado con las excepciones y los puntos ciegos.
- Con el tiempo, es probable que necesites volver a entrenar o ajustar tu modelo a medida que cambien las tendencias que predice, lo que requerirá más datos a largo plazo.
Como puedes ver, muchos factores influyen en la comprensión de cuántos datos de entrenamiento son suficientes. Como regla general, los ingenieros experimentados tienen al menos una idea general sobre la cantidad de datos que serán suficientes para entrenar su modelo. Debes comenzar a escucharlos y luego obtener más datos de entrenamiento a medida que avanzas.
Tienes un conjunto de datos de entrenamiento… ¿Qué sigue?
En este punto, has elegido la forma preferida de recopilar los datos de entrenamiento, te has asegurado de que sean de alta calidad y volumen correcto, que estén correctamente procesados y etiquetados, y dividido en conjuntos de datos de entrenamiento y prueba. También tienes listo tu modelo de aprendizaje automático. Ahora es el momento de darle un buen uso a tus datos de entrenamiento. Sin embargo, ten cuidado: todavía hay trampas que deseas evitar.
Sobreajuste o desajuste: no abuses de tus datos de entrenamiento
¿Cómo se entrena un modelo de aprendizaje automático ? Como regla general, tomas tus datos de entrenamiento en pequeños lotes y los alimentas a tu algoritmo. Un período de tiempo marcado por la introducción de la totalidad de tu conjunto de datos de entrenamiento en el modelo se conoce como época.
Deberás repetir el proceso para comenzar a ver al menos resultados medio decentes de tu algoritmo. Si no repites este proceso lo suficiente, te enfrentarás a un fenómeno conocido como ajuste insuficiente, que da como resultado una baja precisión de las predicciones de aprendizaje automático.
Uno podría pensar que cuanto más, mejor, pero no es el caso esta vez. Si sobreentrenas tu modelo, serás víctima de un ajuste excesivo, lo que conducirá a una capacidad deficiente para hacer predicciones cuando se enfrente a información novedosa. Y este extremo es peligroso porque, si no tienes tus copias de seguridad, tendrás que reiniciar el proceso de entrenamiento desde el principio.
Pasos finales: pruebas, ajustes y todo eso
Una vez que hayas entrenado tu modelo de aprendizaje automático, es hora de usar el 20 % que has guardado de tu conjunto de datos de entrenamiento para probarlo. Esta es tu oportunidad de ajustar tu modelo y asegurarte de que funcione según lo previsto. No te desanimes si no es así: todavía estamos por ver un caso sin problemas en las etapas iniciales de la construcción del modelo.
Además, prepárate para modificar y refinar tu modelo de aprendizaje automático incluso después de que se active. Cualquier algoritmo es similar a un organismo vivo: necesita ser alimentado y cuidado para que funcione correctamente y brinde los mejores resultados. Trátalo bien y te responderá brindándote las predicciones precisas que tanto te ha costado obtener.
Conclusión
Aquí te resumimos los puntos más importantes que debes saber sobre los datos de entrenamiento.
- Los datos de entrenamiento son un elemento esencial de cualquier proyecto de aprendizaje automático. Son datos preprocesados y anotados que introducirás en tu modelo de ML para indicarle cuál es su tarea.
- Además de los datos de entrenamiento, necesitarás datos de prueba, que puedes sacar del conjunto de datos inicial dividiéndolo 80:20. También puedes dividir los datos de entrenamiento para crear un conjunto de validación.
- La recopilación de conjuntos de datos de entrenamiento es una tarea que requiere mucho trabajo. Dependiendo de tu presupuesto y limitaciones de tiempo, puedes tomar un conjunto de código abierto, recopilar los datos de entrenamiento de la web o sensores IoT, o crear un algoritmo de aprendizaje automático para generar datos artificiales.
- Tu modelo requiere un entrenamiento adecuado para hacer predicciones precisas. Si deseas que pueda diferenciar árboles y personas, deberás mostrarle imágenes de árboles, fotos de personas y luego decirle cuál es cuál. Esto también se conoce como aprendizaje supervisado.
- Puedes prescindir de los datos anotados si creas un modelo de aprendizaje automático no supervisado. Sin embargo, sus capacidades serán limitadas y los datos de entrenamiento aún serían excelentes para probar la precisión de tu modelo.
- El término medio entre el aprendizaje automático supervisado y no supervisado requiere datos de entrenamiento, pero en cantidades mucho más pequeñas. Esto permite que dichos modelos tengan la flexibilidad de los modelos supervisados mientras ahorran mucho tiempo y recursos al anotar los datos.
- El aprendizaje profundo requiere una gran cantidad de datos de entrenamiento. No hay reglas estrictas sobre cuántos datos de entrenamiento son suficientes. Depende de una variedad de factores, incluida la complejidad de tu modelo de aprendizaje automático, la naturaleza del fenómeno del mundo real que deseas predecir y la necesidad de actualizar el modelo en el futuro.
- Una vez que hayas recopilado, procesado y anotado los datos de entrenamiento, los utilizarás para entrenar tu modelo. Asegúrate de no subentrenar (faltar) o sobreentrenar (sobreajustar) tu algoritmo a menos que desees predicciones inexactas o irrelevantes.
- Ten en cuenta que tu trabajo no se detiene una vez que hayas entrenado tu algoritmo de aprendizaje automático. La puesta a punto y el mantenimiento del modelo es una tarea continua.
Como puedes ver, los datos de entrenamiento son uno de los componentes centrales de cualquier proyecto de aprendizaje automático. Si tienes un modelo (o incluso una idea) pero no sabes cómo recopilar y anotar un conjunto de datos de entrenamiento, comunícate con expertos. ¡Te ayudarán a obtener datos de capacitación grandes, relevantes y de alta calidad que se ajusten a tus propósitos!