🧮 Computational Mathematics

Inicio · Parte 12 — Optimización matemática y computacional

242 — Convexidad

avanzado clase 2 de 20 4 horas demostración convexity

La convexidad es la frontera entre optimizar con garantías y optimizar con esperanza.

Fórmulas

f(λa + (1−λ)b) ≤ λf(a) + (1−λ)f(b)
convexa ⟺ Hessiano semidefinido positivo
convexa ⟹ todo mínimo local es global

Desarrollo

Una función es convexa si el segmento que une dos puntos cualesquiera de su gráfica queda por encima de la curva. Esa definición geométrica se traduce en la desigualdad de la cuerda, y en el caso diferenciable equivale a que el Hessiano sea semidefinido positivo: curvatura no negativa en todas las direcciones.

La consecuencia es la que justifica toda la atención al concepto: en un problema convexo todo mínimo local es global. Un algoritmo que solo mira información local —que es lo único que hace el descenso de gradiente— tiene garantía de encontrar la solución óptima. Sin convexidad esa garantía desaparece por completo.

Hay una jerarquía útil de problemas por dificultad, y no es lineal-versus-no-lineal como suele creerse, sino convexo-versus-no-convexo. Un problema convexo de un millón de variables es tratable; uno no convexo de veinte puede ser imposible de resolver con garantías. Programación lineal, mínimos cuadrados, regresión logística y SVM son convexos, y por eso se resuelven de forma fiable.

Las redes neuronales no son convexas, y masivamente. Sin embargo se entrenan bien, y la explicación que va emergiendo es que en dimensión muy alta los mínimos locales malos son raros: lo abundante son puntos de silla, de los que el ruido de SGD escapa con facilidad. No es un teorema cerrado, y conviene decirlo así.

Ejemplo trabajado

Test de la cuerda y criterio del Hessiano.

f(x) = x²  con a = 0,5,  b = 2,0,  λ = 0,7

  f(λa + (1−λ)b) = f(0,95)  = 0,9025
  λf(a) + (1−λ)f(b)         = 2,9500
  0,9025 ≤ 2,9500   →   convexa                       ✓

f(x,y) = x² + 20y²

  Hessiano = [[2,  0],
              [0, 40]]
  autovalores: 40 y 2, ambos positivos
  → definido positivo → estrictamente convexa         ✓

Consecuencia: el mínimo (0,0) es global.
Cualquier método de descenso lo encontrará.

Qué calcula el laboratorio

Convexidad: la propiedad que convierte un mínimo local en global.

python classes/part-12-optimizacion-matematica-y-computacional/242-convexidad/lab.py
compmath run 242

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "test_de_la_cuerda_convexa": {
    "f(λa+(1-λ)b)": 0.9025000000000001,
    "λf(a)+(1-λ)f(b)": 2.95,
    "cumple": true
  },
  "test_no_convexa": {
    "f(λa+(1-λ)b)": -0.942994,
    "λf(a)+(1-λ)f(b)": 2.85,
    "cumple": true
  },
  "hessiano_de_x²+20y²": [
    [
      2.0,
      0.0
    ],
    [
      0.0,
      40.0
    ]
  ],
  "autovalores": [
    40.0,
    2.0
  ],
  "definido_positivo": true,
  "consecuencia": "todo mínimo local es global"
}

Errores comunes

Dónde se usa

Diseño de funciones de pérdida, elección de algoritmos con garantías, SVM y regresión regularizada, y análisis de por qué el entrenamiento profundo es difícil.

Idea rectora de la parte

El learning rate es el hiperparámetro que más veces explica una divergencia.

Error a evitar

Aplicar weight decay dentro del gradiente en Adam (y no como AdamW).

Conexión con IA

AdamW es el optimizador por defecto del entrenamiento moderno; entender su actualización explica el weight decay, el warmup y el gradient clipping.

Bibliografía de la clase

Archivos de la clase