El aprendizaje fue difícil.
Hubo muchos cursos, libros y recursos que usé en el camino que me ayudaron, pero al ser honesto, muchos de ellos no habría tomado en retrospectiva.
Entonces, quiero revisar todas las cosas que estudié para conseguir un trabajo en el aprendizaje automático, y luego le diré qué áreas realmente valían la pena y cuáles no.
¡Vamos a entrar en ello!
Grado universitario / matemáticas
Soy muy afortunado de haber decidido estudiar para una maestría en física cuando era adolescente.
Sí, probablemente estés poniendo los ojos en blanco en este momento.
“Este tipo dijo que no tenía antecedentes de CS pero que hizo una maestría en física, qué demonios”.
No puedo negar que esto definitivamente me dio una ventaja. Sin embargo, muchos graduados STEM todavía luchan por encontrar trabajo en el aprendizaje automático. Incluso he trabajado personalmente con ellos.
Simplemente tener una maestría en un tema STEM está lejos de ser una garantía de que podrá conseguir un trabajo fácilmente.
Hay muchas cosas más que debe aprender, que generalmente no se enseñan en la mayoría de los programas.
Con todo lo dicho, las principales cosas que aprendí en mi título que son relevantes para mi trabajo actual de ingeniero de aprendizaje automático fueron las habilidades de matemáticas.
Aprendí cálculo y álgebra lineal a un nivel intenso, más de lo que necesitas ser honesto, y las estadísticas a un estándar decente. Incluso entonces, todavía tenía que repasar mi conocimiento de estadísticas más tarde.
Mi título también fue la primera vez que escribí código.
Literalmente en mi primer día, a las 9 a.m., tuve un tutorial de laboratorio de computación en Fortano.
Para aquellos de ustedes que desconocen, Fortran es el lenguaje de programación “de alto nivel” más antiguo inventado en la década de 1950. Sin embargo, aquí lo enseñamos en 2017.
Fortran apenas es amigable para principiantes e inmediatamente me hizo no como programación. ¡Si el viejo yo supiera lo que estaría haciendo hoy!
Aunque no disfruté de Fortran, me enseñó cómo pensar y resolver problemas usando el código, que pagó dividendos a largo plazo.
Si desea saber todas las habilidades de matemáticas necesarias para trabajar en el aprendizaje automático, consulte mi publicación anterior:
Cómo aprender las matemáticas necesarias para el aprendizaje automático
Un desglose de los tres campos de matemáticas fundamentales requeridos para el aprendizaje automático: estadísticas, álgebra lineal y …Medium.com
Pitón
Debido a que odiaba tanto a Fortran, evité activamente cualquier módulo con un aspecto de programación.
Sin embargo, en 2020, durante mi tercer año, se me recomendó un video en mi página de inicio de YouTube.
Para aquellos de ustedes que desconocen, este fue un documental sobre Ai Alphago de Deepmind que venció al mejor jugador Go del mundo. La mayoría de la gente pensó que una IA nunca podría ser buena en Go, y mucho menos vencer al campeón mundial.
Después de ver el video, comencé a leer sobre cómo funciona la IA, incluidas las redes neuronales, el aprendizaje de refuerzo y el aprendizaje profundo.
A partir de entonces, estaba empeñado en convertirme en científico de datos, y sabía que tenía que aprender a Python para convertirme en uno.
Por la noche y los fines de semana, revisaba varios cursos y proyectos de Python, los que usé fueron:
Sin mencionar las interminables búsquedas de Google y los hilos de StackOverflow que visité. Esto fue previo a Chatgpt, después de todo.
También practiqué mis habilidades de Python en Truco Problemas y proyectos básicos creados para la diversión, así como para mis cursos universitarios.
Sql
Después de que aprendí Python, dediqué un mes más o menos a aprender SQL mientras solicitaba trabajos de ciencias de datos de nivel de entrada y graduados.
SQL es más fácil de aprender que muchos otros idiomas, ya que es más pequeño y los conceptos básicos cubren casi cualquier cosa que desee hacer.
Los cursos y los recursos que utilicé para SQL fueron:
Y de nuevo, usé Truco practicar problemas SQL para entrevistas.
Esta fue una pequeña parte de mi viaje de aprendizaje, y adquirí la mayoría de mis habilidades avanzadas de SQL en el trabajo.
Aprendizaje automático
Durante mi último año de universidad, tomé Especialización de aprendizaje automático de Andrew Ng. Lo tomé cuando todavía era la versión de 2012, cuando los ejercicios de codificación estaban en octava/matlab.
Este curso me enseñó los fundamentos teóricos de todos los algoritmos de aprendizaje automático, como:
Todo esto fue antes de que incluso comenzara a implementarlos en código. Construir esa intuición detrás de los algoritmos es muy invaluable.
También complementé mi aprendizaje con varios libros de texto:
Todo esto todavía uso hoy, ya que siempre estudiará y actualizará su conocimiento del aprendizaje automático.
Aprendizaje profundo
Después de estudiar todos los conocimientos fundamentales de aprendizaje automático, tomé el curso posterior de Andrew Ng, que fue el Especialización de aprendizaje profundo en Coursera.
Nuevamente complementé mi aprendizaje con los mismos libros de texto que en la sección de aprendizaje automático, ya que cubren muchos conceptos avanzados.
Algunos videos y cursos adicionales que utilicé fueron:
Estadística
En este punto de mi viaje, conseguí mi primer trabajo como científico de datos en una compañía de seguros, donde trabajé estrechamente con los actuarios.
Para aquellos de ustedes que no saben qué son los actuarios, Wikipedia los describe como:
Un actuario es un profesional con habilidades matemáticas avanzadas que se ocupa de la medición y gestión del riesgo y la incertidumbre.
Aunque estudié estadísticas antes, el nivel requerido en una compañía de seguros es relativamente alto, especialmente cuando trabaja con los actuarios, ya que son especialistas en el campo.
Para actualizar mis estadísticas, estudié el CS1 (Estadísticas) Examen actuarial. Aunque en realidad no senté el examen, revisé y estudié todos los contenidos.
El plan de estudios cubre casi todas las estadísticas que es probable que use como científico de datos o ingeniero de aprendizaje automático para toda su carrera.
Biblia Estadísticas prácticas para científicos de datos (enlace de afiliado) sirvió como un texto de referencia para refrescar mi conocimiento, y estudié el Piensa en Bayes (enlace de afiliado) Libro de texto para aprender estadísticas bayesianas.
Es importante tener en cuenta que no tomé los cursos y leí los libros; Documenté prácticamente todo lo que aprendí en medio.
Estadística general
Distribuciones de probabilidad
Estadísticas bayesianas
Con mucho, como he dicho muchas veces, este ha sido el mayor ROI para mi carrera.
Pronóstico de series de tiempo
Después de pasar un año en seguros, cambié de compañía y trabajé en un equipo especializado en problemas de pronóstico y optimización de series temporales.
El único libro que solía aprender pronosticado fue Pronóstico: Principios y práctica (enlace de afiliado) por Rob Hyndman y George Athanasopoulos.
Esto se conoce como la Biblia de pronósticos, y es el único libro que recomiendo que las personas obtengan al comenzar a estudiar el campo.
El resto de mi conocimiento que obtuve de las búsquedas de Google y videos al azar en línea. Esto era típicamente como complementé mi conocimiento en la mayoría de las áreas.
Y, por supuesto, documenté todo en medio.
Investigación de optimización / operaciones
Para mi conocimiento de optimización, fue un poco más mezclado, ya que es un campo vasto. Para darle una sensación de tamaño, posiblemente abarca todo el aprendizaje automático y también cubre una lista de Algoritmos de optimización discreta.
El texto de referencia principal que utilicé fue Algoritmos para la optimización (enlace de afiliado), Y complementé eso con una variedad de otros recursos en línea, como:
Pero en general, estudiaría áreas que necesitaba aprender para mi trabajo y escribir publicaciones de blog sobre ellas. Así es como aprendí la mayoría de las cosas, siendo honesto y aún lo hago.
Ingeniería de software
Cuando buscaba la transición de ser un científico de datos a un ingeniero de aprendizaje automático, las áreas clave que necesitaba para mejorar eran mis habilidades de ingeniería de software.
Es una gran área, de hecho, es todo un trabajo, pero me concentré en los fundamentos.
Los cursos que tomé fueron:
Un área que es difícil de estudiar es escribir un código de producción adecuado. Esto es lo único que aprendí únicamente en el trabajo, pero puede obtener experiencia afuera creando sus propios proyectos de software.
Si eso parece mucho, ¡no se preocupe, ya que es casi 5 años de estudiar constantemente casi todos los días!
Además, como dije al principio, no todo era necesario en retrospectiva. Las siguientes áreas son cosas que definitivamente no volvería a hacer.
- Actuarial CS1 – No se necesitan muchos conceptos en la práctica, y el detalle matemático puede ser excesivo. Recomiendo seguir con el Estadísticas prácticas para científicos de datos (enlace de afiliado)libro de texto.
- CS107 Organización y sistemas de computadora– Realmente no he usado ninguna idea de aquí.
- Elementos de aprendizaje estadístico –Un libro de texto exagerado para la mayoría de las personas.
El resto definitivamente valió la pena, pero definitivamente no necesitaba todos esos recursos. Uno bueno en cada sección es suficiente.
Si buscas una hoja de ruta adecuada y detallada para irrumpir en el aprendizaje automático, te recomiendo que revises mi publicación anterior a continuación:
La mejor hoja de ruta AI/ML para principiantes
Cómo aprender AI/ML desde cero
¡Otra cosa!
Ofrezco llamadas de coaching 1: 1 donde podemos conversar sobre lo que necesite, ya sean proyectos, consejos profesionales o simplemente descubrir su próximo paso. ¡Estoy aquí para ayudarte a avanzar!
Llamada de tutoría 1: 1 con Egor Howell
Orientación profesional, asesoramiento laboral, ayuda del proyecto, revisión de reanudar