¿Cómo aprendo matemáticas para el aprendizaje automático?

Hace un par de años, basándose en su experiencia, Bradford Cross dio una lista completa de los mejores recursos sobre aprendizaje automático y los requisitos previos en su blog (“Medidas de medición”). Desafortunadamente, parece estar abajo ahora.

UPD :
Aquí está la publicación del blog en el espejo de WebArchive: http://web.archive.org/web/20101…

Las listas de Bradford en Amazon:

  • Análisis [1]
  • Algebra Lineal [2]
  • Probabilidad [3]
  • Estadística [4, 5]
  • Optimización [6]
  • Aprendizaje automático [7]
  • Selección de características [8]

Espero que el Sr. Cross pueda unirse a la discusión.

[1] http://www.amazon.com/Analysis/l…

[2] http://www.amazon.com/Matrix-Fu/…

[3] http://www.amazon.com/Probabilit…

[4] http://www.amazon.com/Statistics…

[5] http://www.amazon.com/Nonparamet…

[6] http://www.amazon.com/Heuristic-…

[7] http://www.amazon.com/Machine-Le…

[8] http://www.amazon.com/Feature-Se…

UPD 2 :
Aquí está la lista de libros de lectura obligatoria para el aprendizaje automático teórico [1], que se atribuye al prof. Michael Jordan (UC Berkeley). Las fuentes son [2] y [3].

[1] https://www.goodreads.com/review…

[2] Aprendiendo sobre el aprendizaje estadístico

[3] AMA: Michael I Jordan • / r / MachineLearning

Al pasar por mi curso de Aprendizaje automático el último semestre, sentí que tenía más que ver con el Álgebra Lineal. Sentí que las ideas clave de LinAlg son más difíciles de recordar con el tiempo que la Probabilidad. Me encontré trabajando principalmente con distribuciones de probabilidad, regla de Bayes, MLE y MAP, mientras que el lado de álgebra fue mayormente optimización en dimensiones más altas, fue principalmente cálculo de matriz.

Descubrí que el libro de cocina de Matrix era popular entre la mayoría de los estudiantes por trabajar con Matrix Calculus, ya que parece tener una lista interminable de derivados de matriz:

http://www2.imm.dtu.dk/pubdb/vie

En lo que respecta a repasar el resto de su conocimiento de Álgebra Lineal, recomiendo altamente las conferencias / libros de Strang:

http://ocw.mit.edu/courses/mathe

Los temas más relevantes incluyen conocer el rango y la inversión, SVD y también asegurarse de que se sienta cómodo con los valores propios y los vectores propios, entre otras cosas.

Finalmente, con el análisis, no creo que ML requiera una introducción formal al análisis. Es importante conocer bien el cálculo de dimensiones superiores, especialmente las partes relacionadas con la optimización, como los multiplicadores de Lagrange, la forma primigenio-dual y, en general, el cálculo de matrices, y debería estar listo.

En general, creo que el caso con el Álgebra Lineal y el Cálculo es trabajar a través de un libro / curso de ML, y detener y ver las matemáticas relevantes cuando sea necesario, mientras que necesita una base sólida en Probabilidad desde el principio, y la mayoría de los libros de texto en ML tienden a hablar mucho acerca de la probabilidad mientras se analizan los detalles matemáticos de LinAlg y Cálculo.

Permítanme primero advertir lo que voy a decir con esto: ir a la escuela de posgrado. [math] \ dagger [/ math] Para mostrarte lo súper serio que soy con esto, incluso voy a separar esta advertencia del resto de la respuesta con uno de los saltos de línea ultra cool.


Bien, en este punto, asumo que usted todavía está considerando únicamente la preparación de la escuela de posgrado sin una educación de pregrado. Vamonos.

Mi experiencia consiste en una licenciatura en matemáticas, una especialización en física y algunos años de experiencia en investigación que abarca desde detectores de partículas cargadas (física / EE) hasta el diseño de sistemas de vehículos autónomos para detección y evasión de colisiones. Para resumir: estoy mucho más calificado para responder tu pregunta cuando se enfatiza la robótica, así que eso es lo que voy a hacer.

La robótica es multidisciplinaria.

La robótica es un campo altamente multidisciplinario. De hecho, argumentaría que podría ser el campo académico que abarca la mayor cantidad de dominios distintos en su estructura central. Cuando hablamos de robótica, hablamos realmente de

  • Ciencias de la Computación
  • Matemáticas
  • Ingeniería Informática
  • Ingenieria Eléctrica
  • Ingeniería de control
  • Ingeniería de Sistemas
  • Ingeniería mecánica
  • Física (mecánica, más concretamente)

Lo que es aún más impresionante de la lista anterior que su tamaño es la profundidad de cada campo. Aparte del control y la ingeniería de sistemas, que son un poco más especializados y menos fundamentales que los otros, cada uno de los dominios anteriores es extremadamente amplio, lo que indica que si tuviera que desglosar los conceptos de robótica en un gráfico en red, se parecería a algo así. :

[1]

No hace falta decir que, en última instancia, los especialistas en robótica se especializan en un rango mucho más estrecho para que se pueda obtener experiencia en un tema. Pero eso no cambia el hecho de que perseguir la robótica, la gran amplitud y la versatilidad en ingeniería y matemáticas es una herramienta cuya utilidad no puede ser exagerada.


Áreas específicas de investigación

Ahora, independientemente de si desea seguir una maestría o un doctorado, en última instancia, tendrá que hacerse un nicho para usted mismo. Como mencioné anteriormente, el dominio de toda la robótica es una tarea desalentadora sin esperanzas; es imposible. Por lo tanto, es importante que se exponga a las diferentes áreas de la robótica y, gradualmente, afine el camino deseado de acuerdo con los temas que le interesan y en los que tiene talento.

