Descubre millones de libros electrónicos, audiolibros y mucho más con una prueba gratuita

Solo $11.99/mes después de la prueba. Puedes cancelar en cualquier momento.

Machine Learning y Deep Learning
Machine Learning y Deep Learning
Machine Learning y Deep Learning
Libro electrónico465 páginas3 horas

Machine Learning y Deep Learning

Calificación: 0 de 5 estrellas

()

Leer la vista previa

Información de este libro electrónico

Automático (Machine Learning). El objetivo del machine learning es que los sistemas informáticos sean capaces de aprender a partir de los datos, emulando de esta manera las capacidades humanas._x000D_
El Aprendizaje Profundo (Deep Learning) es el área más prometedora del machine learning. Los modernos sistemas de reconocimiento facial, conducción automática, chatbots, comportamiento de los videojuegos, etc. se llevan a cabo haciendo uso de técnicas de deep learning._x000D_
_x000D_
En este libro se explican los conceptos más relevantes tanto de machine learning como de deep learning. Ambos bloques se pueden abordar de manera independiente y en cualquier orden. Se aportan multitud de ejemplos programados en Python y explicados desde cero, con gráficos representativos. También se hace uso de las bibliotecas Scikit_x000D_
y Keras. Cualquier lector con conocimientos de programación podrá entender los conceptos y los ejemplos que se exponen en el libro:_x000D_
_x000D_
• Regresión_x000D_
• Clasificación_x000D_
• Clustering_x000D_
• Reducción de Dimensionalidad_x000D_
• Redes Neuronales_x000D_
• Redes Convolucionales (Convolutional Neural Networks)_x000D_
• Enriquecimiento de datos (Data Augmentation)_x000D_
• Generadores de Datos_x000D_
• Aprendizaje por Transferencia (Transfer Learning)_x000D_
• Autoencoders_x000D_
• Visualización de capas ocultas_x000D_
• Aprendizaje Generativo (Generative Learning)_x000D_
_x000D_
El libro contiene material adicional que podrá descargar accediendo a la ficha del libro en www.ra-ma.es
IdiomaEspañol
Fecha de lanzamiento24 feb 2020
ISBN9788499648903
Machine Learning y Deep Learning

Relacionado con Machine Learning y Deep Learning

Libros electrónicos relacionados

Inteligencia (IA) y semántica para usted

Ver más

Artículos relacionados

Comentarios para Machine Learning y Deep Learning

Calificación: 0 de 5 estrellas
0 calificaciones

0 clasificaciones0 comentarios

¿Qué te pareció?

Toca para calificar

