Curso de Matemáticas para IA · Lección 40 de 180

L1, L2 y L-infinito entienden el tamaño de forma distinta

Compara el tamaño de los vectores según L1, L2 y L-infinito, observa cómo cambian sus bolas unidad y distingue las penalizaciones de parámetros de los presupuestos de robustez de entrada.

Comparte este artículo

Un modelo puede ser sensible a un cambio que parece pequeño en cada coordenada de la entrada. Para describirlo, primero tenemos que elegir cómo medir su tamaño. Las normas L1, L2 y L-infinito responden de forma distinta a esa pregunta, y sus bolas unidad muestran exactamente por qué.

Al terminar, podrás comparar esas normas, interpretar sus formas en dos dimensiones y distinguir una penalización sobre los parámetros del modelo de un presupuesto para los cambios de entrada.

Objetivo de aprendizaje: Explicar cómo las distintas normas modifican la geometría y la sensibilidad.

La lección 39 (en inglés) presentó las normas como reglas para medir vectores. La sección 3.1 del libro oficial Mathematics for Machine Learning desarrolla normas habituales y su geometría. Los ejemplos, la comparación, la figura interactiva y las aplicaciones de IA que siguen son originales.

Un vector, tres medidas

Para un vector real x=(x1,…,xn)x=(x_1,\ldots,x_n), la norma L1 suma los valores absolutos de las coordenadas, la norma L2 calcula la raíz cuadrada de la suma de sus cuadrados y la norma L-infinito conserva la coordenada de mayor valor absoluto:

Tomemos x=(3,−4)x=(3,-4). Su norma L1 es ∣3∣+∣−4∣=3+4=7|3|+|-4|=3+4=7. Su norma L2 es 32+(−4)2=9+16=5\sqrt{3^2+(-4)^2}=\sqrt{9+16}=5. Su norma L-infinito es max⁡(3,4)=4\max(3,4)=4. El vector no ha cambiado; cada regla resalta un aspecto distinto de sus coordenadas. L1 acumula la magnitud de todas las coordenadas, L2 mide la longitud euclídea y L-infinito informa del mayor cambio individual.

NumPy permite calcular cada norma vectorial si se especifica ord explícitamente:

import numpy as np

x = np.array([3.0, -4.0])
np.linalg.norm(x, ord=1)      # 7.0
np.linalg.norm(x, ord=2)      # 5.0
np.linalg.norm(x, ord=np.inf) # 4.0

Aquí x es unidimensional, por lo que ord=2 solicita su norma euclídea. Con un arreglo bidimensional, numpy.linalg.norm también puede calcular una norma matricial; al trabajar con lotes de vectores, especifica tanto el orden de la norma como el eje que contiene cada vector. NumPy documenta por separado estos casos vectoriales y matriciales.

Las bolas unidad hacen visible la elección

La bola unidad de una norma es el conjunto de vectores cuya norma no supera uno. En dos dimensiones, la bola unidad L1 es un rombo, la L2 es un círculo y la L-infinito es un cuadrado alineado con los ejes. Por ejemplo, (0.6,0.8)(0.6,0.8) está justo en el límite L2 porque 0.62+0.82=1\sqrt{0.6^2+0.8^2}=1. Queda fuera de la bola L1 porque 0.6+0.8=1.40.6+0.8=1.4 y dentro de la bola L-infinito porque el valor absoluto de su coordenada mayor es 0.80.8.

Mueve cualquiera de las dos coordenadas. El mismo punto se compara con los tres límites, mientras la tabla muestra el valor de cada norma y si el punto está dentro de su bola unidad.

Un vector dentro de tres bolas unidad de formas distintas
Elige las coordenadas del vector

Usa las teclas de flecha para cambiar una coordenada en 0.1. Todas las normas se calculan sobre el mismo vector.

Para x = (0,6, 0,8): L1 es 1,4 (fuera); L2 es 1 (en el límite); L-infinito es 0,8 (dentro).

Bolas unidad L1, L2 y L-infinito en un mismo plano de coordenadasEl vector es (0,6, 0,8). El rombo es la bola unidad L1, el círculo es la bola unidad L2 y el cuadrado es la bola unidad L-infinito. Para x = (0,6, 0,8): L1 es 1,4 (fuera); L2 es 1 (en el límite); L-infinito es 0,8 (dentro).-1-1011x₁x₂

Límites de las bolas unidad

  • L1: límite del rombo
  • L2: límite del círculo
  • L-infinito: límite del cuadrado
Valores de las normas y pertenencia a las bolas unidad para el vector elegido
NormaValorPosición
L11,4fuera
L21en el límite
L-infinito0,8dentro

La tabla de estado sigue disponible sin tener que interpretar los colores ni las formas del gráfico.

