Los mejores recursos que utilicé para enseñarme a mí mismo el aprendizaje automático

El campo del aprendizaje automático se está volviendo cada vez más común cada año. Con este crecimiento vienen muchas bibliotecas y herramientas para abstraerse de algunos de los conceptos más difíciles de implementar para las personas que comienzan.

La mayoría de la gente dirá que necesita un título de nivel superior en ML para trabajar en la industria. Si te encanta trabajar con datos y matemáticas prácticas, diría que esto no es cierto. No me gradué de la universidad con un título en aprendizaje automático o en datos, pero ahora estoy trabajando con ML en una startup. Quiero compartir lo que aprendí y cómo llegué aquí con la esperanza de que ayude a alguien más.

Empezando

Ya conocía Python cuando comencé, pero, si no es así, recomiendo aprender Python básico e intermedio primero. El idioma es bastante fácil de aprender en comparación con otros. Python también alberga la comunidad de ciencia de datos / aprendizaje automático más grande, por lo que hay toneladas de herramientas para ayudarlo a aprender.

Aprenda Python: curso intensivo de freeCodeCamp Python

Con eso fuera del camino, lo primero que debe hacer es descargar “The Machine Learning Podcast” de OCDevel (overcast.fm, iTunes) en su aplicación de podcast favorita. Escuche los primeros 10 a 15 episodios. Son muy buenos para dar una descripción general del ecosistema de aprendizaje automático y también hay recursos recomendados que están vinculados en el sitio de OCDevel.

Estampación

Anaconda & Jupyter Notebook: estos son imprescindibles para el aprendizaje automático y la ciencia de datos. Siga las instrucciones aquí para instalarlos y configurarlos.

Visual Studio Code con Python Plugin: nunca pensé que recomendaría un producto de Microsoft, pero estoy honestamente impresionado con su compromiso con el código abierto últimamente. Este es ahora mi editor de código favorito, incluso para hacer algunas cosas en Python, como depurar código.

Kaggle.com es el mejor lugar para encontrar conjuntos de datos cuando está comenzando. Continúe, regístrese para obtener una cuenta y explore el sitio. Notarás que hay muchas competencias para personas de todos los niveles de experiencia e incluso tutoriales para acompañarlas (como esta para principiantes sobre el Titanic). Estos conjuntos de datos serán muy útiles para practicar mientras aprende las bibliotecas de Python.

Bibliotecas de Python

A continuación, es importante aprender las bibliotecas comunes de Python para trabajar con datos: Numpy, Matplotlib, Pandas, Scikit-Learn, etc. Recomiendo comenzar con este curso de datacamp. Repasa algunos conceptos básicos que puede omitir o usar para revisar y la sección Numpy es una buena introducción.

Pandas es algo que hay que aprender, pero también lleva un poco de tiempo comprenderlo, ya que hace muchas cosas. Está construido sobre Numpy y se utiliza para limpiar, preparar y analizar datos. También tiene herramientas integradas para cosas como visualización. Usé muchos recursos para aprender Pandas y practicar con ellos. A continuación, presentamos algunos:

  1. Aprende pandas en Kaggle
  2. Curso de Video Aprende Pandas | Cuaderno para el curso
  3. Ejemplos adicionales de Jupyter Notebook: Conceptos básicos | Trazar con Matplotlib & Pandas | Y muchos más

Después de Pandas viene Scikit-Learn. Aquí es donde las cosas comienzan a aplicarse más a los algoritmos reales de aprendizaje automático. Scikit-Learn es una biblioteca científica de Python para el aprendizaje automático.

El mejor recurso que encontré para esto hasta ahora es el libro "Hands on Machine Learning with Scikit-Learn and Tensorflow". Creo que hace un muy buen trabajo enseñándote paso a paso con ejemplos prácticos. La primera mitad es sobre Scikit-Learn, así que hice esa parte primero y luego volví a la parte de Tensorflow.

Hay muchas otras bibliotecas de Python como Keras y PyTorch, pero entraré en ellas más adelante. Esto ya es mucho que aprender :)

