Cómo aprender a programar IA

La programación es solo un medio para un fin. En AI / Machine Learning, la programación es la parte más fácil. Si bien puede programar en el lenguaje que desee, le recomendaría que aprenda uno de Python, R, Matlab / Octave (para poder construir código rápidamente) y uno de Java, C ++, C (para construir código que se ejecuta rápido, por supuesto, C se ejecuta más rápido que C ++, C ++ se ejecuta más rápido que Java). Además, debe conocer los algoritmos básicos y las estructuras de datos; de lo contrario, el código será complicado y lento.

La parte difícil es la matemática. Mientras mas sabes es mejor. Como mínimo, necesitaría saber:

– Álgebra lineal (hasta SVD y vectores propios Álgebra lineal y sus aplicaciones, 4a edición: Gilbert Strang: 9780030105678: Amazon.com: Libros)
– Cálculo univariado y multivariado (para poder derivar e integrar funciones con una o más variables Cálculo, 7a edición: James Stewart: 9780538497817: Amazon.com: Libros)
– Probabilidad y estadística (teorema de Bayes, máxima verosimilitud, distribuciones comunes Amazon.com: Introduction to Probability, 2nd Edition (9781886529236): Dimitri P. Bertsekas, John N. Tsitsiklis: Libros).
– Optimización (Introducción a la Optimización Lineal (Serie Científica Athena en Optimización y Computación Neural, 6): Dimitris Bertsimas, John N. Tsitsiklis, John Tsitsiklis, Dimitris Bertsimas, John Tsitsiklis: 9781886529199: Amazon.com: Libros)

Muy recomendable:

– Estadísticas avanzadas (estadísticas frecuentes Inferencia estadística: George Casella: 9788131503942: Amazon.com: Libros, estadísticas bayesianas Amazon.com: Métodos estadísticos de Monte Carlo (Textos de Springer en estadísticas) (9781441919397): Christian P. Robert, George Casella: Libros)
– Probabilidad avanzada (Amazon.com: Probabilidad y procesos aleatorios (9780198572220): Geoffrey R. Grimmett, David R. Stirzaker: Libros)
– Teoría de la información (al menos en el nivel del segundo teorema de Shannon, Elementos de la teoría de la información, segunda edición (Serie Wiley en telecomunicaciones y procesamiento de señales): Thomas M. Cover, Joy A. Thomas: 9780471241959: Amazon.com: Libros)
– Álgebra lineal avanzada (Matrix Computations (Johns Hopkins Studies in the Mathematical Sciences): Gene H. Golub, Charles F. Van Loan: 9781421407944: Amazon.com: Libros)

Recomendado:
– Análisis funcional (Análisis funcional introductorio con aplicaciones: Erwin Kreyszig: 9780471504597: Amazon.com: Libros)
– Teoría de juego

Eso debería cubrir la parte teórica del aprendizaje automático, y me parece que es toda una vida de estudio. Se pueden usar otros libros para complementar esos.

Por supuesto, eso es solo si planea pasar décadas de su vida en la construcción de agentes inteligentes. Si solo planea usar algoritmos hechos por otros, entonces muy probablemente, el primer grupo sería más que suficiente.

Si ha leído esos libros (primer y segundo grupo), sumergirse en libros de aprendizaje automático será mucho más fácil. Algunos libros recomendados son:

– Clasificación de patrones de DG Stork de RO Duda’s PE Hart (Clasificación de patrones (2a edición) [Tapa dura]) (2000): RO Duda PE Hart DG Stork: Amazon.com: Libros

– Aprendizaje automático: Tom M. Mitchell: 9780070428072: Amazon.com: Libros

– Amazon.com: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics) (9780387848570): Trevor Hastie, Robert Tibshirani, Jerome Friedman: Books

– Reconocimiento de patrones y aprendizaje automático (Ciencias de la información y estadísticas): Christopher Bishop: 9780387310732: Amazon.com: Libros

Los dos primeros son más legibles que los dos últimos, pero los dos últimos podrían ser mejores.

– Aprendizaje profundo (uno de los otros 4 libros, debe leerse antes de sumergirse en el aprendizaje profundo)

– Modelos gráficos probabilísticos: principios y técnicas (serie de computación adaptativa y aprendizaje automático): Daphne Koller, Nir Friedman: 8601401113034: Amazon.com: Libros (muy avanzado)

Puede complementar los libros con cursos en línea (o al revés). Algunos buenos cursos en línea son:

– https://www.coursera.org/learn/m… (Andrew Ng / Stanford / Coursera; solo una introducción al aprendizaje automático, contada desde una perspectiva de ingeniería. Probablemente lo primero que debe hacer para alguien que quiere aprender el aprendizaje automático )

– Aprendizaje automático (la versión original de ese curso impartida en Stanford. Mucho más difícil, mucho más gratificante).

– Aprendiendo de los datos – Curso en línea (MOOC) (Una alternativa a ese curso, impartido por Abu-Mostafa en Caltech)

– Aprendizaje automático (Otra alternativa, dada por Tom Mitchell, Carnegie Mellon)

– Inteligencia artificial (Dan Klein / Berkeley / edX; introducción a la IA, complementa bien los otros cuatro cursos que mencioné).

– CS231n: Redes neuronales convolucionales para el reconocimiento visual (Introducción al aprendizaje profundo)

– https://www.coursera.org/course/pgm (Modelos gráficos probabilísticos)

Ok, eso debería cubrirlo.

Asi que:

– Si solo desea utilizar el aprendizaje automático, realice el primer curso de Ng, obtenga un conjunto de datos y comience a aprender. Las competiciones de Kaggle podrían ser un buen comienzo después de eso.

– si desea comprender cómo funciona el aprendizaje automático, el funcionamiento interno de muchos algoritmos, tal vez incluso cambiarlos ligeramente, realice uno de los cursos de aprendizaje automático, curso de IA y curso de aprendizaje profundo, además de leer el primer grupo de libros de matemáticas y algunos de libros de aprendizaje automático.

– si desea realizar una investigación seria sobre IA / Aprendizaje automático, lea todos los libros dados varias veces, además de algunos otros libros, y luego pase toda su vida leyendo documentos de investigación.

¡Que te diviertas!

Aquí hay algunos buenos recursos, del programa comp-sci de Stanford:

Inteligencia artificial: principios y técnicas

CS224d: aprendizaje profundo para el procesamiento del lenguaje natural

Advertencia justa: estás entrando en un campo minado complicado: la IA es una perra. Tal vez hay bibliotecas de muy alto nivel que abstraen las complejidades, y espero ver si alguien sabe de alguna.