¿Cuáles son los conceptos básicos de informática que debo aprender antes de aprender Machine Learning?

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:

  • 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.

ML es un tema muy pesado en matemáticas. Necesitará una comprensión muy sólida del álgebra lineal y el cálculo vectorial. A partir de ahí, vea si puede comenzar con scikit-learn.

Editar, ahora que estoy en una computadora y no en un teléfono: acabo de terminar el CS231n (Conv Nets) de Stanford y fue un gran curso. La primera tarea destila muchos temas de aprendizaje automático de una manera muy agradable, pero el curso depende en gran medida de las matemáticas que mencioné anteriormente. Sin embargo, va mucho más en profundidad que scikit-learn, y probablemente puedas jugar con scikit ahora, ya que está diseñado para ser muy accesible. Las matemáticas también deberían estar disponibles en línea de forma gratuita en algún lugar: tanto Stanford como el MIT son buenos para publicar material para ese tipo de cursos, por lo que comenzaría allí.

¡Espero que esto ayude y la mejor de las suertes en AI y ML!

Estructuras de datos

  • Matrices
  • Listas enlazadas
  • Pilas
  • Colas
  • Vectores / arrayLists

Recursividad

Diría (quizás discutible) entender por qué los genéricos son importantes. Y potencialmente una comprensión superficial de la reificación versus el tipo de borrado.


Probablemente sean importantes porque en algún momento es posible que deba codificar para una empresa o un proyecto con ML. Los fundamentos anteriores son los conceptos básicos.

Prefiero que sigas el curso de Keith Devlin sobre pensamiento matemático

Es un MOOC en línea, y espero que lo encuentres transformador.

Hay personas que creen que las matemáticas son más una forma de arte que simplemente seguir uno o dos métodos estándar que se enseñan en la escuela. Espero que te beneficies de todas estas cosas.

More Interesting

¿Cuál fue el proyecto informático más difícil que hiciste como estudiante de CS / CPE?

Si me cuesta resolver problemas en la clase de informática pero me encanta crear aplicaciones, ¿no soy apto para un título de CS?

¿Debo hacer una carrera de SAP / ABAP?

¿Dónde debo comenzar a construir un gran currículum desde cero?

Programadores de computadoras: ¿Cómo debo distinguirme como futuro estudiante de pregrado de CS?

¿Qué es mejor en términos de trabajo y salario, ingeniería informática o informática?

¿Cuál es una mejor corriente de ingeniería, informática o ingeniería civil?

¿Las personas con un título en Informática saben cómo inyectar SQL?

¿Qué cosas necesito hacer para conseguir un trabajo CS bien remunerado si me quedan 6 meses?

Si desea comenzar un nuevo código de escritura profesional (porque lo ha hecho por diversión por la noche durante años), ¿a qué ciudad estadounidense debería mudarse? ¿O deberías trabajar independientemente en línea?

¿Cuáles son algunos trabajos para un estudiante de informática?

¿Cómo salir de la universidad y comenzar un negocio, en lugar de conseguir un trabajo? Me graduaré con un título en ciencias de la computación y debería tener alrededor de $ 5k en mi cuenta bancaria y $ 25k en deuda estudiantil, ¿cómo debo hacer para iniciar un negocio?

¿Qué temas necesita saber un desarrollador de C ++ para convertirse en un profesional completo?

¿Cómo puede un principiante obtener un proyecto de desarrollo de software en sitios web independientes?

Soy un estudiante de segundo año de B.Tech CSE. ¿Qué debo hacer para obtener una pasantía de invierno en IIM Ahmedabad?