Los comentarios deben tener al menos 10 palabras

    Vista previa del libro

    Machine Learning y Deep Learning - Jesús Bobadilla

    acerca del autor

    JESÚS BOBADILLA SANCHO

    Doctor y Licenciado en Informática por la Universidad Politécnica de Madrid. Catedrático de Escuela en la Escuela Técnica Superior de Ingeniería de Sistemas Informáticos (ETSISI) de la Universidad Politécnica de Madrid (UPM). Ha impartido docencia en los campos de Arquitectura de Computadores, Sistemas Operativos, Telemática, Reconocimiento de Voz, Inteligencia Artificial y Programación Orientada a Objetos. Ha sido autor de diez libros publicados en el ámbito de la Informática. Su trayectoria de investigación incluye estancias en la Universidad de Berkeley y en la Universidad de Sheffield. Es autor de numerosas publicaciones técnicas en revistas internacionales de alto impacto, y que suman una gran cantidad de citas. Una de estas publicaciones se encuentra entre el 1% de las más relevantes a nivel mundial en el área de Informática (fuente: Web of Science). Su investigación principal se centra en el Filtrado Colaborativo que fundamenta los modernos Sistemas de Recomendación (Amazon, Netflix, Spotify, etc.): un campo importante en el área del Aprendizaje Automático.

    1

    introducción

    En este capítulo se explican diversos conceptos importantes de machine learning (aprendizaje automático). Estos conceptos nos ayudarán a comprender los siguientes apartados, donde se verán modelos de regresión y clasificación, así como las técnicas de clustering (agrupamiento) y de reducción de dimensiones. Mientras que los siguientes capítulos incluirán algunos formalismos matemáticos y desarrollos en Python, aquí se explicarán los conceptos de la manera más simple posible. En resumen, este capítulo pretende ofrecer un marco que facilite la comprensión de los principales conceptos asociados a machine learning.

    Machine learning es la ciencia que hace que los ordenadores aprendan a partir de los datos. En vez de programar, paso a paso, cada solución específica para cada necesidad planteada, tal y como se realiza en el enfoque de la programación convencional, el área de machine learning está dedicada al desarrollo de algoritmos genéricos que pueden extraer patrones de diferentes tipos de datos. De esta manera, un programa de machine learning destinado, por ejemplo, a clasificar números escritos a mano, no va a diferir sustancialmente de un programa destinado a la clasificación de las imágenes de señales de tráfico: ambos se basarán en la existencia de algún tipo de algoritmo de machine learning que clasifique datos etiquetados. En este punto se podría pensar que el proceso completo de machine learning es fácilmente automatizable, cuando realmente no es el caso: un ingeniero de datos (data scientist) debe llevar a cabo numerosas tareas específicas tales como la identificación de la fuente de datos, su limpieza, la eliminación de información que esté fuertemente correlacionada, la búsqueda de información sesgada, la realización de las normalizaciones necesarias, la identificación de los tipos de soluciones de machine learning cuya aplicación resulte apropiada, la elección del algoritmo más adecuado, el ajuste fino de los hiper-parámetros del método elegido, el análisis de los resultados, la identificación de comportamientos incorrectos, la vuelta a procesos anteriores con el fin de cambiar lo que resulte necesario para mejorar los resultados, etc.

    Tipos de machine learning

    Con el objetivo de poder abordar cualquier tarea específica, el ingeniero de datos debe conocer algunos conceptos importantes de machine learning, así como las diferentes opciones existentes, las medidas de calidad más utilizadas, etc. Los conocimientos básicos incluyen la identificación de las tareas, empezando por la clasificación de los problemas de machine learning en alguno de los siguientes tipos:

    Aprendizaje supervisado

    regresión

    clasificación

    Aprendizaje no supervisado

    clustering (agrupamiento)

    reducción de dimensiones

    Aprendizaje semi-supervisado

    Aprendizaje por refuerzo

    El aprendizaje supervisado en machine learning se aplica cuando cada dato, o conjunto de datos de entrada (muestra) tiene asociada una etiqueta. Pongamos un ejemplo: un conjunto de imágenes en las que cada una de ellas contiene algún tipo de metadato (habitualmente una etiqueta o conjunto de etiquetas): ((pict0001.bmp, perro), (pict0002.bmp, pájaro), (pct0003.bmp, gato). Partiendo de este conjunto de datos se pueden usar diferentes algoritmos de clasificación de machine learning con el objetivo de entrenar un modelo y poder, al acabar el entrenamiento, predecir la etiqueta correspondiente a una nueva imagen (no incluida en el conjunto de datos original); éste es un problema de clasificación. De igual manera, podemos hacer uso de un conjunto de datos que contenga muestras con valores numéricos asociados: por ejemplo, un conjunto de muestras de terremotos cuyos datos contienen la intensidad de la vibración previa tomada de sensores y cuyo objetivo es determinar la intensidad oficial del terremoto ([7.1, 6.3, ...], 5.4), ([3.2, 9.7, ...], 7.1). Este es un problema de regresión y su utilidad podría ser la de generar información acerca de la intensidad predicha por el modelo de regresión cuando se le aporta una nueva muestra (valores sísmicos recogidos en tiempo real).

    Los siguientes números escritos a mano pueden ayudar a entender las posibilidades de los algoritmos de clasificación. Como veremos más tarde, hemos conseguido reconocerlos todos con la excepción del ‘cinco’ situado en medio de los dos ‘nueves’.

    En el siguiente gráfico tridimensional podemos ver los datos correspondientes a un problema de regresión. El objetivo es predecir el precio de una propiedad inmobiliaria en Boston atendiendo a diferentes tipos de información. En el gráfico solo se muestra el número de habitaciones y la distancia a la autopista como tipos de información. El término utilizado en machine learning para los tipos de datos de información es característica ("feature). Así, en el ejemplo, tanto número de habitaciones como distancia a la autopista" son características. Los ejes horizontales x e y representan, cada uno, una característica. El eje vertical z muestra los valores objetivos para cada precio de venta de las propiedades inmobiliarias de Boston. En este caso, los valores objetivos no son etiquetas o nombres de categorías: son valores numéricos. Aquí afrontamos un problema de regresión, donde al suministrar un nuevo dato (habitaciones, distancia) lo que se obtiene es la predicción esperada: el precio de la propiedad inmobiliaria.

    De los párrafos anteriores podemos entresacar un concepto importante: el modelo de machine learning. Este es un elemento clave, ya que la mayoría de los algoritmos de machine learning crean un modelo a partir de los datos. El modelo puede ser tan simple como la solución lineal que mejor ajuste las muestras de origen a los valores objetivo, o mucho más complejo, como la búsqueda de factores ocultos que representen la información más importante que esta contenida en los datos. La siguiente figura muestra una regresión lineal (gráfico de la izquierda) y una clasificación lineal (gráfico de la derecha). En el primer caso, los precios en Boston se obtienen usando un modelo de regresión simple que solamente usa la información más representativa de estos datos: el número de habitaciones. Para predecir el precio de una nueva propiedad inmobiliaria simplemente debemos conocer su número de habitaciones, y el modelo predecirá, linealmente, su valor. El gráfico de la derecha muestra dos clases generadas (clase 0 y clase 1), cada una de las cuales está definida por dos características (característica 1 y característica 2). El modelo de clasificación lineal ha resultado ser capaz de separar ambas clases. Para conocer la clase a la que pertenece una nueva muestra usamos el modelo lineal: indica si la muestra está a un lado o a otro de la recta que separa ambas clases. Aquí, el algoritmo de clasificación ha deducido (entrenado) un modelo a partir de los datos: la recta de color negro es el modelo aprendido.

    La importancia del aprendizaje supervisado en machine learning está aumentando muy rápidamente debido a:

    Las nuevas oportunidades brindadas por el Internet de las Cosas (Internet of Things o IoT), de donde se pueden obtener cantidades masivas de datos etiquetados de manera automática.

    Las redes sociales, en cuyos servidores se almacena una enorme cantidad de interacciones y cuyo número de aplicaciones, como las destinadas al mercado digital, no para de crecer.

    Los nuevos algoritmos, destinados a resolver diferentes tipos de aprendizaje supervisado, que hacen posible obtener resultados comerciales significativos: conducción automática, reconocimiento facial, sistemas de recomendación, etc.

    Las crecientes capacidades de procesamiento, particularmente las supercomputadoras paralelas y las unidades de procesamiento gráfico (GPUs).

    La democratización del machine learning, por la que todos podemos trabajar con recursos altamente tecnológicos como Tensorflow o granjas de GPUs, así como con potentes APIs, entornos, IDEs, etc., tales como las tecnologías proporcionadas por Scikit, Keras y Jupiter.

    El aprendizaje no supervisado utiliza información no etiquetada. La aplicación más conocida del aprendizaje no supervisado es la de clustering (agrupamiento). El objetivo de la técnica de clustering es agrupar muestras: p. ej.: para obtener los diferentes tipos de clientes en un servicio online, para agrupar productos en un comercio electrónico, para identificar comportamientos en la conducción, etc. El siguiente gráfico muestra un esquema típico de clustering. Contiene tres clusters (grupos o clases) correspondientes a tres diferentes tipos de lirios. Podemos observar que es fácil diferenciar el tipo "setosa" de los otros dos, mientras que se podrían presentar dificultades para precisar los grupos de los tipos versicolor y virginica.

    Un modelo de clustering podría proporcionar varios hiperplanos lineales de separación (en el caso anterior: dos rectas), mientras que un modelo de clustering diferente podría proporcionar algunos elementos virtuales representativos: centroides cuya área de influencia determina a qué cluster pertenece cada una de las muestras. Hay más tipos de modelos de clustering, pero los que se han indicado pueden ayudar a entender el concepto de modelo y el hecho de que diferentes algoritmos de machine learning pueden estar basados en diferentes tipos de modelos. El siguiente gráfico muestra un ejemplo de la evolución de los centroides (estrellas rojas) de cara a ajustar los cuatro clusters existentes en los datos de ejemplo.

    La reducción de dimensionalidad se usa habitualmente como una etapa de pre-procesamiento en algún otro tipo de labores de machine learning, principalmente en clasificación o regresión. Muchos escenarios reales aportan datos dispersos o datos que en su mayoría proporcionan muy poca información. Un ejemplo de datos dispersos es la información que se maneja en un sistema de recomendación: los usuarios solamente compran, hacen clic, consumen o votan una proporción muy pequeña de los productos, canciones, películas, etc., disponibles. Si colocamos esta información en forma de matriz (usuarios x ítems), la matriz contendrá una gran proporción de elementos sin información: normalmente más del 97% de los datos en sistemas de recomendación son así. Siendo capaces de comprimir los datos, tal y como se hace con las imágenes o con los ficheros de texto, los datos comprimidos contendrían casi toda la información, pero de una manera condensada. Trabajar con esta información comprimida es mucho más eficiente y produce resultados más precisos. Lo que hacemos aquí es convertir datos multidimensionales (una dimensión para cada una de las características: para cada ítem), que son altamente dispersos, en información multidimensional mucho más concentrada y densa. La siguiente figura muestra una imagen fuente y varias versiones de la imagen obtenida a base de aplicar diferentes niveles de reducción de dimensionalidad.

    El aprendizaje semisupervisado trata con conjuntos de datos en los que una porción de los datos está etiquetada y el resto no. Normalmente, la cantidad de muestras etiquetadas es mucho más pequeña que las no etiquetadas. La mayoría de los algoritmos de aprendizaje semisupervisado son una mezcla de métodos supervisados y no supervisados. El aprendizaje por refuerzo es un área innovadora y con un gran futuro, ya que está inspirada en mecanismos naturales. En este caso, el algoritmo de aprendizaje recibe información de un entorno real o simulado. Cuando el sistema realiza una acción es recompensado o penalizado, tal y como pasa con los seres vivos. Tales algoritmos de aprendizaje se denominan agentes y pueden aprender siguiendo los principios de la evolución natural. Los agentes aprenden estrategias, denominadas políticas, que maximizan las recompensas y minimizan las penalizaciones. La mayoría de los sistemas de inteligencia artificial actuales, que están especializados en juegos, están basados en el enfoque de aprendizaje por refuerzo.

    Los métodos de machine learning también pueden ser clasificados como:

    Basado en modelos o basados en memoria.

    Aprendizaje incremental o aprendizaje por lotes.

    Aprendizaje superficial (shallow learning) o aprendizaje profundo (deep learning).

    Los algoritmos basados en memoria (basados en instancias) toman las muestras de datos como entrada y procesan directamente la predicción o la clasificación. Si se necesita una nueva predicción se procesa de nuevo, partiendo de las muestras de datos. Por el contrario, los algoritmos basados en modelos necesitan actualizar el modelo periódicamente, aunque el proceso de predicción es mucho más rápido que en el enfoque basado en memoria. La separación lineal que hemos visto previamente es un modelo simple: puede llevar algún tiempo calcular la pendiente y el punto de corte de la recta, pero la predicción del valor de y partiendo de una nueva muestra x es muy rápido. Si se aportan nuevas muestras de manera periódica, el modelo debe ser actualizado para poder calcular la nueva recta que se ajusta mediante clasificación o regresión.

    Los algoritmos de aprendizaje por lotes (batch learning) siempre calculan el modelo desde el principio. Si disponemos de 2000 muestras, el proceso por lotes las usa todas para crear el modelo. Cuando se aporten 300 nuevas muestras al sistema, el proceso por lotes crea el modelo desde el principio, usando las 2300 muestras y así sucesivamente.

    Los algoritmos de aprendizaje incremental no crean sucesivos modelos desde el principio: actualizan el modelo existente. En nuestro ejemplo lineal, los algoritmos de proceso por lotes obtendrían el modelo procesando, desde cero, las 2300 muestras existentes. Sin embargo, los algoritmos de aprendizaje incremental usarían las 300 nuevas muestras para cambiar los valores de la pendiente existente y el punto de corte (en muchas situaciones se usan más muestras de datos que las 300 nuevas). Los algoritmos incrementales presentan una importante ventaja: pueden ser usados como el núcleo de sistemas de machine learning escalables.

    En el aprendizaje superficial (shallow learning), los parámetros (pendiente, punto de corte, etc.) se aprenden directamente de las características de las muestras de datos. En el aprendizaje profundo (deep learning) siempre existe una arquitectura con más de un nivel (capa). En el segundo nivel (y sucesivos), los parámetros aprenden de los resultados de las capas precedentes. No aprenden directamente de las características de las muestras de datos, que están situadas en la primera capa. Las arquitecturas deep learning (aprendizaje profundo) pueden conformarse a base de varias capas con métodos de machine learning iguales o diferentes, aunque de manera habitual están basadas en redes neuronales multi-capa.

    Tratando con datos

    En machine learning, los datos son la base de todo; no habrá aprendizaje si no hay suficientes datos, o éstos no son representativos o presentan información sesgada. Cuando la cantidad de datos es insuficiente, los algoritmos de machine learning no pueden generalizar los resultados: simplemente aprenden los patrones específicos de las muestras existentes. Si un niño solo ha visto cinco vehículos a motor, podrá reconocerlos, pero probablemente no podrá generalizarlo y clasificar como vehículo a motor los diferentes tipos de coches, camiones, motos, etc. Este concepto es muy importante en machine learning: se denomina sobreajuste (overfitting) y los ingenieros de datos deben prevenirlo.

    Incluso si disponemos de suficiente cantidad de datos, éstos podrían no ser aceptables para algunos propósitos específicos de machine learning si no son representativos o están sesgados. Como ejemplo: no podremos predecir qué canción le gustará escuchar a una mujer de edad avanzada que acabe de conectarse a un servicio de música online, sobre todo si este servicio es usado normalmente por personas jóvenes: simplemente, los datos están sesgados por las preferencias musicales de los jóvenes. Sin embargo, en este contexto, machine learning puede hacer un gran trabajo recomendando música a usuarios jóvenes. De la misma manera, si ajustamos un modelo para clasificar imágenes de perros y gatos, probablemente funcionará adecuadamente clasificando perros y gatos, pero no podemos esperar que clasifique correctamente leones o tigres: es más, si casi todas las imágenes son de perros pastores alemanes, será muy difícil que clasifique de manera adecuada a los perros chihuahua. Esto es debido a que los datos están sesgados hacia los perros pastores alemanes.

    Incluso si vamos a usar algún conjunto de datos que contiene información representativa y no sesgada, machine learning podría presentar fallos si la información no es de calidad. Ejemplos de información de mala calidad son:

    Cuando hay muchas muestras con valores vacíos en alguna característica (feature): por ejemplo, personas que no rellenan su edad, o falta el código postal en los formularios, etc.

    Valores atípicos (outliers): datos incorrectos provenientes de errores humanos, sensores de IoT que funcionan incorrectamente, errores en los programas: p. ej. Mezcla de medidas entre sistema métrico internacional y sistema métrico anglosajón.

    Datos incorrectos e inconsistentes: direcciones de correo sin el símbolo @, direcciones postales sin el número del portal, nombres de calles que no se corresponden con el código postal, etc.

    También las características irrelevantes pueden estropear un proceso de machine learning. Para poder obtener resultados adecuados necesitamos datos relevantes. Si solo se recogen datos basados en características psicológicas será muy difícil predecir la existencia de un tumor cancerígeno. Lo mismo puede ocurrir si se predice la venta de pañales en base a información del tiempo atmosférico.

    Cuando se trabaja en el campo de machine learning debemos diferenciar entre características de tipo continuo y características de tipo categórico (categorical) (características discretas). Habitualmente resulta equivalente a la división previamente presentada: clasificación vs. regresión, pero aplicado a los datos de entrada. Ejemplos de características de entrada continuas son: la intensidad de color en un pixel, la presión en un sensor, el tiempo de ejecución, precios, etc. Las características categóricas clasifican muestras en grupos: sexo, color (negro, rojo,…), departamento (música, deportes, etc.),

    ¿Disfrutas la vista previa?
    Página 1 de 1