Aprendizaje automático y profundo en python - Carlos Pineda - E-Book

Aprendizaje automático y profundo en python E-Book

Carlos Pineda

0,0

Beschreibung

Es una herramienta de apoyo y de consulta para toda aquella persona interesada en dominar los fundamentos del aprendizaje automático y profundo, a tal punto que le permita aprender lo necesario para desarrollar sus propios modelos de aprendizaje aptos para realizar predicciones con base en los datos, para ello el autor hará uso en la mayoría de los casos de explicaciones teóricas y prácticas, que permitan al lector afianzar sus ideas y fortalecer su aprendizaje. El libro se encuentra dividido en dos partes la primera enfocada en el machine learning y sus diferentes algoritmos de regresión y clasificación, clustering, entre otros. La segunda parte comprende varias técnicas de deep learning donde estudiaremos diferentes arquitecturas de redes neuronales como: redes densamente conectadas, redes convolucionales y redes recurrentes.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 317

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Agradecimientos

Por su cariño y apoyo incondicional:

A mis queridos padres Demetrio y Ruby

A mi esposa Katerine, a mi hija Luciana

y a mis hermanas: Ruby, Diana y Maira

Prólogo

He decidido crear esta obra como una guía para que estudiantes de ingeniería o cualquier persona interesada en aprender sobre aprendizaje automático y profundo pueda adquirir las bases necesarias sobre este tema tan apasionante. Será un camino lleno de retos en donde exploraremos las técnicas y algoritmos más representativos, lo cual le permitirá al lector forjar conocimientos sólidos en la materia y ser capaz de crear sus propios modelos de aprendizaje para resolver una amplia gama de problemas presentes en el mundo real.

Este libro comenzará dando una introducción al lenguaje Python, siendo esta la herramienta de programación escogida para desarrollar los ejemplos, luego se irán explicando los conceptos teóricos y consecuentemente se abordará de manera práctica el funcionamiento de los diferentes métodos y técnicas usadas en el campo del aprendizaje automático. El lenguaje de programación Python es de los que más ha ganado fuerza en este ámbito, fundamentalmente por su facilidad y por la gran cantidad de librerías que pone a disposición de los desarrolladores y de quienes trabajan en el mundo de la ciencia de datos.

Aprendizaje automático y profundo en Python le será un libro muy ameno con suficientes ejemplos y ejercicios para poner en práctica, y que le permitirá reforzar su aprendizaje mediante el estudio de código fuente que el autor pondrá a su alcance mediante cuadernos de Jupyter Notebook. Además, cada tema será explicado de manera sencilla y ejemplificada de manera que el lector pueda ir probando cada aspecto teórico con las herramientas y el software sugeridos por el autor. Esto y más hacen que esta obra se diferencie de otras de su tipo y sea suficientemente útil para toda aquella persona que quiera sumergirse en el mundo del aprendizaje automático de una manera organizada y fácil, pero sin dejar a un lado el fundamento teórico que está detrás de los métodos usados en esta gran disciplina.

Como complemento web al libro en www.edicionesdelau.com encontrará la carpeta Fuentes que contiene el desarrollo de ejemplos y ejercicios, para su mejor comprensión.

Introducción

Esta obra pretende ser una herramienta de apoyo y de consulta para toda aquella persona interesada en dominar los fundamentos del aprendizaje automático y profundo, a tal punto que le permita aprender lo necesario para desarrollar sus propios modelos de aprendizaje aptos para realizar predicciones con base en los datos, para ello el autor hará uso en la mayoría de los casos de explicaciones teóricas y prácticas, que permitan al lector afianzar sus ideas y fortalecer su aprendizaje. El libro arranca exponiendo algunos temas básicos y, poco a poco, irá aportando otros temas un poco más complejos necesarios para forjar un conocimiento integral y mucho más sólido sobre aprendizaje automático con la convicción de dar al lector la orientación necesaria para que sea capaz de abordar sus propios proyectos basados en las técnicas descritas.