Aprendizaje superficial

Este es el primer paso hacia el aprendizaje automático. Scikit-Learn tiene funciones de aprendizaje superficiales como la regresión lineal incorporada en la biblioteca. El libro Scikit-Learn que mencioné anteriormente enseña sobre muchos tipos de algoritmos comunes de aprendizaje automático y le permite practicar con ejemplos prácticos.

Si bien eso es bueno, todavía me pareció útil pasar también por el curso de aprendizaje automático de Andrew Ng de Stanford. Está disponible para ser auditado de forma gratuita en Coursera (hay un podcast para este curso en iTunes, pero es un poco difícil de seguir y tiene más de una década). La calidad de la instrucción es asombrosa y es uno de los recursos en línea más recomendados (no es el más fácil de entender, por eso lo recomiendo aquí).

Empiece a realizar el curso de Andrew Ng lentamente y no se frustre si no comprende algo. Tuve que dejarlo y recogerlo varias veces. También tomé Matlab en la universidad, que es el idioma que usa en el curso, así que no tuve problemas con esa parte. Pero si desea utilizar Python en su lugar, puede encontrar los ejemplos traducidos en línea.

Matemáticas :)

Sí, las matemáticas son necesarias. Sin embargo, no siento que un enfoque intenso en el que las matemáticas sean primero sea la mejor manera de aprender; es intimidante para muchas personas. Como sugiere OCDevel en su podcast (vinculado arriba), dedique la mayor parte de su tiempo a aprender aprendizaje automático práctico y tal vez entre un 15% y un 20% a estudiar matemáticas.

Creo que el primer paso aquí es aprender / repasar las estadísticas. Puede ser más fácil de digerir y a la vez muy divertido y práctico. Después de las estadísticas, definitivamente necesitará aprender un poco de álgebra lineal y algo de cálculo para saber realmente lo que está sucediendo en el aprendizaje profundo. Esto llevará algo de tiempo, pero estos son algunos de los recursos que recomiendo para esto.

Recursos de estadísticas:

  1. Creo que los cursos de estadística de Udacity son bastante buenos. Puede comenzar con este y luego explorar los otros que ofrecen.
  2. Me encantó el libro "Estadísticas desnudas". Está lleno de ejemplos prácticos y es agradable de leer.
  3. También es útil para comprender la estadística bayesiana y en qué se diferencia de los modelos frecuentista y clásico. Este curso de Coursera hace un gran trabajo al explicar estos conceptos; también hay una parte 2 del curso aquí.

Recursos de álgebra lineal:

  1. El libro “Álgebra lineal, paso a paso” es excelente. Es como un libro de texto de la escuela secundaria / universidad, pero está bien escrito y es fácil de seguir. También hay muchos ejercicios para cada capítulo con respuestas al final.
  2. Serie de videos Esencia de álgebra lineal: las explicaciones matemáticas de 3blue1brown son increíbles. Recomiendo mucho su contenido de matemáticas.
  3. También hay una descripción general del álgebra lineal en el curso de Andrew Ng, pero creo que los dos recursos que enumero anteriormente son un poco más fáciles de usar para aprender el tema.

Recursos de cálculo:

Había tomado algunos años de Cálculo antes, pero aún necesitaba repasar un poco. Cogí un libro de texto usado para Calc. 1 en una librería local para empezar. Aquí hay algunos recursos en línea que también me ayudaron.

  1. Serie de vídeos Esencia del cálculo
  2. Comprensión del cálculo de The Great Courses Plus

Otras matemáticas útiles:

  1. Toma de decisiones matemáticas de The Great Courses Plus

Aprendizaje profundo

Después de aprender algunas matemáticas y los conceptos básicos de la ciencia de datos y el aprendizaje automático, es hora de saltar a más algoritmos y redes neuronales.

Probablemente ya haya probado el aprendizaje profundo con algunos de los recursos que mencioné en la parte 1, pero aquí hay algunos recursos realmente buenos para presentarle las redes neuronales de todos modos. Al menos serán una buena revisión y llenarán algunos vacíos por ti.

  1. Serie de 3blue1brown que explica las redes neuronales
  2. Introducción de Deeplizard a la lista de reproducción de aprendizaje profundo