La forma determina qué direcciones caben dentro de un presupuesto fijo. Por ejemplo, en (0.7,0.7)(0.7,0.7), L-infinito vale 0.70.7 y L2 aproximadamente 0.990.99, así que el punto está dentro de ambas bolas unidad; L1 vale 1.41.4, por lo que queda fuera del rombo. Un presupuesto cuadrado limita cada coordenada por separado, mientras que uno circular limita su longitud euclídea combinada.

Las normas también se acotan entre sí. Para todo x∈Rnx\in\mathbb{R}^n,

∥x∥∞≤∥x∥2≤∥x∥1≤n ∥x∥2≤n ∥x∥∞.\lVert x\rVert_{\infty}\leq\lVert x\rVert_2\leq\lVert x\rVert_1 \leq\sqrt{n}\,\lVert x\rVert_2\leq n\,\lVert x\rVert_{\infty}.

La coordenada mayor no puede superar la raíz cuadrada de la suma de los cuadrados de todas las coordenadas, que a su vez no puede superar la suma de sus valores absolutos. La desigualdad de Cauchy–Schwarz proporciona la siguiente cota, ∥x∥1≤n∥x∥2\lVert x\rVert_1\leq\sqrt{n}\lVert x\rVert_2; al acotar cada coordenada al cuadrado por el cuadrado de la mayor, obtenemos ∥x∥2≤n∥x∥∞\lVert x\rVert_2\leq\sqrt{n}\lVert x\rVert_{\infty}. Por tanto, las medidas pueden diferir por factores que crecen con la dimensión y ordenar dos vectores de manera distinta. Para u=(3,0)u=(3,0) y v=(2,2)v=(2,2), L1 indica que vv es mayor (4>34>3), mientras que L2 indica que uu es mayor (3>83>\sqrt{8}).

Las penalizaciones de parámetros y los presupuestos de entrada responden a preguntas distintas

Durante el ajuste del modelo, la regularización añade un término al objetivo para desalentar ciertos valores de los parámetros. Un objetivo de entrenamiento podría incluir λ1∥w∥1\lambda_1\lVert w\rVert_1 o λ2∥w∥22\lambda_2\lVert w\rVert_2^2, donde ww es el vector de parámetros aprendidos y cada λ\lambda determina la intensidad de la penalización. Las penalizaciones L1 pueden favorecer coeficientes dispersos; las penalizaciones L2 al cuadrado tienden a reducir muchos coeficientes sin llevarlos, por lo general, a cero. El resultado depende de las escalas de las características y de la intensidad de las penalizaciones. La expresión L2 al cuadrado es el cuadrado de una norma, no una norma en sí misma.

Un presupuesto de perturbación de entrada aplica una norma a otro vector. Si se suma δ\delta a la entrada xx, la restricción ∥δ∥∞≤ε\lVert\delta\rVert_{\infty}\leq\varepsilon significa que cada coordenada cambia como máximo ε\varepsilon. Si los valores de la imagen se han escalado a [0,1][0,1], entonces ε\varepsilon se mide en esa escala; recortar la imagen modificada al rango de entrada válido es una restricción aparte.

El método del signo del gradiente rápido de Goodfellow, Shlens y Szegedy utiliza la geometría L-infinito. Para un ataque no dirigido, sea J(θ,x,y)J(\theta,x,y) la pérdida del modelo con parámetros θ\theta, entrada xx y etiqueta yy. Un solo paso es

δ=ε sign⁡ ⁣(∇xJ(θ,x,y)).\delta=\varepsilon\,\operatorname{sign}\!\left(\nabla_xJ(\theta,x,y)\right).

El gradiente estima cómo afecta un pequeño cambio de entrada a la pérdida. Elegir el signo de cada coordenada en esa dirección maximiza el aumento de primer orden, a la vez que mantiene cada coordenada dentro de ε\varepsilon. Es una construcción local de un solo paso: no garantiza que se produzca una clasificación errónea y su éxito depende del modelo y de la entrada. Un valor pequeño de L-infinito tampoco garantiza que el cambio sea imperceptible o realista. La cota expresa un presupuesto por coordenada; las personas deben decidir si corresponde a la amenaza que les interesa.

Al evaluar la sensibilidad de un modelo, registra qué vector puede cambiar, qué norma lo limita y en qué unidades se mide el presupuesto. Así, una afirmación como «robusto dentro de ε\varepsilon» tiene un significado geométrico preciso en vez de ocultar sus supuestos tras la palabra pequeño.

Comprueba lo que has entendido

Question 1

Para x = (3, −4), calcula las normas L1, L2 y L-infinito. Muestra la operación correspondiente a cada una.

Show the step-by-step solution

L1 suma los valores absolutos: ∣3∣+∣−4∣=7|3|+|-4|=7. L2 eleva al cuadrado, suma y extrae la raíz cuadrada: sqrt(3² + (−4)²) = sqrt(9 + 16) = 5. L-infinito conserva la coordenada de mayor valor absoluto: max⁡(3,4)=4\max(3,4)=4.

Question 2

Para x = (−2, 1, −3), ¿qué norma es mayor y cuáles son los valores de las tres normas?