Para completar cabalmente la lectura de este libro se requieren de unos conocimientos mínimos en cálculo, estadística y de programación, debido a que cada tema, generalmente, se aborda inicialmente con una explicación de diversos conceptos, tomando para ello aspectos del cálculo, la estadística y el algebra lineal. Posteriormente, los algoritmos se implementarán en su mayoría desde cero y en otros con el apoyo de varias librerías o APIs para facilitar su desarrollo dentro del entorno de programación.

Aprendizaje automático y profundo tiene una estructura en capítulos que inicia con explicaciones sobre el lenguaje Python, para luego abarcar los algoritmos más destacados dentro del aprendizaje de máquina. El libro se encuentra dividido en dos partes: la primera enfocada en el machine learning y sus diferentes algoritmos de regresión y clasificación, clustering, entre otros. La segunda parte comprende varias técnicas de deep learning donde estudiaremos diferentes arquitecturas de redes neuronales como: redes densamente conectadas, redes convolucionales y redes recurrentes.

Espero que esta obra sea del agrado y el disfrute del lector, así como lo fue para quien escribió estas palabras, que sin duda les puede decir que los temas de este libro son de los que más pasión le han conferido a lo largo de su carrera. Bienvenidos a este apasionante mundo.

CAPÍTULO 2

Introducción al Aprendizaje Automático

Temas

2.1 ¿Qué es aprendizaje automático?

2.2 Conceptos de aprendizaje automático

2.3 Tipos de aprendizaje automático

2.4 Problemas típicos en aprendizaje automático

2.5 Metodología CRISP-DM

Con este capítulo entramos en materia, podremos introducirnos en el aprendizaje automático gracias a la explicación de diversos conceptos fundamentales dentro de esta disciplina.

2.1 ¿Qué es aprendizaje automático?

Han sido varias las definiciones que han venido surgiendo a lo largo de la historia sobre aprendizaje automático. Entre las más reconocidas se encuentra la de Arthur Samuel en 1959, quien planteó que el “Aprendizaje automático es el campo de estudio que da al computador la habilidad de aprender sin haber sido explícitamente programado para ello”.

En un tiempo más reciente Tom Mitchell presentó la siguiente definición: “Se dice que un programa de computadora aprende de la experiencia E con respecto a alguna tarea T y alguna medida de rendimiento P, si su rendimiento en T, medido por P, mejora con la experiencia E.”

Podemos encontrar más definiciones como estas, pero simplemente el aprendizaje automático es una rama de la inteligencia artificial que busca que un programa de computador aprenda de un conjunto de datos con los cuales se entrena, y buscará indentificar un patrón con el que puede realizar predicciones sobre nuevos datos. A diferencia de la programación tradicional donde en primera instancia se procesan un conjunto de datos de entrada y por medio de un serie de reglas se genera una salida, en aprendizaje automático o machine learning, los datos y las salidas son los datos iniciales que mediante un proceso de entrenamiento producen las reglas, las cuales comúnmente reciben el nombre de modelo, siendo dicho modelo el resultado de detectar en los datos patrones o tendencias que se pueden usar para hacer predicciones sobre datos nunca vistos. Este proceso en mención es realizado por algoritmos, que debidamente ajustados, al final son los que van a permitir que puedan lograrse buenos resultados predictivos. Tales algoritmos se clasifican dependiendo el tipo de problema de aprendizaje que se esté manejando, pudiéndose usar uno para cada problema específico que se esté abordando, en donde deben afinarse sus parámetros, en la mayoría de los casos mediante prueba y error, a fin que se consiga el mejor desempeño del modelo de aprendizaje automático. Por esta razón, es que muy difícilmente una misma solución se puede replicar en diferentes escenarios, puesto que cada proceso está supeditado tanto a la naturaleza de los datos que utiliza como insumo, como a los ajustes que en materia de parámetros se realizan sobre el algoritmo seleccionado para una determinada situación.