Aquí está mi desglose de la investigación en robótica, en orden creciente de abstracción matemática y orden decreciente de ingeniería y construcción prácticas:

  1. Sensores El dominio de los sensores funciona de la manera más práctica y práctica posible para ampliar las restricciones técnicas actuales a las que se enfrenta el hardware de robótica. Debido a estos tipos, el iPhone se reduce cada vez más y más por arte de magia, al tiempo que aumenta sus capacidades tecnológicas. Un ejemplo de la importancia de este dominio que es aún más específico para la robótica es el radar que evade a los drones. ¿Recuerdas cuando sacaron a Osama Bin Laden porque volamos en un helicóptero en Afganistán que evade mágicamente los radares? Gracias sensores.
  2. Nano-robótica. Centrándose en el desarrollo de sistemas robóticos en el nivel micro, la nano-robótica explora cómo los agentes robóticos pueden construirse e implementarse en una escala lo suficientemente pequeña como para que puedan insertarse directamente en su cuerpo. ¿Suena aterrador? No debería. La nano-robótica tiene una gran cantidad de aplicaciones médicas que cambian el juego, algunas de las cuales incluyen curar legítimamente el cáncer y prevenir el envejecimiento.
  3. Visión de máquina. Si bien la capacidad de procesar e interpretar la información visual es muy intuitiva para los humanos, la conversión de nuestras habilidades a un entorno algorítmico en este asunto ha demostrado ser un proceso intimidante. De hecho, diría que el mayor obstáculo al que se enfrentan los autos que conducen por sí mismos es la visión artificial. Simplemente eche un vistazo al experto en autos de auto conducción en Tesla que murió porque su auto no distinguió entre el cielo brillante y un camión blanco que entraba. [2]
  4. Aprendizaje robótico. Cuando el aprendizaje automático se aplica en un contexto robótico, básicamente se convierte en aprendizaje robótico. El aprendizaje robótico es la superposición entre la robótica y el aprendizaje automático; aborda el problema del desarrollo de herramientas para la adaptación y el aprendizaje en sistemas robóticos. Un campo muy bueno, con una gran cantidad de aplicaciones prometedoras, y muy adecuado para alguien interesado en el aprendizaje automático y la robótica.
  5. Control robótico. Esta es el área en la que estoy actualmente anidado. El control representa un enfoque matemático para modelar el comportamiento y la evolución de un sistema dinámico: Wikipedia en relación con las entradas, que se puede usar para afectar la salida del sistema. El objetivo aquí es demostrar matemáticamente que un cierto enfoque para la selección de entrada garantiza que la salida del sistema convergerá rápidamente a un rango deseado estabilizado, como se ilustra en esta imagen de kick-a **. [3]

Debido a que usted ha declarado que la robótica y el aprendizaje automático son sus intereses, voy a asumir que sus intereses se alinean con el extremo # 3–5 del espectro. Pero incluso cuando sus intereses se concentran en estas dos áreas, todavía hay una amplia gama de temas y conjuntos de habilidades que abarcan estos dos dominios muy amplios.


Desarrollando habilidades para el aprendizaje robótico

Una vez más, estoy lejos de ser un experto en aprendizaje robótico y aprendizaje automático, pero haré todo lo posible para mostrar algunos consejos útiles para perseguir este dominio. Los campos fundamentales a partir de los cuales el aprendizaje automático se basa, como lo entiendo, son los siguientes:

  • Probabilidad
  • Estadística
  • Algoritmos
  • Mejoramiento
  • Sistemas

El último es un poco más extenso en comparación con los otros, pero he escuchado que una gran parte del aprendizaje automático puede abordarse desde una perspectiva de sistemas, y que su inicio surgió del modelado de la teoría de sistemas.

Para probabilidad y estadística , tanto la intuición como el rigor técnico serán importantes. Tenía un libro de texto horrible que proporcionaba muy pocas bases conceptuales para los teoremas, y en su mayoría incluía un montón de problemas aislados que estaban conectados de manera muy desarticulada. Recomiendo Introduction to Probability de Grinstead y Snell, [4] que proporciona muchas explicaciones conceptuales claras y bien articuladas que mejoran la intuición y el razonamiento preciso sobre el tema. También es gratis y está disponible en línea, lo que ya sabes, siempre es una gran ventaja.

Sentirse cómodo con los algoritmos es una tarea que puede lograrse más fácilmente en un entorno universitario, pero que también es muy factible ejecutar de forma independiente. Con respecto a un libro de texto que lo guíe a través de los conceptos clave de la teoría de algoritmos, recomiendo no mirar más allá de la clásica Introducción a los algoritmos de Cormen, Leiserson, Rivest y Stein. [5]

Además, me gustaría consultar dos fuentes adicionales para expandir continuamente las habilidades algorítmicas: Problemas archivados del Proyecto Euler – Proyecto Euler y Topcoder entregan más rápido a través de Crowdsourcing. El proyecto Euler abarca una amplia gama de problemas matemáticos para el desarrollo algorítmico que fortalecerán su pensamiento algorítmico matemático y su creatividad “fuera de la caja”. Topcoder ofrece desafíos que mejorarán sus habilidades de programación técnica, y diversificarán y ampliarán su amplitud de resolución de problemas.

Por supuesto, una vez que tenga una sólida formación en los temas anteriores, querrá recibir una introducción completa al aprendizaje de robots , por lo que me han dicho que Robot Learning de Connell y Mahadevan es una opción sólida. [6]

Aunque el aprendizaje robótico y el control robótico son dominios distintos, el aprendizaje robótico está intrínsecamente vinculado a los conceptos de la teoría del control. De hecho, uno de los problemas más desafiantes que enfrenta la comunidad de aprendizaje robótico es que carece de los análisis y descripciones rigurosos que poseen las teorías de control y sistemas.

Por ejemplo, un automóvil autónomo que implementa una serie de algoritmos inteligentes de aprendizaje robótico nunca se implementará sin herramientas de los sistemas de control. ¿Por qué? Porque sin herramientas de control y teoría de sistemas, nunca podrá demostrar cualidades rigurosas y matemáticamente exigentes, tales como robustez, garantías de seguridad, estabilidad, etc., sin las cuales, el gobierno no le permitiría a su automóvil conducir la luz. de dia.

Control robótico

Creo que la optimización, el control y los sistemas están presentados e integrados de manera muy concisa en el diseño de los sistemas de control óptimo de Bini. [7] Este libro consta de más de una cantidad mínima de conocimiento en cualquiera de estos temas que se necesita para el aprendizaje automático. Pero una comprensión profunda de al menos algunas de las ideas que se muestran en este libro permitirá que se extraigan ideas entre estos dominios que la mayoría de los demás probablemente no podrán ver.

Tenga en cuenta que recomiendo lo anterior para alguien interesado en el aprendizaje automático y el control robótico. Si está interesado principalmente en el control robótico, sus habilidades matemáticas deben ser más sofisticadas que la gran mayoría de los otros ingenieros. Esta es probablemente la única disciplina de ingeniería en la que los campos matemáticos altamente abstractos juegan un papel fundamental. Incluyen

  1. Análisis real
  2. Sistemas de ecuaciones diferenciales
  3. Sistemas dinámicos (similares a 2, pero distintos de ellos)
  4. Álgebra lineal avanzada
  5. Optimización avanzada
  6. Topologia basica
  7. Teoría de conjuntos (más que los conceptos básicos, pero no del todo teoría de conjuntos “avanzada”)

Claramente, sus habilidades matemáticas deben estar más allá del extremo más aplicado del espectro en el que cosas como formalidades, pruebas, teoremas y rigor casi nunca son relevantes.

