El mundo de la inteligencia artificial y el aprendizaje automático (machine learning) ha experimentado un crecimiento exponencial en los últimos años. Cada vez más, estos campos se han convertido en piezas clave en proyectos tecnológicos y empresariales. Una de las bases del aprendizaje automático es la clasificación de los algoritmos en diferentes tipos según su funcionamiento y aplicación. En este artículo, exploraremos a fondo los cuatro tipos de aprendizaje automáticos: el aprendizaje supervisado, el no supervisado y el aprendizaje por refuerzo.
- Aprendizaje Supervisado (Supervised learning)
- Tipos de modelos en el Aprendizaje Supervisado
- Cómo funciona el Aprendizaje Supervisado
- Algoritmos más utilizados en el Aprendizaje Supervisado
- Aprendizaje no supervisado (Unsupervised learning)
- Cómo funciona el Aprendizaje no Supervisado
- Tipos de modelos en el Aprendizaje no Supervisado
- Algoritmos más utilizados en el Aprendizaje no Supervisado
- Aprendizaje Semisupervisado
- Aprendizaje por Refuerzo (Reinforcement learning)
- Cómo funciona el Aprendizaje por Refuerzo
- Agrupación de algoritmos según el método de aprendizaje
- Algoritmos más utilizados en el Aprendizaje por Refuerzo
- Aprendizaje Auto-supervisado (Self-Supervised)
Aprendizaje Supervisado (Supervised learning)
El aprendizaje supervisado es un enfoque dentro del machine learning en el cual se utiliza un conjunto de datos de entrenamiento que contiene ejemplos con etiquetas conocidas. Estas etiquetas representan las salidas deseadas o resultados correctos que el modelo debe aprender a predecir. En esencia, el objetivo del aprendizaje supervisado es capacitar al algoritmo para que pueda mapear las entradas a las salidas con precisión.
Tipos de modelos en el Aprendizaje Supervisado
En el aprendizaje supervisado, existen dos tipos de modelos:
- Modelos de Clasificación: Estos modelos se utilizan cuando se debe predecir una etiqueta discreta que pertenece a un conjunto finito de posibles etiquetas. Por ejemplo, clasificar correos electrónicos como «spam» o «no spam».
- Modelos de Regresión: En este caso, se predice un valor numérico o continuo en lugar de una etiqueta discreta. Un ejemplo podría ser predecir el precio de una casa en función de sus características.
Un ejemplo sencillo de aprendizaje supervisado es la predicción de la cantidad de personas que se inscriben en un programa de formación, como un bootcamp, en función de la temporada del año. Aquí, el algoritmo analiza datos históricos de inscripciones y aprende a relacionar el momento del año con la cantidad de inscritos. Algunas aplicaciones donde ya se utiliza el aprendizaje supervisado podría ser la detección de fraudes, la clasificación de documentos o la recomendación de productos.
Cómo funciona el Aprendizaje Supervisado
El proceso de aprendizaje supervisado se puede descomponer en varios pasos clave:
- Conjunto de datos etiquetado: Se inicia con un conjunto de datos que contiene ejemplos de entrada junto con las salidas correspondientes (etiquetas). Por ejemplo, en un sistema de detección de spam de correo electrónico, los correos electrónicos etiquetados como «spam» y «no spam» se consideran ejemplos etiquetados.
- Selección del modelo: Luego, se elige un algoritmo o modelo de machine learning adecuado para el problema en cuestión. La elección del modelo depende de la naturaleza de los datos y de si el problema es de clasificación o regresión.
- Entrenamiento del modelo: El modelo se entrena utilizando el conjunto de datos etiquetado. Durante el entrenamiento, el algoritmo ajusta sus parámetros para minimizar la diferencia entre las predicciones del modelo y las etiquetas reales en el conjunto de entrenamiento.
- Validación cruzada: Para evaluar la calidad del modelo, se utiliza la validación cruzada. Esta técnica implica dividir el conjunto de datos en un conjunto de entrenamiento y un conjunto de prueba. El modelo se entrena en el conjunto de entrenamiento y se evalúa en el conjunto de prueba. Esto permite estimar su capacidad para generalizar a datos no vistos.
- Ajuste y optimización: Si el modelo no alcanza el nivel deseado de precisión en la validación cruzada, se pueden ajustar sus hiperparámetros o se pueden explorar otros modelos. Este proceso de optimización se repite hasta que se obtenga un rendimiento satisfactorio.
Algoritmos más utilizados en el Aprendizaje Supervisado
Existen varios algoritmos populares que se utilizan en el aprendizaje supervisado, cada uno con sus propias ventajas y aplicaciones:
- Regresión Lineal: Utilizado para problemas de regresión, busca establecer una relación lineal entre las variables de entrada y salida.
- Regresión Logística (Logistic Regression): Ideal para problemas de clasificación binaria, predice la probabilidad de que una entrada pertenezca a una de las dos clases.
- Máquinas de vectores de soporte (SVM o Support Vector machine): Excelente para la clasificación, SVM encuentra el hiperplano que mejor separa las clases en el espacio de características.
- Árboles de Decisión (Decision Tree): Se emplean tanto para clasificación como para regresión. Divide el conjunto de datos en función de las características para tomar decisiones.
- K-Vecinos más cercanos KNN o K nearest neighbors): Clasifica nuevos puntos de datos en función de la mayoría de sus «vecinos» más cercanos en el conjunto de entrenamiento.
- Clasificador Naive Bayes (Naive Bayes classifier): Utilizado en clasificación, se basa en el Teorema de Bayes para estimar la probabilidad de pertenencia a una clase.
- Redes neuronales (Artificial neural network): Modelos complejos inspirados en el funcionamiento del cerebro humano, adecuados para una amplia gama de problemas.
- Bosque Aleatorio (Random Forest): Un conjunto de árboles de decisión que mejora la precisión y la robustez de las predicciones.
Aprendizaje no supervisado (Unsupervised learning)
El aprendizaje no supervisado se diferencia del supervisado en que no se proporcionan etiquetas o respuestas correctas a la máquina durante el entrenamiento. En su lugar, la máquina trabaja con un conjunto de datos no etiquetado y busca patrones o relaciones por sí misma.
Cómo funciona el Aprendizaje no Supervisado
- Recopilación de datos: Comienza con la recopilación de datos no etiquetados, que contienen características o atributos para el análisis.
- Selección del algoritmo: Elije un algoritmo adecuado para el análisis no supervisado, como agrupamiento, reducción de dimensionalidad o análisis de asociación.
- Preprocesamiento de Datos: Realiza un preprocesamiento de datos que puede incluir la eliminación de valores atípicos, normalización de características y manejo de valores faltantes.
- Aplicación del algoritmo: Aplica el algoritmo seleccionado a los datos no etiquetados para descubrir patrones, estructuras o relaciones en los datos.
- Evaluación (opcional): En algunos casos, se pueden utilizar métricas para evaluar la calidad de los resultados obtenidos.
- Interpretación de resultados: Interpreta los resultados del análisis, que pueden incluir grupos identificados, características reducidas o reglas de asociación.
- Uso de Resultados (aplicación): Utiliza los resultados del análisis no supervisado en aplicaciones relevantes, como la segmentación de clientes, la visualización de datos o las recomendaciones de productos.
Tipos de modelos en el Aprendizaje no Supervisado
Dos de los tipos de aprendizaje no supervisado serían:
- Clustering: aquí, la máquina analiza un conjunto de datos y agrupa elementos similares en categorías o clústeres. Un ejemplo de este tipo de enfoque podría ser la segmentación de clientes, donde se agrupan clientes con comportamientos de compra similares o diferenciar perros de gatos.
- Asociación (associaton): busca encontrar relaciones entre variables en un gran conjunto de datos. Esto se utiliza en la recomendación de productos en línea, donde se sugieren productos relacionados en función del historial de compra del usuario.
- Reducción de dimensionalidad: se utiliza para reducir la cantidad de características o dimensiones en un conjunto de datos. El objetivo principal de este enfoque es simplificar la representación de los datos al eliminar características redundantes o irrelevantes, manteniendo al mismo tiempo la información esencial. Esto es especialmente útil cuando se trabaja con conjuntos de datos de alta dimensionalidad, ya que puede ayudar a mejorar la eficiencia computacional, reducir el ruido en los datos y, en algunos casos, facilitar la visualización.
- Detección de anomalías (Outliers): se utiliza para identificar observaciones o puntos de datos inusuales o atípicos en un conjunto de datos. Estos valores atípicos, conocidos como «anomalías» u «outliers», pueden ser indicativos de errores en los datos, eventos raros o comportamientos inusuales en un contexto dado. La detección de anomalías es valiosa en una amplia gama de aplicaciones, como la detección de fraudes en transacciones financieras, la identificación de defectos en productos manufacturados o la monitorización de sistemas para detectar fallos inesperados.
Algoritmos más utilizados en el Aprendizaje no Supervisado
- K-Means: Es uno de los algoritmos de agrupamiento más populares. Agrupa los datos en k clústeres, donde k es un número que tú defines previamente. Cada clúster contiene puntos de datos que son similares entre sí.
- Agrupación jerárquica: Este algoritmo crea una estructura jerárquica de clústeres, formando un árbol o dendrograma. Puedes elegir cuántos clústeres deseas extrayendo el árbol a diferentes niveles.
- Análisis de componentes principales (PCA): Aunque es más conocido por la reducción de dimensionalidad, PCA también se utiliza en tareas de extracción de características. Ayuda a encontrar las características más importantes en un conjunto de datos.
- T-SNE (T-distributed Stochastic Neighbor Embedding): Este algoritmo se utiliza principalmente para la visualización de datos de alta dimensionalidad en un espacio bidimensional o tridimensional, manteniendo las relaciones entre los puntos.
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise): Se basa en la densidad de puntos de datos para agruparlos. Puede identificar clústeres de diferentes formas y tamaños, y es bueno para detectar valores atípicos.
- Algoritmo de expectation-maximization (EM): Se utiliza en tareas de agrupamiento y, en particular, en la mezcla de modelos gaussianos (GMM), donde se asume que los datos provienen de una mezcla de distribuciones gaussianas.
- Análisis de componentes independientes (ICA): Se utiliza para separar señales mezcladas en diferentes fuentes originales. Es útil en aplicaciones como la separación de fuentes de audio.
- Apriori: Este algoritmo se utiliza en la minería de reglas de asociación para encontrar relaciones entre elementos en un conjunto de datos. Es común en la recomendación de productos y análisis de mercado.
- Autoencoders: Aunque a menudo se asocian con el aprendizaje profundo, los autoencoders pueden utilizarse para aprender representaciones latentes de datos en el aprendizaje no supervisado.
Aprendizaje Semisupervisado
El aprendizaje semisupervisado representa una técnica en el campo del machine learning que fusiona elementos del aprendizaje supervisado con aquellos del aprendizaje no supervisado, con el propósito de aprovechar conjuntos de datos que incluyen escasos ejemplos con etiquetas y una gran cantidad de ejemplos sin etiquetas.
En el enfoque del aprendizaje semisupervisado, se aplican algoritmos de aprendizaje no supervisado para identificar características relevantes y representaciones útiles en los datos sin etiquetas. Posteriormente, esta información se emplea para potenciar la calidad del modelo de aprendizaje supervisado. En este proceso, el modelo de aprendizaje supervisado se entrena utilizando tanto los datos con etiquetas como los datos sin etiquetas, lo que permite aprovechar la información contenida en los datos no etiquetados para mejorar la precisión del modelo.
El aprendizaje semisupervisado se demuestra particularmente beneficioso en situaciones en las que la obtención de datos etiquetados resulta costosa o complicada, pero existe una abundante cantidad de datos sin etiquetas disponible. Ha quedado comprobado que el uso del aprendizaje semisupervisado conlleva una mejora significativa en la precisión de los modelos de machine learning en una variedad de aplicaciones, incluyendo el reconocimiento de voz, la visión por computadora y el procesamiento de lenguaje natural.
Aprendizaje por Refuerzo (Reinforcement learning)
El aprendizaje por refuerzo es un enfoque que se basa en el concepto de recompensas y castigos. Mientras que en el aprendizaje supervisado se busca minimizar el error y en el no supervisado se agrupan datos, en el aprendizaje por refuerzo se busca maximizar la recompensa. En este tipo de aprendizaje, una máquina, conocida como agente, toma acciones en un entorno y recibe recompensas o penalizaciones según el resultado de esas acciones. El objetivo del agente es aprender a tomar acciones que maximicen las recompensas a lo largo del tiempo.
Por ejemplo, el aprendizaje por refuerzo se utiliza en la programación de vehículos autónomos. El vehículo toma decisiones (acciones) como acelerar, frenar y girar, y recibe recompensas o penalizaciones según si esas acciones lo acercan o alejan de su objetivo, que podría ser llegar a un destino de manera segura.
Cómo funciona el Aprendizaje por Refuerzo
- Inicialización: El agente comienza en un estado inicial en el ambiente sin conocimiento previo.
- Acciones y estados: El agente toma una acción en función del estado actual. Esto afecta al ambiente y genera un nuevo estado.
- Recompensas y castigos: El ambiente devuelve una recompensa (positiva o negativa) al agente en base a la acción tomada. La recompensa es un valor numérico que indica qué tan buena fue la acción.
- Aprendizaje: El agente ajusta su comportamiento en función de las recompensas recibidas. El objetivo es maximizar la recompensa total a lo largo del tiempo.
- Exploración vs. explotación: El agente debe equilibrar la exploración de nuevas acciones (para descubrir mejores recompensas) y la explotación de las acciones conocidas (que han dado buenas recompensas en el pasado).
- Políticas: Con el tiempo, el agente desarrolla políticas que son estrategias para tomar decisiones en diferentes situaciones. Estas políticas guían las acciones futuras.
Agrupación de algoritmos según el método de aprendizaje
- Aprendizaje de valor: Estos algoritmos se centran en aprender funciones de valor que estiman la utilidad o el valor esperado de tomar acciones en un estado dado. Ejemplos incluyen el algoritmo Q-Learning y los métodos basados en aproximación de funciones, como DDPG (Deep Deterministic Policy Gradient).
- Política basada en gradiente: Estos algoritmos optimizan directamente una política de acción para maximizar las recompensas. Ejemplos incluyen REINFORCE y TRPO (Trust Region Policy Optimization).
- Modelos basados en el entorno: Algunos enfoques utilizan modelos internos para predecir el comportamiento del entorno y planificar acciones en función de esas predicciones. Ejemplos incluyen el enfoque Model-Based Reinforcement Learning.
- Aprendizaje profundo: Se han desarrollado algoritmos de Aprendizaje por Refuerzo basados en redes neuronales profundas, conocidos como Deep Reinforcement Learning. Ejemplos incluyen DQN (Deep Q-Network) y A3C (Asynchronous Advantage Actor-Critic).
- Exploración: Algunos algoritmos se centran en la exploración eficiente del espacio de acción para descubrir estrategias óptimas. La exploración es un aspecto fundamental en el Aprendizaje por Refuerzo. Ejemplos incluyen algoritmos basados en ruido de acción como TRPO y PPO (Proximal Policy Optimization).
- Aprendizaje por imitación: En lugar de aprender directamente a través de recompensas, estos algoritmos aprenden observando acciones de expertos humanos. Ejemplos incluyen el aprendizaje por imitación y el aprendizaje adversarial inverso.
Algoritmos más utilizados en el Aprendizaje por Refuerzo
- Q-Learning: Es uno de los algoritmos más conocidos en el aprendizaje por refuerzo. Utiliza una tabla llamada «Q-table» para almacenar los valores de utilidad de tomar acciones en estados específicos. Q-Learning es especialmente efectivo para problemas de aprendizaje en entornos discretos.
- SARSA: Similar a Q-Learning, SARSA también se utiliza para aprender políticas óptimas en entornos de aprendizaje por refuerzo. A diferencia de Q-Learning, SARSA considera las acciones reales tomadas por el agente y actualiza la política en consecuencia.
- Deep Q-Networks (DQN): Este algoritmo combina el aprendizaje por refuerzo con redes neuronales profundas. Es especialmente eficaz para problemas en los que el espacio de acción es grande o continuo. DQN ha sido utilizado con éxito en juegos de video y robótica.
- Policy gradient methods: Estos métodos se centran en aprender directamente la política del agente en lugar de estimar valores de utilidad. Algunos ejemplos incluyen REINFORCE y TRPO (Trust Region Policy Optimization). Son útiles en problemas con espacios de acción continuos.
- A3C (Asynchronous advantage actor-critic): A3C es un algoritmo que combina elementos de aprendizaje por refuerzo basado en políticas y aprendizaje por refuerzo basado en valores (critic). Es eficiente en términos computacionales y se ha utilizado en juegos de Atari y en tareas de control.
- Proximal policy optimization (PPO): PPO es un algoritmo de aprendizaje por refuerzo que busca mejorar la política del agente mientras mantiene un límite en los cambios realizados en cada actualización. Es robusto y eficiente en problemas con políticas continuas y discretas.
- Distributed distributional deterministic policy gradients (D4PG): Este algoritmo se enfoca en aprendizaje por refuerzo distribuido y ha demostrado un alto rendimiento en tareas de control y robótica.
- Twin delayed deep deterministic policy gradients (TD3): TD3 es una extensión del algoritmo DDPG que aborda algunos de sus desafíos. Se utiliza en problemas con políticas continuas y es eficaz en la estabilización del entrenamiento.
- Hindsight experience replay (HER): HER es un enfoque que se utiliza para abordar el problema de la escasez de recompensas en el aprendizaje por refuerzo. Permite al agente aprender de experiencias fallidas al cambiar el objetivo retroactivamente.
- AlphaZero: Este enfoque utiliza el aprendizaje profundo y el aprendizaje por refuerzo para entrenar agentes que son expertos en juegos de tablero como el ajedrez y el Go. AlphaZero ha demostrado un rendimiento excepcional en estos juegos.
- Actor-critic: se utiliza para entrenar a agentes en entornos donde deben tomar decisiones secuenciales para maximizar las recompensas a lo largo del tiempo.
Aprendizaje Auto-supervisado (Self-Supervised)
El aprendizaje autosupervisado, también conocido como self-supervised learning en inglés, es un enfoque de aprendizaje automático que se centra en entrenar modelos de inteligencia artificial utilizando etiquetas o señales generadas automáticamente a partir de los propios datos en lugar de depender de etiquetas externas proporcionadas por humanos. En esencia, el modelo aprende a sí mismo a través de la información contenida en los datos sin la necesidad de un conjunto de datos etiquetado previamente.
Cómo funciona el Aprendizaje Auto-supervisado
- Recopilación de datos no etiquetados: Se comienza reuniendo un conjunto de datos que no tiene etiquetas o categorías definidas previamente. Estos datos pueden ser imágenes, texto, audio u otros tipos de información.
- Creación de tareas auxiliares: En este paso, se generan tareas secundarias o auxiliares a partir de los datos no etiquetados. Estas tareas se diseñan para que el modelo aprenda a extraer características útiles de los datos. Por ejemplo, en procesamiento de lenguaje natural, una tarea auxiliar podría ser predecir una palabra en una oración a partir del contexto circundante.
- División de datos: Se divide el conjunto de datos en dos partes: una parte se utiliza como entrada o contexto, y la otra parte se utiliza para generar una señal objetivo o etiqueta artificial. La señal objetivo se crea mediante una transformación de los datos, como ocultar una parte de la información o cambiar el orden de las palabras en una oración.
- Entrenamiento del modelo: El modelo de aprendizaje automático se entrena utilizando la parte de entrada y la señal objetivo generada a partir de los datos. El objetivo es que el modelo aprenda a hacer predicciones precisas y útiles en función de la tarea auxiliar definida.
- Aprendizaje de representaciones: Durante el entrenamiento, el modelo ajusta sus parámetros para aprender representaciones significativas de los datos que le permitan realizar bien la tarea auxiliar. Estas representaciones pueden incluir características relevantes de los datos, patrones y estructuras subyacentes.
- Transferencia de conocimiento: Una vez que el modelo ha sido entrenado en la tarea auxiliar, las representaciones aprendidas se pueden transferir y utilizar en una tarea principal de interés. Esto significa que el modelo puede aplicar el conocimiento adquirido a nuevos datos no etiquetados para realizar tareas específicas.
- Afinación fina (fine-tuning): En algunos casos, se puede realizar un ajuste adicional del modelo en una tarea específica utilizando un conjunto de datos etiquetado más pequeño. Esto permite que el modelo se adapte aún más a la tarea principal.
Tipos de modelos en el Aprendizaje Auto-supervisado
- Generativos: Los modelos generativos se centran en la generación de datos similares a los datos de entrenamiento. En este grupo, los Variational Autoencoders (VAE) y Generative Adversarial Networks (GAN) son ejemplos claros de modelos generativos. VAEs generan datos a partir de una distribución latente, mientras que GANs generan datos compitiendo entre un generador y un discriminador.
- LLM (Modelos de Lenguaje Preentrenados): Estos modelos, como BERT y GPT (Generative Pretrained Transformer), son modelos de lenguaje que aprenden representaciones contextualizadas de palabras y oraciones. BERT, por ejemplo, se preentrena en tareas de llenado de espacios en blanco y predicción de palabras enmascaradas.
Algoritmos más utilizados en el Aprendizaje Auto-supervisado
- Word2Vec: Utilizado en procesamiento de lenguaje natural, Word2Vec es un algoritmo que aprende representaciones vectoriales de palabras a partir de grandes corpus de texto. Puede ser considerado como un enfoque de aprendizaje autosupervisado, ya que se basa en predecir una palabra a partir de las palabras circundantes en un contexto.
- BERT (Bidirectional Encoder Representations from Transformers): BERT es un modelo de lenguaje preentrenado en una tarea de llenado de espacios en blanco (masking). Aprende representaciones contextualizadas de palabras y se ha convertido en una base para muchas aplicaciones de procesamiento de lenguaje natural.
- Transformers: Además de BERT, los modelos de transformers, como GPT (Generative Pretrained Transformer), también se utilizan en el aprendizaje autosupervisado. Estos modelos se entrenan en grandes cantidades de texto para aprender representaciones de alto nivel de palabras y oraciones.
- Autoencoders: Los autoencoders son redes neuronales utilizadas en aprendizaje profundo para comprimir y descomprimir datos. En el contexto del aprendizaje autosupervisado, se pueden entrenar para reconstruir datos originales a partir de versiones modificadas o ruidosas de los mismos.
- Contrastive Learning: Este enfoque consiste en aprender representaciones comparando pares de ejemplos de datos. Uno de los ejemplos se toma como positivo y el otro como negativo, y el modelo aprende a acercar las representaciones de los positivos y alejar las de los negativos.
- Clustering y Agrupación: Algunos métodos de agrupación, como el K-means, pueden ser utilizados en el aprendizaje autosupervisado. Los datos se agrupan en clústeres, y las asignaciones de clústeres se utilizan como etiquetas.
- Predicción de Vecinos Cercanos: En este enfoque, se entrena un modelo para predecir si dos puntos de datos en un conjunto de datos están cerca o lejos uno del otro en función de sus características.
- SimCLR (SimCLRv2): SimCLR es un enfoque de aprendizaje de representaciones contrastivas que ha demostrado un rendimiento sobresaliente en tareas de visión por computadora. Se basa en maximizar la similitud entre pares de ejemplos y minimizar la similitud entre ejemplos negativos.
- Aprendizaje por reconstrucción: Los modelos se entrenan para reconstruir datos originales a partir de versiones distorsionadas o incompletas de los mismos, como en el caso de denoising autoencoders.
- Generación de imágenes y textos: Los modelos generativos, como los Variational Autoencoders (VAE) y Generative Adversarial Networks (GAN), se pueden utilizar en tareas de generación de imágenes y texto, que también son consideradas formas de aprendizaje autosupervisado.