Aprendizaje automático aplicado e inteligencia artificial para ingenieros

Aprendizaje automático aplicado e inteligencia artificial para ingenieros

Resumen

Este documento ofrece un resumen sobre los conceptos y técnicas clave en aprendizaje automático aplicado e inteligencia artificial basado en extractos del libro de Jeff Prosise del año 2024. Los extractos abordan diversos temas que incluyen conceptos fundamentales de ML, algoritmos de aprendizaje supervisado y no supervisado, métricas para la evaluación de modelos, técnicas de preprocesamiento de datos y la operacionalización de modelos de ML. El autor hace énfasis en la aplicación práctica de estos conceptos para ingenieros, destacando herramientas y bibliotecas como Scikit-learn, Keras y Azure Custom Vision.

Temas Principales e Ideas Importantes

Importancia Fundamental del ML y la IA

El autor sostiene que el aprendizaje automático y la inteligencia artificial son tan fundamentalmente importantes como las revoluciones tecnológicas anteriores y tendrán un impacto igualmente profundo en nuestras vidas. Una anécdota personal sobre un sistema de detección de fraude de una empresa de tarjetas de crédito destaca un primer encuentro con la aplicación práctica del ML.

Cita: «El aprendizaje automático (ML) y la inteligencia artificial (IA) tienen una importancia tan fundamental como las tres revoluciones mencionadas y tendrán un impacto igualmente profundo en nuestra vida.»

Estructura de Datos para Modelos Predictivos

Los modelos predictivos operan en conjuntos de datos donde una columna representa la «etiqueta» (el valor a predecir) y las columnas restantes son «columnas de características» utilizadas para encontrar patrones que permitan hacer predicciones. Los conjuntos de datos reales suelen ser mucho más grandes y complejos que los ejemplos simples.

Cita: «La tarea de un modelo predictivo es encontrar patrones en las filas de las columnas de características que permitan predecir cuál será la etiqueta.»

Aprendizaje Supervisado – Clasificación y Regresión
  • Clasificación: El objetivo es categorizar los datos en clases. Los filtros de correo no deseado se presentan como ejemplo principal, usando 1s y 0s en la columna de etiquetas para denotar spam y no spam, logrando alta precisión mediante el entrenamiento con cantidades crecientes de datos.
  • Regresión: El objetivo es predecir un valor numérico continuo.

La distinción entre regresión y clasificación se ilustra con ejemplos que muestran líneas de regresión y fronteras de separación lineal (aunque los datos reales suelen ser menos ordenados).

Aprendizaje No Supervisado – Agrupamiento (Clustering)
  • k-Means Clustering: Este algoritmo se usa para agrupar puntos de datos en k grupos basándose en su similitud. El ejemplo de agrupación de clientes por ingresos anuales y puntaje de gasto demuestra su aplicación. El “método del codo” se menciona como forma de determinar el número óptimo de grupos.

Principales Algoritmos de ML Cubiertos

  • k-Vecinos Más Cercanos (k-NN): Un algoritmo simple de aprendizaje supervisado que predice la etiqueta de un nuevo punto de datos basándose en las etiquetas de sus k vecinos más cercanos. Puede usarse tanto para regresión como para clasificación. El conjunto de datos iris se usa como ejemplo para la clasificación con k-NN.
  • Árboles de Decisión: Un algoritmo no paramétrico que construye un árbol binario de preguntas para hacer predicciones. Funcionan bien con datos no lineales y no requieren normalización. Un inconveniente significativo es su tendencia a sobreajustar, especialmente sin límites de profundidad, lo que lleva a predicciones inexactas en datos nuevos.
  • Árboles de Decisión con Gradiente Boosting (GBDT): Un método conjunto que construye árboles de decisión dependientes secuencialmente, con cada árbol modelando el error del anterior. Este enfoque aditivo mejora la precisión.
  • Máquinas de Vectores de Soporte (SVM): Una técnica poderosa principalmente usada para clasificación, aunque también aplicable a regresión. Funciona proyectando los datos en un espacio de mayor dimensión donde se encuentra una clara separación (hiperplano) entre clases. El “truco del kernel” permite calcular productos punto en esta dimensión superior sin proyectar explícitamente los datos, ahorrando tiempo y memoria. Diferentes kernels (lineal, RBF, polinómico) afectan la frontera de decisión. Las SVM, especialmente modelos paramétricos y redes neuronales, suelen beneficiarse de datos normalizados.
  • Regresión Logística: Usada para estimar probabilidades de clasificación. Modela la probabilidad de que un punto de datos pertenezca a una clase particular usando una curva sigmoide. El conjunto de datos Titanic se usa como ejemplo para predecir la probabilidad de sobrevivir.
  • Naive Bayes: Un algoritmo probabilístico de clasificación basado en el teorema de Bayes. A menudo se usa en procesamiento del lenguaje natural, como filtrado de spam. Funciona bien con datos textuales, y técnicas como CountVectorizer y TF-IDFVectorizer se usan para representar texto numéricamente.

