SOBRE LOS TENSORES: SU INTERPRETACIÓN CONCEPTUAL

Como señala (Kaplan, 1985, pág. 297), cuando se introducen coordenadas curvilíneas los métodos matriciales ya no resultan adecuados para el análisis de las operaciones vectoriales fundamentales. El análisis deseado se puede llevar a cabo con la ayuda de las estructuras matemáticas conocidas como tensores.

Los tensores son el resultado de un producto tensorial denotado como A⨂B. Un producto tensorial generaliza la noción de producto cartesiano o producto directo A × B y de suma directa A⨁B para espacios de coordenadas curvilíneas conocidos como variedades (como por ejemplo, las variedades pseudo-riemannianas bajo la cual está modelada la Teoría General de la Relatividad); lo anterior se afirma porque si se verifican las propiedades de un tensor u operador tensorial se podrá verificar que se comporta como una suma, pero su resultado (el espacio o conjunto generado) se comporta como una multiplicación. Esto está relacionado con poder generalizar nociones geométricas (que a nivel de matrices de datos tiene implicaciones en poder medir las longitudes entre los datos –y todo lo que eso implica, ni más ni menos que la base de las mediciones de todo tipo-), como por ejemplo la ortogonalidad entre vectores para una gama más general de superficies entre muchísimas otras cuestiones; de hecho, una variedad generaliza el concepto de superficie. En el lenguaje de programación R, un array multidimensional es un tensor, es decir, el resultado de un producto tensorial entre vectores, mientras que una matriz es resultado de un producto cartesiano entre vectores y es por ello que los primeros se pueden concebir geométricamente como un cubo n-dimensional o una estructura cúbica de medición con n-coordenadas, que además pueden ser curvilíneas. Una matriz es un tensor de dos dimensiones o coordenadas lineales.

Un vector es una flecha que representa una cantidad con magnitud y dirección, en donde la longitud de la flecha es proporcional a la magnitud del vector y la orientación de la flecha revela la dirección del vector.

También se puede representar con vectores otras cosas, como áreas y volúmenes. Para hacer esto, se debe hacer a la longitud del vector una magnitud proporcional a la magnitud del área a calcular y la dirección del vector debe ser ortogonal a la superficie o región de la cual se desea estimar el área o volumen.

Los vectores base o vectores unitarios (cuando la base del espacio lineal es canónica, es decir, que cada vector que conforma la base está compuesto en su pertinente coordenada por la unidad y en el resto por ceros) tienen longitud 1. Estos vectores son los vectores directores del sistema de coordenadas (porque le dan dirección a cada uno de los ejes del plano, puesto que precisamente cada uno representa un eje).

Para encontrar los componentes de un vector (en el caso de un sistema de tres coordenadas, el componente x, el componente y, el componente z) se proyecta el vector sobre el eje que corresponde al componente a encontrar, por ejemplo, si se desea encontrar el componente x del vector, la proyección se realiza sobre X. Entre mayor sea el ángulo entre un vector y un eje de referencia (X,Y,Z), menor será la magnitud del componente correspondiente a dicho eje (este componente, en este ejemplo, puede ser x, o z); el inverso también es cierto. La magnitud de cualquier vector dentro del plano real o complejo puede determinarse como combinación lineal de los vectores base con el campo de los reales o los complejos, respectivamente. Esto implica que la magnitud de un vector (y por consiguiente de los componentes dentro del mismo, al ser una estructura lineal) puede expresarse como determinada cantidad de vectores unitarios (de longitud 1) de los diferentes ejes de coordenadas, en donde cada componente del vector se expresará unívocamente en una cantidad determinada de vectores unitarios del eje correspondiente a dicho componente.

Para generalizar los resultados anteriores a un vector de vectores A (que entre otras cosas permite agruparlos en una misma estructura matemática -por ello a nivel del programa R los arrays tienen contenido del mismo tipo y relacionado entre sí[1]-), se establece que dicho vector A tendrá los componentes A_X, A_Y, A_Z, que representan a los componentes X, Y y Z, respectivamente. Se requiere establecer un índice para cada vector (el índice es en este caso el subíndice) porque sólo existe un indicador direccional (es decir, un vector base) por componente (porque cada componente se corresponde con su respectivo eje).

Esto es lo que hace a los vectores ser tensores de rango 1, que tienen un índice o un vector base por componente. Bajo la misma lógica, los escalares pueden ser considerados tensores de rango cero, porque los escalares no tienen ningún indicador direccional (son una cantidad con magnitud, pero sin sentido) y, por consiguiente, no necesitan índice.

Los tensores son combinaciones entre componentes auxiliares de naturaleza diversa (parámetros, coeficientes, pendientes, que son en última instancia algún elemento de algún campo escalar o anillo) y componentes centrales (los miembros de la base del espacio vectorial o módulo, que expresan las variables fundamentales del sistema que se describe), que sirven para estimar de forma más robusta (en términos de precisión cuantitativa y especificidad cualitativa) las coordenadas de un sistema de referencia.

