¿Qué es el DESCENSO DEL GRADIENTE? Explicado por el Volcán de La Palma


Desenso del Gradiente en Machine Learning


 El DESCENSO DEL GRADIENTE en el Backpropagation del Machine Learning


Los modelos de aprendizaje profundo (o deep learning), se basan en encontrar la tasa de error de cada cálculo realizado en cada una de las neuronas y corregirlo para llegar al valor más bajo de la función e ir aprendiendo cada vez más, para predecir así un mejor resultado con los cálculos que se le facilite en un futuro. Para realizarlo, hay que 'mover' unas características de cada neurona y ajustarla, y para encontrar el error cometido y corregirlo, se utilizan fórmulas matemáticas como las aplicadas en el descenso del gradiente.

Estos días, el Volcán Cumbre Vieja de La Palma tiene muchísimo protagonismo en las notícias y vidas de todo el mundo, ya que hace unos días ha entrado en erupción ( y a día de hoy continúa ), pero como tengo una cabeza que no para, mi subconsciente ha encontrado una manera muy fácil de explicar qué es el descenso del gradiente en el Backpropation, simplemente observando boquiabierto el descenso de la colada del volcán y transformando lo que estaba viendo el descenso del gradiente de una red neuronal. Intentaré explicar la analogía del volcán con los cálculos del descenso del gradiente utilizado en los métodos de backpropagation.

En términos matemáticos, para encontrar el descenso del gradiente más bajo, hay que ir haciendo saltitos cada vez más pequeños, hasta llegar a un punto que sea lo más bajo posible teniendo en cuenta la 'fuerza' (o tasa de aprendizaje) con la que nos podemos mover.

¿En qué se basa la naturaleza del descenso del gradiente? Imaginemos una montaña (en La Palma, por decir un ejemplo). Ahora imaginaos que en un punto incierto de la montaña, de repente, entra en erupción el volcán. La lava que comienza a salir es ciega y no sabe por donde tirar, así que intentará buscar el lugar más bajo. Tiene como condición que continúa saliendo lava y le empuja, así que llegará a tener una cierta velocidad de movimiento, que dependerá de su viscosidad, la cantidad de lava que venga detrás de ella para 'empujarla', etc. Se fía de las leyes de la gravedad y su objetivo es llegar al punto más bajo de la isla. ¿Cómo lo conseguirá? mediante una fuerza de gravedad que ofrecerá una velocidad, la pendiente (del descenso del gradiente) y la dirección donde le empuja la gravedad. Qué pasaría si antes de llegar al mar hubiese una pequeña colina que subir para llegar al mar, pero resulta que el centro de este punto está por debajo del nivel del mar? El objetivo de la lava no es llegar al mar, si no de encontrar el punto más bajo, entonces, si llega a una colina que va cuesta arriba, tendría que volver por donde venía, ya que era el punto más bajo. ¿Pero qué pasa si va a gran velocidad? Pues que sobrepasará la colina y llegará al mar. ¿Significa que el mar es el punto más bajo? Pues no. Quizás el punto donde estaba la pendiente de la colina antes de llegar al mar estaba situado por debajo del nivel del mar, ... o no..... La lava no lo sabe. No quiere decir que el mar esté más bajo que el punto anterior encontrado. ¿Y si la lava va tan lenta que al final se para? Esto puede pasar, aunque intente ir al punto más bajo, si pierde fuerza, al final se parará. Quiere decir que tiene una tasa de aprendizaje demasiado baja.

Entonces, traduciendo la naturaleza a elementos matemáticos ML:
- La montaña es la fórmula matemática que define el gradiente.
- La fuerza de la gravedad es donde le indica que empuja el descenso y la dirección a seguir.
- La lava es el backpropagation donde se guarda el valor más bajo en cada momento.
- El movimiento de la lava es la aplicación del cálculo de regresión según el error cuadrático medio calculado por la pendiente, la velocidad y la fuerza de la gravedad.
- La velocidad de la lava es la tasa de aprendizaje.

¿Cómo sabe la lava donde está el punto más bajo? No lo sabe, dependerá del punto donde le ha tocado salir, de la velocidad que le haya tocado tener, la forma de la morfografía del lugar (función matemática), y llegará donde le toque según la velocidad. Quizá no llegue al punto más bajo ya que si hubiese tenido una velocidad más alta o más baja, si que lo hubiese conseguido. Lo que sí os aseguro que se dirigirá hacia el punto más bajo con las condiciones que le toque en cada momento, ya que la velocidad puede ser modificada durante el proceso, incluso la morfología del terreno con nuevas explosiones, grietas, ....

Espero que esta analogía os haya ayudado a entender un poco el funcionamiento de las redes  neuronales. Yo siento que la fuerza de la naturaleza es matemática pura, y este evento actual, no deja de ser tanto bello como increíble, así como destructivo y.... por qué no decirlo también.... matemático. De todas maneras, muchísimos ánimos para los hermanos de La Palma.

No puedo ir a La Palma a hacer una foto del volcán para ilustrar el artículo, así que espero que con su permiso, ... foto capturada de https://www.youtube.com/watch?v=Is5kVJ_R0Gc

Comentarios

Artículos más populares

Ingeniería de datos. Como saber qué características o features dar como Inputs a nuestras redes neuronales

¿Se puede utilizar Machine Learning en PHP?

Clase en PHP para encender/apagar LED en Raspberry pi