Show the step-by-step solution

L1 es 2+1+3=62+1+3=6. L2 es sqrt((−2)² + 1² + (−3)²) = sqrt(4 + 1 + 9) = sqrt(14) ≈ 3.74. L-infinito es max⁡(2,1,3)=3\max(2,1,3)=3. En este caso L1 es la mayor porque sumar magnitudes no negativas da un resultado al menos tan grande como la combinación euclídea o la coordenada individual mayor.

Question 3

¿Está (0.7, 0.7) dentro de cada bola unidad bidimensional? Calcula las normas antes de decidirlo.

Show the step-by-step solution

L1 es 0.7+0.7=1.40.7+0.7=1.4, así que el punto queda fuera de la bola L1. L2 es sqrt(0.7² + 0.7²) = sqrt(0.98) ≈ 0.99, por lo que queda dentro de la bola L2. L-infinito es max⁡(0.7,0.7)=0.7\max(0.7,0.7)=0.7, así que queda dentro de la bola L-infinito, que tiene forma cuadrada.

Question 4

Explica por qué la norma L-infinito no puede superar la norma L2 y por qué la norma L2 no puede superar la norma L1.

Show the step-by-step solution

Sea m=max⁡i∣xi∣m=\max_i|x_i|. El cuadrado de una coordenada es m2m^2, y los cuadrados de las demás son no negativos, por lo que ∑ixi2≥m2\sum_i x_i^2\geq m^2. Al tomar raíces cuadradas se obtiene ∥x∥2≥m=∥x∥∞\lVert x\rVert_2\geq m=\lVert x\rVert_{\infty}. A continuación, el cuadrado de una suma de valores no negativos incluye los cuadrados individuales y términos cruzados no negativos, así que (∑i∣xi∣)2≥∑i∣xi∣2(\sum_i|x_i|)^2\geq\sum_i|x_i|^2. Al extraer la raíz cuadrada se obtiene ∥x∥1≥∥x∥2\lVert x\rVert_1\geq\lVert x\rVert_2.

Question 5

Una perturbación con 1.000 coordenadas cumple ||δ||∞ ≤ 0.01. ¿Qué límite impone a cada coordenada y qué cota superior se deduce para ||δ||₁?

Show the step-by-step solution

La condición L-infinito significa que ∣δi∣≤0.01|\delta_i|\leq0.01 para cada coordenada ii. Al sumar los 1.000 valores absolutos, obtenemos ∥δ∥1=∑i∣δi∣≤1,000(0.01)=10\lVert\delta\rVert_1=\sum_i|\delta_i|\leq1{,}000(0.01)=10. Por tanto, un cambio máximo pequeño por coordenada puede permitir un cambio absoluto total mayor en una entrada de alta dimensión.

Question 6

¿Por qué el código de NumPy debe especificar axis al calcular la norma de cada vector de un lote y por qué no se debe suponer que el valor predeterminado para una matriz equivale a su norma de operador L2?

Show the step-by-step solution

En un arreglo que contiene varios vectores, el argumento axis identifica qué dimensión de coordenadas corresponde a cada vector; sin él, NumPy puede tratar el arreglo bidimensional como una matriz y calcular una norma matricial. La norma 2 de una matriz es su mayor valor singular, mientras que la norma 2 de un vector es su longitud euclídea. Indicar la estructura del arreglo, ord y axis deja clara la cantidad que se pretende calcular.

Question 7

¿Una penalización L2 sobre los pesos del modelo garantiza robustez ante cambios de entrada acotados por L-infinito? Explica qué dos vectores intervienen.

Show the step-by-step solution

No. La penalización se aplica al vector de parámetros ww durante el ajuste del modelo. Un presupuesto de robustez L-infinito se aplica al vector de perturbación de entrada δ\delta. Limitan cantidades distintas en partes distintas del modelo, así que una penalización de pesos por sí sola no demuestra la garantía de robustez de entrada indicada.

Question 8

Si el gradiente de la pérdida con respecto a la entrada es g = (2, −1) y ε = 0.01, ¿qué perturbación elige el paso no dirigido del signo del gradiente rápido y qué cambio de primer orden en la pérdida predice g?

Show the step-by-step solution

Los signos de las coordenadas son (+1,−1)(+1,-1), por lo que el paso es δ=0.01(1,−1)=(0.01,−0.01)\delta=0.01(1,-1)=(0.01,-0.01). El cambio de primer orden previsto es g⋅δ=2(0.01)+(−1)(−0.01)=0.03g\cdot\delta=2(0.01)+(-1)(-0.01)=0.03. Es una aproximación lineal basada en el gradiente, no una garantía de que la pérdida exacta aumente en 0.03 ni de que cambie la predicción.

Fuentes

  1. Mathematics for Machine Learning book PDF, Section 3.1
  2. NumPy documentation: numpy.linalg.norm
  3. Goodfellow, Shlens, and Szegedy: Explaining and Harnessing Adversarial Examples