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. Vea la respuesta de Prasoon Goyal a ¿Cómo debo comenzar a aprender las matemáticas para el aprendizaje automático y desde dónde?
Hojea estos. No es necesario que los revises con mucho detalle. Puede volver a estudiar las matemáticas cuando sea necesario mientras aprende ML.
Luego, para obtener una descripción general rápida de ML, puede seguir la siguiente hoja de ruta (escribí sobre muchos de estos temas en varias respuestas en Quora; vinculé las más relevantes para una referencia rápida).
Día 1:
- Terminología básica:
- Configuraciones más comunes: configuración supervisada, configuración no supervisada, configuración semi-supervisada, aprendizaje de refuerzo.
- Problemas más comunes: Clasificación (binario y multiclase), Regresión, Agrupación en clúster.
- Preprocesamiento de datos: Normalización de datos.
- Conceptos de conjuntos de hipótesis, error empírico, error verdadero, complejidad de conjuntos de hipótesis, regularización, compensación sesgo-varianza, funciones de pérdida, validación cruzada.
Dia 2:
- ¿Cómo afecta el cortisol directamente a los circuitos cerebrales (especialmente para el aprendizaje)?
- ¿Dónde puedo ir para aprender a ser el mejor luchador de armas y aprender todo sobre la lucha contra armas?
- ¿Cuándo aprendes exactamente qué sucede en el cerebro?
- Cómo desaprender y reaprender.
- ¿Cuáles son algunos buenos recursos para aprender a administrar un departamento creativo dentro de una organización más grande?
- Conceptos básicos de optimización:
- Terminología y conceptos básicos: optimización convexa, lagrangiano, problemas primarios y duales, gradientes y subgradientes, [math] \ ell_1 [/ math] y [math] \ ell_2 [/ math] funciones objetivas regularizadas.
- Algoritmos: Pendiente de gradiente de lotes y gradiente de gradiente estocástico, Pendiente de gradiente de coordenadas.
- Implementación: escriba el código para el descenso del gradiente estocástico para una función objetivo simple, ajuste el tamaño del paso y obtenga una intuición del algoritmo.
Día 3:
- Clasificación:
- Regresión logística
- Máquinas de vectores de soporte: intuición geométrica, formulaciones primarias-duales, noción de vectores de soporte, truco del kernel, comprensión de los hiperparámetros, búsqueda en cuadrícula.
- Herramienta en línea para SVM: juegue con esta herramienta en línea para SVM (desplácese hacia abajo hasta “Interfaz gráfica”) para obtener una intuición del algoritmo.
Día 4:
- Regresión:
- Regresión de cresta
- Agrupamiento
- k-medias y algoritmo de expectativa-maximización.
- Clúster jerárquico de arriba hacia abajo y de abajo hacia arriba.
Dia 5:
- Métodos bayesianos:
- Terminología básica: antecedentes, posteriores, probabilidad, estimación de máxima verosimilitud e inferencia máxima a posteriori.
- Modelos de mezclas gaussianas
- Asignación de Dirichlet Latente: El modelo generativo y la idea básica de la estimación de parámetros.
Día 6:
- Modelos gráficos:
- Terminología básica: redes bayesianas, redes Markov / campos aleatorios Markov.
- Algoritmos de inferencia: eliminación de variables, propagación de creencias.
- Ejemplos simples: Modelos ocultos de Markov. Modelo de ising
Días 7–8:
- Redes neuronales:
- Terminología básica: Neurona, función de activación, capa oculta.
- Redes neuronales convolucionales: capa convolucional, capa de agrupación, Backpropagation.
- Redes neuronales basadas en la memoria: redes neuronales recurrentes, memoria a corto y largo plazo.
- Tutoriales: estoy familiarizado con este tutorial de Torch (querrá ver el directorio [math] \ texttt {1_supervised} [/ math]). Puede haber otros tutoriales en otros marcos de aprendizaje profundo.
Día 9:
- Temas varios:
- Árboles de decisión
- Sistemas de recomendación
- Procesos de decisión de markov
- Bandidos multiestados
Día 10: (día del presupuesto)
- Puede usar el último día para ponerse al día con cualquier cosa que haya quedado de los días anteriores, u obtener más información sobre el tema que le resulte más interesante / útil para su trabajo futuro.
Una vez que haya pasado por lo anterior, querrá comenzar con algún curso estándar en línea o texto ML. El curso de Andrew Ng en Coursera es un buen punto de partida. Una versión avanzada del curso está disponible en The Open Academy (Aprendizaje de máquinas | The Open Academy). Los libros populares con los que tengo experiencia son los siguientes:
- Reconocimiento de patrones y aprendizaje automático: Christopher Bishop
- Aprendizaje automático: una perspectiva probabilística: Kevin P. Murphy
Si bien el libro de Murphy es más actual y más elaborado, creo que Bishop’s es más accesible para los principiantes. Puedes elegir uno de ellos según tu nivel.
En este punto, debe tener un conocimiento práctico del aprendizaje automático. Más allá de esto, si está interesado en un tema en particular, busque recursos específicos en línea sobre el tema, lea artículos seminales en el subcampo, intente encontrar algunos problemas más simples e impleméntelos.
Es importante implementar algunos algoritmos básicos cuando comience a hacer ML, como el descenso de gradiente, AdaBoost, árboles de decisión, etc. [además de lo que haya implementado en la descripción general de 10 días]. También debería tener algo de experiencia con el preprocesamiento de datos, la normalización, etc. Una vez que haya implementado algunos algoritmos desde cero, para otros algoritmos, debe usar las implementaciones estándar (como LibSVM, Weka, ScikitLearn, etc.) en algunos problemas de juguetes, y Obtener una buena comprensión de los diferentes algoritmos.
Para el aprendizaje profundo, aquí hay un tutorial del laboratorio de Yoshua Bengio que se escribió en los primeros días de aprendizaje profundo: Tutoriales de aprendizaje profundo. Esto explica las ideas centrales en el aprendizaje profundo, sin entrar en muchos detalles.
Debido a que el aprendizaje profundo es un campo más empírico que teórico, es importante codificar y experimentar con modelos. Aquí hay un tutorial en TensorFlow que brinda implementaciones de muchas tareas diferentes de aprendizaje profundo: aymericdamien / TensorFlow-Example. Intente ejecutar los algoritmos y juegue con el código para comprender mejor los conceptos subyacentes.
Finalmente, puede consultar el libro Deep Learning, que explica el aprendizaje profundo de una manera mucho más sistemática y detallada. Para los últimos algoritmos que no están en el libro, deberá consultar los documentos originales.