¿Cómo se utiliza el cálculo en Machine Learning?
Tabla de contenidos
El cálculo es uno de los conceptos matemáticos fundamentales en Machine Learning que nos permite comprender el funcionamiento interno de los distintos algoritmos dentro de esta área. Una de las aplicaciones importantes del cálculo en Machine Learning es el algoritmo del descenso de gradiente que, junto con la retropropagación, nos permite entrenar un modelo de red neuronal.
En este artículo, descubrirás el papel fundamental que tiene el cálculo dentro de Machine Learning.
En tu camino de aprendizaje de Machine Learning es importante que conozcas algo de cálculo básico para entender cómo cambian las funciones con el tiempo, en otras palabras, las derivadas, y para calcular la cantidad total de una cantidad que se acumula en un periodo de tiempo, para este caso las integrales.
Conocer cálculo te permitirá hablar con precisión de las propiedades de las funciones y comprender mejor su comportamiento.
Derivadas
La definición de una derivada puede entenderse de dos maneras diferentes:
- La primera es desde una perspectiva geométrica, en la que la derivada es la pendiente de una curva. Siendo un poco más claro, es cuánto cambia una curva en un punto determinado.
- La segunda es una perspectiva física, en la que la derivada es la tasa de cambio.
Como puedes ver, ambas perspectivas, tanto la geométrica como la física, están relacionadas con el cambio.
Profundicemos el concepto desde el punto de vista geométrico. En geometría, la pendiente representa la inclinación de una línea. Ahora si te pregunto, ¿cuánto cambio 𝑦 o 𝑓(𝑥) dado un cambio específico en 𝑥?
Para responder esto podemos utilizar la siguiente formula, la cual nos ayuda a calcular la pendiente entre dos puntos:
Ahora si cambiamos un poco la pregunta anterior y la hacemos así ¿cuál es la pendiente en un único punto de la recta? No podríamos utilizar la formula anterior, por lo que allí en es donde entran las derivadas que nos ayuda a responder a esta pregunta.
Para estos casos una derivada produce una expresión que podemos utilizar para calcular la tasa de cambio instantánea, en este caso la pendiente, en un único punto de una recta. Una vez que se haya resuelto la derivada, se puede utilizar para calcular la pendiente en cualquier otro punto de la recta.
De esta manera, las derivadas nos ayudan a responder a la pregunta: ¿cómo cambia 𝑓(𝑥) si hacemos un aumento muy muy pequeño de x? O dicho en palabras más sencillas, las derivadas ayudan a estimar la pendiente entre dos puntos que están a una distancia muy, muy, muy pequeña, pero lo suficientemente grande como para calcular la pendiente.
Las derivadas en Machine Learning se utilizan en los problemas de optimización. Los algoritmos de optimización, como el descenso de gradiente, utilizan las derivadas para decidir si aumentar o disminuir los pesos con el fin de maximizar o minimizar algún objetivo, como mejor la precisión del modelo.
Las derivadas también nos ayudan a aproximar funciones no lineales como funciones lineales, que tienen pendientes constantes. Con una pendiente constante puedes decidir si subir o bajar la pendiente o aumentar o disminuir los pesos, para acércanos al valor objetivo o la etiqueta de la clase a predecir.
Integrales
Las integrales se utilizan para encontrar el área bajo una curva. Inclusive si lo analizas un poco, la integral es lo contrario de las derivadas.
Hay dos tipos de integrales las definidas y las indefinidas. Las integrales definidas tienen límites, mientras que las integrales indefinidas no tienen límites, por lo que estamos llevando la integral desde el infinito negativo al infinito positivo.
Una forma de aproximar para obtener el área total bajo una función es dividiendo la región en pequeñas franjas verticales de ancho h, y luego sumando las áreas de las franjas rectangulares. Normalmente queremos que h sea un número pequeño para que la aproximación sea precisa.
Gradientes
Un gradiente es simplemente un vector que almacena las derivadas parciales de funciones multivariables. Este nos ayuda a calcular la pendiente en un punto específico de una curva para funciones con múltiples variables independientes.
Para calcular está pendiente más compleja, necesitamos aislar cada variable para determinar cómo afecta a la salida por sí sola. Para ello, iteramos por cada una de las variables y calculamos la derivada de la función después de mantener constantes todas las demás variables. Cada iteración produce una derivada parcial que almacenamos en el gradiente.
Los gradientes son extremadamente importantes en Machine Learning porque así es como optimizamos las redes neuronales.
Es importante señalar que los gradientes no se limitan a dos dimensiones, a menuda se expanden a dimensiones más altas. Inclusive en el contexto de Machine Learning rara vez nos detenemos en 3 dimensiones, por lo que los vectores gradientes pueden organizarse como derivadas parciales de una función escalar. Si hay múltiples funciones, utilizamos el jacobiano, que es un vector de gradientes.
El cálculo es extremadamente importante en Machine Learning porque lo utilizamos principalmente en la optimización para mejorar nuestros modelos. En particular, utilizamos variaciones del descenso de gradiente para optimizar una red neuronal.
Con las derivadas, verificamos la tasa de cambio de una función particular. Por su parte, con las integrales, hallamos el área bajo una curva. Finalmente, con los gradientes se representa la pendiente de una función y apunta a la dirección con la mayor tasa de incremento.
Este último concepto es muy valioso para Machine Learning porque nos permite minimizar nuestra función de pérdida y también determinar la dirección para cambiar nuestras variables que tendrá el mayor impacto.
Esta es solo una visión general del cálculo que se utiliza dentro de Machine Learning, cada tema es mucho más profundo de lo explicado acá, la intención es solamente dar una introducción a este tema.