Técnicas de Preprocesamiento de Datos

  • Normalización de Datos: Proceso de escalar datos para que tengan rangos similares. Es especialmente importante para modelos paramétricos como las SVM y las redes neuronales para mejorar la precisión y asegurar convergencia. Se menciona la normalización Z-score como uno de los métodos.
  • Vectorización: Convertir datos textuales en vectores numéricos, necesario para muchos algoritmos de ML. Se discuten CountVectorizer y TF-IDFVectorizer.
  • Relleno de Secuencias: Agregar ceros a secuencias de longitudes variables para hacerlas uniformes, requisito para redes neuronales que procesan datos secuenciales.

Evaluación y Validación de Modelos

  • División Entrenamiento-Prueba: Dividir un conjunto de datos en conjuntos de entrenamiento y prueba para evaluar el desempeño del modelo en datos nuevos.
  • Validación Cruzada: Método más robusto para evaluar la precisión del modelo dividiendo los datos en múltiples partes y entrenando/pruebas el modelo en diferentes combinaciones. cross_val_score en Scikit-learn se menciona.
  • Métricas para Modelos de Clasificación:
    • Precisión y Sensibilidad (Recall): Medidas del desempeño de un clasificador. La elección de la métrica adecuada (precisión o sensibilidad) depende del costo de falsos positivos versus falsos negativos (por ejemplo, filtrado de spam).
  • Curva ROC y AUC: Visualiza el equilibrio entre la tasa de verdaderos positivos y la tasa de falsos positivos en distintos umbrales. Un puntaje AUC más alto indica un modelo más preciso. RocCurveDisplay y roc_auc_score están disponibles en Scikit-learn.
  • Matriz de Confusión: Tabla que resume el desempeño de un modelo de clasificación mostrando los conteos de verdaderos positivos, verdaderos negativos, falsos positivos y falsos negativos para cada clase.

Reducción de Dimensionalidad

  • Análisis de Componentes Principales (PCA): Técnica para reducir el número de dimensiones en un conjunto de datos mientras se retiene la mayor varianza posible. PCA es útil para visualizar datos de alta dimensión, eliminar ruido y anonimizar conjuntos de datos. El “gráfico de sedimentación” (scree plot) se usa para visualizar la varianza explicada por cada componente principal.
  • t-SNE (t-distributed Stochastic Neighbor Embedding): Otra técnica de reducción de dimensionalidad usada principalmente para visualizar datos de alta dimensión. A diferencia de PCA, t-SNE usa una transformación no lineal y busca mejorar la separación entre clases.

Detección de Anomalías

Identificar patrones o valores atípicos en los datos. PCA puede aplicarse para detección de anomalías reconstruyendo datos desde un número reducido de componentes e identificando instancias con errores altos de reconstrucción. Un ejemplo con datos de vibración de rodamientos ilustra esto.

Operacionalización de Modelos de ML

Hacer que los modelos entrenados estén disponibles para usar en aplicaciones desarrolladas en varios lenguajes de programación. Esto puede lograrse serializando modelos (por ejemplo, usando pickle) y cargándolos en la aplicación objetivo o usando bibliotecas/marcos que permitan llamar modelos de Python desde otros lenguajes (por ejemplo, xlwings para Excel).

Aprendizaje Profundo y Redes Neuronales

  • Redes Neuronales (NNs): Compuestas por capas de nodos interconectados (neuronas) con pesos y sesgos. Aprenden ajustando estos parámetros durante el entrenamiento. Las funciones de activación (ReLU, sigmoide, tanh, softmax) introducen no linealidad.
  • Redes Neuronales Profundas (DNNs): Redes neuronales con múltiples capas ocultas.
  • Redes Neuronales Convolucionales (CNNs o ConvNets): Diseñadas específicamente para procesar datos en rejilla, como imágenes. Usan capas convolucionales con núcleos (filtros) para extraer características y capas de agrupamiento para reducir las dimensiones espaciales. CNNs han alcanzado resultados punteros en tareas de visión por computadora como clasificación de imágenes y detección de objetos. CNNs preentrenadas como AlexNet y ResNet han avanzado significativamente en el campo.
  • Redes Neuronales Recurrentes (RNNs): Diseñadas para procesar datos secuenciales incorporando una memoria de entradas previas.
  • Transformadores: Tipo de arquitectura de red neuronal que ha revolucionado el procesamiento del lenguaje natural. Utilizan mecanismos de autoatención para ponderar la importancia de diferentes partes de la secuencia de entrada. BERT (Bidirectional Encoder Representations from Transformers) es un ejemplo destacado de un modelo transformador preentrenado.