La siguiente gráfica muestra el esquema de la programación clásica vs el aprendizaje automático.

Ahora bien, el aprendizaje automático implica la realización de una serie de etapas que se muestran en el siguiente esquema y se describen brevemente más abajo:

Preprocesamiento de datos: Es una de las etapas más importantes, dado que en ella se realizan tareas como limpieza y transformación de los datos para que queden en una forma adecuada y puedan ser usados por el algoritmo de aprendizaje automático. Es una etapa crucial, toda vez que estos algoritmos trabajan solamente con datos numéricos y en lo posible en una misma escala. Adicionalmente, a los datos faltantes o nulos se les debe también prestar atención ya que pueden provocar que el algoritmo opere de manera deficiente. El preprocesado implica estas y otras cuestiones, que serán estudiadas mucho más a fondo en el capítulo 4.

Separación en conjunto de entrenamiento y pruebas: En aprendizaje automático el conjunto de datos (dataset, en inglés) suele separarse en dos subconjuntos llamados entrenamiento y prueba. El primero se destina para entrenar y estimar los parámetros del modelo. Por otro lado, el segundo se usa para hacer predicciones y probar el modelo con datos diferentes a los de entrenamiento para ver si arroja los resultados esperados. En general, para conjuntos de datos de mediano tamaño las divisiones que más se usan son: 70%-30% u 80%-20% para entrenamiento y prueba respectivamente.

Configuración del algoritmo: En esta etapa, básicamente se crea una instancia del algoritmo a utilizar y se definen los llamados hiperparámetros para ese algoritmo con valores apropiados que el científico de datos o programador debe ir ajustando comedidamente. Los hiperparámetros se diferencian de los parámetrosen que estos últimos los define el modelo internamente durante el entrenamiento, no teniendo el usuario ninguna participación directa en la generación de sus valores. Algunos hiperparámetros empleados con regularidad en algoritmos de machine learning son el número de épocas y la tasa de aprendizaje.

Entrenamiento del modelo: Consiste en proporcionarle al objeto o instancia del algoritmo de aprendizaje automático un conjunto de datos de entrenamiento para que pueda aprender, logrando así estimar los parámetros del modelo de aprendizaje.

Predicción: Una vez generado el modelo se puede probar su nivel de predicción pasándole muestras del conjunto de pruebas. El resultado de la predicción sobre una muestra es un valor continuo o discreto que debe ser los más cercano posible al valor esperado.

Evaluación: La evaluación es el proceso de determinar numéricamente que tan efectivo fue nuestro modelo de aprendizaje automático. Esta efectividad en el rendimiento parte del supuesto de que a menor diferencia entre la salida esperada y la salida predicha mejor es la evaluación.

Para evaluar un modelo existen diferentes métricas que se pueden usar dependiendo del tipo de problema de aprendizaje automático, las cuales se estarán estudiando más adelante en el libro.

Hay una última tarea no incluida en el esquema de arriba llamada exportación, y consiste en que, una vez el modelo se encuentre en una fase final, es decir, con sus hiperparámetros debidamente afinados y con un valor adecuado de la métrica de evaluación, es posible proceder con la exportación del modelo a un archivo en memoria secundaria, con el fin de usarlo más adelante sin necesidad de repetir todos los pasos previos, hecho que sin duda nos ahorra tiempo y nos hace más productivos.

2.2 Conceptos de aprendizaje automático

Existe una terminología bastante amplia relacionada con el aprendizaje automático, en esta sección solo se mencionarán algunos de los conceptos que a consideración del autor son los más significativos, dado que se estarán usando muy a menudo en el transcurso del libro:

Conjunto de datos (dataset): Los conjuntos de datos no son más que los datos almacenados en un formato específico, recibidos por el algoritmo de aprendizaje para ser entrenado y ser probado. Los datasets