Inicio · Parte 06 — Álgebra lineal II: descomposiciones y tensores
almacenamiento de rango k: k(m + n + 1) frente a mn
error = √(Σᵢ₌ₖ₊₁ σᵢ²)
El capstone aplica la truncación SVD a una matriz y mide, para cada rango, tres cantidades: cuántos números hay que guardar, qué error se comete y qué fracción de la energía se retiene. Ese informe es la forma honesta de presentar una compresión: no «comprime bien», sino «con rango 2 el error de Frobenius es X y se retiene el Y % de la energía».
La matriz del ejemplo está construida para que dos de sus filas sean múltiplos de un mismo patrón, así que su rango efectivo es muy bajo y el primer valor singular concentra casi toda la energía. Eso es lo que ocurre en datos reales: las imágenes naturales, las matrices de valoraciones y las activaciones de una red tienen espectros que decaen rápido.
El ahorro se calcula sin ambigüedad. Guardar Aₖ requiere las k columnas de U, los k valores singulares y las k columnas de V: k(m + n + 1) números frente a mn. La compresión es rentable cuando k es pequeño frente a mn/(m+n).
La conexión con LoRA cierra la parte: en lugar de ajustar una matriz de pesos W de millones de parámetros, se le suma un producto BA de rango muy bajo. La justificación teórica es exactamente Eckart-Young: si la actualización necesaria tiene rango intrínsecamente bajo, una aproximación de rango bajo la captura casi por completo.
Informe de compresión de una matriz 4×4.
valores singulares: 96.28, 1.87, 0.0004, 0.0000
rango valores guardados error Frobenius energía retenida
1 9 1.8734 99.98 %
2 18 0.0004 100.00 %
3 27 0.0000 100.00 %
4 36 0.0000 100.00 %
matriz original: 16 valores
rango efectivo (σ > 1e−8): 3
Con rango 1 se guardan 9 números en lugar de 16
y se conserva el 99.98 % de la energía.
Capstone: comprimir una matriz con SVD y medir la pérdida.
python classes/part-06-algebra-lineal-ii-descomposiciones-y-tensores/140-capstone-pca-y-compresion-de-imagenes/lab.py
compmath run 140
matriz_original_shapevalores_originalesvalores_singularesinforme_por_rangorango_efectivoconclusion{
"matriz_original_shape": [
4,
4
],
"valores_originales": 16,
"valores_singulares": [
102.872114,
0.572786,
1e-06,
0.0
],
"informe_por_rango": [
{
"rango_k": 1,
"valores_guardados": 9,
"error_frobenius": 0.572786,
"energia_retenida_%": 99.9969
},
{
"rango_k": 2,
"valores_guardados": 18,
"error_frobenius": 0.0,
"energia_retenida_%": 100.0
},
{
"rango_k": 3,
"valores_guardados": 27,
"error_frobenius": 0.0,
"energia_retenida_%": 100.0
},
{
"rango_k": 4,
"valores_guardados": 36,
"error_frobenius": 0.0,
"energia_retenida_%": 100.0
}
],
"rango_efectivo": 4,
"conclusion": "la matriz es casi de rango 1: dos filas son múltiplos de un patrón"
}
Compresión de imágenes y modelos, reducción de dimensionalidad, eliminación de ruido, recomendación por factorización y LoRA.
LoRA factoriza matrices de bajo rango, la atención se define con productos tensoriales y la estabilidad del entrenamiento depende del espectro de los pesos.
10.1007/bf02288367 verificado en Crossref (2026-08-19).10.1137/090771806 verificado en Crossref (2026-08-19).