El número de índices de cada tensor será igual al número de vectores base por componente (en el caso de los tensores, los componentes y los vectores base no tienen necesariamente una relación uno-a-uno, por lo que a un componente le puede corresponder más de un vector base o vector director del sistema de coordenadas).

Considérense, por ejemplo, las fuerzas que actúan al interior de un objeto sólido cualquiera en un espacio de tres dimensiones. Este interior está segmentado en términos de superficies (que son regiones de dicho espacio a manera de planos) por los vectores base de tipo área X, Y, Z. Asúmase además que cada una de las fuerzas actúa en cada una de las regiones del espacio (esto no necesariamente es así, sólo se usa un ejemplo así para que sea más fácilmente capturable a la intuición; aunque lógico-formalmente sí es así, filosóficamente y en términos de las ciencias aplicadas no necesariamente). Lo anterior significa que, debido a la diferente dirección de los vectores base, la acción de dichas fuerzas tiene orientaciones diferentes según la región del espacio de la que se trate. Esto es así porque cada vector base tiene una dirección diferente (al menos si su dirección se estudia cuando está anclado al origen) y cada vector base determina la dirección de la acción de cada fuerza en la región del espacio que a dicho vector base le corresponde (una región -lo que de forma más general puede concebirse como una caracterización dentro de un sistema referencial- estudiada puede estar compuesta por subregiones bajo el efecto de fuerzas diferentes). Así, para poder caracterizar completamente las fuerzas que actúan dentro del objeto sólido (lo que equivale precisamente a caracterizar completamente al objeto sólido mismo -bajo las limitaciones que la teoría tiene frente a la práctica-), es necesario que cada fuerza pueda ser expresada en términos de todas las regiones del espacio en las que actúa (cada región se corresponde con un vector director o vector base), por lo que cada fuerza se debe vincular a la correspondiente cantidad regiones del sólido en las que actúa (se debe vincular a la correspondiente cantidad de vectores base a los que está asociada).

Así, los tensores permiten caracterizar completamente todas las fuerzas posibles y todas las regiones posibles sobre las que actúan tales fuerzas.

Los tensores permiten que todos los observadores en todos los sistemas de coordenadas de referencia (marco referencial, de ahora en adelante) puedan estar de acuerdo sobre las coordenadas establecidas. El acuerdo no consiste en un acuerdo sobre los vectores base (que pueden variar de un espacio a otro), tampoco en los componentes (que pueden variar según el campo escalar), sino en las combinaciones entre vectores base y componentes. La razón de lo anterior radica en que al aplicar una transformación sobre los vectores base (para pasar de un sistema referencial a otro de alguna forma equivalente), en el contexto de los tensores, la estructura algebraica resultante tendrá invariablemente una única dirección sin importar el marco referencial; por su parte, al transformar un componente se logran mantener las combinaciones entre componentes y vectores base para todos los observadores (i.e., para todos los marcos referenciales -cada observador está en un marco referencial-).

Por tanto, los tensores expresan matemáticamente (i.e., lógico-formalmente) la unidad a nivel del fenómeno (social o natural) de las fuerzas contrarias entre sí que lo componen, así como también la tensión que implica la lucha de tales fuerzas por imponerse la una a la otra durante el proceso evolutivo del fenómeno estudiado.

Como se señala en (Universidad de Granada, 2022), en el contexto de la estadística aplicada, un array es un tipo de dato estructurado que permite almacenar un conjunto de datos homogéneo, es decir, todos ellos del mismo tipo y relacionados. Cada uno de los elementos que componen un vector pueden ser de tipo simple como caracteres, entero o real, o de tipo compuesto o estructurado como son vectores, estructuras, listas.

A los datos almacenados en un array se les denomina elementos; al número de elementos de un array se les denomina tamaño o rango del vector; este rango puede determinarse de forma equivalente, en el caso de arrays multidimensionales (tensores), a través del número de ejes. Para acceder a los elementos individuales de un array se emplea un índice que será un número entero no negativo que indicará la posición del elemento dentro del array. Para referirse a una posición particular o elemento dentro del array, se especifica el nombre del array y el número de posición del elemento particular dentro del mismo, el índice.

Los arrays en gran parte se definen como las variables ordinarias, excepto en que cada array debe acompañarse de una especificación de tamaño (número de elementos). Para un array unidimensional, el tamaño se especifica con una expresión entera positiva encerrada entre paréntesis cuadrados. La expresión es normalmente una constante entera positiva.

En suma, cada dimensión de un tensor/array multidimensional (que, al ser en sí mismo una estructura de datos con las propiedades usuales de los números, es también un espacio vectorial, específicamente un espacio euclidiano) está compuesta por un número de filas y columnas especificado.

