No hay ningún problema con no obtener algunos temas avanzados, especialmente al comenzar, solo sigue leyendo y practicando e intenta visualizar todo desde tu propia perspectiva. Con el tiempo las cosas se volverán más fáciles y podrá comenzar a comprender los conceptos más profundos.
Aunque el aprendizaje automático (ML) no requiere que se convierta en un experto en programación, ya que su objetivo es convertirse en un investigador de ML, solo necesita los conceptos básicos de CS como:
- Diseño del sistema : suficiente para armar un algoritmo ML y ejecutarlo.
- Complejidad computacional . La gran notación O. Comprender la complejidad de tiempo y espacio de un algoritmo es importante al desarrollar cualquier algoritmo.
- Programación : también debe elegir un lenguaje de programación como:
- Pitón
- Java
- C / C ++
- Estructuras de datos : como matrices, árboles y listas vinculadas, cosas que puede usar al desarrollar un algoritmo de ML.
De esos lenguajes de programación, Python es el más atractivo y más fácil de aprender. Comience con Python y descargue una de las siguientes bibliotecas de ML:
- ¿Cuál es la tarifa actual para un trabajo de verano de pasantía en informática?
- ¿Qué debo aprender para comenzar para ser un buen programador?
- ¿Cómo convertirse en un experto en administración de Hadoop? ¿Cuál es la forma de trabajar en el administrador de Hadoop?
- ¿Por qué el desarrollo de la interfaz de usuario toma tiempo?
- Cada vez que comienzo un proyecto y algo sale mal, dejo de fumar aunque me encanta la codificación. ¿Que puedo hacer?
- TensorFlow (TF)
- Keras
- Theano
- PyTorch
- Caffe2
- Soneto
Esas bibliotecas pueden ayudarlo a experimentar con modelos de ML para que pueda generar cierta confianza al trabajar con ML pero no se acostumbre a tratar ML como una tecnología de caja negra. Una vez que haya jugado con algunos modelos en esas bibliotecas, intente comenzar a trabajar desde niveles extremadamente bajos, es decir, desarrolle algoritmos como el descenso de gradiente estocástico (SGD) desde cero, incluido backprop. De esa manera, se verá obligado a comprender los conceptos básicos subyacentes que de otro modo se habrían escapado de su comprensión. El conocimiento también se queda una vez que practicas.
Lo que también debe comprender es que ML está fuertemente relacionado con la teoría de optimización, por lo que debe asegurarse de comprender los conceptos básicos de:
- Álgebra lineal : operaciones matriciales y vectoriales. Descomposición de valores singulares (SVD).
- Cálculo : cálculo especialmente diferencial.
- Probabilidad y estadística : al tomar decisiones usamos probabilidades y en el aprendizaje automático tenemos funciones logísticas y softmax para calcular las probabilidades en aras de tomar decisiones, como si una clase en particular está presente o no.
- Optimización numérica : especialmente los métodos de optimización de primer orden basados en la optimización decente de gradiente. También debe echar un vistazo a los enfoques de optimización de segundo orden, pero los métodos de segundo orden rara vez se usan en ML.
Dicho esto, también debes saber que si sigues luchando por comprender una discusión en particular, ¿por qué no comentar? Obtendrá más aclaraciones del autor de esa manera. Haga uso de Quora, a los escritores realmente les gustan los comentarios que piden aclaraciones.
Con el tiempo, las cosas tendrán sentido, sigue avanzando y no te preocupes mucho por las cosas que ahora no tienen sentido. A veces, ciertos conceptos están relacionados con otros conceptos, por lo que si, por ejemplo, tenemos los conceptos A y B, donde B se deriva de A, si intentas entender B, tendrás dificultades porque no entendiste completamente A. Por lo tanto, asegúrate de que el fundamento sea fuerte antes de pasar a temas más avanzados.
La mejor manera de comenzar es obtener una visión general sin preocuparse por cosas que no tienen sentido. Luego, en el tiempo extra, necesita profundizar en cada tema específico, algo como la búsqueda de amplitud primero (BFS) con retroceso para volver a visitar algunos temas con el tiempo.
Y una vez que alcance un cierto nivel de comprensión, intente desarrollar algunos proyectos de aprendizaje automático como aplicaciones o código abierto que pueden ayudarlo a obtener una pasantía en empresas como Google, Facebook o Microsoft, de esa manera crecerá aún más hacia su objetivo de ser investigador .
Por cierto, el lenguaje comúnmente utilizado en la investigación es matemática, no CS. Por lo tanto, ser investigador requiere que seas muy fuerte en matemáticas porque en la investigación necesitas probar conceptos rigurosamente usando matemáticas. Por ejemplo, las redes de adversarios generativos (GAN) se basan en la teoría de juegos, que es extremadamente intuitiva, pero la prueba matemática es una locura, yo mismo nunca me he atrevido a mirarlo, pero lo haré.
Por lo tanto, cuando lea intente obtener la intuición subyacente y luego, con el tiempo, enfóquese en los detalles, el enfoque BFS.
Espero que esto ayude.