Entrenamiento de Redes Neuronales

Incluye optimización de parámetros usando técnicas como descenso de gradiente estocástico y monitoreo del progreso del entrenamiento usando métricas como MAE (Error Absoluto Medio). El sobreajuste es una preocupación y puede monitorearse comparando el desempeño en entrenamiento y validación.

Keras

Una API de alto nivel para construir y entrenar redes neuronales, a menudo usada con TensorFlow o PyTorch. Proporciona componentes como capas, optimizadores y callbacks.

Incrustaciones (Embeddings)

Representar datos categóricos (como palabras) como vectores densos en un espacio de menor dimensión. Esto captura relaciones semánticas. La capa Embedding de Keras se usa para este propósito.

Modelos Secuencia-a-Secuencia

Redes neuronales diseñadas para tareas que involucran secuencias de entrada y salida, como traducción automática. Generalmente constan de un codificador y un decodificador. Los mecanismos de atención pueden mejorar el desempeño.

Sistemas de Respuesta a Preguntas

Ejemplos usando modelos BERT preentrenados (como minilm-uncased-squad2) para extraer respuestas desde texto.

Aplicaciones de Visión por Computadora

  • Clasificación de Imágenes: Categorizar imágenes (por ejemplo, identificar objetos o rostros). El conjunto de datos Labeled Faces in the Wild (LFW) se usa como ejemplo.
  • Detección de Objetos: Identificar y localizar objetos dentro de una imagen. YOLO (You Only Look Once) se menciona como un sistema rápido y preciso de detección de objetos. El servicio Azure Custom Vision se presenta como una herramienta en la nube para construir modelos personalizados de detección de objetos sin requerir experiencia extensa en ML.

Aplicaciones de Procesamiento del Lenguaje Natural (NLP)

  • Análisis de Sentimientos: Determinar el tono emocional del texto.
  • Detección de Spam: Identificar correos electrónicos no deseados.
  • Traducción Automática: Traducir texto de un idioma a otro usando modelos secuencia-a-secuencia.
  • Respuesta a Preguntas: Extraer respuestas a preguntas desde texto.

Herramientas y Bibliotecas Prácticas

  • Scikit-learn: Una biblioteca ampliamente usada en Python para algoritmos clásicos de ML, preprocesamiento de datos y evaluación de modelos. El autor menciona que la usará para muchos ejemplos en la primera mitad del libro.
  • Keras: Una API de alto nivel para redes neuronales.
  • Pandas: Una biblioteca de Python para manipulación y análisis de datos.
  • NumPy: Una biblioteca de Python para cómputo numérico.
  • Matplotlib y Seaborn: Bibliotecas de Python para visualización de datos.
  • Jupyter Notebooks: Un entorno interactivo para escribir y ejecutar código, útil para experimentar con modelos de ML.
  • Docker: Plataforma para contenerizar aplicaciones, útil para configurar entornos de desarrollo.
  • Azure Custom Vision Service: Servicio en la nube para construir modelos personalizados de visión por computadora.
  • Hugging Face Hub: Plataforma para acceder y compartir modelos y conjuntos de datos de NLP preentrenados.
  • xlwings: Biblioteca para integrar Python con Microsoft Excel.

Importancia de la Experimentación y Ajuste de Hiperparámetros

Los extractos destacan implícita y explícitamente la necesidad de experimentar con diferentes modelos, tipos de kernel y hiperparámetros (como C y gamma en SVMs, o el número de clusters en k-Means) para encontrar el mejor ajuste para un conjunto de datos y problema específico. Herramientas como GridSearchCV se usan para el ajuste de hiperparámetros.

Conclusión

Este documento de referencia proporciona una visión concisa de los conceptos y técnicas clave discutidos en los extractos proporcionados. El material fuente enfatiza un enfoque práctico del ML y la IA, demostrando cómo estas herramientas pueden aplicarse para resolver problemas del mundo real.

#MachineLearning #IA #InteligenciaArtificial #IngenieríaDigital #DataScience #BigData #DeepLearning #Transformers #BERT #Keras #ScikitLearn #Azure #Tecnología #FutureOfEngineering

Fuente: Prosise, J. (2022). Applied machine learning and AI for engineers. Sebastopol, CA: O’Reilly Media.