Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

El tsunami del aprendizaje automático

En 2006, Geoffrey Hinton et al. publicaron un artículo1 que mostraba cómo entrenar una red neuronal profunda capaz de reconocer dígitos manuscritos con una precisión de vanguardia (>98%). Llamaron a esta técnica "aprendizaje profundo". Una red neuronal profunda es un modelo (muy) simplificado de nuestra corteza cerebral, compuesto por una pila de capas de neuronas artificiales. En aquella época se consideraba imposible entrenar una red neuronal profunda.2 y la mayoría de los investigadores habían abandonado la idea a finales de la década de 1990. Este artículo reavivó el interés de la comunidad científica, y en poco tiempo muchos nuevos artículos demostraron que el aprendizaje profundo no sólo era posible, sino capaz de logros alucinantes que ninguna otra técnica de aprendizaje automático (AM) podía aspirar a igualar (con la ayuda de una enorme potencia de cálculo y grandes cantidades de datos). Este entusiasmo pronto se extendió a muchas otras áreas del aprendizaje automático.

Una década más tarde, el aprendizaje automático había conquistado la industria, y hoy en día está en el corazón de gran parte de la magia de los productos de alta tecnología, clasificando los resultados de tus búsquedas en Internet, impulsando el reconocimiento de voz de tu smartphone, recomendando vídeos y quizás incluso conduciendo tu coche.

Aprendizaje automático en tus proyectos

Así que, naturalmente, ¡te entusiasma el aprendizaje automático y te encantaría unirte a la fiesta!

¿Quizá te gustaría dotar a tu robot casero de un cerebro propio? ¿Hacer que reconozca caras? ¿O que aprenda a andar?

O quizá tu empresa tenga toneladas de datos (registros de usuarios, datos financieros, datos de producción, datos de sensores de máquinas, estadísticas de líneas directas, informes de RRHH, etc.), y lo más probable es que pudieras desenterrar algunas joyas ocultas si supieras dónde buscar. Con el aprendizaje automático, podrías conseguir lo siguiente y mucho más:

  • Segmenta a los clientes y encuentra la mejor estrategia de marketing para cada grupo.

  • Recomienda productos para cada cliente basándote en lo que compraron clientes similares.

  • Detecta qué transacciones pueden ser fraudulentas.

  • Prevé los ingresos del año que viene.

Sea cual sea el motivo, has decidido aprender aprendizaje automático e implementarlo en tus proyectos. ¡Buena idea!

Objetivo y enfoque

Este libro asume que no sabes casi nada sobre aprendizaje automático. Su objetivo es darte los conceptos, las herramientas y la intuición que necesitas para implementar programas capaces de aprender de los datos.

Cubriremos un gran número de técnicas, desde las más sencillas y utilizadas (como la regresión lineal) hasta algunas de las técnicas de aprendizaje profundo que ganan competiciones con regularidad. Para ello, utilizaremos frameworks de Python listos para la producción:

  • Scikit-Learn es muy fácil de usar, pero implementa muchos algoritmos de aprendizaje automático de forma eficiente, por lo que es un excelente punto de entrada al aprendizaje automático. Fue creado por David Cournapeau en 2007, y ahora está dirigido por un equipo de investigadores del Instituto Francés de Investigación en Informática y Automática (Inria).

  • TensorFlow es una biblioteca más compleja para el cálculo numérico distribuido. Permite entrenar y ejecutar redes neuronales muy grandes de forma eficiente, distribuyendo los cálculos entre cientos de servidores multi-GPU (unidades de procesamiento gráfico). TensorFlow (TF) se creó en Google y es compatible con muchas de sus aplicaciones de aprendizaje automático a gran escala. Su código fuente se abrió en noviembre de 2015, y la versión 2.0 se publicó en septiembre de 2019.

  • Keras es una API de aprendizaje profundo de alto nivel que hace muy sencillo entrenar y ejecutar redes neuronales. Keras viene incluido con TensorFlow, y se basa en TensorFlow para todos los cálculos intensivos.