Mientras estás trabajando en el curso de Andrew Ng Stanford, te recomiendo que revises fast.ai. Tienen varios cursos de video prácticos de alta calidad que realmente pueden ayudar a aprender y consolidar estos conceptos. El primero es Aprendizaje profundo práctico para programadores y el segundo, recién lanzado, es Aprendizaje profundo de vanguardia para programadores, Parte 2. Aprendí muchas cosas al ver y volver a ver algunos de estos videos. Otra característica sorprendente de fast.ai es el foro de la comunidad; probablemente uno de los foros de IA más activos en línea.

Bibliotecas de aprendizaje profundo en Python

Creo que es una buena idea aprender un poco de estas tres bibliotecas. Keras es un buen lugar para comenzar, ya que su API está diseñada para ser más simple e intuitiva. En este momento, uso casi por completo PyTorch, que es mi favorito personal, pero todos tienen pros y contras. Por lo tanto, es bueno saber cuál elegir en diferentes situaciones.

Keras

  • Lista de reproducción de Deeplizard Keras: este canal tiene algunas explicaciones y ejemplos realmente buenos. Puede seguir los videos de forma gratuita o tener acceso a los cuadernos de códigos también suscribiéndose en Patreon en el nivel de $ 3 (USD).
  • También encontré que la documentación de Keras es bastante buena
  • Datacamp tiene muchos tutoriales bien escritos para ML y Keras como este

Tensorflow

  • La sección de Tensorflow del libro, "Hands on Machine Learning with Scikit-Learn y Tensorflow" (mencionado anteriormente también)
  • Serie Deeplizard Tensorflow

PyTorch

  • Serie de lagarto profundo Pytorch
  • Udacity Pytorch Bootcamp: actualmente estoy tomando el nanogrado de aprendizaje de refuerzo profundo de Udacity y pensé que su sección de PyTorch al principio del curso era muy buena. ¡Están a punto de lanzarlo gratis al público! Éstos son algunos de sus cuadernos PyTorch en Github.
  • Fast.ai también está construido con PyTorch. Aprenderá algo sobre esta biblioteca si sigue sus cursos.

Blogs y artículos de investigación

Me ha resultado muy útil leer la investigación actual a medida que aprendo. Hay muchos recursos que ayudan a hacer que los conceptos complicados y las matemáticas detrás de ellos sean más fáciles de digerir. Estos artículos también son mucho más divertidos de leer de lo que te imaginas.

  1. blog de fast.ai
  2. Distill .pub - Explicación clara de la investigación sobre aprendizaje automático
  3. Documentos de dos minutos: breves desgloses en video de la IA y otros artículos de investigación
  4. Arvix Sanity: herramienta más intuitiva para buscar, ordenar y guardar trabajos de investigación
  5. Hoja de ruta de los documentos de aprendizaje profundo
  6. Subreddit de aprendizaje automático: tienen hilos de 'qué estás leyendo' que discuten los trabajos de investigación
  7. Arxiv Insights: este canal tiene excelentes desgloses de artículos de investigación de IA

Educación complementaria de audio

  1. The Data Skeptic: tienen muchos buenos episodios más cortos, llamados [mini] s, donde cubren conceptos de aprendizaje automático
  2. Ingeniería de software Aprendizaje automático diario
  3. Podcast de aprendizaje automático de OCDevel: ya mencioné este, pero lo enumeraré nuevamente en caso de que se lo haya perdido

Recursos de aprendizaje adicionales

  • Libro electrónico sobre redes neuronales y aprendizaje profundo
  • Machine Learning Yearning (borrador gratuito) por Andrew Ng

El fin

Aplauda si esto fue útil :)

Redes sociales: @gwen_faraday

Si conoce algún otro recurso que sea bueno, o ve que me falta algo, deje enlaces en los comentarios. Gracias.