Soy matemático pero no soy muy bueno con la programación. Quiero convertirme en un investigador de aprendizaje automático. ¿Dónde debo comenzar y cómo puedo continuar?

El consejo que siempre doy es conocer tus fortalezas y trabajar en tus debilidades.

1. Conozca sus fortalezas. Como eres matemático, probablemente estés lo suficientemente familiarizado con los conceptos detrás del aprendizaje automático. Tal vez algunas de las estadísticas lo sorprenderán (valor p, estadísticas bayesianas, etc.), pero es probable que ya tenga una buena base para trabajar. Por lo tanto, recomendaría intentar programar algunos algoritmos matemáticos para comenzar. Esto lo llevará a la programación, pero en un área en la que se sienta cómodo y sepa cómo debe verse la salida. Entonces, por ejemplo, debe saber cómo son cosas como la media , la mediana , la moda , la desviación estándar , la curtosis y la asimetría , cómo se relacionan y cómo calcularlas a mano. Un buen proyecto para trabajar en tus habilidades de programación sería intentar codificarlas. Sin embargo, en general, revisaría un libro como matemática discreta , teoría de conjuntos , álgebra lineal o estadística , y trataría de codificar algunos de los algoritmos y / o fórmulas allí. Si eso es demasiado para comenzar, comenzaría con un libro de álgebra 2 y trataría de hacer la fórmula cuadrática, la Eliminación gaussiana , la conversión de Fahrenheit a Celsius y algunos programas de matemáticas elementales.

2. Trabaja en tus debilidades. Esta parte implica salir de su zona de confort y jugar con elementos como estructuras de datos y algoritmos fuera de su norma. Tendrás que avanzar hasta algunos algoritmos reales de aprendizaje automático, como la agrupación , la clasificación y la regresión, pero por ahora comenzaría con la Lista de algoritmos y más tarde Lista de conceptos de aprendizaje automático y simplemente elegir un concepto e intentar codificarlo arriba. No dejaría que me estresara demasiado porque estás aprendiendo y, al igual que probablemente te caíste algunas veces al aprender a caminar, puedes confundirte algunas veces al trabajar con estos nuevos conceptos. Recomiendo pasar por algunas estructuras de datos elementales como pilas , colas , árboles binarios , montones , tablas hash y gráficos . Del mismo modo, algunos de los algoritmos con los que comenzaría son los algoritmos de clasificación elemental (burbuja, selección, inserción, fusión, rápida) y algunas cuestiones de teoría de gráficos, como los algoritmos de ruta más corta .

Trabajar en algunas de estas cosas debería darle una idea de la programación. Y una vez que tenga un control allí, puede ir a la página de conceptos de aprendizaje automático y probar algunos de esos conceptos. Y para un principiante, también recomendaría aprender a codificar algunos de los algoritmos de aprendizaje automático. Comienza a comprender mejor los algoritmos de esa manera, y descubrí que ayuda en las entrevistas y al dar presentaciones.

Bueno, depende, para mí, las matemáticas básicas necesarias para Machine Learning son:

– Teoría de probabilidad

– Aprendizaje estadístico

– Optimización

– Modelado de datos bayesianos

He visto muchas especialidades de matemáticas que no tienen estos 4 temas como fondo, sin embargo, debería haber tomado al menos una clase de Análisis Real, que debería ser muy útil.

En el lado de la programación, te recomiendo que estudies:

– Algoritmos

– Estructuras de datos

– Programación orientada a objetos

Quizás un poco en Ingeniería de Software, solo para aprender a escribir un buen código. Además, déjate llevar por una clase de Machine Learning que usa Python u Octave, para que te acostumbres, la clase Ng de Andrew en curso es muy buena para eso.

Como eres matemático, la mitad de la batalla ya está ganada. La mayoría de los llamados entusiastas de ML pueden tener dificultades para explicar qué son los vectores propios, ¡pero afirman identificar galaxias lejanas! El siguiente paso para usted es usar algunas bibliotecas estándar como Weka, sci-kitlearn, R, MATLAB, etc. para usar implementaciones estándar. No quiere ser ingeniero, está bien, puede leer un poco sobre estructuras de datos, etc. pero después de aprender algunas bibliotecas básicas, puede comenzar a escribir sus propias ideas en simples guiones. Se sorprenderá cuando escriba su primer programa exitoso y, con suerte, lo motivará a avanzar.