Para una introducción completa al análisis real y la topología que no es esotérica (difícil de encontrar), recomiendo el Análisis básico por Lebl. [8] Si bien el libro no está diseñado específicamente para estudiar topología, cubre casi todos los aspectos fundamentales que son relevantes para el control. Tenga en cuenta que el análisis real es el elemento más importante en la lista anterior.

El álgebra lineal avanzada es el campo más difícil para encontrar un libro de texto accesible y atractivo, IMO. La mayoría de los textos están demasiado centrados en detalles minuciosos e irrelevantes, y en pruebas engorrosas cuya comprensión adquiere poca comprensión de los conceptos más profundos. Más importante aún, la mayoría de los libros de texto no logran conectar las ideas con conceptos más profundos que son geniales e increíblemente útiles. Después de mucho buscar, encontré la esperanza en un lugar inesperado: apuntes en línea. [9] Si dominas este libro y sus problemas difíciles, hasta el punto en que puedas repasar cómodamente los conceptos principales con un estudiante de secundaria, estarás cinco pasos por delante de mí.

En cuanto a los sistemas dinámicos , diría que Dynamical Systems by Sternberg hace el truco. [10] Hasta que llegues a contenidos más teóricos como estabilidad e invariancia , realmente quieres centrarte más en los conceptos; Los detalles no son particularmente importantes, sorprendentemente. Realmente solo necesitas saber qué tipo de suposiciones debes hacer sobre el sistema que estás modelando.

Una vez que se sienta cómodo con la mayoría de los anteriores , puede ensuciarse las manos con alguna teoría de control real. Para esto, recomiendo la Teoría del Control Matemático por Sontag. [11]


[math] \ dagger: [/ math] Tengo la corazonada de que no es lo que quieres hacer aquí, ya que no pediste consejos con respecto a este asunto. Así que lo siento si esta advertencia te molesta de alguna manera, pero es el mejor consejo que puedo dar, y creo que es importante que lo escuches.

Soy un firme creyente en el optimismo pragmático, y aunque es optimista creer que la admisión a la escuela de posgrado, especialmente en un campo técnico, es factible sin un título universitario, está lejos de ser optimista. Sin un título universitario, quedará inmediatamente excluido de la consideración de todos los departamentos en la mayoría de las universidades.

No puedo encontrar estadísticas específicas sobre este asunto, por lo que tendrá que elegir si desea o no aceptar mi palabra. Pero confíe en mí cuando digo que actualmente puedo pensar en una escuela de posgrado que no requiere un título universitario como un requisito estricto.

Incluso dejando de lado los requisitos estrictos, para campos multidisciplinarios profundamente integrados como la robótica y el aprendizaje automático, es crucial una educación de pregrado. Aunque sí creo que la capacidad de interactuar con los profesores; aprender con la facultad y los compañeros en persona; y recibir un plan de estudios diseñado por expertos en el que se lo evalúa en un entorno competitivo, todos son activos vitales para iniciar la experiencia de ingeniería en cualquier campo, especialmente para la robótica.

Otra distinción importante con respecto a su pregunta es si está planeando un máster o un doctorado.

[1] Pawel Pralat: Teoría de grafos

[2] El conductor de Tesla que murió mientras usaba el piloto automático estaba observando a Harry Potter, dice el testigo

[3] Sistemas de control de estabilidad del vehículo: una visión general de la integración …

[4] https://www.dartmouth.edu/~chanc…

[5] Introducción a los algoritmos, 3ª edición (MIT Press): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros

[6] Aprendizaje de robots | JH Connell | Saltador

[7] http://retis.sssup.it/~bini/math

[8] http://www.jirka.org/ra/realanal

[9] https://www.math.uh.edu/~climenh

[10] Sistemas Dinámicos (Dover Books on Mathematics): Shlomo Sternberg: 9780486477053: Amazon.com: Libros

[11] http://www.mit.edu/~esontag/FTPD…

La matemática más directamente útil para el aprendizaje automático es:

  • Álgebra lineal / Álgebra matricial (vea ¿Cómo aprendo álgebra lineal y Cómo aprendo álgebra matricial?)
  • Teoría de la probabilidad (ver ¿Cómo aprendo la probabilidad?)

Si está interesado en una introducción accesible al álgebra matricial, Coursera está ejecutando un curso en este momento: Codificación de la matriz: Álgebra lineal a través de aplicaciones informáticas.

La matemática aplicada más directamente útil para el aprendizaje automático es:

  • Estadísticas (consulte ¿Cómo puedo obtener estadísticas para la ciencia de datos? ¿Qué libro de estadísticas recomienda a un científico de datos que esté familiarizado con las estadísticas básicas y las matemáticas?)
  • Optimización (ver ¿Cómo aprendo la optimización?)

Intentaré mantener esto lo más conciso posible.

Edit: Alguien fusionó la pregunta original con esta pregunta, por lo que la premisa se vuelve irrelevante.

Para convertirse en un ingeniero de inteligencia artificial de AI / ML, es imperativo que tenga un conocimiento completo de los fundamentos matemáticos de ML para que pueda basarse en conceptos fácilmente. Las habilidades matemáticas básicas requeridas son el álgebra lineal, el álgebra matricial, la probabilidad y algunos cálculos básicos.

Álgebra lineal

La mejor fuente para estudiar Álgebra Lineal es el libro / curso de Álgebra Lineal del Prof. Gilbert Strang . Video conferencias | Algebra Lineal | Matematicas | MIT OpenCourseWare (MIT OCW). Hay 34 conferencias y créeme, valen la pena porque después de completar esto, el álgebra lineal no debería plantear más problemas. Resuelve algunos ejercicios / exámenes si quieres lograr el dominio (recomendado).

Algebra matricial

El álgebra de matrices es un componente esencial del aprendizaje profundo. Personalmente lo recomiendo ( Matrix Cookbook por Kaare Brandt Petersen y Michael Syskind Pedersen ): http://www2.imm.dtu.dk/pubdb/vie … (PDF). Hay 66 páginas de operaciones de matriz pura y este es el “go-to” absoluto en caso de que esté atascado tratando de entender ciertas manipulaciones de matriz que un investigador podría haber hecho.

Probabilidad y Estadística

Comprender la probabilidad es un aspecto muy importante para entender el LD. Algunos de los conceptos de probabilidad clave que debe conocer incluyen el Teorema de Bayes, distribuciones, MLE, regresión, inferencia, etc. El mejor recurso para esto es Think Stats (Análisis de datos exploratorios en Python) por Allen Downey : http://greenteapress.com/thinkst … (PDF). Esta joya absoluta de un libro tiene 264 páginas y cubre todos los aspectos de probabilidad y estadísticas que necesita comprender con el código de Python relevante.

Mejoramiento