En la mayoría de los casos, los tensores se pueden considerar como matrices anidadas de valores que pueden tener cualquier número de dimensiones. Un tensor con una dimensión se puede considerar como un vector, un tensor con dos dimensiones como una matriz y un tensor con tres dimensiones se puede considerar como un paralelepípedo. El número de dimensiones que tiene un tensor se llama su rango y la longitud en cada dimensión describe su forma. El rango de un tensor es el número de índices necesarios para seleccionar de forma única cada elemento del tensor (TensorFlow, 2022). El rango también se conoce como “orden” o “grado”; como se señaló antes, otra forma de ver los tensores es como arrays multidimensionales (RStudio, 2022).

Como señala (Weisstein, 2022), formalmente hablando el rango de un tensor es el número total de índices contravariantes y covariantes de un tensor, relativos a los vectores contravariantes y covariantes, respectivamente. El rango R de un tensor es independiente del número de dimensiones N del espacio subyacente en el que el tensor se localice. Adicionalmente, se señala en la documentación R sobre el paquete ‘tensor’, que el producto tensorial de dos arrays es teóricamente un producto exterior de tales arrays colapsados en extensiones específicas al sumar a lo largo de las diagonales apropiadas. Por ejemplo, un producto matricial es el producto tensorial a lo largo de la segunda extensión de la primera matriz y la primera extensión de la segunda matriz.

Fuente: (java T point, 2022).
Fuente: (java T point, 2022).
Fuente: (java T point, 2022).
Fuente: (geeksforgeeks, 2022).
Fuente: (Patidar, 2019).
Fuente: (Paul, 2018).

En el modelo de datos multidimensional, los datos se organizan en una jerarquía que representa diferentes niveles de detalles. Un modelo multidimensional visualiza los datos en forma de cubo de datos. Un cubo de datos permite modelar y visualizar datos en múltiples dimensiones. Se define por dimensiones y hechos.

Las dimensiones son las perspectivas o entidades sobre las cuales una organización mantiene registros. Por ejemplo, una tienda puede crear un almacén de datos de ventas para mantener registros de las ventas de la tienda para la dimensión de tiempo, artículo y ubicación. Estas dimensiones permiten registro para realizar un seguimiento de las cosas, por ejemplo, las ventas mensuales de artículos y las ubicaciones en las que se vendieron los artículos. Cada dimensión tiene una tabla relacionada con ella, llamada tabla dimensional, que describe la dimensión con más detalle.

Referencias

Fleisch, D. A. (2012). What’s a tensor? Recuperado el 26 de Marzo de 2022, de Dan Fleisch: https://www.youtube.com/watch?v=f5liqUk0ZTw

geeksforgeeks. (26 de Marzo de 2022). Multidimensional Arrays in C / C++. Obtenido de geeksforgeeks.org: https://www.geeksforgeeks.org/multidimensional-arrays-c-cpp/

java T point. (Marzo de 25 de 2022). What is Multi-Dimensional Data Model? Obtenido de Data Warehouse: https://www.javatpoint.com/data-warehouse-what-is-multi-dimensional-data-model

Kaplan, W. (1985). CÁLCULO AVANZADO. MÉXICO, D.F.: COMPAÑÍA EDITORIAL CONTINENTAL, S.A. DE C.V., MÉXICO.

Patidar, P. (14 de Diciembre de 2019). Tensors — Representation of Data In Neural Networks. Obtenido de Medium: https://medium.com/mlait/tensors-representation-of-data-in-neural-networks-bbe8a711b93b

Paul, S. (12 de Septiembre de 2018). Investigating Tensors with PyTorch. Obtenido de DataCamp: https://www.datacamp.com/community/tutorials/investigating-tensors-pytorch

RStudio. (25 de Marzo de 2022). Tensors and operations. Obtenido de TensorFlow for R: https://tensorflow.rstudio.com/tutorials/advanced/customization/tensors-operations/

TensorFlow. (25 de Marzo de 2022). tf.rank. Obtenido de TensorFlow Core v2.8.0 : https://www.tensorflow.org/api_docs/python/tf/rank

Universidad de Granada. (25 de Marzo de 2022). Arrays y cadenas. Obtenido de Departamento de Ciencias de la Computación e Inteligencia Artificial de la Universidad de Granada: https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap5/f_cap52.htm.

Weisstein, E. W. (25 de Marzo de 2022). Tensor Rank. Obtenido de MathWorld – A Wolfram Web Resource: https://mathworld.wolfram.com/TensorRank.html


[1] Véase (Universidad de Granada, 2022).

Advertisement

GENERALIDADES Y ORÍGENES HISTÓRICOS DE LA DISTRIBUCIÓN CHI-CUADRADO

ISADORE NABI