Tensores: ¿son escalares, vectores o matrices?

En épocas pasadas, tensores sólo sería probablemente un término popular entre los fieles del estudio del cuerpo humano, y en especial del sistema musculoesquelético. Sin embargo, a medida que la tecnología moderna sigue superando los límites a través de la inteligencia artificial, este término se está volviendo común y la tendencia con frecuencia suscita la pregunta: ¿Qué es un tensor?

Antes de explicar qué es un tensor, relacionado con las matemáticas y tomado prestado de la informática, siempre es útil apreciar que un tensor se ha convertido en la vida de la inteligencia artificial moderna. Entonces, la primera motivación para seguir leyendo es que apreciará completamente el funcionamiento de la inteligencia artificial si primero ha dominado la esencia de los tensores.

¿Qué es un tensor?

Dada la complejidad de definir un tensor, lo abordaré por pasos.

Paso 1

En primer lugar, aprecia un tensor como la representación numérica de un interés.
Un interés puede ser el color de un objeto, la velocidad de un automóvil, el precio de un helado, la nacionalidad de una persona, la forma de la nariz de alguien.

¡Ciertamente si! Todo se puede expresar en números. ¿Pero cómo?
Supongamos que queremos categorizar 4 tipos de narices:

  • Nariz carnosa
  • nariz llena de baches
  • Nariz chata
  • Nariz de halcón

Nariz Carnosa, siendo el primer tipo, puede ser representada por 1nariz llena de baches 2Nariz chata 3Nariz de halcón 4. Después si me enviaron el número 1y me dijeron que era un tipo de nariz, automáticamente sabría que se refería a una Nariz Carnosa.

¿Por qué tenemos que representar las cosas en números de todos modos?

En primer lugar, los números son independientes del lenguaje. En otras palabras, independientemente de si una persona solo entiende griego, latín, francés, inglés o swahili, entre otros, todos entendemos los números. Por lo tanto, se vuelve más fácil pasar información a través de diversos orígenes utilizando números, ya que es una especie de lenguaje universal.

En segundo lugar, las computadoras solo entienden ceros y unos (números) y, al final, todo lo que queramos hacer con nuestras computadoras se convertirá en números. Así que los números son fundamentales en la informática.

Volviendo al ejemplo de las narices,
1 significa Nariz carnosa. De este modo, 1 es un tensor que representa un tipo de nariz. Es más, 1 es un tipo de tensor llamado escalar, porque solo tiene una dimensión, es solo un número. El paso dos habla de otro tipo de tensor que puede tener más dimensiones.

Paso 2

Aprecie que los intereses son multifacéticos en la vida real. En otras palabras, los intereses están hechos de varias partes o dimensiones.

Tomemos el precio de un helado. Suponga que es $5.00.
Se podría pensar que tiene una sola dimensión, pero tiene varias dimensiones:

  • el signo de la moneda ($)
  • el primer grupo de números antes del punto (5)
  • el punto (podría haber sido una coma en otro lugar)
  • el grupo de números después del punto

Podemos reescribir el precio en un grupo de números.

  • Vamos a asignar un número a la moneda. Hay alrededor de 180 monedas en el mundo y podemos decidir asignar 1 como la moneda del dólar estadounidense. Posteriormente, cada vez que vemos 1 representando una moneda, es un dólar estadounidense.
  • Podemos decidir dejar el grupo de números antes del punto o coma tal cual, ya que son números
  • Podemos suponer que la posición del punto puede estar ocupada por solo dos símbolos (técnicamente, separadores decimales): punto y coma. Así, el punto se convierte en 1y coma 2.
  • Dejaremos los números después del punto como están.
  • Finalmente, usemos el formato, (currency, numbers before dot/comma, dot/comma, numbers after dot/comma) reescribir el precio del helado, en sus cuatro dimensiones, así:
price_of_ice_cream = (1, 5, 1, 0)

En un lugar, como Canadá (francés), donde se usa una coma como separador decimal, si el helado cuesta 5 dólares, esto podría escribirse como $5,00. Asignemos 2 al dólar canadiense. El precio se puede escribir como:

price_of_ice_cream = (2, 5, 2, 0)

El primero 2 es para el dólar canadiense, el segundo valor 5 por la primera parte del valor del precio, el tercer valor 2 para la coma (separador decimal), y 0 por la última parte del valor del precio.

Lo que acabamos de hacer fue representar el precio de un helado como tensor. Esta vez es un vector, no un escalar, y es un vector de cuatro dimensiones porque usa cuatro números (dimensiones). Dependiendo de lo que queramos hacer, podría convertirse en un vector de dos dimensiones (x, y), tridimensional (x, y, z) o incluso de siete dimensiones (x, y, z, a, b, c, d) , si sacamos más dimensiones del precio.

Paso 3

Aprecie que un objeto o evento puede tener múltiples puntos de interés, que a su vez tienen varias dimensiones.

Al describir un helado, los puntos de interés pueden incluir:

  • precio
  • productor
  • sabor

Supongamos lo siguiente para un helado (Helado A):

  • Precio = US$5.00
  • El productor es Dovry Ice Creams, con ID de productor 0052
  • El sabor es fresa – el sabor fresa tiene un código de 2153

Supongamos esto para otro helado (Ice Cream B):

  • Precio = 5,00 CAN$
  • El productor es Resty Ice Creams, con una ID de productor de 1045
  • El sabor es fresa, manteniendo el código de 2153

