Hace unas tres semanas, un estudiante de la UPIITA-IPN me preguntó que libro leer para aprender sobre redes neuronales y aprendizaje profundo. Debido a la prisa cotidiana, no pude contestarle como hubiera deseado. Quiero resanar esa recomendación descuidada mediante esta nota. Voy a reseñar los tres libros que he consultado para aprender más acerca de las redes neuronales artificiales y el aprendizaje profundo. Al ser un tema caliente, hay un par de decenas de libros que puedes comprar en Amazon sobre aprendizaje profundo. Si eres nuevo en este tema y estas interesado en aprender puede ser confuso donde iniciar y saber en qué fuentes de información vale la pena invertir tu tiempo. Considera que hay un océano de opciones y todos tenemos solo 24 horas cada día, así que devorar todos los libros no es, por mucho, la mejor estrategia a seguir. Nota importante: es posible descargar los tres libros desde Internet a través de sitios rusos, sin embargo, te invito a comprarlos si realmente vas en serio en desarrollar tus habilidades técnicas. Esto lo recomiendo por dos motivos: porque es una forma de agradecer a los autores por dedicar su tiempo de "pavimentar el camino" para que otros puedan recorrerlo más rápido, y dos, porque leer un libro en papel es una experiencia que hace el aprendizaje sea más significativo. Claro que si no tienes dinero suficiente o solo quieres fisgonear el libro, comprarlo no es una buena opción. 1.- Deep Learning with PythonSi tu perfil es de un programador o de un estudiante de ingeniería o de un ingeniero con poco interés en explicaciones profundas, entonces tu buscas un libro práctico con código que te permita poner en acción lo que diga el libro lo más pronto posible. Éste es el libro ideal para ti. Francois Chollet es el autor del libro y es ingeniero-investigador que trabaja en Google en el área de aprendizaje automático. Él va directo a las explicaciones simples para que comprendas cómo funciona el código y puedas desarrollar tus propios proyectos. Hace un recorrido por los fundamentos matemáticos y de aprendizaje automático para que comprendas rápidamente como funcionan las redes neuronales. Lo más importante es la sección 1 "What is deep learning?" porque le aclara a la gente que se inicia en este tema ¿qué es aprendizaje profundo y qué no?, ¿qué es la inteligencia artificial y qué no?, ¿qué son las redes neuronales?, ¿por qué hay tanto interés en este tema? Esa es una sección que te recomiendo leer, ya mismo. Después de los fundamentos, te lleva de la mano para que veas ejemplos de como aplicar las redes neuronales convolucionales a problemas de visión computacional como reconocer gatos y perros en imágenes. También te muestra cómo aplicar modelos neuronales recurrentes a secuencias de texto para su clasificación. Te enseña las mejores estrategias que puedas usar para mejorar tus modelos neuronales. Hay una sección exclusivamente para un tópico muy caliente que son los modelos generativos. Estos modelos permiten crear imágenes o texto artificialmente que parezca muy real, tanto que a veces es díficil para un ser humano reconocer si es una imagen real o artificial. Como he dicho, si tu estas interesado en "hacer" entendiendo lo suficiente, este libro es para ti. El libro es poco profundo en la teoría, en las explicaciones y las matemáticas. Pero es un libro muy generoso en códigos prácticos y útiles. Yo usé unas cuantas secciones de este libro para el curso de Actumlogos. 2.- Deep LearningSi tu perfil es de un profesor, un investigador, un estudiante de posgrado o eres un ingeniero con intereses en la investigación, entonces entender es más importante que la implementación, ya que la implementación pasa a ser un medio para verificar o falsificar tus tesis. Este libro fue escrito por tres investigadores quienes tienen muchos seguidores y muchas citas en sus publicaciones, y con este libro, tendrán muchas más en el futuro. Ian Goodfellow es considerado padre de los modelos "Generative Adversarial Networks" que son capaces de crear imágenes impresionantemente realistas. Yoshua Bengio y Aaron Courville son muy reconocidos; fueron algunos de los investigadores que le dieron un nuevo impulso a la investigación en redes neuronales, buscando en las arquitecturas neuronales de varias capas. El libro es dividido en tres partes. Uno, te enseña los fundamentos matemáticos a un nivel más profundo que el libro anterior. Sin embargo, no esperes que sea como un libro de texto, donde te van a enseñar paso a paso, solo te muestran lo que deberías saber de manera rápida, sin ejemplos, y en forma abstracta. Si quieres dominar las bases, tendrás que ir a otros libros especializados en cada tema. Dos, aquí presentan explicaciones detalladas de las redes neuronales multicapa, de las redes convolucionales y de redes recurrentes junto con tres secciones acerca de cómo entrenarlas enfocándose en los métodos de optimización, regularización y la metodología para decidir qué hacer si el modelo no está aprendiendo como deseamos. Aquí hay un sección que leí con mucha más atención que fue la sección 12 "Applications", te la recomiendo. Tres, trata de un collage de varios temas que se manejan más a nivel de investigación, por ejemplo, la representación de aprendizaje donde se busca mejores formas de representar la información para facilitar su clasificación, un tema muy importante para mejorar el desempeño de los modelos neuronales. Es un libro fácil de leer y muy ameno, pero para quien no este metido en la investigación, puede ser difícil de entender y no hay ejemplos prácticos. Lo recomiendo porque sirve para conocer las explicaciones y los puntos de vista de grandes investigadores como son los autores. Basado en ellos, tu puedes estirar la frontera del conocimiento un poco más. 3.- Hands-On Machine Learning with Scikit-Learn & TensorFlowÉste es otro libro muy práctico, dirigido a los estudiantes de posgrado, investigadores experimentales y programadores profesionales. El autor del libro es Aurélien Géron, sinceramente no conocía sus logros, hasta que tuve que indagar un poco sobre él para reseñarlo. Él fundó y tiene una consultoría para empresas que necesiten desarrollar sistemas basados de aprendizaje automático para solucionar algún problema práctico en su organización. Por lo cual, su experiencia en el desarrollo de estos proyectos es incuestionable. El libro es fácil de leer, tiene código por todas partes, gráficas y ejemplos prácticos. Se centra en usar dos herramientas computacionales muy útiles para implementar modelos de aprendizaje automático: Scikit-Learn y Tensorflow. De hecho, así está dividido el libro en dos partes, una en donde te enseña lo básico de aprendizaje automático usando scikit-learn, y otra, en donde trata el tema de redes neuronales basado en tensorflow. Algo muy valioso para los programadores profesionales es un capitulo exclusivo para enseñarles cómo desarrollar tu propio proyecto desde inicio a fin, con la visión adecuada. En mi opinión, la segunda parte del libro debe reservarse para quienes realmente buscan crear modelos propios con arquitecturas pocos usuales. Si lo que quieres es usar modelos convencionales, usa Keras y lee el primer libro que reseñe en esta nota. En este libro las explicaciones de los porqués son escasas, es un libro enfocado al "Know-How", es decir, al como hacerlo. Por tanto, es un libro muy útil para aprender haciendo.
11 Comentarios
|
AutorProfesor-Investigador del Instituto Politécnico Nacional, miembro del Sistema Nacional de Investigadores de México, miembro de la Sociedad de Inteligencia Computacional y de la Sociedad de Automatización y Robótica del IEEE. Mis intereses son la navegación autónoma de robot móviles y el aprendizaje automático. ArchivosCategorÃas |