Project DelphiTaller de Tensores

Elegir el rango: el codo para Tucker, la poda para CP

HOSVD da un espectro de valores singulares por modo. Despliega a lo largo del modo n, toma los valores singulares, dibuja la energía conservada y elige Rₙ en el codo. La garantía (De Lathauwer et al. 2000): truncar cada modo pierde como mucho la energía descartada, sumada sobre los modos. Pero en el kernel de ResNet-18 los espectros no tienen codo: el 90 % de la energía ya necesita más de 150 componentes por modo de canal. Un codo encuentra un rango cuando el tensor lo tiene.

CP no tiene espectro. En su lugar: sobreparametriza y poda. Un solo ajuste con demasiadas componentes y una penalización que apaga componentes enteras. El paso proximal de group lasso

a ← a · max(0, 1 − ημ / ‖a‖₂)

deja exactamente en cero una columna más corta que ημ. En un tensor sintético de 6 términos verdaderos, el ajuste empieza con rango 30: sin penalización sobreviven los 30 y los sobrantes ajustan ruido; group lasso encuentra 6 y quita ruido.