Tanto la
Inteligencia Artificial como el
Aprendizaje Automático (
Machine Learning,
ML a partir de ahora) son conceptos de moda que mucha gente está interesada en aprender.
Cuando comenzamos a estudiar
ML, vemos que hay elementos de programación y que además existen multitud de
librerías o
frameworks que nos ayudarán en el duro trabajo, como por ejemplo
Tensorflow o
scikit-learn. Pero tarde o temprano también aparecerán las temidas
Matemáticas, exactamente aquellas que pensábamos que nunca más tendríamos que utilizar desde los tiempos de la Universidad.
Pero no hay que rendirse, tenemos dos buenas noticias para mantener la esperanza. La primera es que existen muchos recursos y documentación para aprender o repasar
Álgebra,
Estadística o
Cálculo. Y si aún estás en la Universidad y te interesa el
ML, pues mucho mejor porque seguro que ahora podrás observar la utilidad real de los conceptos y términos explicados en estas clases. La segunda buena noticia es que no hará falta estudiar todos los conceptos matemáticos de un área concreta, sólo será necesario entender algunos específicos (por supuesto, según hasta dónde se quiera profundizar en la materia).
Figura 1. Cheat Sheet (o chuleta) sobre Cálculo. Click en la imagen para descargar el documento PDF completo. Fuente.
Así que esta es la "dura" realidad, es imposible llegar a entender cómo afrontar problemas relacionados con
ML sin tener algunas nociones básicas de
Matemáticas. De hecho, cuanto mejor entendamos las
Matemáticas detrás de cualquier técnica o algoritmo de
ML, mejores resultados obtendremos cuando creemos nuestros primeros programas de
ML. La clave de un buen programa de
ML es saber elegir el algoritmo adecuado basándonos en la complejidad, el tiempo de entrenamiento, parámetros, características, etc términos que sólo se consiguen entendiendo el algoritmo desde un punto de vista matemático.
Entonces ¿qué
Matemáticas necesito para aprender
ML?
- Álgebra Lineal. En ML el Álgebra Lineal aparece prácticamente por todas partes. Será necesario entender las propiedades básicas de vectores (por ejemplo operaciones en Espacios Vectoriales n-dimensionales) y matrices, multiplicación de matrices, matrices especiales, eliminación de Gauss-Jordan, etc. En este enlace podéis encontrar un curso del MIT gratuito.
- Cálculo y Cálculo multivariable (o vectorial). Es necesario adquirir o repasar conceptos de Cálculo infinitesimal, Diferencial, Integral, Vectorial, Tensorial, etc, para de esta forma poder enfrentarnos a integrales, derivadas, límites, análisis de funciones, Transformada de Fourier, etc.
- Estadística y Probabilidad. La Estadística es probablemente el campo de las matemáticas que más se parece al ML. Combinatoria, Probabilidad, Teorema de Bayes, Varianza, Distribuciones estándares (Binomial, Multinomial, etc), etc son sólo algunos de los conceptos que tarde o temprano nos encontraremos. Aquí otro curso del MIT pero esta vez de Estadística y en este otro enlace un resumen de las estadísticas básicas para el científico de datos.
- Algoritmos y optimización. La efectividad de un algoritmo, el coste y su escalabilidad son importantes en ML para poder ajustar y preparar de la mejor manera los datasets. Para ello es necesario aprender estructuras de datos como los Árboles Binarios, Hashing, Backpropagation, etc. Por otro lado, será también útil aprender Grafos, Gradiente Descendiente, etc.
Revisando
algunos artículos y documentación sobre este tema, hemos realizado la siguiente estimación aproximada del porcentaje de cada una de estas disciplinas matemáticas:
En esta nueva serie que hoy presentamos en
LUCA, un matemático (
Francisco Fenoll), un astrofísico (
Enrique Blanco) y un informático (
Fran Ramírez), intentaremos explicar de la forma más sencilla posible las matemáticas básicas que hay detrás de los principales algoritmos de
ML. En breve publicaremos el primero de los artículos, estad atentos/as al blog ;)