Ya tenemos los vectores de precio. Podemos crear fácilmente vectores para el productor a partir de los dígitos de la identificación y el sabor a partir de los dígitos del código de sabor.

Helado Una descripción en vectores:

# price is given in step 2 above
price_of_ice_cream_A = (1, 5, 1, 0)
producer_of_ice_cream_A = (0, 0, 5, 2)
flavor_of_ice_cream_A = (2, 1, 5, 3)

Helado B descripción en vectores

# price is given in step 2 above
price_of_ice_cream_A = (2, 5, 2, 0)
producer_of_ice_cream_A = (1, 0, 4, 5)
flavor_of_ice_cream_A = (2, 1, 5, 3)

Pero necesitamos poder transportar todos los vectores relacionados con un helado en particular juntos.

Podríamos terminar con estos:

ice_cream_A = [(1, 5, 1, 0), (0, 0, 5, 2), (2, 1, 5, 3)]
ice_cream_B = [(2, 5, 2, 0), (1, 0, 4, 5), (2, 1, 5, 3)]

Y podemos reescribir esto más bellamente:

ice_cream_A = [(1, 5, 1, 0), 
               (0, 0, 5, 2), 
               (2, 1, 5, 3)]
               
ice_cream_B = [(2, 5, 2, 0),
               (1, 0, 4, 5),
               (2, 1, 5, 3)]
               

Estos también son tensores. Esta vez son tensores que llevan información de varios vectores y parecen tablas. Cada vector de un helado en particular se convierte en una fila en un tensor y las dimensiones forman columnas. Este tipo de tensor se llama matriz (plural: matrices).

Podemos quitar los corchetes y las comas para aclarar las matrices:

ice_cream_A = [ 1 5 1 0 
                0 0 5 2 
                2 1 5 3 ]
               
ice_cream_B = [ 2 5 2 0
                1 0 4 5
                2 1 5 3 ]
               

¡Aquí vamos! Los tensores pueden ser matrices formadas a partir de varios vectores. Si te ayuda, puedes mirar matrices como tablas de información.

Paso 4

Tenga en cuenta que muchas veces queremos llevar información sobre más de una cosa.

En el paso 3, usamos la matriz para llevar información sobre un solo helado en particular. Sin embargo, lo que se hace con frecuencia es utilizar matrices para representar información sobre un mismo interés de diferentes objetos. Por ejemplo, si estamos interesados ​​en comparar precios, una matriz puede llevar información sobre precios de diferentes cosas.

Ilustremos usando los dos precios de los helados en el paso 2:

Podemos tener una matriz llamada price_of_ice_creams y tendrá los dos precios US$5,00, CAN$5,00 como se muestra a continuación:

prices_of_ice_creams = [(1, 5, 1, 0), 
                        (2, 5, 2, 0)]
                        

Vamos a limpiarlo:

prices_of_ice_creams = [ 1 5 1 0 
                         2 5 2 0 ]
                        

Y tenemos otra matriz con 2 vectores (filas) que tienen cuatro dimensiones (columnas). Este es un tensor, una matriz de 2 X 4, ya que tiene 2 filas y 4 columnas.

Paso 5

Podemos tener tensores más avanzados. Por ejemplo, un tensor que es una matriz de matrices y un tensor que es una matriz de matrices de matrices. Podemos seguir, pero eso es mejor dejarlo para otra publicación.

comida para llevar

  • Los tensores representan cosas u objetos matemáticamente
  • Si el número que representa un objeto es único, es decir, tiene una dimensión, se le llama scalar. Por ejemplo:
    dollar_sign = 1
    
  • Si una representación particular tiene más de una dimensión, este tensor se llama vector. Por ejemplo:
    price_of_ice_cream_A = (1, 5, 1, 0)
    
  • Cuando un tensor tiene información sobre varias cosas, como los precios de varios helados, se le llama matriz. Una matriz puede verse como una tabla, en la que cada fila contiene información sobre un elemento en particular. Por ejemplo:
    prices_of_ice_creams = [ 1 5 1 0 
                             2 5 2 0 ]
    

    Aquí cada fila contiene la información del precio de un helado.

  • Los tensores pueden ser escalares, vectores, matrices o una combinación de ellos.
  • Puedes mirar los vectores como un grupo de escalares.
  • Puede ver las matrices como un grupo de vectores.
  • Un vector es una secuencia de números; una matriz, lista o tupla, etc., dependiendo del lenguaje de programación utilizado. El número de dimensiones de un vector se refiere al número de elementos que contiene. [1, 2, 3] es un vector tridimensional, y [2, 3, 4, 5, 6] es un vector de 5 dimensiones.
  • Una matriz es como una tabla y puede tener filas y columnas.
  • Una matriz se puede describir por el número de filas y columnas. Lo siguiente tiene 2 filas y 2 columnas, y se llama matriz 2X2. La primera fila es 1, 5 y la segunda fila es 2, 3. La primera columna, de arriba a abajo, tiene 1, 2 y la segunda columna tiene 5, 3.
a_matrix = [ 1 5
             2 3 ]

Dada esta introducción matemática a los tensores, podemos explorar más a fondo su adopción en informática. Por ejemplo, en Tensorflow, es posible que te encuentres con un tensor que contiene texto y no números… ¡No te preocupes! De todos modos, todo se reduce a números a lo largo de la línea, y si comprende los fundamentos numéricos de la computación, todo encajará.

¡Feliz programación de IA!

Similar Posts

Leave a Reply

Your email address will not be published.