Inicio · Parte 06 — Álgebra lineal II: descomposiciones y tensores
(A ⊗ B) shape = (m₁m₂, n₁n₂)
rango(A ⊗ B) = rango(A) · rango(B)
(A⊗B)(C⊗D) = (AC)⊗(BD)
El producto de Kronecker sustituye cada entrada de A por esa entrada multiplicada por toda la matriz B, generando una matriz en bloques mucho mayor. Su interés es que estructura: representa operaciones que actúan de forma independiente sobre dos factores de un problema.
Aparece de forma natural en problemas separables. Discretizar una ecuación en derivadas parciales sobre una malla rectangular produce matrices de Kronecker, porque el operador actúa por separado en cada dirección. Lo mismo ocurre al modelar un sistema compuesto por dos subsistemas independientes.
Las identidades que cumple son las que lo hacen útil computacionalmente: el rango del producto es el producto de los rangos, y (A⊗B)(C⊗D) = (AC)⊗(BD). Esta última permite operar con los factores pequeños en lugar de con la matriz gigante, ahorrando memoria y tiempo.
En machine learning aparece en K-FAC, un método de optimización de segundo orden que aproxima el Hessiano de una red como un producto de Kronecker de dos matrices pequeñas. Sin esa estructura, el Hessiano de una capa con un millón de parámetros sería una matriz de 10¹² entradas: inmanejable.
Kronecker de dos matrices 2×2.
A = [[1,2],[3,4]] B = [[0,5],[6,7]]
A⊗B (4×4):
[[ 0, 5, 0, 10],
[ 6, 7, 12, 14],
[ 0, 15, 0, 20],
[18, 21, 24, 28]]
shape: (2·2, 2·2) = (4,4) ✓
rango(A⊗B) = rango(A)·rango(B) = 2·2 = 4 ✓
Producto de Kronecker: estructura en bloques.
python classes/part-06-algebra-lineal-ii-descomposiciones-y-tensores/136-producto-de-kronecker/lab.py
compmath run 136
A_shapeB_shapeA⊗B_shapeA⊗Brangorango_A_por_rango_Buso{
"A_shape": [
2,
2
],
"B_shape": [
2,
2
],
"A⊗B_shape": [
4,
4
],
"A⊗B": [
[
0.0,
5.0,
0.0,
10.0
],
[
6.0,
7.0,
12.0,
14.0
],
[
0.0,
15.0,
0.0,
20.0
],
[
18.0,
21.0,
24.0,
28.0
]
],
"rango": 4,
"rango_A_por_rango_B": 4
}
Discretización de PDE separables, sistemas compuestos, K-FAC en optimización de segundo orden y grafos producto.
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.48550/arxiv.1503.05671 verificado en DataCite (2026-08-19).