Principios matemáticos para Machine Learning
El motivo detrás de la creación de este repositorio es intentar quitar el miedo a las matemáticas necesarias para hacer frente a Machine Learning, Deep Learning y otros campos de la IA.
A lo largo de lo cuadernos facilitados, se hace una breve inmersión en Álgebra, Cálculo, Estadística y Probabilidad.
En este repositorio también se podrá familiarizar con las bibliotecas esenciales en estos campos como numpy, pandas, matplotlib...
¿Por qué preocuparse por las matemáticas?
Hay muchas razones por las que las matemáticas del Machine Learning son importantes y se destacan algunas de ellas a continuación:
- Seleccionar el algoritmo correcto, lo que incluye considerar la precisión, el tiempo de entrenamiento, la complejidad del modelo, el número de parámetros y el número de características.
- Elección de la configuración de parámetros y estrategias de validación.
- Identificar el desajuste y el sobreajuste mediante la comprensión de la compensación de sesgo-varianza.
- Estimación del intervalos correctos de confianza e incertidumbre.
¿Qué nivel de matemáticas necesito?
Álgebra Lineal:
Un científico, Skyler Speakman, dejó una frase para la posteridad hace no mucho tiempo: “el álgebra lineal es la matemática del siglo XXI”. En ML, el álgebra lineal aparece en todas partes. Aspectos como como Análisis de componentes Principales (PCA), Descomposición de Valores Singulares (SVD), Descomposición propia de una matriz, Descomposición LU, Descomposición / factorización QR, Matrices simétricas, Ortogonalización y ortonormalización, Operaciones con matrices, Proyecciones, Valores propios y vectores propios, Espacios vectoriales y normas son necesarios para comprender los métodos de optimización utilizados para el aprendizaje automático.
Probabilidad y estadítica:
El aprendizaje automático y la estadística no son campos muy diferentes. De hecho, alguien definió recientemente el aprendizaje automático como "hacer estadísticas en un Mac". Algunas de las teorías estadísticas y de probabilidad fundamentales necesarias para ML son la combinación, las reglas y axiomas de probabilidad, el teorema de Bayes, las variables aleatorias, la varianza y la expectativa, las distribuciones condicionales y conjuntas, las distribuciones estándar (Bernoulli, binomial, multinomial, uniforme y gaussiana), el momento Funciones generadoras, Estimación de Máxima verosimilitud (MLE), estimación previa y posterior, estimación máxima a posteriori (MAP) y métodos de muestreo.
Cálculo:
Algunos de los temas necesarios incluyen cálculo diferencial e integral, derivadas parciales, funciones de valores vectoriales, gradiente direccional, distribución hessiana, jacobiana, laplaciana y lagrangiana.
Algoritmia y optimización compleja:
Esto es importante para comprender la eficiencia computacional y la escalabilidad de nuestro algoritmo de aprendizaje automático y para aprovechar la escasez en nuestros conjuntos de datos. Conocimiento en estructuras de datos (Binary Trees, Hashing, Heap, Stack etc), Dynamic Programming, Randomized & Sublinear Algorithm, Graphs, Gradient/Stochastic Descents y Primal-Dual methods son también necesarios.
Miscelánea:
Esto comprende otros temas de matemáticas no cubiertos en las cuatro áreas principales descritas anteriormente. Incluyen Análisis Real y Complejo (Conjuntos y Secuencias, Topología, Espacios Métricos, Funciones Continuas y de Valor Único, Límites, Kernel de Cauchy, Transformadas de Fourier), Teoría de la Información (Entropía, Ganancia de Información), Espacios de Funciones y Manifolds.
Los Jupyter Notebooks están en inglés. Si algún alumno tiene problemas con ese idioma y prefiere el castellano, recomiendo:
- Instalar en su entorno virtual de Python jupyter_contrib_nbextensions.
- Habilitar la traducción de celdas haciendo uso de Google Translate. Instrucciones aquí.