Introducción Procesado Avanzado de Señal Audiovisual PDF
Document Details
Uploaded by ChivalrousPlutonium8456
Universidad Politécnica de Madrid
Alberto Belmonte Hernández
Tags
Related
- Fast Fourier Transform PDF
- ELX 303 Signals, Spectra, and Processing PDF
- Prentice-HallDigital-Signal-Processing-Principles-Algorithms-ApplicationsJohn-G.-Proakis-Dimitris-G.-Manolakis3rd-.pdf
- digital_signal_processing_principles_algorithms_and_applications_third_edition.pdf
- Digital Signal Processing Lecture 1 PDF
- Linear Algebra and Its Applications 6th Edition PDF
Summary
This document introduces advanced signal processing techniques and artificial intelligence. It discusses data learning, data acquisition, data cleaning, training and testing models, and model implementation focusing on audio-visual signals. The document includes examples like analyzing tweets for sentiment and predicting house prices.
Full Transcript
Procesado Avanzado de Señal Audiovisual Introducción a técnicas de procesado avanzado de señal e inteligencia artificial Alberto Belmonte Hernández Índice Introducción a la inteligencia artificial y aprendizaje automático Extracción de características en i...
Procesado Avanzado de Señal Audiovisual Introducción a técnicas de procesado avanzado de señal e inteligencia artificial Alberto Belmonte Hernández Índice Introducción a la inteligencia artificial y aprendizaje automático Extracción de características en imagen, audio y texto Algoritmos de Machine Learning Deep Learning: Redes neuronales profundas, convolucionales y recurrentes Ejemplos de arquitecturas de redes neuronales Introducción a la inteligencia artificial y aprendizaje automático Los datos son el poder En estos días, los algoritmos utilizan una gran cantidad de datos para aprender patrones complejos bajo un conocimiento oculto para predecir comportamientos y estimar nueva información difícil. Muchas aplicaciones conocidas utilizan una gran cantidad de datos de los usuarios para proporcionarles nuevos contenidos personalizados. Otras aplicaciones utilizan los datos para proporcionar soluciones a diferentes problemas en el mundo. Algunos sistemas se pueden utilizar para extraer información interesante de varias fuentes multimedia. Ejemplos son Amazon que utiliza tus datos para recomendar nuevos productos, Netflix para sugerir películas y series, Facebook para detectar rostros, Google para proporcionar enlaces relacionados en tus búsquedas, Tesla en los coches autónomos y una infinidad de otras aplicaciones y campos como la medicina, el entretenimiento, la seguridad, las finanzas, los juegos, la realidad virtual... https://research.fb.com/category/ facebook-ai-research/ https://ai.google/research/ https://www.aboutamazon.com/r esearch ¿Cómo aprender de los datos? En realidad, hay una gran cantidad de datos disponibles de varias fuentes. Estos datos contienen información relacionada con una gran cantidad de problemas y se presentan en la mayoría de los casos en forma de conjunto de datos. Los conjuntos de datos son una gran cantidad de información recopilada de diferentes orígenes y vinculada a uno o más problemas a resolver. Los datos se componen no solo por números, sino también por multimedia (imágenes, video, audio, texto). Además, puede recopilar sus propios datos y crear su conjunto de datos personalizado para resolver problemas en los que un conjunto de datos no está disponible o los conjuntos de datos no son suficientes para aprender de manera eficiente. Los conjuntos de datos se pueden descargar desde varios centros institucionales (Berkeley, MIT, Standford, Oxford...), grandes empresas (Microsoft, Google, Facebook...) o en páginas web que ofrecen concursos (Kaggle, CrowdAnalytix...) entre otros. https://www.kaggle.com/ http://cocodataset.org/#home https://www.imdb.com/interfaces/ ¿Cómo aprender de los datos? Datasets Lo primero que necesitas si quieres aprender de los datos es un conjunto de datos con información útil para resolver tu problema. Dependiendo del problema que se esté estudiando se necesitan diferentes fuentes de información. Por ejemplo, podemos realizar un análisis de sentimiento sobre los Tweets de Twitter para clasificarlos en negativo, neutro o positivo en función del análisis de texto. Podemos predecir el precio de una casa utilizando datos de muchas casas donde tenemos el número de habitaciones, el tamaño de la casa, la ubicación y otras características interesantes de la casa. Otro campo interesante está relacionado con la detección de objetos en imágenes y se necesita un conjunto de datos compuesto por una gran cantidad de imágenes con los objetos presentados en su problema y etiquetas con la ubicación de los objetos en las imágenes. Clasificar las pistas de audio depende de los sonidos presentados en cada momento. Positive tweet Negative tweet Estructura del proyecto de aprendizaje automático ¿Aprendizaje automático? Este concepto es un conjunto de algoritmos para el análisis de datos que automatizan la analítica construyendo un modelo a partir de los datos en estudio. Mediante el uso de algoritmos que actúan de forma iterativa sobre los datos, el aprendizaje automático/profundo permite a los ordenadores aprender conocimientos ocultos sin necesidad de mirarlos manualmente. Todos estos algoritmos presentan la misma estructura de proyecto dividida en varios pasos. Estos pasos se presentan en la siguiente figura: 1. La adquisición de datos es la tarea donde se recopilan los datos que se utilizarán para entrenar nuestros algoritmos y se obtienen de conjuntos de datos existentes. 2. La limpieza de datos está relacionada con la tarea en la que se inspeccionan los datos con el fin de asegurar que toda la información es correcta o es necesario eliminar o realizar modificaciones si existe una falta de valores. 3. El entrenamiento y las pruebas de modelos son las operaciones que se realizan utilizando un algoritmo de aprendizaje para aprender sobre los datos y probar si el modelo aprendido tiene la precisión necesaria para resolver el problema. 4. La implementación del modelo es el uso del modelo entrenado en la aplicación final para predecir nuevos valores o información. Limpieza de datos y análisis exploratorio de datos (EDA) En estadística, el análisis exploratorio de datos (EDA) es un enfoque para analizar conjuntos de datos para resumir sus características principales, a menudo con métodos visuales. Principalmente, EDA es para ver lo que los datos pueden decirnos más allá de la tarea formal de modelado o prueba de hipótesis. El análisis exploratorio de datos anima a los estadísticos a explorar los datos y, posiblemente, a formular hipótesis que podrían conducir a una nueva recopilación de datos y experimentos. Basado en el análisis de datos exploratorios, todos los datos se pueden representar de muchas maneras. Es posible representar las relaciones entre variables, graficar el número de valores relacionados con características importantes... Es posible ver si existen errores en los datos o datos incompletos y rellenarlo. Podemos decidir si algunos valores no son interesantes para tenerlo en cuenta en el proceso formativo. Este paso es el más importante antes de entrenar un algoritmo. Los datos son la fuente de información que toman los algoritmos para aprender patrones sobre ellos. EDA en el dataset del Titanic Este dataset se puede encontrar en la siguiente dirección. https://www.kaggle.com/c/titanic/data Los datos se dividen en dos ficheros csv uno con un conjunto de datos para el entrenamiento y otro con datos para test. El objetivo es predecir la probabilidad de supervivencia de un pasajero en base a diferentes variables. Nos centraremos aquí sólo en el EDA. En la imagen siguiente se pueden ver los 5 primeros datos (filas) y las variables/características (columnas) de cada dato. Limpieza de datos. Análisis exploratorio de datos (EDA) en el conjunto de datos del Titanic Es posible rellenar datos vacíos y completar las columnas sin datos y buscar columnas que no sean interesantes para nuestra formación. En este caso podemos llenar la columna de edad tomando algunas consideraciones. En cuanto a los valores de edad frente a la clase y graficando la edad como diagramas de caja, podemos observar la distribución de edades. Los huecos vacíos se pueden rellenar tomando el valor medio en cada clase de viaje. Además, las columnas de cabina, nombre y billete no son útiles porque no proporcionan ninguna información interesante y se pueden eliminar de los datos. Los datos de cadena (categóricos) deben convertirse en números debido a que los algoritmos de aprendizaje necesitan números como entradas. Por ejemplo, podemos reemplazar las columnas de sexo y embarcadas por ceros y unos (ceros para hombres o embarcados y unos para mujeres o no embarcados). Los datos finales limpios se presentan a continuación: Limpieza de datos. Análisis exploratorio de datos (EDA) en el conjunto de datos del Titanic Usando el análisis exploratorio de datos en el conjunto de datos del Titanic, podemos ver cosas interesantes como algunos "agujeros" en los datos y las distribuciones de datos para cada variable. Empty data in some values Survived / Deaths Survived / Deaths by Sex Survived / Deaths by Class Passengers age distribution Ticket Price / Number of persons EDA en el dataset del Housing Prices Este dataset se puede encontrar en la siguiente dirección. https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques/data Los datos se dividen en dos ficheros csv uno con un conjunto de datos para el entrenamiento y otro con datos para test. El objetivo es predecir el precio de una casa en base a las características de la misma. Nos centraremos aquí sólo en el EDA. En la imagen siguiente se pueden observar parte de los datos dónde el número de características se puede consultar en la descripción del dastaset. Limpieza de datos. Análisis exploratorio de datos (EDA) en el conjunto de datos de precios de la vivienda El análisis exploratorio de datos se puede realizar sobre este conjunto de datos para ver relaciones interesantes entre variables y extraer información inicial para ver visualmente si los datos son interesantes para usarlos en su problema. Se pueden extraer algunas estadísticas iniciales como la media, la desviación estándar, los valores máximos y mínimos y los diferentes percentiles. Se pueden trazar relaciones entre variables. Se puede representar el comportamiento de algunas variables. EDA sobre datos no tabulares EDA sobre datos no tabulares Hasta ahora hemos realizado un análisis sobre datos tabulares dónde tenemos previamente las características como cada columna de los datos. ¿Qué pasa en el caso de otros datos como las imágenes, audio o texto?. En este contexto existen dos maneras de analizar los datos mediante un EDA. 1. Análisis de las anotaciones del datasets y características generales de los datos en crudo. Esta parte contempla realizar un EDA sobre los datos que se proporcionan en el dataset como etiquetas de los mismos que pueden ser de muy variada naturaleza. ▪ En un conjunto de datos de imágenes podemos tener anotaciones ara clasificación, bounding boxes para detección de objetos o incluso anotaciones de segmentación dónde se proporciona la forma de los objetos en el dataset así como keypoints representando partes del esqueleto de una persona, puntos característicos de una cara entre otras. Podemos analizar todos estos datos, así como el tamaño de las imágenes, el número de las mismas, la cantidad de anotaciones… ▪ En un conjunto de datos de audio podemos tener anotaciones textuales o de cualquier otro tipo pudiendo analizarlas de la misma manera. Además, se puede analizar el audio en crudo extrayendo información como la duración del mismo, el número de muestras, la frecuencia de muestreo… ▪ Para texto, podemos analizar las palabras existentes en el dataset contando el número de las mismas, la longitud de las frases y cualquier otra métrica simple sobre el texto. 2. Análisis de características. Esto supone el preprocesado previo el cual se verá en el próximo tema dónde se extraerán características mediante diferentes algoritmos que pueden ser analizadas con las técnicas vistas durante este tema. ¿Qué es el Machine Learning? Definición formal "El aprendizaje automático es la ciencia de hacer que las computadoras aprendan y actúen como lo hacen los humanos, y mejoren su aprendizaje con el tiempo de manera autónoma, alimentándolos con datos e información en forma de observaciones e interacciones en el mundo real". “Machine Learning at its most basic is the practice of using algorithms to “Machine learning is the science of parse data, learn from it, and then getting computers to act without make a determination or prediction being explicitly programmed.” – about something in the world.” – Nvidia Stanford “Machine learning is based on algorithms that can learn from data without relying on rules-based “The field of Machine Learning seeks to “Machine learning algorithms can programming.”- McKinsey & Co. answer the question “How can we build figure out how to perform important computer systems that automatically tasks by generalizing from improve with experience, and what are the examples.” – University of fundamental laws that govern all learning Washington processes?” – Carnegie Mellon University ¿Qué es el Machine Learning? Aplicaciones en el mundo real Con el auge de los grandes datos, el aprendizaje automático se ha vuelto particularmente importante para resolver problemas en áreas como estas: Finanzas computacionales, para calificación crediticia y trading algorítmico. Procesamiento de imágenes y visión artificial, para reconocimiento facial, detección de movimiento y detección de objetos. Biología computacional, para la detección de tumores, descubrimiento de fármacos y secuenciación de ADN. Producción de energía, para pronóstico de precios y carga. Automotriz, aeroespacial y manufactura, para mantenimiento predictivo. Procesamiento del lenguaje natural. ¿Qué es el Machine Learning? Hay muchos tipos diferentes de algoritmos de aprendizaje automático, con cientos publicados cada día, y generalmente se agrupan por estilo de aprendizaje (supervisado, no supervisado, refuerzo) o por similitud en forma o función (es decir, clasificación, regresión, agrupamiento, aprendizaje profundo, etc.). Independientemente del estilo o la función de aprendizaje, todas las combinaciones de algoritmos de aprendizaje automático constan de lo siguiente: Representación (un conjunto de clasificadores o el lenguaje que entiende una computadora) Evaluación (función de objetivo/puntuación) Optimización (método de búsqueda) Estilos de problemas de aprendizaje automático Aprendizaje supervisado Se utiliza cuando hay disponible un conjunto de datos Aprendizaje no supervisado etiquetado. Etiquetados se refieren a un conjunto de Estos problemas se ven amenazados cuando un Aprendizaje por refuerzo datos (multimedia), cada uno con la etiqueta/descripción conjunto de datos está compuesto por un conjunto de correspondiente. datos, pero todos estos datos no están etiquetados, No se dispone de un conjunto de datos, El aprendizaje supervisado es aquel en el que se tienen no sabemos el valor correcto. pero conocemos previamente el variables de entrada (x) y una variable de salida (Y) y se El aprendizaje no supervisado es aquel en el que solo comportamiento y las reglas implicadas utiliza un algoritmo para aprender la función de mapeo se tienen datos de entrada (X) y no hay variables de en el problema. desde la entrada hasta la salida. salida correspondientes. La entrada es una serie de vectores de datos El objetivo del aprendizaje no supervisado es modelar Estos algoritmos interactúan con las (características) y la salida es la etiqueta correspondiente la estructura o distribución subyacente de los datos entradas del entorno (estados) e estimada a partir del aprendizaje sobre los datos. para obtener más información sobre ellos. intentan averiguar cuál es la mejor El objetivo es aproximar la función de mapeo tan bien Los algoritmos intentan buscar patrones comunes en acción a realizar. que cuando tenga nuevos datos de entrada (x) pueda los datos para asociarlos (desea descubrir reglas que Una vez que se decide una acción, se predecir las variables de salida (Y) para esos datos. describen grandes partes de los datos) o agruparlos Estos problemas se pueden resolver como una (desea descubrir las agrupaciones inherentes en los recibe una retroalimentación clasificación (la salida es una categoría) o una regresión datos). (recompensa/penalización). (la salida es un valor real). Tipos de problemas en el aprendizaje automático Clasificación Es el problema de identificar a cuál de un conjunto de categorías Regresión (subpoblaciones) pertenece una nueva observación, sobre la base de un El modelado predictivo de regresión es la tarea de aproximar una conjunto de datos de entrenamiento que contiene observaciones (o función de mapeo (f) de variables de entrada (X) a una variable de instancias) cuya pertenencia a la categoría es conocida. salida continua (y). Clustering El análisis de conglomerados o agrupamiento es la tarea de agrupar un Reducción de dimensionalidad conjunto de objetos de tal manera que los objetos del mismo grupo Es el proceso de reducir el número de variables aleatorias bajo (llamado clúster) sean más similares (en cierto sentido) entre sí que los de consideración mediante la obtención de un conjunto de variables otros grupos (clústeres). principales. Desafíos del aprendizaje automático La mayoría de los desafíos del aprendizaje automático se relacionan con el manejo de los datos y la búsqueda del modelo adecuado. Los datos vienen en todas las formas y tamaños. Los conjuntos de datos del mundo real pueden ser desordenados, incompletos y estar en una variedad de formatos. Es posible que solo tenga datos numéricos simples. Sin embargo, a veces se combinan varios tipos de datos diferentes, como señales de sensores, texto e imágenes de transmisión desde una cámara. El preprocesamiento de los datos puede requerir conocimientos y herramientas especializados. Por ejemplo, para seleccionar características para entrenar un algoritmo de detección de objetos se requieren conocimientos especializados de procesamiento de imágenes. Los diferentes tipos de datos requieren diferentes enfoques para el preprocesamiento. Se necesita tiempo para encontrar el mejor modelo que se ajuste a los datos. Elegir el modelo adecuado es un acto de equilibrio. Los modelos muy flexibles tienden a sobreajustar los datos modelando pequeñas variaciones que podrían ser ruido. Por otro lado, los modelos simples pueden suponer demasiado. Siempre hay compensaciones entre la velocidad, la precisión y la complejidad del modelo. Selección de características de aprendizaje automático El número de características que puede derivar está limitado solo por su imaginación. Sin embargo, hay muchas técnicas que se utilizan comúnmente para diferentes tipos de datos. Aprendizaje automático - Aprendizaje supervisado Un algoritmo de aprendizaje supervisado toma un conjunto conocido de datos de entrada (el conjunto de entrenamiento) y respuestas conocidas a los datos (salida) y entrena un modelo para generar predicciones razonables para la respuesta a los nuevos datos de entrada. Utilice el aprendizaje supervisado si tiene datos existentes para la salida que está tratando de predecir. Seleccionar un algoritmo de aprendizaje automático es un proceso de prueba y error. También es un equilibrio entre características específicas de los algoritmos, como: Velocidad de entrenamiento Uso de memoria Precisión predictiva de nuevos datos Transparencia o interpretabilidad (la facilidad con la que se pueden entender las razones por las que un algoritmo hace sus predicciones) Las técnicas de clasificación predicen respuestas discretas, por ejemplo, si un correo electrónico es genuino o spam, o si un tumor es pequeño, mediano o grande. Los modelos de clasificación se entrenan para clasificar datos en categorías. Las aplicaciones incluyen imágenes médicas, reconocimiento de voz y calificación crediticia. Las técnicas de regresión predicen respuestas continuas, por ejemplo, cambios en la temperatura o fluctuaciones en la demanda de electricidad. Las aplicaciones incluyen la previsión de precios de acciones, el reconocimiento de escritura a mano y el procesamiento de señales acústicas. Aprendizaje supervisado – Algoritmos de clasificación Regresión logística k Nearest Neighbor (kNN) How it Works How it Works kNN clasifica los objetos en función de las clases de sus vecinos más cercanos en el Se ajusta a un modelo que puede predecir la probabilidad de que conjunto de datos. Las predicciones de kNN suponen que los objetos cercanos entre sí una respuesta binaria pertenezca a una clase u otra. Debido a su son similares. Las métricas de distancia, como euclidiana, manzana de la ciudad, coseno simplicidad, la regresión logística se usa comúnmente como punto y Chebychev, se utilizan para encontrar el vecino más cercano. de partida para problemas de clasificación binaria. Best Used... Best Used... Cuando se necesita un algoritmo sencillo para establecer reglas de aprendizaje de Cuando los datos pueden estar claramente separados por un referencia. único límite lineal. Cuando el uso de memoria del modelo entrenado es una preocupación menor. Cuando la velocidad de predicción del modelo entrenado es una preocupación Como base para evaluar métodos de clasificación más complejos. menor. Peng, C., LEE, K.L., & Ingersoll, G.M. (2003). An Introduction to Logistic Regression Analysis and Reporting. Guo, G., Wang, H., Bell, D.A., Bi, Y., & Greer, K. (2003). KNN Model-Based Approach in Classification. CoopIS/DOA/ODBASE. Aprendizaje supervisado – Algoritmos de clasificación Support Vector Machine (SVM) Naïve Bayes How it Works How it Works Clasifica los datos encontrando el límite de decisión lineal (hiperplano) que separa todos Un clasificador Bayes ingenuo supone que la presencia de una característica los puntos de datos de una clase de los de la otra clase. El mejor hiperplano para una SVM particular en una clase no está relacionada con la presencia de cualquier otra es el que tiene el mayor margen entre las dos clases, cuando los datos son linealmente separables. Si los datos no son linealmente separables, se utiliza una función de pérdida característica. Clasifica los nuevos datos en función de la mayor probabilidad para penalizar los puntos en el lado equivocado del hiperplano. A veces, las SVM utilizan de que pertenezcan a una clase en particular. una transformación del kernel para transformar datos separables de forma no lineal en Best Used... dimensiones superiores en las que se puede encontrar un límite de decisión lineal. Para un conjunto de datos pequeño que contiene muchos parámetros. Best Used... Cuando necesite un clasificador que sea fácil de interpretar. Para datos que tienen exactamente dos clases (también puede usarlo Cuando el modelo encontrará escenarios que no estaban en los datos de para la clasificación multiclase con una técnica llamada corrección de errores entrenamiento, como es el caso de muchas aplicaciones financieras y códigos de salida). médicas. Para datos de alta dimensión y no linealmente separables. Cuando necesite un clasificador que sea simple, fácil de interpretar y preciso. Evgeniou, T., & Pontil, M. (2001). Support Vector Machines: Theory and Applications. Machine Learning and Its Applications. Watson, T.J. (2001). An empirical study of the naive Bayes classifier. Aprendizaje Supervisado – Algoritmos de Clasificación Decision Tree Bagged and Boosted Decision Trees How it Works How it Works Un árbol de decisión le permite predecir las respuestas a los datos siguiendo En estos métodos de conjunto, varios árboles de decisión "más débiles" se las decisiones en el árbol desde la raíz (principio) hasta un nodo hoja. Un combinan en un conjunto "más fuerte". Un árbol de decisión en bolsa árbol consta de condiciones de ramificación en las que el valor de un consta de árboles que se entrenan de forma independiente con datos que predictor se compara con un peso entrenado. El número de ramas y los se inician a partir de los datos de entrada. El impulso implica crear un valores de los pesos se determinan en el proceso de entrenamiento. Se aprendiz fuerte agregando iterativamente aprendices "débiles" y ajustando puede utilizar una modificación adicional, o poda, para simplificar el el peso de cada aprendiz débil para centrarse en ejemplos mal clasificados. modelo.Best Used... Best Used... Cuando se necesita un algoritmo que sea fácil de interpretar y rápido de Cuando los predictores son categóricos (discretos) o se comportan de ajustar. forma no lineal. Para minimizar el uso de memoria. Cuando el tiempo que se tarda en entrenar un modelo es menos Cuando no se requiere una alta precisión predictiva. preocupante. Safavian, S.R., & Landgrebe, D.A. (1991). A survey of decision tree classifier methodology. IEEE Trans. Systems, Man, and Cybernetics, 21, 660-674. Drucker, H., & Cortes, C. (1995). Boosting Decision Trees. NIPS. Aprendizaje Supervisado – Algoritmos de Clasificación Análisis discriminante Red neuronal How it Works How it Works Inspirada en el cerebro humano, una red neuronal consiste en redes de neuronas El análisis discriminante clasifica los datos mediante la búsqueda de combinaciones altamente conectadas que relacionan las entradas con las salidas deseadas. La red se lineales de características. El análisis discriminante supone que diferentes clases entrena modificando iterativamente las fortalezas de las conexiones para que las generan datos basados en distribuciones gaussianas. El entrenamiento de un modelo de entradas dadas se asignen a la respuesta correcta. análisis discriminante implica encontrar los parámetros para una distribución gaussiana para cada clase. Los parámetros de distribución se utilizan para calcular los límites, que Best Used... pueden ser funciones lineales o cuadráticas. Estos límites se utilizan para determinar la Para el modelado de sistemas altamente no lineales. clase de los nuevos datos. Cuando los datos están disponibles de forma incremental y se desea actualizar Best Used... constantemente el modelo. Cuando podría haber cambios inesperados en los datos de entrada. Cuando se necesita un modelo sencillo y fácil de interpretar. Cuando la interpretabilidad del modelo no es una preocupación clave. Cuando el uso de la memoria durante el entrenamiento es una preocupación. Cuando se necesita un modelo que sea rápido de predecir. Martínez, A.M., & Kak, A.C. (2001). PCA versus LDA. IEEE Trans. Pattern Anal. Mach. Intell., 23, 228-233. Hassoun, M. (1996). Fundamentals of Artificial Neural Networks. Proceedings of the IEEE, 84, 906-. Aprendizaje supervisado: algoritmos de regresión Regresión lineal Regresión no lineal How it Works How it Works La regresión no lineal es una técnica de modelado estadístico que ayuda a La regresión lineal es una técnica de modelado estadístico utilizada para describir una variable de respuesta continua como una función lineal de describir relaciones no lineales en datos experimentales. Por lo general, se una o más variables predictoras. Dado que los modelos de regresión supone que los modelos de regresión no lineal son paramétricos, donde el lineal son sencillos de interpretar y entrenar, suelen ser el primer modelo modelo se describe como una ecuación no lineal. que se ajusta a un nuevo conjunto de datos. Best Used... Best Used... Cuando los datos tienen fuertes tendencias no lineales y no pueden transformarse fácilmente en un espacio lineal. Cuando se necesita un algoritmo que sea fácil de interpretar y rápido de ajustar. Para ajustar modelos personalizados a los datos. Como base para evaluar otros modelos de regresión más complejos. Bystritskaya, E.V., Pomerantsev, A.L., & Rodionova, O.Y. (2000). Non-linear regression analysis : new approach to traditional implementations. Zou, K.H., Tuncali, K., & Silverman, S.G. (2003). Correlation and simple linear regression. Radiology, 227 3, 617-22. Aprendizaje supervisado: algoritmos de regresión Modelo de regresión de procesos gaussianos Regresión SVM How it Works How it Works Los modelos de regresión de procesos gaussianos (GPR) son modelos no Los algoritmos de regresión de SVM funcionan como los algoritmos de paramétricos que se utilizan para predecir el valor de una variable de clasificación de SVM, pero se modifican para poder predecir una respuesta continua. Son ampliamente utilizados en el campo del análisis respuesta continua. En lugar de encontrar un hiperplano que separe los espacial para la interpolación en presencia de incertidumbre. El GPR datos, los algoritmos de regresión de SVM encuentran un modelo que se también se conoce como Kriging. desvía de los datos medidos en un valor no mayor que una pequeña Best Used... cantidad, con valores de parámetros que sean lo más pequeños posible (para minimizar la sensibilidad al error). Para interpolar datos espaciales, como datos hidrogeológicos para la distribución de aguas subterráneas. Best Used... Para datos de alta dimensión (donde habrá un gran número de Como modelo sustituto para facilitar la optimización de diseños variables predictoras). complejos como motores de automoción. Nguyen-Tuong, D., Seeger, M.W., & Peters, J. (2009). Model Learning with Local Gaussian Process Regression. Advanced Robotics, 23, 2015-2034. Suykens, J.A., & Vandewalle, J. (1999). Least Squares Support Vector Machine Classifiers. Neural Processing Letters, 9, 293-300. Aprendizaje supervisado: algoritmos de regresión Modelo lineal generalizado Árbol de regression How it Works How it Works Un modelo lineal generalizado es un caso especial de modelos Los árboles de decisión para la regresión son similares a los que utilizan métodos lineales. Consiste en ajustar una árboles de decisión para la clasificación, pero se modifican para combinación lineal de las entradas a una función no lineal (el poder predecir respuestas continuas. enlace función) de las salidas. Best Used... Best Used... Cuando los predictores son categóricos (discretos) o se Cuando las variables de respuesta tienen distribuciones no comportan de forma no lineal. normales, como una variable de respuesta que siempre se espera que sea positiva. Wedderburn, R.W. (2010). Generalized Linear Models. Liaw, A., & Wiener, M.C. (2007). Classification and Regression by randomForest. Evaluación del Aprendizaje Supervisado Métricas de clasificación Los problemas de clasificación son quizás el tipo más común de problema de aprendizaje automático y, como tal, hay una gran cantidad de métricas que se pueden usar para evaluar las predicciones de estos problemas. Las siguientes métricas son las más utilizadas: 1. Precisión de la clasificación (accuracy) 4. Área bajo curva (AUC/ROC) La precisión de la clasificación es el número de predicciones correctas Se utiliza para el problema de clasificación binaria. El AUC de un realizadas como proporción de todas las predicciones realizadas. clasificador es igual a la probabilidad de que el clasificador clasifique un ejemplo positivo elegido aleatoriamente por encima de un ejemplo negativo elegido aleatoriamente. 2. Pérdida logarítmica Funciona penalizando las falsas clasificaciones. Al trabajar con pérdida de registro, el clasificador debe asignar probabilidad a cada clase para todas las muestras. 3. Matriz de confusión Nos da una matriz como salida y describe el rendimiento completo 5. F1 Score del modelo. La puntuación F1 es la media armónica entre la precisión y la recuperación. El rango de la puntuación F1 es [0, 1]. Le indica qué tan preciso es su clasificador, así como qué tan robusto es. Evaluación del aprendizaje supervisado de Machine Learning Métricas de regresión 1. Error Absoluto Medio (MAE) Es la suma de las diferencias absolutas entre las predicciones y los valores reales. Da una idea de lo equivocadas que eran las predicciones. La medida da una idea de la magnitud del error, pero no de la dirección. 2. Error cuadrático medio (MSE) Toma el promedio del cuadrado de la diferencia entre los valores originales y los valores predichos. A medida que tomamos el cuadrado del error, el efecto de los errores más grandes se vuelve más pronunciado que el error más pequeño. 3. Métrica R^2 La métrica R^2 (o R cuadrado) proporciona una indicación de la bondad de ajuste de un conjunto de predicciones a los valores reales. En la literatura estadística, esta medida se denomina coeficiente de determinación. Este es un valor entre 0 y 1 para el ajuste perfecto y sin ajuste, respectivamente. Entrenamiento de un clasificador de regresión en el conjunto de datos de precios de la vivienda La tabla contiene los coeficientes para cada característica considerada después de entrenar una regresión lineal. Debido a que el problema tiene más de 3 dimensiones, no podemos trazar el modelo estimado y analizarlo visualmente, pero podemos extraer cierta información de los coeficientes. Manteniendo todas las demás características fijas, un aumento de 1 unidad en el *Ingreso promedio del área* se asocia con un *aumento de $21.52*. Manteniendo todas las demás características fijas, un aumento de 1 unidad en la *Edad promedio de la casa del área* se asocia con un *aumento de $164883.28 *. Manteniendo todas las demás características fijas, un aumento de 1 unidad en el *Número Precios previstos, promedio de habitaciones* se asocia con un *aumento de $122368.67 *. valores y distribución Manteniendo todas las demás características fijas, un aumento de 1 unidad en el *Número promedio de habitaciones* se asocia con un *aumento de $2233.80 *. para y_pred-y_real Manteniendo todas las demás características fijas, un aumento de 1 unidad en la *Población del área* se asocia con un *aumento de $15.15 *. Entrenamiento de un clasificador categórico en Titanic Dataset Ahora sólo tenemos dos salidas posibles, la vida o la muerte. A continuación, podemos utilizar un clasificador de regresión logística para realizar el entrenamiento de los datos. Una vez entrenado el algoritmo, podemos usar algunas métricas para problemas de clasificación para analizar el rendimiento del algoritmo: Predicted: Death Predicted: Alive Actual: Death 148 15 Matriz de confusión Actual: Alive 36 68 Entrenamiento de un clasificador categórico en el conjunto de datos de flores Ahora exploraremos un conjunto de datos más complejo para ver cómo los algoritmos pueden funcionar muy bien si se utilizan características bien seleccionadas. Ahora tenemos un conjunto de datos con varias imágenes de flores divididas en categorías principales: Crocus Daisy Sunflower Pansy Ahora no tenemos el vector de características, tenemos una imagen. Necesitamos aplicar un poco de preprocesamiento para extraer características interesantes de cada imagen. Comparando las imágenes una buena característica puede ser algo relacionado con el color de la flor, entonces podemos usar el histograma RGB como vector de características. Finalmente, nuestro vector de características es la concatenación de tres histogramas de cada canal de color, donde cada histograma se compone de 8 valores (haces). Nuestro vector de características tiene 24 características en total. Hemos seleccionado un algoritmo de clasificación, por ejemplo, el árbol de decisión en este caso. Después del entrenamiento podemos extraer algunas métricas finales para ver el rendimiento. Aprendizaje supervisado: mejora de los modelos Mejorar un modelo significa aumentar su precisión y poder predictivo y evitar el sobreajuste (cuando el modelo no puede distinguir entre datos y ruido). La mejora del modelo implica ingeniería de características (selección y transformación de características) y ajuste de hiperparámetros. Selección de características: Identificación de las características o variables más relevantes que proporcionan el mejor poder predictivo en el modelado de sus datos. Esto podría significar agregar variables al modelo o eliminar variables que no mejoren el rendimiento del modelo. Transformación de características: Convertir las características existentes en nuevas características utilizando técnicas como el análisis de componentes principales, la factorización de matrices no negativas y el análisis de factores. Ajuste de hiperparámetros: proceso de identificar el conjunto de parámetros que proporciona el mejor modelo. Los hiperparámetros controlan cómo un algoritmo de aprendizaje automático ajusta el modelo a los datos. Aprendizaje supervisado: selección y transformación de características La selección de características es una de las tareas más importantes en el aprendizaje automático. Es especialmente útil cuando se trata de datos de alta dimensión o cuando el conjunto de datos contiene un gran número de entidades y un número limitado de observaciones. La reducción de características también ahorra tiempo de almacenamiento y cálculo, y hace que los resultados sean más fáciles de entender. Las técnicas comunes de selección de características incluyen: Regresión escalonada: adición o eliminación secuencial de entidades hasta que no haya ninguna mejora en la precisión de la predicción. Selección secuencial de características: agregue o elimine variables predictoras de forma iterativa y evalúe el efecto de cada cambio en el rendimiento del modelo. Regularización: Uso de estimadores de contracción para eliminar entidades redundantes reduciendo sus ponderaciones (coeficientes) a cero. Análisis de componentes de vecindad (NCA):Encontrar el peso que tiene cada entidad en la predicción de la salida, de modo que se puedan descartar las entidades con pesos más bajos. La transformación de características es una forma de reducción de la dimensionalidad. Las tres técnicas de reducción de dimensionalidad más utilizadas son: Análisis de componentes principales (PCA): realiza una transformación lineal en los datos para que los primeros componentes principales capturen la mayor parte de la varianza o la información del conjunto de datos de alta dimensión. El primer componente principal capturará la mayor varianza, seguido del segundo componente principal, y así sucesivamente. Factorización de matrices no negativas: se utiliza cuando los términos del modelo deben representar cantidades no negativas, como cantidades físicas. Análisis factorial: identifica las correlaciones subyacentes entre las variables del conjunto de datos para proporcionar una representación en términos de un número menor de factores latentes no observados o factores comunes. Aprendizaje supervisado: ajuste de hiperparámetros Al igual que muchas tareas de aprendizaje automático, el ajuste de parámetros es un proceso iterativo. Comience estableciendo parámetros basados en una "mejor estimación" del resultado. Su objetivo es encontrar los "mejores valores posibles", es decir, aquellos que produzcan el mejor modelo. A medida que ajusta los parámetros y el rendimiento del modelo comienza a mejorar, verá qué configuraciones de parámetros son efectivas y cuáles aún requieren ajuste. Tres métodos comunes de ajuste de parámetros son: Optimización bayesiana Búsqueda en cuadrícula Optimización basada en gradientes Un algoritmo simple con parámetros bien ajustados a menudo produce un modelo mejor que un algoritmo complejo inadecuadamente ajustado. Koch, P., Wujek, B., Golovidov, O., & Gardner, S. (2017). Automated Hyperparameter Tuning for Effective Machine Learning. Aprendizaje automático: Aprendizaje no supervisado El aprendizaje no supervisado es útil cuando desea explorar sus datos, pero aún no tiene un objetivo específico o no está seguro de qué información contienen los datos. También es una buena manera de reducir las dimensiones de sus datos. La mayoría de las técnicas de aprendizaje no supervisado son una forma de análisis de conglomerados. En el análisis de conglomerados, los datos se dividen en grupos en función de alguna medida de similitud o característica compartida. Los clústeres se forman de modo que los objetos del mismo clúster son muy similares y los objetos de los diferentes clústeres son muy distintos. Los algoritmos de agrupación en clústeres se dividen en dos grandes grupos: Agrupamiento duro, donde cada punto de datos pertenece a un solo clúster. Agrupación suave, en la que cada punto de datos puede pertenecer a más de un clúster. Aprendizaje no supervisado: algoritmos de agrupación en clústeres duros k-Means k-Medoids How it Works How it Works Particiona los datos en k número de clústeres mutuamente Similar a k-medias, pero con el requisito de que los centros de excluyentes. El ajuste de un punto en un clúster viene los clústeres coincidan con puntos en los datos. determinado por la distancia desde ese punto hasta el centro Best Used... del clúster. Cuando se conoce el número de clústeres. Best Used... Para la agrupación rápida de datos categóricos. Cuando se conoce el número de clústeres. Escalar a grandes conjuntos de datos. Para la agrupación rápida de grandes conjuntos de datos. Jain, A.K., Murty, M.N., & Flynn, P.J. (1999). Data Clustering: A Review. ACM Comput. Surv., 31, 264-323. Aprendizaje no supervisado: algoritmos de agrupación en clústeres duros Hierarchical Clustering Self-Organizing Map How it Works How it Works Agrupación en clústeres basada en redes neuronales que Genera conjuntos anidados de clústeres mediante el análisis transforma un conjunto de datos en un mapa 2D que conserva la de similitudes entre pares de puntos y la agrupación de topología. objetos en un árbol binario y jerárquico. Best Used... Best Used... Cuando no se sabe de antemano cuántos clústeres hay en Para visualizar datos de alta dimensión en 2D o 3D. los datos. Deducir la dimensionalidad de los datos conservando su topología (forma). Desea que la visualización guíe su selección. Tian, J., & Nurminen, J. (2009). Using Hierachical Clustering. Kohonen, T. (1998). The self-organizing map. Neurocomputing, 21, 1-6. Unsupervised Learning – Soft Clustering Algorithms Fuzzy c-Means Gaussian Mixture Model How it Works How it Works Agrupación en clústeres basada en particiones cuando los Agrupación en clústeres basada en particiones en la que los puntos de datos pueden pertenecer a más de un clúster. puntos de datos proceden de diferentes distribuciones normales multivariantes, con ciertas probabilidades. Best Used... Best Used... Cuando se conoce el número de clústeres. Cuando un punto de datos puede pertenecer a más de un Para el reconocimiento de patrones. clúster. Cuando los clústeres se superponen. Cuando los clústeres tienen diferentes tamaños y estructuras de correlación dentro de ellos. Bezdek, J.C. (2002). FCM : THE FUZZY c-MEANS CLUSTERING ALGORITHM. Rasmussen, C.E. (1999). The Infinite Gaussian Mixture Model. NIPS. Aprendizaje no supervisado – Más ideas El aprendizaje no supervisado podría ser su objetivo final. Por ejemplo, si está realizando una investigación de mercado y desea segmentar grupos de consumidores para orientarlos en función del comportamiento del sitio web, es casi seguro que un algoritmo de agrupación le dará los resultados que está buscando. Por otro lado, es posible que desee utilizar el aprendizaje no supervisado como paso de preprocesamiento para el aprendizaje supervisado. Por ejemplo, aplique técnicas de agrupación en clústeres para derivar un número menor de características y, a continuación, use esas características como entradas para entrenar un clasificador. Todos estos algoritmos y técnicas pueden mejorar los modelos utilizando la selección de características, la reducción de características y el ajuste de parámetros como en el aprendizaje supervisado. Aprendizaje no supervisado: ejemplo de k-means K-Means es un algoritmo muy sencillo para obtener clústeres en los datos. Por ejemplo, podríamos tener los datos mostrados en la figura de la izquierda. Visualmente podemos afirmar que se presentan 3 clusters en los datos. Usando el algoritmo buscando 3 clusters podemos obtener los resultados en la imagen de la derecha. Pero si no tenemos datos 2D o 3D es difícil conocer los patrones debajo de los datos y puede ser difícil seleccionar el número de clústeres presentados. Por ejemplo, utilizando los mismos datos que anteriormente podemos elegir utilizar 2 clústeres o 6 dando resultados diferentes. Aprendizaje no supervisado: ejemplo de agrupación jerárquica El aprendizaje no supervisado se puede utilizar en varios tipos de problemas, por ejemplo, en el procesamiento del lenguaje natural. Tenemos varias películas con algunas características diferentes y queremos aglomerar las películas en algún grupo relacionado con diferentes palabras. Podemos usar el agrupamiento jerárquico en las características para obtener la relación entre las películas. Aprendizaje no supervisado: ejemplo de agrupación jerárquica Representando estos datos en una nube de palabras y pintando cada película con el color de grupo relacionado, tenemos la siguiente figura. Podemos ver algunas películas como ET el extraterrestre, Forrest Gump, La lista de Schindler como películas relacionadas con la familia, el hogar y la guerra. Por otro lado, se presenta que películas como Star Wars, Gladiator y El Señor de los Anillos están relacionadas con Killed, Soldiers y Captain. Aprendizaje automático: Aprendizaje por refuerzo Aprender de la interacción con un entorno para lograr algún objetivo a largo plazo que esté relacionado con el estado del entorno. El objetivo se define por la señal de recompensa, que debe maximizarse. El agente debe ser capaz de detectar parcial o totalmente el estado del entorno y tomar medidas para influir en el estado del entorno. Normalmente, el estado se describe con un vector de características. Agent Queremos que un agente de aprendizaje por refuerzo gane muchas recompensas. El agente debe preferir las acciones pasadas que se ha encontrado que son efectivas para producir recompensa. El agente debe explotar lo que ya sabe para obtener recompensa. El agente debe seleccionar acciones no probadas para detectar acciones que produzcan recompensas. El agente debe explorar acciones para realizar mejores selecciones de acciones en el futuro. Trade-off entre exploración y explotación. Una política es un mapeo de los estados percibidos del entorno a las acciones que se deben tomar cuando se está en esos estados. Un agente de aprendizaje por refuerzo utiliza una política para seleccionar acciones en función del estado actual del entorno. La señal de recompensa define el objetivo. En cada paso de tiempo, el entorno envía un único número llamado recompensa al agente de aprendizaje por refuerzo. El objetivo del agente es maximizar la recompensa total que recibe a largo plazo. La señal de Environment recompensa se utiliza para modificar la política. Kaelbling, L.P., Littman, M.L., & Moore, A.W. (1996). Reinforcement Learning: A Survey. J. Artif. Intell. Res., 4, 237-285. Ejemplo de aprendizaje por refuerzo: Alpha Go Why is Go hard for computers to play? Game tree complexity = b^d Brute force search intractable 1. Search space is huge 2. “Impossible” for computers to evaluate who is winning Exhaustive Search https://deepmind.com/research/alphago/ Ejemplo de aprendizaje por refuerzo: Alpha Go Reducción de la profundidad con la red de valor Reducir la amplitud con la red de valor ¿Qué es el Deep Learning? El aprendizaje profundo es un tipo de aprendizaje automático en el que un modelo aprende a realizar tareas de clasificación directamente a partir de imágenes, texto o sonido. El aprendizaje profundo generalmente se implementa mediante una arquitectura de red neuronal. El término "profundo" se refiere al número de capas de la red, cuantas más capas, más profunda es la red. Las redes neuronales tradicionales contienen solo 2 o 3 capas, mientras que las redes profundas pueden tener cientos. ¿Qué hace que el aprendizaje profundo sea de última generación? En una palabra, precisión. Las herramientas y técnicas avanzadas han mejorado drásticamente los algoritmos de aprendizaje profundo hasta el punto de que pueden superar a los humanos en la clasificación de imágenes, ganar contra el mejor reproductor de GO del mundo o permitir que un asistente controlado por voz como Amazon Echo y Google Home encuentre y descargue esa nueva canción que te gusta. Schmidhuber, J. (2015). Deep Learning in Neural Networks: An Overview. Neural networks : the official journal of the International Neural Network Society, 61, 85-117. ¿Cuál es la diferencia entre el aprendizaje profundo y el aprendizaje automático? El aprendizaje profundo es un subtipo de aprendizaje automático. Con el aprendizaje automático, se extraen manualmente las características relevantes de una imagen. Con el aprendizaje profundo, las imágenes sin procesar se introducen directamente en una red neuronal profunda que aprende las funciones automáticamente. El aprendizaje profundo a menudo requiere cientos de miles o millones de imágenes para obtener los mejores resultados. También es intensivo desde el punto de vista computacional y requiere una GPU de alto rendimiento. El entrenamiento de un modelo de aprendizaje profundo puede llevar horas, días o semanas, en función del tamaño de los datos y de la cantidad de potencia de procesamiento disponible. La selección de un recurso informático es una consideración fundamental a la hora de configurar el flujo de trabajo. ¿Qué es el Deep Learning? Habilitadores Tres habilitadores tecnológicos hacen posible este grado de precisión: Fácil acceso a conjuntos masivos de datos etiquetados. Los conjuntos de datos como ImageNet, COCO y PASCAL VoC están disponibles de forma gratuita y son útiles para el entrenamiento en muchos tipos diferentes de objetos. Aumento de la potencia de cómputo. Las GPU de alto rendimiento aceleran el entrenamiento de las enormes cantidades de datos necesarios para el aprendizaje profundo, lo que reduce el tiempo de entrenamiento de semanas a horas. Modelos previamente entrenados creados por expertos. Modelos como AlexNet, VGGNet y ResNet se pueden volver a entrenar para realizar nuevas tareas de reconocimiento mediante una técnica llamada aprendizaje por transferencia. Si bien AlexNet se entrenó con 1,3 millones de imágenes de alta resolución para reconocer 1000 objetos diferentes, el aprendizaje de transferencia preciso se puede lograr con conjuntos de datos mucho más pequeños. ResNet es en realidad una de las redes más utilizadas como columna vertebral para extraer características de las imágenes. Owens, J.D., Houston, M., Luebke, D.P., Green, S., Stone, J.E., & Phillips, J.C. (2008). GPU Computing. Proceedings of the IEEE, 96, 879-899. Deng, L. (2013). A tutorial survey of architectures , algorithms , and applications for deep learning. Aprendizaje de redes neuronales profundas Una red neuronal profunda combina múltiples capas de procesamiento no lineal, utilizando elementos simples que operan en paralelo e inspirados en los sistemas nerviosos biológicos. Consta de una capa de entrada, varias capas ocultas y una capa de salida. Las capas están interconectadas a través de nodos, o neuronas, y cada capa oculta utiliza la salida de la capa anterior como entrada. Supongamos que tenemos un conjunto de imágenes en el que cada imagen contiene una de las cuatro categorías diferentes de objetos, y queremos que la red de aprendizaje profundo reconozca automáticamente qué objeto está en cada imagen. Etiquetamos las imágenes para tener datos de entrenamiento para la red. Con estos datos de entrenamiento, la red puede comenzar a comprender las características específicas del objeto y asociarlas con la categoría correspondiente. Cada capa de la red toma datos de la capa anterior, los transforma y los transmite. La red aumenta la complejidad y el detalle de lo que está aprendiendo de capa a capa. Tenga en cuenta que la red aprende directamente de los datos, no tenemos ninguna influencia sobre qué características se están aprendiendo. Red neuronal convolucional Una red neuronal convolucional (CNN) es uno de los algoritmos más populares para el aprendizaje profundo con imágenes y vídeo. Al igual que otras redes neuronales, una CNN se compone de una capa de entrada, una capa de salida y muchas capas ocultas intermedias. Capa de detección de características: estas capas realizan uno de los tres tipos de operaciones en los datos, la convolución, la agrupación o la unidad lineal rectificada (ReLU). La convolución somete las imágenes de entrada a un conjunto de filtros convolucionales, cada uno de los cuales activa ciertas características de las imágenes. La agrupación simplifica la salida al realizar un muestreo descendente no lineal, lo que reduce el número de parámetros que la red necesita aprender. La unidad lineal rectificada (ReLU) permite un entrenamiento más rápido y eficaz al asignar los valores negativos a cero y mantener los valores positivos. Estas tres operaciones se repiten en decenas o cientos de capas, y cada capa aprende a detectar diferentes características. Capas de clasificación: después de la detección de características, la arquitectura de una CNN cambia a la clasificación. La penúltima capa es una capa totalmente conectada (FC) que genera un vector de K dimensiones donde K es el número de clases que la red podrá predecir. Este vector contiene las probabilidades para cada clase de cualquier imagen que se clasifique. La capa final de la arquitectura CNN utiliza una función softmax para proporcionar la salida de clasificación. Schmidhuber, J. (2015). Deep Learning in Neural Networks: An Overview. Neural networks : the official journal of the International Neural Network Society, 61, 85-117. Red neuronal recurrente La idea detrás de las RNN es hacer uso de la información secuencial. En una red neuronal tradicional, asumimos que todas las entradas (y salidas) son independientes entre sí. Si quieres predecir la siguiente palabra de una frase, es mejor que sepas qué palabras vienen antes de ella. Las RNN se denominan recurrentes porque realizan la misma tarea para todos los elementos de una secuencia, y la salida depende de los cálculos anteriores. Otra forma de pensar en las RNN es que tienen una "memoria" que captura información sobre lo que se ha calculado hasta ahora. En teoría, las RNN pueden hacer uso de la información en secuencias arbitrariamente largas, pero en la práctica se limitan a mirar hacia atrás solo unos pocos pasos. Lipton, Z.C. (2015). A Critical Review of Recurrent Neural Networks for Sequence Learning. CoRR, abs/1506.00019. Aplicaciones del mundo real mediante Deep Learning Muchas tareas se pueden realizar utilizando el aprendizaje profundo, como los automóviles autónomos, el aprendizaje profundo en la atención médica, la búsqueda por voz y los asistentes activados por voz, la traducción automática de automóviles, la generación automática de texto, el reconocimiento de imágenes, la generación automática de imágenes, la predicción de modelos en finanzas, entre otros. http://www.consortium.ri.cmu.edu/proj OpenPose.php http://densepose.org/ https://www.deepl.com/es/translator http://p-bot.ru/en/ https://www.youtube.com/watch?v=EYjd LppmERE Conclusiones El aprendizaje automático es un campo de rápido crecimiento en las ciencias de la computación. Tiene aplicaciones en casi todos los demás campos de estudio y ya se está implementando comercialmente porque el aprendizaje automático puede resolver problemas demasiado difíciles o que requieren mucho tiempo para que los humanos los resuelvan. Para describir el aprendizaje automático en términos generales, se utilizan una variedad de modelos para aprender patrones en los datos y hacer predicciones precisas basadas en los patrones que observa. Extracción de características Extracción de características ¿Por qué es necesaria según el tipo de datos? Datos Tabulares (ya son características): Los datos tabulares (e.g., bases de datos, hojas de cálculo) ya están estructurados como vectores de características con valores discretos o continuos. Ejemplo: Columnas como "Edad", "Ingreso", "Puntaje de Crédito". Ventaja: Directamente utilizables en algoritmos de machine learning, sin necesidad de transformación adicional. Datos No Tabulares: Imágenes: Representadas como matrices de píxeles (valores RGB o escala de grises). No tienen "características" explícitas; requieren extracción de: Bordes, formas, texturas (e.g., HOG). Características profundas con CNN (Convolutional Neural Networks). Audio: Representado como señales en el tiempo (ondas).Necesita transformación para captar patrones: Espectrogramas (frecuencias vs. tiempo).MFCC (Coeficientes Cepstrales de Frecuencia de Mel). Texto: Se almacena como cadenas de caracteres, sin estructura matemática explícita. Requiere técnicas como: Bag of Words, TF-IDF. Embeddings (Word2Vec, GloVe, Transformers). ¿Por qué es necesario en estos casos? Datos No Tabulares: No presentan características interpretables por los algoritmos de forma directa. Transformación esencial para: Reducir la complejidad y ruido. Extraer información relevante para la tarea. Estandarizar los datos para procesarlos de forma homogénea. Extracción de características en imagen (Visto en asignatura Fundamentos de procesado de señal audiovisual) Color Movimiento Texturas Formas Vectores mediante redes neuronales Extracción de características en audio (Visto en asignatura Fundamentos de procesado de señal audiovisual) Espectrogramas, Escala de MEL, DCT Vectores mediante redes neuronales Extracción de características de texto En el Procesamiento del Lenguaje Natural (NLP), la extracción de características es uno de los pasos más importantes que hay que seguir para comprender mejor el contexto de lo que estamos tratando. Después de limpiar el texto inicial, tenemos que transformarlo en sus características para utilizarlo en el modelado. Los datos de los documentos (letras, palabras, frases…) no son computables, por lo que hay que transformarlos en datos numéricos, como un modelo de espacio vectorial. Esta tarea de transformación suele denominarse extracción de características de datos de documentos. La extracción de características también se denomina representación de texto, extracción de texto o vectorización de texto. Las tareas que se pueden resolver con NLP son muy diversas entre las que se encuentran: En primer lugar, vamos a entender la respuesta a algunas preguntas: 1. ¿Qué es la extracción de características del texto? 2. ¿Por qué la necesitamos? 3. ¿Por qué es difícil? 4. ¿Cuáles son las técnicas? Extracción de características de texto 1. ¿Qué es la extracción de características del texto?. Si tenemos datos textuales, no podemos alimentar ningún algoritmo de aprendizaje automático con esos datos porque los algoritmos de aprendizaje automático no entienden los datos textuales. Sólo entiende datos numéricos. El proceso de convertir datos de texto en números se llama Extracción de Características del texto. También se denomina vectorización del texto. 2. ¿Por qué lo necesitamos?. Porque sabemos que las máquinas sólo pueden entender números y para que las máquinas puedan identificar el lenguaje necesitamos convertirlo en forma numérica. 3. ¿Por qué es difícil? Si preguntamos a cualquier profesional de NLP o científico de datos, la respuesta será sí, en cierto modo es difícil. Ahora comparemos la extracción de características de texto con la extracción de características de otros tipos de datos. Así, en un conjunto de datos de imagen, la extracción de características de imagen es fácil porque las imágenes ya están presentes en forma de números (píxeles).Si hablamos de datos de audio, supongamos la predicción de emociones a partir del reconocimiento de voz. En este caso, tenemos datos en forma de señales de forma de onda de las que se pueden extraer características a lo largo de un intervalo de tiempo. Pero cuando tenemos una frase y queremos predecir su sentimiento, ¿cómo lo representamos en números?. 4. ¿Cuáles son las técnicas? 1. One hot encoding 2. Bolsa de palabras, bag of words (BOW) 3. n-grams 4. Tf-Idf 5. Características personalizadas 6. Word2Vec (Word embedding) Limpieza de texto Normalización: Es el proceso de estandarización del texto para que, a través de NLP, los modelos puedan comprender mejor la información humana. Un tipo de normalización muy extendido es estandarizar las mayúsculas o minúsculas para que los modelos de máquina no agrupen las palabras en mayúsculas (Casa) como diferentes de sus homólogas en minúsculas (casa). Tokenización: Divide el texto en unidades más pequeñas frente a grandes trozos de texto. Nosotros entendemos estas unidades como palabras u oraciones, pero una máquina no puede hasta que no se separan. Hay que tener especial cuidado al descomponer los términos para que se creen unidades lógicas. La mayoría de los paquetes de software manejan los casos extremos (EE.UU. se divide en EE.UU. y no en EE y UU.), pero siempre es esencial asegurarse de que se hace correctamente. Limpieza: El proceso de limpieza es fundamental para eliminar texto y caracteres que no son importantes para el análisis. Se descartan textos como URLs, elementos no críticos como guiones o caracteres especiales, información de web scraping, HTML y CSS o emoticonos. Eliminación de palabras vacías (stop words): A continuación, se eliminan las palabras vacías. Se trata de palabras comunes que aparecen pero no aportan nada. Palabras como “a” y “the” son ejemplos. Estas palabras también aparecen con mucha frecuencia, se convierten en dominantes en su análisis y oscurecen las palabras significativas. Ortografía: Los errores ortográficos también pueden corregirse durante el análisis. Dependiendo del medio de comunicación, puede haber más o menos errores. Lo más probable es que los documentos oficiales de una empresa o de un centro educativo contengan menos errores, mientras que las publicaciones en redes sociales o las comunicaciones más informales, como el correo electrónico, pueden tener más. Dependiendo del resultado deseado, corregir o no los errores ortográficos es un paso fundamental. Stemming y lematización: El "stemming“: Lematización: En morfología lingüística y recuperación de información, la lematización es el proceso de reducir las palabras flexionadas a su raíz, generalmente una palabra escrita. Lematización: En lingüística, la lematización es el proceso de agrupar las formas flexionadas de una palabra para que puedan analizarse como un único elemento, identificado por el lema de la palabra, o forma del diccionario. Un ejemplo de "stemming" sería reducir "runs" a "run" como palabra base eliminando la "s", donde "ran" no estaría en la misma raíz. Sin embargo, la lematización clasificaría "ran" en el mismo lema. Extracción de características de texto Si tenemos la siguiente entrada de texto: I have followed the tutorial and have successfully obtained the contents of the file, but where is the file being downloaded. In addition, how do I specify the location of where I want to download the file? Result on Postman Y aplicamos la siguiente cadena de procesos de limpieza de texto: 1 – Convertir a minúsculas: i have followed the tutorial and have successfully obtained the contents of the file, but where is the file being downloaded. in addition, how do i specify the location of where i want to download the file? result on postman 2 – Remover signos de puntuación: i have followed the tutorial and have successfully obtained the contents of the file but where is the file being downloaded in addition how do i specify the location of where i want to download the file result on postman 3 – Tokenizar y Eliminar “stop words”: ['followed', 'tutorial', 'successfully', 'obtained', 'contents', 'file', 'file', 'downloaded', 'addition', 'specify', 'location', 'want', 'download', 'file', 'result', 'postman'] 4 - aplicar “stemming”: follow tutori success obtain content file file download addit specifi locat want download file result postman Extracción de características de texto – One Hot Encoding One hot encoding: significa convertir las palabras de su documento en un vector de dimensión V. Esta técnica es muy intuitiva, es decir, es sencilla y puede codificarla uno mismo. Digamos que tenemos los documentos: “We are learning Natural Language Processing”, “We are learning Data Science”, and “Natural Language Processing comes under Data Science”. corpus – We are learning Natural Language Processing, We are learning Data Science, Natural Language Processing comes under Data Science Vocabulario (palabras únicas) – We, are, learning, Natural, Language, Processing, Data, Science, comes, under Si cogemos el primer documento la codificación sería: Documento 1 - “We are learning Natural Language Processing” Ventajas: Es Intuitivo Fácil de aplicar Desventajas: Crea Sparsity. El tamaño de cada documento después de una codificación en caliente puede ser diferente. El modelo de aprendizaje automático no funciona. Problema de falta de vocabulario (OOV). En el momento de la predicción aparece una palabra nueva que no está disponible en el vocabulario. No se capta el significado semántico. Extracción de características de texto – Bag of Words Bag of words: Es una de las técnicas de vectorización de texto más utilizadas. Una bolsa de palabras (BoW) es una representación de texto que describe la aparición de palabras dentro de un documento. Se utiliza especialmente en la tarea de clasificación de textos. La creación de un modelo BoW consta de tres pasos: El primer paso es el preprocesamiento del texto, esto incluye la limpieza del mismos de la manera vista anteriormente. El segundo paso consiste en crear un vocabulario de todas las palabras únicas del corpus. En el tercer paso, creamos una matriz de características asignando una columna distinta a cada palabra, mientras que cada fila corresponde a un documento. Este proceso se conoce como vectorización del texto. Cada entrada de la matriz significa la presencia (o ausencia) de la palabra en la reseña. Ponemos 1 si la palabra está presente en el documento, y 0 si no lo está. En el ejemplo anterior las palabras únicas serían: Por tanto, la matriz final con los vectores para cada documento sería: Ventajas: Sencillo e intuitivo. are comes data language learning natural processing science under we Mismo tamaño de cada documento después de BOW. Doc 1 1 0 0 1 1 1 1 0 0 1 No se produce el problema de falta de Doc 2 1 0 1 0 1 0 0 1 0 1 vocabulario (OOV). Desventajas: Doc 3 0 1 1 1 0 1 1 1 1 0 BOW también crea Sparsity. OOV, ignorando la palabra nueva. No tiene en cuenta el orden de las frases. Extracción de características de texto – Bag of n-grams Bag of n-grams: Un modelo bag-of-n -grams representa un documento textual como una colección desordenada de n-gramas. bi-gram — Usando dos palabras del documento tri-gram — Usando tres palabras del documento n-gram — Usando n palabras del documento Por tanto, la forma de funcionamiento es igual que en Bag of Words. Veámoslo con el ejemplo anterior: En primer lugar, generamos el vocabulario de n-gramas únicos, en este caso utilizaremos bi-grams. Ventajas: Finalmente, la matriz de características queda de la siguiente manera: Sencillo y fácil de implantar. Capaz de captar el significado semántico de la frase. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Doc 1 Desventajas: 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 A medida que pasamos de unigrama a N-Grama Doc 2 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 entonces la dimensión de la formación del vector Doc 3 aumenta y ralentiza el algoritmo. 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 OOV, ignora la palabra nueva. Extracción de características de texto – Tf-Idf TF-IDF (frecuencia de términos-frecuencia inversa de documentos) es una medida estadística que evalúa la relevancia de una palabra en un documento de una colección de documentos. Frecuencia de términos (TF): El número de veces que una palabra aparece en un documento se divide por el número total de palabras de ese documento. 0 < Tf < 1. Frecuencia inversa de documentos (FID), Inverse Document Frquency (IDF): El logaritmo del número de documentos en el corpus se divide por el número de documentos donde aparece el término específico. Algunas implementaciones utilizan la fórmula log(N/ni) + 1. Nota: El logaritmo es neperiano. Finalmente multiplicamos ambos valores para obtener el valor final para la matriz que formamos de manera análoga a Bag of Words. De nuevo veámoslo con el ejemplo anterior, las palabras únicas son: Los pasos a seguir son, por tanto: 1 - Calcular los valores TF, 2 – Calcular los valores IDF, 3 - Multiplicarlos para obtenerlos vectores finales. Extracción de características de texto – Tf-Idf Matriz “Term Frequency (TF)” para los documentos iniciales: are comes data language learning natural processing science under we Doc 1 1/6 0 0 1/6 1/6 1/6 1/6 0 0 1/6 Doc 2 1/5 0 1/5 0 1/5 0 0 1/5 0 1/5 Doc 3 0 1/7 1/7 1/7 0 1/7 1/7 1/7 1/7 0 Matriz “Inverse Document Frequency (IDF)” para los documentos iniciales: Are comes data Language learning natural processing science Under We Doc 1 log(3/2) log(3/1) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/1) log(3/2) Doc 2 log(3/2) log(3/1) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/1) log(3/2) Doc 3 log(3/2) log(3/1) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/2) log(3/1) log(3/2) Multiplicamos ambas matrices para obtener los vectores finales. ¿Por qué tomamos un logaritmo para calcular la IDF? Si tenemos una palabra muy rara, el valor IDF sin un log es muy alto. Y entonces tenemos que calcular TF * IF en ese momento el valor IDF dominará el valor TF porque el valor TF se encuentra entre 0 y 1. Eso significa que normalizamos el valor IDF usando un log. Ventajas Esta técnica se utiliza ampliamente en la recuperación de información como motor de búsqueda. Desventajas Dispersión Si tenemos un conjunto de datos grande, la dimensionalidad aumenta, lo que ralentiza los algoritmos. OOV, ignorando la palabra nueva. El significado semántico no se capta. Extracción de características de texto – Word2Vec Word2vec es una combinación de modelos utilizados para representar representaciones distribuidas de palabras en un corpus C. Word2Vec (W2V) es un algoritmo que acepta un corpus de texto como entrada y da como salida una representación vectorial para cada palabra, como se muestra en el diagrama siguiente: Existen dos variantes de este algoritmo: CBOW y Skip-Gram. Dado un conjunto de frases (también llamado corpus), el modelo hace un bucle sobre las palabras de cada frase e intenta utilizar la palabra actual w para predecir sus vecinas (es decir, su contexto), este enfoque se denomina "Skip-Gram", o utiliza cada uno de estos contextos para predecir la palabra actual w, en ese caso el método se denomina "Continuous Bag Of Words" (CBOW). Para limitar el número de palabras de cada contexto, se utiliza un parámetro denominado "tamaño de ventana". Extracción de características de texto – Word2Vec Flujo general del algoritmo: Paso 1: Inicialmente, asignaremos un vector de números a cada palabra del corpus (técnica conocida, one hot, bag of words…). Paso 2: A continuación, iteramos a través de cada palabra del documento y tomamos los vectores de las n palabras más cercanas a cada lado de nuestra palabra objetivo, y concatenamos todos estos vectores. Propagamos hacia adelante estos vectores concatenados a través de una capa lineal + función softmax, y tratamos de predecir cuál era nuestra palabra objetivo. Paso 3: En este paso, calcularemos el error entre nuestra estimación y la palabra objetivo real y, a continuación, retropropagaremos el error y modificaremos no sólo los pesos de la capa lineal, sino también los vectores o incrustaciones de las palabras de nuestros vecinos. Paso 4: Por último, extraemos los pesos de la capa oculta y, a partir de ellos, codificamos el significado de las palabras del vocabulario. Extracción de características de texto – Word2Vec Los dos modelos (CBOW y Skip-Gram) son básicamente redes neuronales poco profundas que asignan palabra(s) a la variable objetivo, que también es una(s) palabra(s). Estas técnicas aprenden los pesos que actúan como representaciones de vectores de palabras. Ambas técnicas pueden utilizarse para implementar la incrustación de palabras mediante word2vec. Antes de profundizar en las dos técnicas de Word2Vec, vamos a tratar de entender la siguiente pregunta: ¿Por qué se crea la técnica Word2Vec?. Como sabemos, la mayoría de los sistemas de NLP tratan las palabras como unidades atómicas. En los sistemas existentes con el mismo propósito que word2vec, existe la desventaja de que no hay noción de similitud entre las palabras. Además, esos sistemas funcionan con datos pequeños y más sencillos, y obtienen mejores resultados con sólo unos pocos miles de millones de datos o menos. Por eso, para entrenar el sistema con un conjunto de datos mayor con modelos complejos, estas técnicas utilizan una arquitectura de red neuronal para entrenar modelos de datos complejos y superan a conjuntos de datos enormes con miles de millones de palabras y con vocabularios que tienen millones de palabras. Esto ayuda a medir la calidad de las representaciones vectoriales resultantes y trabaja con palabras similares que tienden a relacionarse con palabras que pueden tener múltiples grados de similitud. Regularidades sintácticas: Estas regularidades se refieren a la corrección gramatical de las frases. Regularidades semánticas: Estas regularidades se refieren al significado de los símbolos del vocabulario dispuestos en esa estructura. Con la técnica propuesta se comprobó que la similitud de las representaciones de las palabras va más allá de las regularidades sintácticas y funciona sorprendentemente bien para las operaciones algebraicas de los vectores de palabras. Extracción de características de texto – Word2Vec Los vectores que utilizamos para representar palabras se llaman incrustaciones neuronales de palabras (Word embeddings). Una cosa describe a otra, aunque esas dos cosas sean radicalmente distintas. Como dijo Elvis Costello: "Escribir sobre música es como bailar sobre arquitectura". Word2vec "vectoriza" sobre las palabras, y al hacerlo convierte el lenguaje natural en legible por ordenador: podemos empezar a realizar potentes operaciones matemáticas sobre las palabras para detectar sus similitudes. Así, una incrustación neuronal de palabras representa una palabra con números. Word2vec es similar a un autoencoder, ya que codifica cada palabra en un vector, pero en lugar de entrenarse con las palabras de entrada mediante reconstrucción, word2vec entrena las palabras con otras palabras vecinas en el corpus de entrada. Lo hace de dos maneras: utilizando el contexto para predecir una palabra objetivo (un método conocido como bolsa continua de palabras o CBOW, por sus siglas en inglés) o utilizando una palabra para predecir un contexto objetivo, lo que se denomina skip-gram. Este último método produce resultados más precisos en grandes conjuntos de datos. Cuando el vector de características asignado a una palabra no puede utilizarse para predecir con exactitud el contexto de esa palabra, se ajustan los componentes del vector. El contexto de cada palabra en el corpus es el profesor que envía señales de error para ajustar el vector de características. Los vectores de las palabras consideradas similares por su contexto se acercan ajustando los números del vector. Extracción de características de texto – Word2Vec ¿Cuándo utilizar cuál: CBOW o Skip-Gram? Ahora que tenemos una idea general de los dos modelos que intervienen en la técnica Word2Vec, ¿cuál es mejor? Por supuesto, el modelo que elijamos de los dos anteriores dependerá en gran medida del planteamiento del problema que intentemos resolver. Según el artículo original, Mikolov et al., se observa que el modelo Skip-Gram funciona bien con una pequeña cantidad de los conjuntos de datos de entrenamiento, y puede representar mejor las palabras o frases raras. https://arxiv.org/pdf/1310.4546 Sin embargo, se observa que el modelo CBOW se entrena más rápido que el Skip-Gram y puede representar mejor las palabras más frecuentes, lo que significa que ofrece una precisión ligeramente superior para las palabras frecuentes. Conclusión ¿Es importante que nuestro modelo represente palabras poco frecuentes? Si es así, deberíamos elegir Skip-Gram ya que cuando sus vectores no se promedian con los otros términos de fondo en el proceso de hacer las predicciones, el modelo aprenderá mejores representaciones para las palabras raras y es mejor utilizar el modelo Skip-gram en ese caso. ¿No tenemos mucho tiempo para entrenar y las palabras raras no son tan importantes para nuestra solución? Entonces deberíamos elegir CBOW. Al final, como las distintas aplicaciones tienen criterios distintos, la mejor práctica es realizar unas cuantas pruebas para ver qué es lo que mejor le funciona. Algoritmos de Machine Learning Modelos lineales A continuación, se presenta un conjunto de métodos destinados a la regresión en la que se espera que el valor objetivo sea una combinación lineal de las características. En notación matemática, si 𝑦ො es el valor previsto: Lo valores de x serán las características, lo valores es lo que llamaremos los coeficientes y es el valor de intercepción. Para realizar una clasificación en estos casos se emplea la regresión logística. Modelos lineales Mínimos cuadrados (least squares) Se ajusta un modelo lineal con coeficientes para minimizar la suma residual de cuadrados entre los objetivos observados en el conjunto de datos y los objetivos predichos por la aproximación lineal. Matemáticamente resuelve un problema de la forma: Las estimaciones de los coeficientes de los mínimos cuadrados ordinarios se basan en la independencia de las características. Cuando las características están correlacionadas y las columnas de la matriz de diseño X tienen una dependencia aproximadamente lineal, la matriz de diseño se vuelve casi singular y, como resultado, la estimación por mínimos cuadrados se vuelve muy sensible a los errores aleatorios en el objetivo observado, produciendo una gran varianza. Esta situación de multicolinealidad puede darse, por ejemplo, cuando los datos se recogen sin un diseño experimental. Mínimos cuadrados no negativos: Es posible restringir que todos los coeficientes sean no negativos, lo que puede ser útil cuando representan algunas cantidades físicas o naturalmente no negativas (por ejemplo, recuentos de frecuencias o precios de bienes). La solución de mínimos cuadrados se calcula utilizando la descomposición en valores singulares de X. Si X es una matriz de forma (n_muestras, n_características) este método tiene un coste de suponiendo que. Modelos lineales Ridge regression Aborda algunos de los problemas de los mínimos cuadrados ordinarios imponiendo una penalización al tamaño de los coeficientes. Los coeficientes de ridge minimizan una suma de cuadrados residual penalizada: El parámetro de complejidad 𝛼 ≥ 0 controla la cantidad de contracción: cuanto mayor sea el valor de 𝛼 mayor la contracción y, por tanto, los coeficientes son más resistentes a la colinealidad. El regresor Ridge tiene una variante para realizar clasificación. Este clasificador convierte primero los objetivos binarios e