El libro favorece un enfoque práctico, haciendo crecer una comprensión intuitiva del aprendizaje automático mediante ejemplos de trabajo concretos y sólo un poco de teoría.

Consejo

Aunque puedes leer este libro sin coger el portátil, te recomiendo encarecidamente que experimentes con los ejemplos de código.

Ejemplos de códigos

Todos los ejemplos de código de este libro son de código abierto y están disponibles en línea en https://github.com/ageron/handson-ml3, como cuadernos Jupyter. Se trata de documentos interactivos que contienen texto, imágenes y fragmentos de código ejecutables (Python en nuestro caso). La forma más fácil y rápida de empezar es ejecutar estos cuadernos utilizando Google Colab: se trata de un servicio gratuito que te permite ejecutar cualquier cuaderno Jupyter directamente en línea, sin tener que instalar nada en tu máquina. Todo lo que necesitas es un navegador web y una cuenta de Google.

Nota

En este libro, asumiré que utilizas Google Colab, pero también he probado los cuadernos en otras plataformas en línea como Kaggle y Binder, así que puedes utilizarlas si lo prefieres. Alternativamente, puedes instalar las bibliotecas y herramientas necesarias (o la imagen Docker de este libro) y ejecutar los cuadernos directamente en tu propia máquina. Consulta las instrucciones en https://homl.info/install.

