
[16/05/2023] En medio de toda la publicidad y la histeria sobre ChatGPT, Bard y otros grandes modelos de lenguaje (LLMs, por sus siglas en inglés) generativos, vale la pena dar un paso atrás para ver la gama de algoritmos de inteligencia artificial (IA) y sus usos. Después de todo, muchos algoritmos de aprendizaje automático "tradicionales” han estado resolviendo problemas importantes durante décadas -y todavía funcionan con fuerza. ¿Por qué los LLM deberían recibir toda la atención?
[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]
Antes de sumergirnos, recuerde que el aprendizaje automático es una clase de método para crear automáticamente modelos predictivos a partir de datos. Los algoritmos del aprendizaje automático son los motores del aprendizaje automático, lo que significa que son los algoritmos los que convierten un conjunto de datos en un modelo. El tipo de algoritmo que funciona mejor (supervisado, no supervisado, de clasificación, de regresión, etcétera) depende del tipo de problema que esté resolviendo, los recursos informáticos disponibles y la naturaleza de los datos.
En la siguiente sección, examinaré brevemente los diferentes tipos de aprendizaje automático y los diferentes tipos de modelos de aprendizaje automático. Luego, analizaré 14 de los algoritmos de aprendizaje automático y aprendizaje profundo más utilizados, y explicaré cómo esos algoritmos se relacionan con la creación de modelos para predicción, clasificación, procesamiento de imágenes, procesamiento de lenguaje, juegos y robótica, e inteligencia artificial generativa.
Tipos de aprendizaje automático
El aprendizaje automático puede resolver problemas de clasificación no numéricos (por ejemplo, "predice si este solicitante no pagará su préstamo”), y problemas de regresión numérica (por ejemplo, "predice las ventas de procesadores de alimentos en nuestras tiendas minoristas durante los próximos tres meses”). Ambos tipos de modelos se entrenan principalmente mediante el aprendizaje supervisado, lo que significa que los datos de entrenamiento ya se han etiquetado con las respuestas.
Etiquetar conjuntos de datos de entrenamiento puede ser costoso y llevar mucho tiempo, por lo que el aprendizaje supervisado a menudo se mejora con el aprendizaje parcialmente supervisado. El aprendizaje parcialmente supervisado aplica el modelo de aprendizaje supervisado desde un pequeño conjunto de datos etiquetados, a un conjunto de datos más grande sin etiquetar, y agrega cualquier dato predicho que tenga una alta probabilidad de ser correcto al modelo para futuras predicciones. El aprendizaje parcialmente supervisado a veces puede descarrilarse, por lo que puede mejorar el proceso con la revisión humana en el ciclo (HITL, por sus siglas en inglés) de predicciones cuestionables.
Si bien el mayor problema con el aprendizaje supervisado es el costo de etiquetar los datos de entrenamiento, el mayor problema con el aprendizaje no supervisado (donde los datos no están etiquetados) es que a menudo no funciona muy bien. Sin embargo, el aprendizaje no supervisado tiene sus usos: a veces puede ser bueno para reducir la dimensionalidad de un conjunto de datos, explorar los patrones y la estructura de los datos, encontrar grupos de objetos similares y detectar valores atípicos y otros ruidos en los datos.
El potencial de un agente que aprende por aprender es mucho mayor que el de un sistema que reduce imágenes complejas a una decisión binaria (por ejemplo, perro o gato). Descubrir patrones en lugar de llevar a cabo una tarea predefinida puede generar resultados sorprendentes y útiles, como se demostró cuando los investigadores de Lawrence Berkeley Lab ejecutaron un algoritmo de procesamiento de texto (Word2vec) en varios millones de resúmenes de ciencia de materiales para predecir descubrimientos de nuevos materiales termoeléctricos.
El aprendizaje por refuerzo entrena a un actor o agente para responder a un ambiente de una manera que maximiza algún valor, generalmente por prueba y error. Eso es diferente del aprendizaje supervisado y no supervisado, pero a menudo se combina con ellos. Ha demostrado ser útil para entrenar computadoras para jugar y para entrenar robots para realizar tareas.
Las redes neuronales, que originalmente se inspiraron en la arquitectura de la corteza visual biológica, consisten en una colección de unidades conectadas, llamadas neuronas artificiales, organizadas en capas. Las neuronas artificiales a menudo utilizan funciones de activación sigmoideas o ReLU (unidad lineal rectificada), a diferencia de las funciones escalonadas utilizadas para los primeros perceptrones. Las redes neuronales generalmente se entrenan con aprendizaje supervisado.
El aprendizaje profundo utiliza redes neuronales que tienen una gran cantidad de capas "ocultas” para identificar características. Las capas ocultas se encuentran entre las capas de entrada y salida. Cuantas más capas haya en el modelo, más características se pueden identificar. Al mismo tiempo, cuantas más capas haya en el modelo, más tiempo llevará entrenar. Entre los aceleradores de hardware para redes neuronales se encuentran las GPU, TPU y FPGA.
El ajuste fino puede acelerar significativamente la personalización de los modelos al entrenar algunas capas finales en nuevos datos etiquetados sin modificar los pesos del resto de las capas. Los modelos que se prestan a un ajuste fino se denominan modelos base o modelos fundacionales.
Los modelos de visión a menudo usan redes neuronales convolucionales profundas. Los modelos de visión pueden identificar los elementos de las fotografías y los cuadros de video y, por lo general, se entrenan en conjuntos de datos fotográficos muy grandes.
Los modelos de lenguaje a veces usan redes neuronales convolucionales, pero recientemente tienden a usar redes neuronales recurrentes, memoria a corto plazo o transformadores. Los modelos de lenguaje se pueden construir para traducir de un idioma a otro, analizar la gramática, resumir el texto, analizar el sentimiento y generar texto. Los modelos de lenguaje generalmente se entrenan en conjuntos de datos de lenguaje muy grandes.
Algoritmos populares de aprendizaje automático
La lista que sigue no es exhaustiva y los algoritmos están ordenados aproximadamente del más simple al más complejo.
Regresión lineal: Regresión lineal, también llamada regresión de mínimos cuadrados: Es el algoritmo de aprendizaje automático supervisado más simple para predecir valores numéricos. En algunos casos, la regresión lineal ni siquiera requiere un optimizador, ya que se puede resolver en forma cerrada. De lo contrario, se optimiza fácilmente mediante el descenso de gradiente (ver más abajo). El supuesto de la regresión lineal es que la función objetivo está linealmente correlacionada con las variables independientes. Eso puede o no ser cierto para sus datos.
Para desesperación de los científicos de datos, los analistas de negocios a menudo aplican alegremente la regresión lineal a los problemas de predicción y luego se detienen, sin siquiera producir diagramas de dispersión o calcular correlaciones para ver si la suposición subyacente es razonable. No caiga en esa trampa. No es tan difícil hacer su análisis exploratorio de datos, y luego hacer que la computadora pruebe todos los algoritmos razonables de aprendizaje automático para ver cuáles son los que funcionan mejor. Por todos los medios, intente la regresión lineal, pero trate el resultado como una línea de base, no como una respuesta final.
Descenso de gradiente: Los métodos de optimización para el aprendizaje automático, incluidas las redes neuronales, suelen utilizar algún tipo de algoritmo de descenso de gradiente para impulsar la propagación hacia atrás, a menudo con un mecanismo para ayudar a evitar quedarse atascado en los mínimos locales, como la optimización de minilotes seleccionados al azar (descenso de gradiente estocástico) y aplicando correcciones de impulso al gradiente. Algunos algoritmos de optimización también adaptan las tasas de aprendizaje de los parámetros del modelo observando el historial de gradientes (AdaGrad, RMSProp y Adam).
Regresión logística: Los algoritmos de clasificación pueden encontrar soluciones a problemas de aprendizaje supervisado que requieren una elección (o determinación de probabilidad) entre dos o más clases. La regresión logística es un método para resolver problemas de clasificación categórica que utiliza la regresión lineal dentro de una función sigmoidea o logit, que comprime los valores a un rango de 0 a 1 y le da una probabilidad. Al igual que la regresión lineal para la predicción numérica, la regresión logística es un buen primer método para la predicción categórica, pero no debería ser el último método que pruebe.
Máquinas de vectores de soporte: Las máquinas de vectores de soporte (SVM, por sus siglas en inglés) son un tipo de modelo de clasificación paramétrica, una forma geométrica de separar y clasificar dos clases de etiquetas. En el caso más simple de clases bien separadas con dos variables, una SVM encuentra la línea recta que mejor separa los dos grupos de puntos en un plano.
En casos más complicados, los puntos se pueden proyectar en un espacio de mayor dimensión y la SVM encuentra el plano o hiperplano que mejor separa las clases. La proyección se llama kernel, y el proceso se llama kernel trick. Después de invertir la proyección, el límite resultante suele ser no lineal.
Cuando hay más de dos clases, las SVM se utilizan en las clases por parejas. Cuando las clases se superponen, puede agregar un factor de penalización por los puntos mal clasificados; esto se llama un margen blando.
Árbol de decisión: Los árboles de decisión (DT, por sus siglas en inglés) son un método de aprendizaje supervisado no paramétrico que se utiliza tanto para la clasificación como para la regresión. El objetivo es crear un modelo que prediga el valor de una variable de destino mediante el aprendizaje de reglas de decisión simples deducidas de las características de los datos. Un árbol puede verse como una aproximación constante por partes.
Los árboles de decisión son fáciles de interpretar y económicos de implementar, pero computacionalmente costosos de entrenar y propensos al sobreajuste.
Bosque aleatorio: El modelo de bosque aleatorio produce un conjunto de árboles de decisión aleatorios y se utiliza tanto para la clasificación como para la regresión. El conjunto agregado combina los votos modalmente o promedia las probabilidades de los árboles de decisión. Bosque aleatorio es una especie de conjunto de embolsado.
XGBoost: XGBoost (eXtreme Gradient Boosting) es un sistema con adaptación de escala e integral de potenciación de árboles que ha producido resultados de última generación en muchos desafíos de aprendizaje automático. Embolsar y aumentar a menudo se mencionan al mismo tiempo. La diferencia es que, en lugar de generar un conjunto de árboles aleatorios (RDF, por sus siglas en inglés), el impulso del árbol de gradiente comienza con un solo árbol de decisión o de regresión, se optimiza y luego se construye el siguiente árbol a partir de los residuos del primer árbol.
Clustering de k-medias:El problema intenta dividir n observaciones en k clústeres utilizando la métrica de distancia euclidiana, con el objetivo de minimizar la varianza (suma de cuadrados) dentro de cada clúster. Es un método no supervisado de cuantificación vectorial y es útil para el aprendizaje de características y para proporcionar un punto de partida para otros algoritmos.
El algoritmo de Lloyd (aglomeración iterativa de clústeres con actualizaciones de centroides) es la heurística más común utilizada para resolver el problema. Es relativamente eficiente, pero no garantiza la convergencia global. Para mejorar eso, las personas a menudo ejecutan el algoritmo varias veces utilizando centroides de clústeres iniciales aleatorios generados por Forgy o métodos de partición aleatoria.
K-medias asume clústeres esféricos que son separables de tal forma que la media converja hacia el centro del clúster, y también asume que el orden de los puntos de datos no importa. Se espera que los clústeres tengan un tamaño similar, de modo que la asignación al centro del clúster más cercano sea la asignación correcta.
Análisis de componentes principales: El análisis de componentes principales (PCA, por sus siglas en inglés) es un procedimiento estadístico que utiliza una transformación ortogonal para convertir un conjunto de observaciones de variables numéricas posiblemente correlacionadas en un conjunto de valores de variables linealmente no correlacionadas, denominadas componentes principales. Karl Pearson inventó el PCA en 1901. El PCA se puede lograr mediante la descomposición de valores propios de una matriz de covarianza (o correlación) de datos, o la descomposición de valores singulares (SVD, por sus siglas en inglés) de una matriz de datos, generalmente después de un paso de normalización aplicado a los datos iniciales.
Los algoritmos populares del aprendizaje profundo
Hay una serie de paradigmas de aprendizaje profundo que han sido muy exitosos y ampliamente adoptados, el más reciente es la arquitectura transformadora detrás de los modelos de inteligencia artificial generativa de hoy.
Redes neuronales convolucionales: Las redes neuronales convolucionales (CNN, por sus siglas en inglés) son un tipo de red neuronal profunda que se usa a menudo para la visión artificial. Tienen la propiedad deseable de ser independientes de la posición.
El resumen comprensible de una capa de convolución cuando se aplica a imágenes es que se desliza espacialmente sobre la imagen, calculando productos de puntos; cada unidad en la capa comparte un conjunto de ponderaciones. Una convnet generalmente usa múltiples capas de convolución, intercaladas con funciones de activación. Las CNN también pueden tener capas agrupadas y totalmente conectadas, aunque existe una tendencia a deshacerse de este tipo de capas.
Redes neuronales recurrentes: Si bien las redes neuronales convolucionales hacen un buen trabajo al analizar imágenes, en realidad no tienen un mecanismo que tenga en cuenta las series y secuencias temporales, ya que son estrictamente redes de avance. Las redes neuronales recurrentes (RNN, por sus siglas en inglés), otro tipo de red neuronal profunda, incluyen explícitamente ciclos de retroalimentación, lo que efectivamente les brinda algo de memoria y comportamiento temporal dinámico y les permite manejar secuencias, como el habla.
Eso no significa que las CNN sean inútiles para el procesamiento del lenguaje natural; significa que las RNN pueden modelar información basada en el tiempo que no pueden las CNN. Y eso no significa que las RNN solo puedan procesar secuencias. Las RNN y sus derivados tienen una variedad de áreas de aplicación, que incluyen traducción de idiomas, reconocimiento y síntesis de voz, control de robots, predicción de series temporales y detección de anomalías, y reconocimiento de escritura a mano.
Mientras que, en teoría, una RNN ordinaria puede llevar información a lo largo de un número indefinido de pasos, en la práctica, por lo general, no puede dar muchos pasos sin perder el contexto. Una de las causas del problema es que el gradiente de la red tiende a desaparecer en muchos pasos, lo que interfiere con la capacidad de un optimizador basado en gradientes como el descenso de gradiente estocástico (SGD, por sus siglas en inglés) para converger.
Memoria larga a corto plazo: Las redes de memoria larga a corto plazo (LSTM, por sus siglas en inglés) se diseñaron explícitamente para evitar el problema del gradiente de fuga y permitir dependencias a largo plazo. El diseño de un LSTM agrega algo de complejidad en comparación con el diseño de celdas de una RNN, pero funciona mucho mejor para secuencias largas.
En las LSTM, la red es capaz de olvidar (controlar) la información anterior y recordarla, en ambos casos alterando los pesos. Esto efectivamente le da a una LSTM memoria para largo y corto plazo, y resuelve el problema del gradiente de fuga. Las LSTM pueden manejar secuencias de cientos de entradas pasadas.
Transformadores: Los transformadores son redes neuronales que utilizan únicamente mecanismos de atención prescindiendo por completo de la recurrencia y las circunvoluciones. Los transformadores se inventaron en Google.
Las unidades de atención (y los transformadores) son parte del algoritmo BERT (Representaciones de codificador bidireccional de transformadores) de Google y el algoritmo de GPT-2 de OpenAI (modelo transformador con preentrenamiento no supervisado) para procesamiento de lenguaje natural. Los transformadores continúan siendo una parte integral de la arquitectura neuronal de los últimos modelos de lenguajes grandes, como ChatGPT/Bing Chat (basado en GPT-3.5 o GPT-4) y Bard (basado en LaMDA, que significa Language Model for Dialogue Applications).
Las unidades de atención no son muy sensibles a qué tan cerca aparecen dos palabras en una oración, a diferencia de las RNN; eso los hace buenos en tareas que las RNN no hacen bien, como identificar antecedentes de pronombres que pueden estar separados de los pronombres referentes por varias oraciones. Las unidades de atención son buenas para observar un contexto más grande que las últimas palabras que preceden a la palabra actual.
Q-learning: Q-learning es un algoritmo sin políticas, basado en valores y sin modelos para el aprendizaje por refuerzo que encontrará la mejor serie de acciones en función del estado actual. La "Q” significa calidad. La calidad representa cuán valiosa es la acción para maximizar las recompensas futuras. Q-learning es esencialmente aprendizaje por experiencia.
Q-learning a menudo se combina con redes neuronales profundas. Se usa con redes neuronales convolucionales entrenadas para extraer características de cuadros de video, por ejemplo, para enseñarle a una computadora a jugar videojuegos o para aprender control robótico. AlphaGo y AlphaZero son famosos y exitosos programas de juego de Google DeepMind que fueron entrenados con aprendizaje reforzado combinado con redes neuronales profundas.
Como hemos visto, hay muchos tipos de problemas de aprendizaje automático y muchos algoritmos para cada tipo de problema. Estos varían en complejidad desde regresión lineal para predicción numérica hasta redes neuronales convolucionales para procesamiento de imágenes, modelos basados en transformadores para inteligencia artificial generativa y aprendizaje de refuerzo para juegos y robótica.
Basado en el artículo de Martin Heller (InfoWorld) y editado por CIO Perú
Puede ver también: