Transposición de matrices y matriz inversa
La transposición aparece con frecuencia en el mecanismo de atención, y la matriz inversa nos ayuda a entender las «transformaciones invertibles», como la transformación de coordenadas en PCA.
Transposición: intercambiar filas y columnas
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
El valor que estaba en la posición (i, j) pasa, después de la transposición, a la posición (j, i).La forma cambia de m×n a n×m.
Matriz inversa: deshacer la transformación
La matriz A representa una transformación lineal. \( A^{-1} \) representa «deshacer el efecto de A».
Expresión matemática: \( AA^{-1} = A^{-1}A = I \) (I es la matriz identidad, equivalente al número 1).
Sololas matrices cuadradas y de rango completotienen matriz inversa.
Las matrices no cuadradas, o las matrices cuadradas que no tienen rango completo, son «matrices singulares» y no tienen inversa; equivalen a una operación no invertible.
Propiedades clave
- La transpuesta de un producto invierte el orden: \( (\mathbf{AB})^T = \mathbf{B}^T\mathbf{A}^T \)
- La inversa de un producto también invierte el orden: \( (\mathbf{AB})^{-1} = \mathbf{B}^{-1}\mathbf{A}^{-1} \)
Ejemplos cotidianos
Transposición: intercambiar filas y columnas en una tabla de Excel
Si transpone una tabla de ventas donde «los nombres están en filas y los meses en columnas», pasa a tener «los nombres en columnas y los meses en filas».
Los datos no cambian, solo cambia su disposición; eso es la transposición.
Matriz inversa: Ctrl+Z para deshacer
Hiciste una operación de rotación + escalado (matriz A) y quieres revertirla (A^{-1}).
La composición de ambas operaciones equivale a que nada cambió (AA^{-1} = I, transformación identidad).
Definición matemática
Transposición
\[ (\mathbf{A}^T)_{ij} = \mathbf{A}_{ji} \]Matriz inversa
Para una matriz cuadrada A de n×n, si existe B tal que \( \mathbf{AB} = \mathbf{BA} = \mathbf{I}_n \), entonces B = A^{-1}.
Práctica con Python
Ejemplo
A = np.array([[1, 2, 3], [4, 5, 6]])
print("A (2x3):\n", A)
print("A.T (3x2):\n", A.T)
print()
# Verificar (AB)^T = B^T @ A^T
B = np.array([[1,2],[3,4],[5,6]]) # 3x2
AB = A @ B # (2,3) @ (3,2) = (2,2)
print("(AB)^T:\n", AB.T)
print("B^T @ A^T:\n", B.T @ A.T)
print(Iguales:, np.allclose(AB.T, B.T @ A.T))
print()
# Matriz inversa
C = np.array([[2, 1], [5, 3]]) # Matriz cuadrada de 2x2
C_inv = np.linalg.inv(C)
print("C:\n", C)
print("C^{-1}:\n", C_inv)
print("C @ C^{-1} = I:\n", C @ C_inv)
# La matriz singular no tiene inversa
D = np.array([[1, 2], [2, 4]]) # La fila 2 es el doble de la fila 1
try:
np.linalg.inv(D)
except np.linalg.LinAlgError:
print("\nLa matriz singular D no tiene inversa (la fila 2 = 2 × la fila 1).)
A (2x3):
[[1 2 3]
[4 5 6]]
A.T (3x2):
[[1 4]
[2 5]
[3 6]]
C @ C^{-1} = I:
[[1. 0.]
[0. 1.]]
奇异矩阵 D 没有逆矩阵(第2行=2×第1行)
Casos de uso en IA
La operación K^T en el mecanismo de atención
En \( QK^T \), la transposición de la matriz Key permite que Q de (seq_len, d_k) haga una multiplicación de matrices con K de (seq_len, d_k); la transposición convierte K en (d_k, seq_len), de modo que la dimensión interna coincida. Este K^T es la transformación dimensional más crítica en el cálculo de atención de todos los modelos Transformer.
Solución de forma cerrada para la regresión lineal
\( \hat{\beta} = (X^TX)^{-1}X^Ty \) — aquí aparecen a la vez la transposición y la matriz inversa. X^T X garantiza que el resultado sea una matriz simétrica definida positiva (invertible); luego, al invertirla se obtiene la solución analítica. El LinearRegression de sklearn, sin regularización, calcula exactamente esto en su interior.
Actualización de parámetros en el descenso de gradiente
Durante la retropropagación, la forma de la matriz de gradientes de los pesos debe coincidir con la matriz de pesos para poder realizar la actualización por resta. Por ejemplo, si W es (d_out, d_in), su gradiente \nabla_W L también es (d_out, d_in); la transposición ayuda a que los gradientes propaguen correctamente las dimensiones en el grafo computacional a través de las capas intermedias.
Otras extensiones