El gradiente dice hacia dónde sube más deprisa
El gradiente de una función de dos variables es la pareja de pendientes que indica hacia dónde sube más deprisa. Con él sabes qué dirección tomar para subir, o para bajar, lo más rápido posible.
Así ajusta un modelo sus dos números a la vez: mira el gradiente del error y se mueve en sentido contrario.
Al final de esta lección
Nota
Puedo calcular el gradiente de una función de dos variables en un punto.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Variable | un número que puede cambiar | x, y |
| Derivada parcial | la pendiente al mover solo una variable, con la otra quieta | |
| Gradiente | la pareja de derivadas parciales | |
| Dirección de máxima subida | hacia donde apunta el gradiente | |
| Punto | una pareja de valores de x y de y | (2, 1) |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una derivada parcial mueve solo una variable
Piensa en la altura de una ladera según tu posición: este y norte. Si caminas solo hacia el este, con el norte quieto, notas una pendiente. Esa es la derivada parcial respecto a x.
Para calcularla, trata la otra variable como un número fijo y deriva con las reglas de siempre.
Ejemplo resuelto: el gradiente de una ladera
| Qué buscas | Cómo | Para `x ** 2 + 3 * y ** 2` |
|---|---|---|
| Parcial respecto a x | Trata y como número fijo | `2 * x` |
| Parcial respecto a y | Trata x como número fijo | `6 * y` |
| Gradiente | La pareja de las dos | `(2 * x, 6 * y)` |
| En el punto (2, 1) | Sustituye x e y | `(4, 6)` |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El gradiente se estima moviendo una variable
Igual que con una variable, estimas cada derivada parcial con un paso pequeño. Mueves x un poco y dejas y quieta. Después haces lo contrario.
Con un paso a cada lado del punto, el resultado es más preciso. Los dos resultados juntos forman el gradiente.
Estima las dos derivadas parciales
# La altura de una ladera según tu posición.
def altura(x, y):
return x ** 2 + 3 * y ** 2
x = 2
y = 1
h = 0.001
parcial_x = (altura(x + h, y) - altura(x - h, y)) / (2 * h)
parcial_y = (altura(x, y + h) - altura(x, y - h)) / (2 * h)
print("Gradiente:", round(parcial_x, 3), round(parcial_y, 3))
# Cambia y a 3 y ejecuta otra vez.
# ¿Qué derivada parcial cambia y cuál no?
Mira la cuadrícula de alturas
docker exec jupyter python3 -c "import numpy as np; x,y=np.meshgrid(np.arange(-2,3),np.arange(-2,3)); print(x**2+3*y**2)"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Menos el gradiente apunta cuesta abajo
El gradiente apunta hacia donde la función sube más deprisa, y su longitud dice cuánto sube. En sentido contrario, la función baja lo más rápido posible.
En (2, 1) el gradiente es (4, 6). Para bajar más deprisa, el movimiento va en la dirección (-4, -6).
Un error muy común
Advertencia
Mucha gente cree que el gradiente es un solo número, la pendiente. Con dos variables hay una pendiente en cada dirección, así que el gradiente son dos números. Además, apunta a la subida más rápida, no al mínimo.
Ejemplo resuelto: lo que imprime la cuadrícula
| Qué miras | Valores | Qué te dice |
|---|---|---|
| Fila del centro (y = 0) | 4, 1, 0, 1, 4 | Sube despacio al alejarte en x |
| Columna del centro (x = 0) | 12, 3, 0, 3, 12 | Sube más deprisa al alejarte en y |
| El centro | 0 | El punto más bajo: el fondo del valle |
| Las esquinas | 16 | El punto más alto de la cuadrícula |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Para ir más lejos: otra ladera
En el código de las parciales, cambia la altura por x ** 2 + y ** 2 y calcula el gradiente en (2, 1). Antes de ejecutar, escribe qué dos números esperas.
Después explica con tus palabras por qué esa ladera sube igual de deprisa en las dos direcciones.