Hace dos años, empecé a aprender machine learning online por mi cuenta. Compartí mi viaje a través de YouTube y mi blog. No tenía ni idea de lo que estaba haciendo. Nunca había codificado antes, pero decidí que quería aprender aprendizaje automático.
Cuando la gente encuentra mi trabajo, a veces se acercan y hacen preguntas. No tengo todas las respuestas pero respondo a todas las que puedo. La pregunta más común que recibo es «¿por dónde empiezo?». La siguiente pregunta más común es «¿cuántas matemáticas necesito saber?»
He respondido a un puñado de estas preguntas esta mañana.
Alguien me dijo que había empezado a aprender Python y que quería meterse en el aprendizaje automático pero que no sabía qué hacer después.
He aprendido Python, ¿qué debo hacer a continuación?
Hice un par de pasos en la respuesta y los copio aquí. Puedes considerarlos un esquema aproximado para pasar de no saber codificar a ser un profesional del aprendizaje automático.
Mi estilo de aprendizaje es primero el código. Haz que el código funcione primero y aprende la teoría, las matemáticas, la estadística y la parte de la probabilidad cuando lo necesites, no antes.
Recuerda, si estás empezando a aprender machine learning, puede ser desalentador. Hay muchas cosas. Tómate tu tiempo. Guarda este artículo en tus favoritos para poder consultarlo a medida que avanzas.
Me inclino por usar Python porque es con lo que empecé y sigo usando. Podrías usar otra cosa pero estos pasos serán para Python.
El email decía que ya habían hecho algo de Python. Pero este paso es para alguien que es completamente nuevo también. Dedica unos meses a aprender código Python al mismo tiempo que diferentes conceptos de machine learning. Necesitarás ambos.
Mientras aprendes código Python, practica usando herramientas de ciencia de datos como Jupyter y Anaconda. Dedica unas horas a juguetear con ellas, para qué sirven y por qué deberías usarlas.
Recursos para aprender
- Elementos de IA – visión general de los principales conceptos de inteligencia artificial y aprendizaje automático.
- Una guía de campo de 6 pasos para construir proyectos de aprendizaje automático – visión general de muchos pasos prácticos que puedes dar para empezar a usar el aprendizaje automático en una variedad de problemas empresariales diferentes.
- Python for Everybody en Coursera – aprende Python desde cero.
- Aprende Python por freeCodeCamp – todos los conceptos principales de Python en un solo vídeo.
- Tutorial de Anaconda por Corey Schafer – aprende Anaconda (lo que usarás para configurar tu ordenador para la ciencia de datos y el aprendizaje automático) en un solo vídeo.
- Tutorial de Jupyter Notebook para principiantes por Dataquest – ponte en marcha con Jupyter Notebooks en un solo artículo.
- Tutorial de Jupyter Notebook por Corey Schafer – aprende a usar Jupyter Notebooks en un solo vídeo.
Aprende análisis de datos, manipulación & visualización con Pandas, NumPy Matplotlib
Una vez que tengas algunos conocimientos de Python, querrás aprender a trabajar y manipular datos.
Para ello, deberás familiarizarte con pandas, NumPy y Matplotlib.
Pandas te ayudará a trabajar con dataframes, son tablas de información como las que verías en un archivo de Excel. Piensa en filas y columnas. Este tipo de datos se llama datos estructurados.
NumPy te ayudará a realizar operaciones numéricas sobre tus datos. El aprendizaje automático convierte todo lo que puedas pensar en números y luego encuentra los patrones en esos números.
Matplotlib te ayudará a hacer gráficos y visualizaciones de tus datos. Entender un montón de números en una tabla puede ser difícil para los humanos. Preferimos ver un gráfico con una línea que lo atraviese. Hacer visualizaciones es una gran parte de la comunicación de tus hallazgos.
Recursos para aprender
- Applied Data Science with Python on Coursera – empieza a adaptar tus habilidades en Python hacia la ciencia de los datos.
- pandas in 10-minutes – una visión rápida de la biblioteca pandas y algunas de sus funciones más útiles.
- Tutorial de Python Pandas por Codebasics – serie de YouTube que recorre todas las principales capacidades de pandas.
- Tutorial de NumPy por freeCodeCamp – aprende NumPy en un solo vídeo de YouTube.
- Tutorial de Matplotlib por Sentdex – serie de YouTube que enseña todas las características más útiles de Matplotlib.
Aprende aprendizaje automático con scikit-learn
Ahora que tienes habilidades para manipular y visualizar datos, es el momento de encontrar patrones en ellos.
scikit-learn es una librería de Python con muchos algoritmos útiles de aprendizaje automático incorporados listos para que los uses.
También cuenta con muchas otras funciones útiles para averiguar lo bien que aprendió tu algoritmo de aprendizaje.
Centrate en aprender qué tipo de problemas de aprendizaje automático hay, como, la clasificación y la regresión, y qué tipo de algoritmos son los mejores para ellos. No se trata de entender cada algoritmo desde cero todavía, aprender a aplicarlos primero.
Recursos para el aprendizaje
- Aprendizaje automático en Python con scikit-learn por Data School – lista de reproducción de YouTube que enseña todas las funcionalidades principales en scikit-learn.
- Una introducción suave al análisis exploratorio de datos por Daniel Bourke- poner lo que has aprendido en los dos pasos anteriores juntos en un proyecto. Viene con el código y el vídeo para ayudarle a entrar en su primera competición de Kaggle.
- El cuaderno de análisis de datos exploratorios de Daniel Formosso con scikit-learn – versión más profunda del recurso anterior, viene con un proyecto de extremo a extremo utilizando lo anterior.
Aprender redes neuronales de aprendizaje profundo
El aprendizaje profundo y las redes neuronales funcionan mejor en datos sin mucha estructura.
Los dataframes tienen estructura, las imágenes, los vídeos, los archivos de audio y el texto en lenguaje natural tienen estructura pero no tanta.
Tidbit: Para la mayoría de los casos, querrás utilizar un conjunto de árboles de decisión (Random Forests o un algoritmo como XGBoost) para los datos estructurados y querrás utilizar el aprendizaje profundo o el aprendizaje de transferencia (tomar una red neuronal preentrenada y utilizarla en tu problema) para los datos no estructurados.
Podrías empezar una nota con pequeños detalles como este para ti y recopilarlos a medida que avanzas.
Recursos para el aprendizaje
- deeplearning.ai por Andrew Ng en Coursera – aprendizaje profundo enseñado por uno de los mejores en el negocio.
- cursos de aprendizaje profundo fast.ai por Jeremy Howard – un enfoque práctico para el aprendizaje profundo enseñado por uno de los mejores profesionales de la industria.
Currículo extra & libros
En el camino, sería ideal que practicaras lo que estás aprendiendo con pequeños proyectos propios. No tienen que ser cosas elaboradas que cambien el mundo, sino algo que puedas decir «he hecho esto con X». Y luego comparte tu trabajo a través de Github o una entrada de blog. Github se utiliza para mostrar tu código, una entrada de blog se utiliza para mostrar cómo puedes comunicar tu trabajo. Deberías aspirar a publicar uno de cada proyecto.
La mejor manera de solicitar un trabajo es haber hecho ya las cosas que requiere. Compartir tu trabajo es una gran manera de mostrar a un futuro empleador potencial de lo que eres capaz.
Después de que estés familiarizado usando algunos de los diferentes marcos para el aprendizaje automático y el aprendizaje profundo, podrías intentar cimentar tus conocimientos construyéndolos desde cero. No siempre tendrás que hacer esto en producción o en un papel de aprendizaje automático, pero saber cómo funcionan las cosas desde dentro te ayudará a construir sobre tu propio trabajo.
Recursos para el aprendizaje
- Cómo empezar tus propios proyectos de aprendizaje automático por Daniel Bourke – empezar tus propios proyectos puede ser difícil, este artículo te da algunos consejos.
- Aprendizaje profundo fast.ai desde los cimientos por Jeremy Howard – una vez que has ido de arriba a abajo, este curso te ayudará a rellenar los huecos de abajo a arriba.
- Grokking Deep Learning de Andrew Trask – este libro te enseñará a construir redes neuronales desde cero y por qué deberías saber cómo hacerlo.
- These books will help you learn machine learning de Daniel Bourke – vídeo de YouTube que repasa algunos de los mejores libros sobre aprendizaje automático.
¿Cuánto tiempo para cada paso?
Podrías dedicar 6 meses o más a cada uno. No te apresures. Aprender cosas nuevas lleva tiempo. La principal habilidad que estás construyendo como científico de datos o ingeniero de aprendizaje automático es cómo hacer buenas preguntas a los datos y luego usar tus herramientas para tratar de encontrar respuestas.
Algunos días sentirás que no estás aprendiendo nada. Incluso que vas hacia atrás. Ignóralo. No compares tu progreso día a día. Compara tu progreso año a año.
¿Dónde puedo aprender estas habilidades?
He enumerado algunos recursos arriba, todos están disponibles en línea y la mayoría de ellos son gratuitos, pero hay muchos más.
DataCamp es un gran lugar para hacer la mayoría de estos. Si no, mi base de datos de recursos de Aprendizaje Automático e Inteligencia Artificial contiene un buen archivo de materiales de aprendizaje gratuitos y de pago.
Recuerda, parte de ser un científico de datos o ingeniero de aprendizaje automático es resolver problemas. Trata tu primera tarea como averiguar más sobre cada uno de los pasos aquí y crear tu propio plan de estudios para ayudarte a aprenderlos.
Si quieres saber cómo es un ejemplo de plan de estudios autodirigido para el aprendizaje de máquinas, echa un vistazo a mi Máster en IA autodirigido. Es lo que utilicé para pasar de cero codificación a ser un ingeniero de aprendizaje automático en 9 meses. No es perfecto, pero es mío, por eso ha funcionado.
¿Qué hay de la estadística? ¿Qué hay de las matemáticas? ¿Qué pasa con la probabilidad?
Aprenderás estas cosas por el camino. Empieza con el código primero. Haz que las cosas funcionen. Tratar de aprender todas las estadísticas, todas las matemáticas, toda la probabilidad antes de ejecutar su código es como tratar de hervir el océano. Te retrasará.
Nada de las estadísticas, las matemáticas y la probabilidad importan si tu código no funciona. Consigue que algo funcione y luego utiliza tus habilidades de investigación para averiguar si es correcto.
¿Qué pasa con las certificaciones?
Las certificaciones son bonitas pero no las buscas. Vas detrás de las habilidades.
No cometas el error que yo cometí y pienses que más certificaciones son iguales a más habilidades. No es así.