Este libro está aquí para ayudarte a hacer tu trabajo. Si deseas utilizar contenido adicional más allá de los ejemplos de código, y ese uso queda fuera del ámbito de las directrices de uso justo, (como vender o distribuir contenido de los libros de O'Reilly, o incorporar una cantidad significativa de material de este libro en la documentación de tu producto), ponte en contacto con nosotros para solicitar permiso, en

Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow por Aurélien Géron. Copyright 2023 Aurélien Géron, 978-1-098-12597-4".

Requisitos previos

Este libro asume que tienes cierta experiencia en programación con Python. Si aún no conoces Python, https://learnpython.org es un buen lugar para empezar. El tutorial oficial de Python. org también es bastante bueno.

Este libro también asume que estás familiarizado con las principales bibliotecas científicas de Python, en concreto, NumPy, Pandas y Matplotlib. Si nunca has utilizado estas bibliotecas, no te preocupes; son fáciles de aprender, y he creado un tutorial para cada una de ellas. Puedes acceder a ellos en línea en https://homl.info/tutorials.

Además, si quieres comprender plenamente cómo funcionan los algoritmos de aprendizaje automático (no sólo cómo utilizarlos), entonces deberías tener al menos unos conocimientos básicos de algunos conceptos matemáticos, especialmente de álgebra lineal. En concreto, deberías saber qué son los vectores y las matrices, y cómo realizar algunas operaciones sencillas como sumar vectores, o transponer y multiplicar matrices. Si necesitas una introducción rápida al álgebra lineal (¡realmente no es ciencia espacial!), te proporciono un tutorial en https://homl.info/tutorials. También encontrarás un tutorial sobre cálculo diferencial, que puede ser útil para entender cómo se entrenan las redes neuronales, pero no es del todo esencial para comprender los conceptos importantes. Este libro también utiliza ocasionalmente otros conceptos matemáticos, como exponenciales y logaritmos, un poco de teoría de la probabilidad y algunos conceptos básicos de estadística, pero nada demasiado avanzado. Si necesitas ayuda con alguno de ellos, consulta https://khanacademy.org, que ofrece muchos cursos excelentes y gratuitos de matemáticas en línea.

Mapa de carreteras

Este libro está organizado en dos partes. La Parte I, "Los Fundamentos del Aprendizaje Automático", abarca los siguientes temas:

  • Qué es el aprendizaje automático, qué problemas intenta resolver y las principales categorías y conceptos fundamentales de sus sistemas

  • Los pasos de un proyecto típico de aprendizaje automático

  • Aprender ajustando un modelo a los datos

  • Optimizar una función de costes

  • Manipulación, limpieza y preparación de datos

  • Selección e ingeniería de características

  • Selección de un modelo y ajuste de los hiperparámetros mediante validación cruzada

  • Los retos del aprendizaje automático, en particular la inadaptación y la sobreadaptación (el equilibrio sesgo/varianza)

  • Los algoritmos de aprendizaje más comunes: regresión lineal y polinómica, regresión logística, k-vecinos más próximos, máquinas de vectores soporte, árboles de decisión, bosques aleatorios y métodos de conjunto.

  • Reducir la dimensionalidad de los datos de entrenamiento para combatir la "maldición de ladimensionalidad"

  • Otras técnicas de aprendizaje no supervisado, como la agrupación, la estimación de la densidad y la detección de anomalías

La Parte II, "Redes neuronales y aprendizaje profundo", abarca los siguientes temas:

  • Qué son las redes neuronales y para qué sirven

  • Construir y entrenar redes neuronales con TensorFlow y Keras

  • Las arquitecturas de redes neuronales más importantes: redes neuronales feedforward para datos tabulares, redes convolucionales para la visión por ordenador, redes recurrentes y redes de memoria a corto plazo (LSTM) para el procesamiento de secuencias, codificadores-decodificadores y transformadores para el procesamiento del lenguaje natural (¡y más!), autocodificadores, redes generativas adversariales (GAN) y modelos de difusión para el aprendizaje generativo.

  • Técnicas de entrenamiento de redes neuronales profundas

  • Cómo construir un agente (por ejemplo, un bot en un juego) que pueda aprender buenas estrategias mediante ensayo y error, utilizando el aprendizaje por refuerzo.

  • Carga y preprocesamiento eficaz de grandes cantidades de datos

  • Formación e implementación de modelos TensorFlow a escala

La primera parte se basa principalmente en Scikit-Learn, mientras que la segunda utiliza TensorFlow y Keras.

Precaución

No te lances a las aguas profundas demasiado deprisa: aunque el aprendizaje profundo es sin duda una de las áreas más apasionantes del aprendizaje automático, primero debes dominar los fundamentos. Además, la mayoría de los problemas pueden resolverse bastante bien utilizando técnicas más sencillas, como los bosques aleatorios y los métodos de conjunto (tratados en la Parte I). El aprendizaje profundo es más adecuado para problemas complejos, como el reconocimiento de imágenes, el reconocimiento del habla o el procesamiento del lenguaje natural, y requiere muchos datos, potencia de cálculo y paciencia (a menos que puedas aprovechar una red neuronal preentrenada, como verás).

Cambios entre la primera y la segunda edición

Si ya has leído la primera edición, aquí tienes los principales cambios entre la primera y la segunda edición:

  • Todo el código se migró de TensorFlow 1.x a TensorFlow 2.x, y sustituí la mayor parte del código TensorFlow de bajo nivel (gráficos, sesiones, columnas de características, estimadores, etc.) por código Keras mucho más sencillo.

  • La segunda edición introdujo la API de Datos para cargar y preprocesar grandes conjuntos de datos, la API de estrategias de distribución para entrenar e implementar modelos TF a escala, TF Serving y Google Cloud AI Platform para producir modelos, y (brevemente) TF Transform, TFLite, TF Addons/Seq2Seq, TensorFlow.js y TF Agents.

  • También introduce muchos temas adicionales de ML, incluido un nuevo capítulo sobre aprendizaje no supervisado, técnicas de visión por ordenador para la detección de objetos y la segmentación semántica, tratamiento de secuencias mediante redes neuronales convolucionales (CNN), procesamiento del lenguaje natural (PLN) mediante redes neuronales recurrentes (RNN), CNN y transformadores, GAN y mucho más.

Consulta https://homl.info/changes2 para más detalles.

Cambios entre la Segunda y la Tercera Edición

Si leíste la segunda edición, he aquí los principales cambios entre la segunda y la tercera edición:

  • Todo el código se ha actualizado a las últimas versiones de las bibliotecas. En particular, esta tercera edición introduce muchas novedades en Scikit-Learn (por ejemplo, el seguimiento de nombres de características, el aumento de gradiente basado en histogramas, la propagación de etiquetas, etc.). También introduce la biblioteca Keras Tuner para el ajuste de hiperparámetros, la biblioteca Transformers de Hugging Face para el procesamiento del lenguaje natural, y las nuevas capas de preprocesamiento y aumento de datos de Keras.

  • Se añadieron varios modelos de visión (ResNeXt, DenseNet, MobileNet, CSPNet y EfficientNet), así como directrices para elegir el adecuado.

  • Enel Capítulo 15 se analizan ahora los datos de viajes en autobús y ferrocarril de Chicago, en lugar de series temporales generadas, y se introduce el modelo ARMA y sus variantes.

  • El capítulo 16 sobre el procesamiento del lenguajenatural construye ahora un modelo de traducción inglés-español, primero utilizando una RNN codificadora-decodificadora, y luego utilizando un modelo transformador. El capítulo también cubre modelos de lenguaje como los Transformadores de Conmutación, DistilBERT, T5 y PaLM (con incitación a la cadena de pensamiento). Además, presenta los transformadores de visión (ViT) y da una visión general de algunos modelos visuales basados en transformadores, como los transformadores de imagen eficientes en datos (DeiT), Perceiver y DINO, así como una breve visión general de algunos grandes modelos multimodales, como CLIP, DALL-E, Flamingo y GATO.

  • El capítulo 17 sobre aprendizaje generativo introduce ahora los modelos de difusión, y muestra cómo implementar un modelo probabilístico de difusión de eliminación de ruido (DDPM) desde cero.

  • El capítulo 19 migró de Google Cloud AI Platform a Google Vertex AI, y utiliza Keras Tuner distribuido para la búsqueda de hiperparámetros a gran escala. El capítulo incluye ahora código TensorFlow.js con el que puedes experimentar en línea. También presenta otras técnicas de entrenamiento distribuido, como PipeDream y Pathways.

  • Para dar cabida a todo el nuevo contenido, algunas secciones se trasladaron a Internet, incluidas las instrucciones de instalación, el análisis de componentes principales del núcleo (ACP), los detalles matemáticos de las mezclas gaussianas bayesianas, los Agentes TF y los antiguos apéndices A (soluciones de ejercicios), C (matemáticas de la máquina de vectores de soporte) y E (arquitecturas adicionales de redes neuronales).

Consulta https://homl.info/changes3 para más detalles.

Otros recursos

Existen muchos recursos excelentes para aprender sobre aprendizaje automático. Por ejemplo, el curso de ML de Andrew Ng en Coursera es increíble, aunque requiere una importante inversión de tiempo.

También hay muchos sitios web interesantes sobre aprendizaje automático, como la excepcional Guía del usuario de Scikit-Learn. También puedes disfrutar de Dataquest, que proporciona tutoriales interactivos muy agradables, y de blogs de ML como los que aparecen en Quora.

Hay muchos otros libros introductorios sobre el aprendizaje automático. En particular

  • Data Science from Scratch, 2ª edición (O'Reilly), de Joel Grus, presenta los fundamentos del aprendizaje automático e implementa algunos de los principales algoritmos en Python puro (desde cero, como su nombre indica).

  • Machine Learning: An Algorithmic Perspective, 2ª edición (Chapman & Hall), es una magnífica introducción al aprendizaje automático, que cubre una amplia gama de temas en profundidad con ejemplos de código en Python (también desde cero, pero utilizando NumPy).

  • Python Machine Learning, 3ª edición (Packt Publishing), de Sebastian Raschka, también es una gran introducción al aprendizaje automático y aprovecha las bibliotecas de código abierto de Python (Pylearn 2 y Theano).

  • Aprendizaje profundo con Python, 2ª edición (Manning), de François Chollet, es un libro muy práctico que cubre una gran variedad de temas de forma clara y concisa, como cabría esperar del autor de la excelente biblioteca Keras. Favorece los ejemplos de código sobre la teoría matemática.

  • El libro de Andriy Burkov The Hundred-Page Machine Learning Book (autopublicado) es muy breve pero abarca una impresionante gama de temas, presentándolos en términos accesibles sin rehuir las ecuaciones matemáticas.

  • El Aprendizaje a partir de datos (AMLBook) de Yaser S. Abu-Mostafa, Malik Magdon-Ismail y Hsuan-Tien Lin es un enfoque más bien teórico del ML que proporciona profundos conocimientos, en particular sobre el equilibrio sesgo/varianza (véase el Capítulo 4).

  • Inteligencia Artificial: A Modern Approach, 4ª edición (Pearson), es un gran (y enorme) libro que abarca una increíble cantidad de temas, incluido el aprendizaje automático. Ayuda a poner el ML en perspectiva.

  • Deep Learning for Coders with fastai and PyTorch (Aprendizaje profundo para programadores con fastai y PyTorch ), de Jeremy Howard y Sylvain Gugger (O'Reilly), ofrece una introducción maravillosamente clara y práctica al aprendizaje profundo utilizando las bibliotecas fastai y PyTorch.

Por último, unirte a sitios web de competiciones de ML, como Kaggle.com, te permitirá poner en práctica tus habilidades en problemas del mundo real, con la ayuda y los conocimientos de algunos de los mejores profesionales de ML que existen.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Puntuación

Para evitar cualquier confusión, la puntuación aparece fuera de las comillas en todo el libro. Mis disculpas a los puristas.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://homl.info/oreilly3.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media

Síguenos en Twitter: https://twitter.com/oreillymedia

Míranos en YouTube: https://youtube.com/oreillymedia

Agradecimientos

Ni en mis sueños más salvajes imaginé que la primera y la segunda edición de este libro tendrían tanto público. Recibí muchísimos mensajes de lectores, muchos haciendo preguntas, algunos señalando amablemente erratas y la mayoría enviándome palabras alentadoras. No puedo expresar lo agradecida que estoy a todos estos lectores por su enorme apoyo. ¡Muchas gracias a todos! Por favor, no dudes en presentar incidencias en GitHub si encuentras errores en los ejemplos de código (o simplemente para hacer preguntas), o en enviar erratas si encuentras errores en el texto. Algunos lectores también compartieron cómo este libro les ayudó a conseguir su primer trabajo, o cómo les ayudó a resolver un problema concreto en el que estaban trabajando. Estos comentarios me parecen increíblemente motivadores. Si este libro te ha resultado útil, me encantaría que compartieras tu historia conmigo, ya sea en privado (por ejemplo, a través de LinkedIn) o en público (por ejemplo, tuiteándome a @aureliengeron o escribiendo una reseña en Amazon).

Muchísimas gracias también a todas las personas maravillosas que ofrecieron su tiempo y experiencia para revisar esta tercera edición, corrigiendo errores y haciendo innumerables sugerencias. Esta edición es mucho mejor gracias a ellos: Olzhas Akpambetov, George Bonner, François Chollet, Siddha Ganju, Sam Goodman, Matt Harrison, Sasha Sobran, Lewis Tunstall, Leandro von Werra y mi querido hermano Sylvain. ¡Sois todos increíbles!

También estoy muy agradecido a las muchas personas que me han apoyado a lo largo del camino, respondiendo a mis preguntas, sugiriendo mejoras y contribuyendo al código en GitHub: en particular, Yannick Assogba, Ian Beauregard, Ulf Bissbort, Rick Chao, Peretz Cohen, Kyle Gallatin, Hannes Hapke, Victor Khaustov, Soonson Kwon, Eric Lebigot, Jason Mayes, Laurence Moroney, Sara Robinson, Joaquín Ruales y Yuefeng Zhou.

Este libro no existiría sin el fantástico personal de O'Reilly, en particular Nicole Taché, que me proporcionó comentarios perspicaces y siempre se mostró alegre, alentadora y servicial: No podría soñar con una editora mejor. Muchas gracias también a Michele Cronin, que me animó en los últimos capítulos y consiguió que superara la línea de meta. Gracias a todo el equipo de producción, en particular a Elizabeth Kelly y Kristen Brown. Gracias también a Kim Cofer por la minuciosa corrección de estilo, y a Johnny O'Toole, que gestionó la relación con Amazon y respondió a muchas de mis preguntas. Gracias a Kate Dullea por mejorar enormemente mis ilustraciones. Gracias a Marie Beaugureau, Ben Lorica, Mike Loukides y Laurel Ruma por creer en este proyecto y ayudarme a definir su alcance. Gracias a Matt Hacker y a todo el equipo de Atlas por responder a todas mis preguntas técnicas sobre el formato, AsciiDoc, MathML y LaTeX, y gracias a Nick Adams, Rebecca Demarest, Rachel Head, Judith McConville, Helen Monroe, Karen Montgomery, Rachel Roumeliotis y a todos los demás de O'Reilly que han contribuido a este libro.

Nunca olvidaré a todas las personas maravillosas que me ayudaron con la primera y la segunda edición de este libro: amigos, colegas, expertos, incluidos muchos miembros del equipo de TensorFlow. La lista es larga: Olzhas Akpambetov, Karmel Allison, Martin Andrews, David Andrzejewski, Paige Bailey, Lukas Biewald, Eugene Brevdo, William Chargin, François Chollet, Clément Courbet, Robert Crowe, Mark Daoust, Daniel "Wolff" Dobson, Julien Dubois, Mathias Kende, Daniel Kitachewsky, Nick Felt, Bruce Fontaine, Justin Francis, Goldie Gadde, Irene Giannoumis, Ingrid von Glehn, Vincent Guilbeau, Sandeep Gupta, Priya Gupta, Kevin Haas, Eddy Hung, Konstantinos Katsiapis, Viacheslav Kovalevskyi, Jon Krohn, Allen Lavoie, Karim Matrah, Grégoire Mesnil, Clemens Mewald, Dan Moldovan, Dominic Monn, Sean Morgan, Tom O'Malley, James Pack, Alexander Pak, Haesun Park, Alexandre Passos, Ankur Patel, Josh Patterson, André Susano Pinto, Anthony Platanios, Anosh Raj, Oscar Ramírez, Anna Revinskaya, Saurabh Saxena, Salim Sémaoune, Ryan Sepassi, Vitor Sessak, Jiri Simsa, Iain Smears, Xiaodan Song, Christina Sorokin, Michel Tessier, Wiktor Tomczak, Dustin Tran, Todd Wang, Pete Warden, Rich Washington, Martin Wicke, Edd Wilder-James, Sam Witteveen, Jason Zaman, Yuefeng Zhou y mi hermano Sylvain.

Por último, pero no por ello menos importante, estoy infinitamente agradecido a mi querida esposa, Emmanuelle, y a nuestros tres maravillosos hijos, Alexandre, Rémi y Gabrielle, por animarme a trabajar duro en este libro. Su insaciable curiosidad no tiene precio: explicar a mi mujer y a mis hijos algunos de los conceptos más difíciles de este libro me ayudó a aclarar mis ideas y mejoró directamente muchas partes del mismo. Además, siguen trayéndome galletas y café, ¿quién podría pedir más?

1 Geoffrey E. Hinton y otros, "Un algoritmo de aprendizaje rápido para redes de creencia profundas", Neural Computation 18 (2006): 1527-1554.

2 A pesar de que las redes neuronales convolucionales profundas de Yann LeCun habían funcionado bien para el reconocimiento de imágenes desde los años 90, aunque no eran tan polivalentes.

Get Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow, 3ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.