Escalares, vectores, matrices y tensores explicados
Índice de contenidos
- Puntos clave
- ¿Qué es un escalar, un vector, una matriz y un tensor?
- Cómo se representan los datos y los pesos
- Dimensiones y forma (shape)
- Operaciones básicas
- Ejemplo en una capa de neuronas
- Preguntas frecuentes
- ¿Un tensor es lo mismo que un array multidimensional?
- ¿Por qué se usan vectores y matrices en redes neuronales?
- ¿Necesito dominar el álgebra lineal antes de empezar?
- Conclusión
- Fuentes
Un escalar es un solo número, un vector una lista ordenada de números, una matriz una tabla de dos dimensiones y un tensor la generalización a cualquier número de dimensiones. En una red neuronal los datos entran como vectores y los pesos forman matrices, de modo que cada capa calcula z = Wx + b combinando ambos.
Escalares, vectores, matrices y tensores son las cuatro formas en que una red neuronal guarda números. Un escalar es un número suelto, un vector una fila de números, una matriz una tabla y un tensor la misma idea llevada a tres o más dimensiones. Aprender a distinguirlos es el primer paso para entender los vectores y matrices en redes neuronales, porque cada dato y cada peso vive dentro de una de esas estructuras. La misma explicación está disponible en inglés.
Puntos clave
- Un escalar tiene 0 dimensiones, un vector 1, una matriz 2 y un tensor cualquier número: son la escalera del álgebra lineal.
- Los datos de entrada se representan como vectores y los pesos de cada capa como matrices; por eso se habla de vectores y matrices en redes neuronales.
- La forma (shape) de un tensor es la lista de sus tamaños por dimensión, y cuadrar esas formas es la mitad del trabajo al programar una red.
- La operación central de una capa es
z = Wx + b, una multiplicación de matriz por vector más un sesgo. - Las tarjetas gráficas existen para multiplicar matrices deprisa, y por eso son el motor del aprendizaje profundo.
¿Qué es un escalar, un vector, una matriz y un tensor?
La forma más sencilla de ordenarlos es contar sus dimensiones, lo que en álgebra lineal se llama el rango del objeto.
- Un escalar es un único número, como la temperatura
21o un peso concreto. Tiene 0 dimensiones. - Un vector es una lista ordenada de números, como $\mathbf{v} = [1{,}7,\ 0{,}3,\ 2{,}0]$. Tiene 1 dimensión y representa un punto o una dirección en un espacio.
- Una matriz es una tabla rectangular de números con filas y columnas. Tiene 2 dimensiones y suele guardar los pesos que conectan dos capas.
- Un tensor generaliza la idea a 3 o más dimensiones. Una imagen en color es un tensor de 3 ejes (alto, ancho y canales de color), y un lote de 32 imágenes es un tensor de 4 ejes.
El nombre de la biblioteca más famosa del aprendizaje profundo, TensorFlow, viene precisamente de que los datos fluyen como tensores por un grafo de operaciones. El término tensor procede de la física y la geometría; puedes leer su definición formal en Wikipedia[1].
Cómo se representan los datos y los pesos
Todo lo que entra en una red se convierte en números. Una frase se transforma en un vector de identificadores, y una imagen de 28 por 28 píxeles en blanco y negro se aplana en un vector de 784 valores, uno por píxel. Ese vector es la entrada x.
Los pesos que conectan una capa de $n$ entradas con otra de $m$ neuronas forman una matriz $\mathbf{W}$ de $m$ filas y $n$ columnas. En notación compacta, la entrada cumple $\mathbf{x} \in \mathbb{R}^{n}$ y los pesos $\mathbf{W} \in \mathbb{R}^{m \times n}$. Multiplicar esa matriz por el vector y sumar el sesgo $\mathbf{b}$ produce la salida de la capa, la misma cuenta que estudiamos en las matemáticas detrás de las redes neuronales. El producto escalar entre cada fila de W y el vector x es la operación que anima a cada neurona, como se ve en la función sigmoide.
Dimensiones y forma (shape)
La forma de un tensor, su shape, es la lista de sus tamaños en cada dimensión. En la biblioteca numérica de referencia, un vector de 784 valores tiene shape (784,), una matriz de pesos de 128 por 784 tiene shape (128, 784) y un lote de 32 imágenes en color de 224 por 224 píxeles tiene shape (32, 3, 224, 224). La documentación oficial de NumPy[2] llama a este atributo shape y lo usa en cada operación.
Cuadrar las formas es la causa más común de errores al programar. Para multiplicar $\mathbf{W}$ por $\mathbf{x}$, el número de columnas de $\mathbf{W}$ debe coincidir con el número de filas de $\mathbf{x}$: si $\mathbf{W}$ es (128, 784), entonces $\mathbf{x}$ debe tener 784 elementos. Cuando la red falla con un error de dimensiones, casi siempre es una forma mal encajada.
Regla práctica: en $\mathbf{W}\mathbf{x}$, las columnas de $\mathbf{W}$ deben igualar la longitud de $\mathbf{x}$. Si al depurar ves un error de dimensiones, empieza siempre por imprimir la forma (shape) de cada tensor.
Operaciones básicas
Con estas estructuras se trabajan pocas operaciones, pero se repiten millones de veces:
- Suma elemento a elemento: dos vectores o dos matrices de la misma forma se suman posición por posición.
- Producto por un escalar: multiplicar cada elemento por un mismo número, como al aplicar la tasa de aprendizaje $\eta$.
- Producto escalar: multiplicar dos vectores elemento a elemento y sumar el resultado en un solo número.
- Multiplicación de matriz por vector: repetir el producto escalar de cada fila de la matriz con el vector, que es justo lo que hace una capa.
El libro Mathematics for Machine Learning[3] dedica sus primeros capítulos a estas operaciones porque son la base de todo lo demás. Como resume ese texto, «el álgebra lineal es el estudio de vectores y de ciertas reglas para manipularlos», y esas reglas son exactamente las que aplica una red en cada paso.
Ejemplo en una capa de neuronas
Imagina una capa con 3 entradas y 2 neuronas. La entrada es un vector $\mathbf{x}$ de 3 valores, los pesos forman una matriz $\mathbf{W}$ de 2 filas y 3 columnas, y el sesgo $\mathbf{b}$ es un vector de 2 valores. La cuenta produce un vector $\mathbf{z}$ de 2 valores, uno por neurona:
$$\mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b}, \qquad \mathbf{W} \in \mathbb{R}^{2 \times 3},\ \mathbf{x} \in \mathbb{R}^{3},\ \mathbf{z} \in \mathbb{R}^{2}$$
Después se aplica una función de activación $\mathbf{a} = f(\mathbf{z})$ a cada componente, y esos 2 números son la salida que pasa a la capa siguiente. Si encadenas varias capas con este patrón obtienes una red completa: cada capa $^{(l)}$ recibe el vector de la anterior, lo multiplica por su matriz de pesos y lo transforma. Nada más complicado que multiplicar tablas por listas, repetido en cascada.
Preguntas frecuentes
¿Un tensor es lo mismo que un array multidimensional?
En el aprendizaje profundo, en la práctica sí: un tensor es un array de números con un número cualquiera de dimensiones. En física y geometría el término tensor tiene un significado más estricto que incluye reglas de transformación, pero cuando programas una red basta con pensarlo como una tabla de números de varias dimensiones.
¿Por qué se usan vectores y matrices en redes neuronales?
Porque permiten expresar y calcular millones de operaciones de una sola vez. Escribir una capa como una multiplicación de matriz por vector deja que la tarjeta gráfica resuelva miles de productos escalares en paralelo, algo imposible si tratáramos cada neurona por separado.
¿Necesito dominar el álgebra lineal antes de empezar?
No hace falta un curso completo. Con entender qué es un vector, qué es una matriz, cómo se multiplican y qué significa la forma de un tensor tienes el 90 % de lo que se usa a diario. El resto se aprende sobre la marcha.
Conclusión
Escalares, vectores, matrices y tensores no son cuatro cosas distintas, sino la misma idea a 0, 1, 2 y más dimensiones. Con esa escalera en la cabeza, la fórmula $\mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b}$ deja de ser un jeroglífico y se convierte en lo que es: multiplicar una tabla de pesos por una lista de datos. El siguiente paso natural es repasar el mapa de las matemáticas de las redes neuronales y practicar con formas reales.