El libro de consulta para la optimización convexa es la optimización convexa de Stephen Boyd y Lieven Vandenberghe : https://web.stanford.edu/~boyd/c … (PDF). Este es un libro de 730 páginas y no necesita leerlo todo de una vez. Elija el concepto que necesita aprender en función de sus necesidades e intereses y lea esa parte. Está completo y extremadamente bien escrito. Este libro es gratuito como parte del CVX 101 MOOC en EdX.

Este libro de 263 páginas sobre metaheurística, Essentials of Metaheuristics por Sean Luke ( http://cs.gmu.edu/~sean/book/met … (PDF)) habla sobre la optimización basada en gradientes, la optimización de políticas, etc. y está bien escrito . Uno puede optar por pasar por esto también si está interesado.

Los conceptos de ciencia de datos están cubiertos en los temas anteriores. Se pueden aprender otros temas buscando en Google las fuentes fácilmente cuando las encuentre. Pero la comprensión completa de lo anterior debería ser suficiente para el 95% de todos los escenarios.


Lograr el dominio de los temas anteriores seguramente lo convertirá en un ingeniero matemático / AI de matemática sólida. Ahora que ha construido la base, comience a sumergir sus pies en documentos de investigación . Son absolutamente esenciales ya que muestran claramente los estándares de los investigadores / ingenieros de AI. En primer lugar, descubra los famosos artículos de AI como RNN, LSTM, SVM, etc. y revise el contenido técnico.

¿Puedes entender la jerga?

¿Puedes entender las matemáticas?

¿Puede implementar las matemáticas en el código ahora sin la ayuda de bibliotecas excesivamente suficientes?

Estas son las preguntas clave a ser respondidas. Una vez que pueda responder “Sí / en su mayoría sí” a estas 3 preguntas, está listo para comenzar.

Después de tratar de leer estos artículos que tratan sobre los conceptos más populares, trate de leer los artículos no tan famosos. arXiv es un gran sitio con cientos de preimpresiones publicadas todos los días por los mejores investigadores y leer los artículos desde aquí es como beber directamente de la manguera de bomberos. Trate de elegir un papel que se vea bastante bien escrito y el resumen parezca interesante. Luego, lea ese documento e intente responder esas 3 preguntas nuevamente. Lo mismo se puede hacer con los documentos de las principales conferencias de AI como NIPS, AAAI, AAMAS, IJCAI, ICML, etc. Es posible que no pueda implementar completamente los documentos debido a restricciones de datos y otros problemas, pero si puede entender incluso 60 % del razonamiento matemático, entonces puedo decir con seguridad que ha completado su entrenamiento .

No te concentres en aprender más y más “paquetes” . Concéntrate en el concepto. Durante la implementación, verá automáticamente que necesita el paquete “este” y luego aprenderá automáticamente a usarlo. Aprender los diversos comandos de paquetes aleatorios no ayudará. Si comienza a implementar y escribir códigos para resolver problemas o simular resultados de un documento, automáticamente aprenderá acerca de los paquetes y los usará de manera adecuada; Serán la menor de tus preocupaciones. Esta es la forma correcta de mantener el “equilibrio” entre las matemáticas y la codificación. También puede participar en competiciones (p. Ej., Competencias de Kaggle o conferencias) para mejorar la velocidad, el desarrollo y las habilidades de procesamiento si siente la necesidad de hacerlo.

(Todos los enlaces en esta respuesta están funcionando a partir del 6 de julio de 2017)

  1. Optimización Convexa (Optimización Convexa – Boyd y Vandenberghe)
  2. Álgebra lineal
  3. Algunas Calculas rudimentarias (especialmente el uso de Lagrangian)
  4. Un montón de estadísticas de probabilidad de anuncios

Esto podría ayudar …
La respuesta de Somdeb Sarkhel a ¿Cuánto de las estadísticas es suficiente para que un entusiasta del aprendizaje automático y un científico de datos sin antecedentes estadísticos ofrezcan buenos modelos de ML y también se destaquen en las competiciones de Kaggle?

http://courses.washington.edu/cs

Algunas personas dicen que las matemáticas son inútiles para un ingeniero de software, el aprendizaje automático demuestra que son falsas.

Las matemáticas son los requisitos previos para el aprendizaje automático porque el aprendizaje automático es matemático. La computadora solo sirve para hacer el cálculo.

Principalmente deberá aprender cálculo, cálculo matricial, álgebra lineal y no lineal, estadística y cálculo gráfico.

Tomemos un algoritmo básico de ML, la regresión lineal.

El objetivo es utilizar algunos datos para encontrar una función que tome parámetros y dé una salida. Los datos se utilizan para encontrar la función y probarla. En el futuro, usaremos la función con algunos parámetros y obtendremos una salida aproximada.

Digamos que nuestros datos son sobre aviones, como entrada tenemos el número de millas recorridas por el avión y su antigüedad. Como salida tenemos el precio del avión. No normalizo los datos para mantener las cosas simples.

Una muestra de nuestros datos podría ser:

millas; edad; precio

120000; 12; 120000

48000; 4; 1500000

Nuestra pregunta es: dados los kilómetros recorridos por un avión y su edad, dale un precio.

Usando regresión lineal (pendiente de gradiente) encontraremos un vector theta. Este vector tiene dos valores, theta [0] y theta [1]. Para encontrar un precio aproximado, multiplicaremos las millas por theta [0] y la edad por theta [1] para obtener un resultado, que es un precio aproximado.

Por ejemplo, nuestro algoritmo podría encontrar theta = [2; -10 000] y si tenemos un avión de 5 años con 78 000 millas, podemos aproximar el precio haciendo 78 000 * 2 + 5 * -10 000, por lo que 106 000 dólares .

La parte difícil es encontrar los buenos valores para theta. Para hacer eso necesitas algunas matemáticas.

Tiene una función de costo que le da lo bueno que es su theta, esta función de costo prueba sus valores de theta usando sus datos (que ya tienen un precio para un avión con respecto a las millas y la edad).

Por lo tanto, su objetivo es minimizar la función de costo ajustando los valores de theta.

La función de costo a minimizar es ésta:

dónde

Usando el algoritmo de descenso de gradiente por lotes, cada iteración ajusta los valores theta usando esta fórmula:

luego prueba el valor theta con la función anterior J (theta) y verá que el costo (es decir, la diferencia entre el valor predicho y el real) disminuirá en cada iteración.

Como puedes ver, este simple algoritmo ML es matemático. La computadora será útil para calcular las fórmulas anteriores.

Los algoritmos de aprendizaje automático (ML) actuales se basan en funciones de mapeo.

[math] F: X \ rightarrow Y [/ math]

La función [math] F [/ math] puede ser cualquier cosa, como una máquina de vectores de soporte (SVM), una máquina de Boltzmann restringida (RBM), una red neuronal profunda (DNN) o cualquier otra cosa que puedas diseñar personalmente. En las áreas de aplicación, [math] X [/ math] representa el espacio de entrada, mientras que [math] Y [/ math] representa el espacio de salida.

En reconocimiento de voz [math] X [/ math] puede ser un conjunto de espectrogramas, mientras que [math] Y [/ math] es un conjunto de identidades que representan a los hablantes. En el reconocimiento de imágenes, [math] X [/ math] es el espacio de píxeles de la imagen en bruto, mientras que [math] Y [/ math] es la categorización que consiste en diferentes clases en las que [math] x_ {i} \ en X [/ math] puede caer en

Cada modelo ML tiene parámetros [math] w [/ math] que afectan el comportamiento de [math] F [/ math] que normalmente podemos ajustar para cambiar el comportamiento de esa función. De este modo podemos escribir el mapeo más convenientemente como:

[math] \ hat {y_ {i}} = f (x_ {i} [/ math] [math], w) [/ math]

donde [math] \ hat {y_ {i}} \ en Y [/ math]

Nos centraremos en el modelo ML supervisado donde tenemos un conjunto de datos [math] T [/ math] de pares de entrada-salida de entrenamiento en la forma:

[math] T = [(x_ {1}, y_ {1}), (x_ {2}, y_ {2}),…, (x_ {N}, y_ {N})] [/ math]

El objetivo del aprendizaje automático supervisado es encontrar los mejores valores de parámetros [math] \ hat {w} [/ math] que hacen que la función [math] F [/ math] asigne los pares de entrada-salida con el menor error. Así que en ML supervisado tenemos dos problemas principales:

  1. Defina una medida de adecuación que nos diga qué tan bien se está desempeñando el modelo ML en el conjunto de entrenamiento [math] T [/ math].
  2. Generalización: Podemos ejecutar la misma medida de condición física en el conjunto de pruebas después de completar el entrenamiento para medir qué tan bien se generaliza el modelo a nuevos insumos. Este es un concepto muy importante en el mundo moderno.
  3. Un algoritmo de aprendizaje para actualizar los pesos, [math] w \ rightarrow \ hat {w} [/ math].

Aquí es donde entran las matemáticas, para comprender los conceptos matemáticos subyacentes que necesita para comprender qué es lo que ML intenta resolver en primer lugar. El objetivo aquí es encontrar soluciones a los 3 problemas mencionados anteriormente y las matemáticas pueden ayudarnos con eso.

1: Una medida de aptitud :

Esto normalmente se realiza mediante una función objetivo también conocida como la función de pérdida / costo:

[math] L (\ hat {y_ {i}}, y_ {i}) [/ math]

donde [math] \ hat {y_ {i}} [/ math] = salida real y [math] y_ {i} [/ math] = salida deseada.

En la minimización de riesgo empírica [1] (ERM), el objetivo es minimizar la pérdida general definida por el riesgo [math] R [/ math]:

[math] R_ {emp} (w) = \ frac {1} {N} \ sum_ {i = 1} ^ {N} L (f (x_ {i}, w), y_ {i}) [/ math ]

ERM establece que el algoritmo de aprendizaje debe elegir la función de hipótesis [math] \ hat {f} [/ math] de modo que se minimice el riesgo empírico. En términos matemáticos simples, debemos resolver:

[math] \ hat {w} = arg min R_ {emp} (w) [/ math]

Donde [math] \ hat {f} = f (x, \ hat {w}) [/ math]

2: Generalización :

El ERM anterior ingenuo puede dar como resultado que la función [math] \ hat {f} [/ math] simplemente memorice los ejemplos de entrenamiento que pueden causar lo que se llama sobreajuste, es decir, ajustar la función [math] F [/ math] a cada uno y cada punto de datos ruidoso / atípico. Eso no es lo ideal, por lo tanto, en lugar de eso normalmente usamos la minimización del riesgo estructural [2] (SRM), por lo que agregamos un término de regularización [math] C (w) [/ math] al riesgo, por lo que obtenemos el riesgo regularizado:

[math] R_ {stru} (w) = \ frac {1} {N} \ sum_ {i = 1} ^ {N} L (f (x_ {i}, w), y_ {i}) + \ lambda {C (w)} [/ math]

[math] R_ {stru} (w) = R_ {emp} (w) + \ lambda {C (w)} [/ math]

Entonces en SRM tenemos que resolver:

[math] \ hat {w} = arg min R_ {stru} (w) [/ math]

La regularización simplemente simplifica los parámetros de peso para que no modelen demasiado de valores atípicos o de ruido. Esto se hace mediante la penalización de valores de gran peso en [math] w [/ math] que son la causa de la mayoría de los problemas de sobreajuste. Por lo tanto, la norma [math] L_0 [/ math] se puede utilizar para favorecer un conjunto de pesos muy escaso, en el que la mayoría de los valores de peso son cero. También puede usar la regularización [math] L_1 [/ math] o [math] L_2 [/ math] ya que la norma [math] L_0 [/ math] es difícil de optimizar. Desde entonces, han aparecido otros métodos de regularización extraños, como el abandono, que se utiliza en los algoritmos de aprendizaje para los DNN, por lo que las neuronas se eliminan y vuelven al azar durante el entrenamiento para que la red general se vuelva robusta al ruido, el abandono se puede ver como un método conjunto.

3: Un algoritmo de aprendizaje:

El aprendizaje en el ML actual puede verse como una forma de actualizar los pesos para encontrar los parámetros óptimos. ERM y SRM confían en la existencia de un algoritmo de aprendizaje para ajustar el peso. Necesitamos un algoritmo para encontrar los pesos que resuelven.

[math] \ hat {w} = arg min R_ {emp} (w) [/ math] o

[math] \ hat {w} = arg min R_ {stru} (w) [/ math]

Necesitamos una manera de actualizar el modelo de tal manera que

[math] \ hat {w} \ leftarrow w [/ math]

En los sistemas de ML actuales, solo nos fijamos en la antigua idea de gradiente decente (GD) de la optimización numérica. En GD simplemente bajamos la pendiente más pronunciada en la superficie de error (riesgo) definida por el riesgo [math] R [/ math]. Eso significa que solo podemos usar la regla de actualización definida por.

[math] w_ {t + 1} = w_ {t} – \ alpha {\ frac {\ partial R} {\ partial w_ {t}}} [/ math]

donde [math] t [/ math] = conteo de pasos, [math] \ alpha [/ math] = tasa de aprendizaje

Aquí asumimos una superficie convexa definida por [math] R [/ math] pero en la práctica, especialmente para los DNN, la superficie es altamente no convexa, pero en la práctica casi cualquier mínimo local es lo suficientemente bueno, además, podemos agregar un impulso a la regla de actualización Para que pueda escapar de las trampas mínimas locales fácilmente. Además, el número de parámetros de corte hace que sea más difícil que el modelo DNN quede atrapado en una trampa local de mínimos, ya que hay muchas rutas de escape posibles a través de las otras muchas dimensiones.

En los DNN, los cálculos de gradiente pueden volverse incómodos incluso para una máquina moderna, ya que la cantidad de pasos de gradiente necesarios para alcanzar [math] \ hat {w} [/ math] son ​​normalmente grandes. Por lo tanto, necesitamos formas rápidas para acelerar los cálculos de gradiente para arquitecturas en capas. El algoritmo de backpropagation (backprop), para ser específico, es una forma de calcular gradientes de manera extremadamente eficiente en cualquier gráfico computacional diferenciable. Backprop usa la regla de la cadena comenzando desde la capa de salida que está directamente conectada a la función de pérdida y, por lo tanto, es más fácil evaluar las derivadas y luego moverse hacia las capas (capa de entrada) alejadas de la capa de salida mientras encadena las derivadas. Se llama backprop porque los errores se pasan de las capas traseras a las capas frontales, lo que ahorra muchos cálculos repetidos.

GD requiere que se consideren todos los pares de entrenamiento antes de realizar un pequeño paso de actualización, esto no es escalable. Por lo tanto, en la práctica tenemos el llamado descenso de gradiente estocástico (SGD) que da un paso justo después de un ejemplo, esto es tan eficiente que normalmente es un algoritmo de aprendizaje estándar para DNN junto con backprop. Hay variantes de lotes de SGD que puede considerar entre SGD y GD, el enfoque de descenso de gradiente de lotes utiliza un pequeño conjunto aleatorio conocido como el lote de ejemplos de entrenamiento que utiliza para aproximar el campo de gradiente a través del algoritmo de backprop. Por lo tanto, SGD puede verse como la variante de lote con solo 1 ejemplo en el lote.


Entonces, para aprender la teoría matemática detrás de ML, empiece a partir de los objetivos subyacentes de ML que hemos analizado en esta discusión. Por supuesto, esto fue solo una sugerencia del iceberg, pero la mejor manera de ver la mayoría de los modelos ML es que son aproximadores de funciones y deseamos recuperar esas aproximaciones de los pares de entrenamiento de entrada-salida solo, lo que llamamos aprendizaje de extremo a extremo. .

También ayuda a visualizar ML como solo teoría de optimización. Tenemos una función de pérdida y todo lo que necesitamos es un algoritmo que nos ayude a encontrar la configuración correcta para minimizar la pérdida. En la práctica, SGD + backprop funciona muy bien para entrenar modelos ML modernos.

También debes probar e implementar algunos de estos algoritmos desde cero. Intente implementar backprop y SGD para una red neuronal de múltiples capas (NN), no una profunda ahora, luego inténtelo en el conjunto de datos MNIST. Solo puede aprender a través de la práctica, asegúrese de que antes de la implementación pase por backprop y lo derive para NN de múltiples capas y redes neuronales convolucionales (convNet).

Sin embargo, no tenga demasiada prisa, los conceptos toman tiempo para tener sentido. Para poder asimilar las cosas un poco con facilidad, resuelva algunos problemas e intente explicar también los sistemas a otros a través de plataformas como Quora, de esa manera empezará a tener más y más confianza en su comprensión de las matemáticas detrás de los algoritmos ML.

Espero que esto ayude.

Notas al pie

[1] Minimización del riesgo empírico – Wikipedia

[2] Minimización del riesgo estructural – Wikipedia

A2A.

Para tener una base matemática básica, necesita tener algún conocimiento de los siguientes conceptos matemáticos:
– Probabilidades y estadísticas
– Álgebra lineal
– Optimización
– Cálculo multivariable
– Análisis funcional (no esencial).
– Lógica de primer orden (no esencial).
Puede encontrar material razonable en la mayoría de estos buscando “notas de lectura” en Google. Por lo general, encontrará buenas notas de clase compiladas por algún profesor que enseña ese curso. Los primeros resultados deben darle un buen conjunto para elegir.

Por ejemplo, aquí hay una lista de algunas notas de clase que acabo de encontrar:

Probabilidad y estadística: http://www2.aueb.gr/users/demos/…

Álgebra lineal: https://www.math.ku.edu/~lerner/

Optimización: http://www.ifp.illinois.edu/~ang…

Cálculo: https://www.math.wisc.edu/~angen

Cálculo matricial: http://www.atmos.washington.edu/…

Debes hojear estos, sin entrar en demasiados detalles. Puede volver a estudiar los temas cuando sea necesario mientras aprende ML.

Hay un libro llamado ” Matemáticas para Ciencias de la Computación “. También es una conferencia en el MIT. Este es el enlace de MIT OCW de ese curso: http://ocw.mit.edu/courses/elect

Los materiales de este curso son viejos por cierto. Una buena noticia es que puede encontrar el libro (composición de todos los materiales) fácilmente mediante la búsqueda. Si no estoy equivocado, la última versión revisada de este libro es el 6 de mayo de 2012.

También necesitas álgebra lineal. Por esta razón, te recomiendo el “Álgebra Lineal y sus Aplicaciones” de Gilbert Strang . Puede ser un poco difícil, pero es un gran libro.

Si desea sumergirse en un enfoque probabilístico, puede inscribirse en el curso Modelos gráficos probabilísticos: https://www.coursera.org/course/pgm . Escuché que es muy buen curso. El libro de texto de ese curso parece muy útil: http://www.amazon.com/Probabilis

Si quieres ser un verdadero científico de datos, no los falsos con habilidades de analista, ni ninguna intuición o punto de vista matemático. El científico de datos reales necesita tener una base matemática muy sólida.

Así que para aprender Matemáticas para ML este debe ser el orden:

  1. Comience con probabilidad (Condicional Básico Marginal, etc.)
  2. Serie matemática y convergencia, métodos numéricos de análisis.
  3. Matriz y Algebra Lineal
  4. Estadística Bayesiana
  5. Vectores (el más importante)
  6. Cálculo
  7. Proceso de Markov y Cadenas
  8. Conceptos básicos de la optimización (lineal / cuadrático)
  9. Álgebra matricial avanzada y cálculo (degradado, divergencia, rizos, etc.)

Esta cantidad de matemáticas permitirá la comprensión detrás de las ideas centrales de ML y algoritmos probabilísticos,

Debe pausar ahora y comenzar a analizar ciertos paquetes desde cero en Python:

1. K-NN es un excelente punto de partida. Apréndalo y codifíquelo desde cero.

2. Regresión logística con pendiente degradada.

Hasta ahora, puedes ver los parámetros y los números que se mueven en forma de matriz y entender las matemáticas de la predicción, y si sientes que esto es suficiente. Contenga la respiración. Hay cosas más emocionantes por venir. Esto le permitirá ser un principiante de ser un “científico de datos reales”.

Siguiente Comience con: –

  1. Modelos estocásticos y análisis de series de tiempo.
  2. Ecuaciones diferenciales
  3. Programación dinámica y técnicas de optimización.
  4. Fourier y longitudes de onda
  5. Campos aleatorios
  6. Conocimientos básicos de PDEs
  7. Técnicas para resolver PDE utilizando Monte-Carlo, Expansiones Polinomiales.

Estas técnicas matemáticas le ayudarán a visualizar el funcionamiento del modelo y cómo modelar y procesar datos sin procesar para crear modelos únicos cuya funcionalidad se pueda ajustar. Los parámetros pueden optimizarse para los problemas y ajustarse con estas técnicas.

Para un nivel siguiente: – (Estadísticas de dimensiones superiores)

  1. Soluciones numéricas de PDEs con entrada numérica / entrada aleatoria. (tema fascinante para trabajar)
  2. Soluciones y ecuaciones diferenciales estocásticas
  3. PCA etc
  4. Procesos Dirichlet, Proceso de Decisión Markov.
  5. Cuantificación de la incertidumbre: caos polinomial, proyecciones sobre el espacio vectorial

Creo que estos son temas en los que hay que aprender a ser un buen ingeniero de aprendizaje automático en el siglo XXI. Con una base de conocimientos como esta, se pueden conectar puntos muy rápidamente y construir sistemas y modelos de alta precisión.

(No soy un gran fan de las redes neuronales, así que olvidé mencionar aquí)

Si realmente busca una referencia única, lo mejor que puedo sugerir es el Reconocimiento de patrones y el Aprendizaje automático de Chris Bishop ( http://www.amazon.com/Pattern-Re …). Aunque es bastante difícil comenzar con, cubrirá la mayoría de sus intereses hasta que tenga la suficiente experiencia en el tema para poder leer publicaciones y textos más específicos.

En caso de duda, OpenCourseWare de MIT siempre es una buena fuente; creo que incluso ofrecen uno o dos cursos de aprendizaje automático a nivel de posgrado.

Buena referencia general / textos tutoriales:

  • Teoría de la información, inferencia y algoritmos de aprendizaje – McKay
  • Introducción a los modelos de probabilidad – Ross
  • AI: Un enfoque moderno – Russel y Norvig
  • Algoritmos – Kleinberg y Tardos

Para comprender el Aprendizaje Automático necesita los siguientes requisitos previos de Matemáticas:

1. Probabilidad y estadística: el aprendizaje automático tiene profundas raíces en la estadística. De hecho, el aprendizaje automático moderno es esencialmente el aprendizaje estadístico, es decir, el uso de estadísticas para encontrar patrones en los datos e inferir su uso. Por lo tanto, las estadísticas y la probabilidad son mínimas para el ML.

2. Álgebra lineal: esto es necesario porque los datos se representan como una matriz en el Aprendizaje automático y, en esencia, todos los algoritmos de ML se pueden ver como manipulación de la Matriz al final, por lo que se requiere una comprensión básica del Álgebra Lineal.

3. Optimización: muchas personas argumentan que el aprendizaje automático es un nombre elegante para la optimización. Si bien esto es cierto hasta cierto punto, hay más para ML que optimización. Pero una gran parte de ello es la optimización. Al final, la mayoría de los algos ML se reducen a una tarea de optimización.

4. Cálculo: esta es una herramienta muy útil para ML. La mayoría de los algos ML se basan en el cálculo diferencial para encontrar soluciones (descenso de gradiente, método de Newton, método de casi Newton, etc.).

OMI, si domina estos temas, puede aprender casi todo en ML, porque todos los algoritmos son esencialmente aplicaciones de estas herramientas en Ml.

Las matemáticas son un tema demasiado vasto para ser considerado para esta pregunta. La amplitud y profundidad de la conciencia matemática que necesita para el aprendizaje automático depende totalmente de lo que esté aprendiendo en la materia. Teniendo esto en cuenta, tratemos lo que necesita saber en “matemáticas” para el aprendizaje automático.

1. Probabilidad y estadísticas matemáticas Este es un requisito fundamental para el aprendizaje automático, por lo que debe saberlo bien. Cuando digo probabilidad, es más de lo que estudiaste en la escuela secundaria y casi todo a lo que probablemente no le prestaste atención durante tu licenciatura. Debe conocer las variables aleatorias, sus distribuciones, la convergencia probabilística y la teoría de la estimación. Eso cubre una parte importante de lo que necesita saber aquí.
Dos de mis recursos favoritos son: –
1. Joseph Blitzstein – Harvard Stat 110 conferencias
2. El libro de Larry Wasserman – Todas las estadísticas

2. álgebra lineal
El álgebra lineal aparecerá de vez en cuando en ML. PCA, SVD, descomposición de LU, descomposición de QR, matrices simétricas, otogonalización, proyecciones, operaciones de matriz son necesarias muchas veces. Lo bueno es que hay innumerables recursos disponibles en álgebra lineal.
Mi favorito de todos los tiempos son las conferencias de Gilbert Strang en MIT sobre álgebra lineal.

3. Optimización
Aunque solo se necesitan algunas cosas de la optimización la mayor parte del tiempo, un sólido conocimiento fundacional ayudará mucho. Debe conocer los multiplicadores de Langrange, el descenso de gradiente y la formulación primigenio-dual. El mejor recurso para esto es el curso de Boyd y Vandenberghe sobre la optimización convexa de Stanford.

4. calculo
Quería poner esto en la parte superior, pero lo estoy poniendo en el último para enfatizar en el hecho de que solo se necesita un conocimiento fundamental en términos de cálculo. Conozca la geometría, integración y diferenciación tridimensionales y sobrevivirá. Es lo más fácil para empezar entre los temas que he mencionado aquí. MIT tiene buenas conferencias sobre cálculo.

Creo que con estas 4 herramientas lo más probable es que ML sea fácil de entender. Además de esto, puede que el análisis real y el análisis funcional también sean relevantes, pero son solo generalizaciones formales de los temas mencionados anteriormente.

Por favor vea ¿Cómo aprendo matemáticas para el aprendizaje automático? que tiene algunas buenas respuestas. Creo que el Witten et. Alabama. El libro es una de las introducciones más accesibles. Supongo que un libro básico sobre estadística y probabilidad y otro sobre Álgebra Lineal (por ejemplo, Strang, 4ª edición [1]) lo llevarán casi todo el camino.
[1] http://math.mit.edu/linearalgebra/

El campo del aprendizaje automático necesita los siguientes antecedentes matemáticos para comprender más cosas.

  • Cálculo y en mi opinión la siguiente referencia es muy buena,
  • Cálculo de Thomas (13ª edición): George B. Thomas Jr., Maurice D. Weir, Joel R. Hass: 9780321878960: Amazon.com: Libros
  • El álgebra lineal y el cálculo matricial y la siguiente referencia son muy relevantes,
    • Introducción al Álgebra Lineal, Cuarta Edición: Gilbert Strang: 9780980232714: Amazon.com: Libros
  • Las estadísticas y el fondo de probabilidad, y los siguientes libros son muy buenos,
    • Todas las estadísticas: un curso conciso de inferencia estadística (Springer Texts in Statistics): Larry Wasserman: 9780387402727: Amazon.com: Libros
    • Amazon.com: Un primer curso en probabilidad (9ª edición) (9780321794772): Sheldon Ross: Libros
  • El conocimiento de optimización y el siguiente libro de texto es muy bueno,
    • Una introducción a la optimización: Edwin KP Chong, Stanislaw H. Zak: 9781118279014: Amazon.com: Libros

    De un principiante.

    Un curso introductorio de Álgebra Lineal generalmente incluirá lo siguiente:

    • Vectores
    • Espacios vectoriales
    • Matrices
    • Espacios internos de productos
    • Ortogonalidad
    • Proyección
    • Transformaciones lineales
    • vectores propios, valores propios
    • cambio de bases
    • Diversas descomposiciones: LU, Polar, SVD.

    También tuve un poco de álgebra geométrica, pero no me ha parecido útil hasta ahora.

    Probabilidades y estadísticas:

    • probabilidades
    • combinaciones
    • permutaciones
    • distribuciones
    • Comprensión de la prueba de hipótesis.
    • Estadística descriptiva: medias, modos, desviaciones estándar, desviaciones, etc.

    Si puedes atravesar:

    https://www.khanacademy.org/math

    Y

    https://www.khanacademy.org/math

    Tú eres bueno para irte.

    Con respecto a las matemáticas para el aprendizaje automático, considero que todas las siguientes habilidades son importantes:

    (1) Algunas habilidades matemáticas básicas (álgebra lineal, probabilidad, optimización)

    (2) Saber cómo se explotan esas habilidades matemáticas para los algoritmos de aprendizaje automático.

    (3) Desarrollar una forma de entender las matemáticas, de modo que cualquier matemática avanzada para el aprendizaje automático moderno pueda comprenderse bien.

    Si bien uno generalmente recomendaría todo tipo de álgebra lineal y libros de probabilidad para el aprendizaje automático, creo que no siempre vale la pena, al menos, para el aprendizaje automático. Recomendaría los siguientes textos para leer (tal vez en orden), que deberían atender a los tres puntos mencionados anteriormente.

    (a) Reconocimiento de patrones y aprendizaje automático por Christopher Bishop (atenderá a 1 y 2 arriba)

    (b) Libro de aprendizaje profundo de Goodfellow, Bengio y Courville (Will reforzará de nuevo 1 y construirá sobre 2)

    (c) Comprendiendo el aprendizaje automático de Shai Shalev Shwartz y Shai Ben David (mejorará tus habilidades en 1, fortalecerá 2 y te dará una idea de 3)

    (d) El libro bastante corto pero útil de Ankur Moitra sobre los aspectos algorítmicos del aprendizaje automático (se centrará principalmente en 3)

    (e) Optimización para el aprendizaje automático por Sra, Nowozin y Wright y Fuera del camino convexo por Sanjeev Arora y colaboradores (atenderá a 3 y avanzará 1 y 2)

    Realmente creo que si uno puede entender correctamente lo anterior en el aprendizaje automático, desarrollará todos los conceptos básicos de Matemáticas necesarios para el aprendizaje automático, ¡eso también en una forma muy conectada! Espero que esto ayude !!

    Matemáticas para el NM no es diferente de lo que aprendes en la escuela secundaria o en los estudios de grado. Si tiene esa base matemática, la mayoría de las veces es suficiente para comprender lo que sucede en esas ecuaciones espeluznantes que se ven en los libros y documentos de investigación. Sin embargo, a veces se requiere más que eso y es posible que tenga que tomar algunos cursos avanzados en estadística, cálculo, álgebra lineal, etc. También le puede interesar leer en general más sobre ¿Cómo aprendo el aprendizaje automático?

    Aprender matemáticas se trata de hacer. Recuerde la regla 80/20: debe estudiar la teoría el 20% del tiempo y practicar / implementar lo que aprende el 80% del tiempo.

    Aquí hay una lista de libros que podrías usar. Puedes encontrar cursos en línea para muchos de ellos.

    1. El álgebra lineal de Strang y sus aplicaciones.

    2. Apostol Calculus – Ambos los volúmenes

    3. Los cálculos de la matriz de Golub.

    4. La probabilidad de Sheldon Ross

    5. Elementos del aprendizaje estadístico por Hastie et al.

    6. Reconocimiento de patrones del obispo y aprendizaje automático.

    7. El razonamiento bayesiano de David Barber y el aprendizaje automático.

    8. Aprendizaje automático de Kevin Murphy: una perspectiva probabilística

    9. Todas las estadísticas de Wasserman y estadísticas no paramétricas

    De Hacker News:

    1.) Casella, G. y Berger, RL (2001). “Inferencia estadística” Duxbury Press.

    2.) Ferguson, T. (1996). “Un curso en teoría de la muestra grande” Chapman & Hall / CRC.

    3.) Lehmann, E. (2004). “Elementos de la teoría de la muestra grande”.

    4.) Gelman, A. et al. (2003). “Análisis de datos bayesianos” Chapman & Hall / CRC.

    5.) Robert, C. y Casella, G. (2005). “Métodos estadísticos de Monte Carlo” Springer.

    6.) Grimmett, G. y Stirzaker, D. (2001). “Probabilidad y procesos aleatorios” de Oxford.

    7.) Pollard, D. (2001). “Una guía del usuario para medir la probabilidad teórica” ​​Cambridge.

    8.) Bertsimas, D. y Tsitsiklis, J. (1997). “Introducción a la Optimización Lineal” Atenea.

    9.) Boyd, S. y Vandenberghe, L. (2004). “Optimización Convexa” de Cambridge.

    10.) Golub, G., y Van Loan, C. (1996). “Cálculos matriciales” Johns Hopkins.

    11.) Cubierta, T. y Thomas, J. “Elementos de la teoría de la información” Wiley.

    12.) Kreyszig, E. (1989). “Análisis funcional introductorio con aplicaciones” Wiley.


    Por favor intente implementar tantas cosas como pueda. Recoge un proyecto. Hable con sus compañeros, profesores y personas, vea si puede ayudarles con lo que ha aprendido. Hacer.