¿Por qué la repentina fascinación por los tensores?

171

Últimamente me he dado cuenta de que muchas personas están desarrollando equivalentes de tensor de muchos métodos (factorización de tensor, núcleos de tensor, tensores para modelar temas, etc.) Me pregunto, ¿por qué el mundo de repente está fascinado con los tensores? ¿Hay documentos recientes / resultados estándar que sean particularmente sorprendentes, que hayan provocado esto? ¿Es computacionalmente mucho más barato de lo que se sospechaba anteriormente?

No estoy siendo simplista, sinceramente estoy interesado, y si hay alguna sugerencia en los documentos sobre esto, me encantaría leerlos.

YS
fuente
25
Parece que la única característica de retención que los "tensores de datos grandes" comparten con la definición matemática habitual es que son matrices multidimensionales. Por lo tanto, diría que los tensores de big data son una forma comercial de decir "matriz multidimensional", porque dudo mucho que la gente de aprendizaje automático se preocupe por las simetrías o las leyes de transformación que disfrutan los tensores habituales de las matemáticas y la física, especialmente su utilidad en la formación de ecuaciones libres de coordenadas.
Alex R.
2
@AlexR. sin invariancia a las transformaciones no hay tensores
Aksakal
2
@ Aksakal Ciertamente estoy familiarizado con el uso de tensores en física. Mi punto sería que las simetrías en los tensores físicos provienen de la simetría de la física, no algo esencial en la definición de tensor.
aginensky
3
@aginensky Si un tensor no fuera más que una matriz multidimensional, ¿por qué las definiciones de los tensores que se encuentran en los libros de texto de matemáticas suenan tan complicadas? De Wikipedia: "Los números en la matriz multidimensional se conocen como los componentes escalares del tensor ... Así como los componentes de un vector cambian cuando cambiamos la base del espacio vectorial, los componentes de un tensor también cambian bajo tal transformación. Cada tensor viene equipado con una ley de transformación que detalla cómo los componentes del tensor responden a un cambio de base ". En matemáticas, un tensor no es solo una matriz.
littleO
44
Solo algunas reflexiones generales sobre esta discusión: creo que, al igual que con los vectores y las matrices, la aplicación real a menudo se convierte en una instanciación mucho más simplificada de una teoría mucho más rica. Estoy leyendo este artículo con más profundidad: epubs.siam.org/doi/abs/10.1137/07070111X?journalCode=siread y una cosa que realmente me impresiona es que las herramientas "representacionales" para matrices (valores propios y descomposiciones de valores singulares) tener generalizaciones interesantes en órdenes superiores. Estoy seguro de que también hay muchas más propiedades hermosas, más allá de un buen contenedor para obtener más índices. :)
YS

Respuestas:

89

Los tensores a menudo ofrecen representaciones de datos más naturales, por ejemplo, considere el video, que consiste en imágenes obviamente correlacionadas a lo largo del tiempo. Usted puede convertir esto en una matriz, pero simplemente no es natural o intuitiva (lo que significa que sean una factorización de alguna matriz de representación de vídeo?).

Los tensores están en tendencia por varias razones:

  • nuestra comprensión del álgebra multilineal está mejorando rápidamente, específicamente en varios tipos de factorizaciones, lo que a su vez nos ayuda a identificar nuevas aplicaciones potenciales (por ejemplo, análisis de componentes de múltiples vías )
  • Están surgiendo herramientas de software (por ejemplo, Tensorlab ) y están siendo bienvenidas
  • Las aplicaciones de Big Data a menudo se pueden resolver usando tensores, por ejemplo , sistemas de recomendación , y Big Data en sí mismo está de moda
  • aumentos en el poder computacional, ya que algunas operaciones de tensor pueden ser fuertes (esta es también una de las principales razones por las que el aprendizaje profundo es tan popular ahora)
Marc Claesen
fuente
99
En cuanto a la potencia computacional: creo que lo más importante es que el álgebra lineal puede ser muy rápido en las GPU, y últimamente han obtenido memorias más grandes y más rápidas, esa es la mayor limitación al procesar grandes datos.
Davidmh
66
La respuesta de Marc Claesen es buena. David Dunson, distinguido profesor de estadística en Duke, ha sido uno de los exponentes clave de los enfoques de modelado basados ​​en tensor como en esta presentación, Regresión del tensor bayesiano . icerm.brown.edu/materials/Slides/sp-f12-w1/…
Mike Hunter
Como lo mencionó David, los algoritmos de Tensor a menudo se prestan bien al paralelismo, en el cual el hardware (como los aceleradores de GPU) cada vez es mejor.
Thomas Russell
1
Asumí que las mejores capacidades de memoria / CPU estaban jugando un papel, pero la reciente explosión de atención fue interesante; Creo que debe ser debido a muchos éxitos sorprendentes recientes con sistemas de recomendación, y quizás también kernels para SVM, etc. ¡Gracias por los enlaces! grandes lugares para comenzar a aprender sobre estas cosas ...
YS
55
Si almacena un video como una matriz multidimensional, no veo cómo esta matriz multidimensional tendría alguna de las propiedades de invariancia que se supone que tiene un tensor. No parece que la palabra "tensor" sea apropiada en este ejemplo.
littleO
73

Creo que su pregunta debe coincidir con una respuesta que sea igualmente fluida y de mente abierta como la pregunta misma. Entonces, aquí están mis dos analogías.

Primero, a menos que sea un matemático puro, probablemente le enseñaron probabilidades y estadísticas univariantes primero. Por ejemplo, lo más probable es que su primer ejemplo OLS haya sido probablemente en un modelo como este: Lo más probable es que haya las estimaciones minimizando realmente la suma de mínimos cuadrados: Luego, escribe los FOC s para los parámetros y obtiene la solución:

yi=a+bxi+ei
TSS=i(yia¯b¯xi)2
TTS
TTSa¯=0

Luego, te dicen que hay una manera más fácil de hacer esto con notación vectorial (matriz):

y=Xb+e

y el TTS se convierte en:

TTS=(yXb¯)(yXb¯)

Los FOC son:

2X(yXb¯)=0

Y la solución es

b¯=(XX)1Xy

Si eres bueno en álgebra lineal, seguirás con el segundo enfoque una vez que lo hayas aprendido, porque en realidad es más fácil que escribir todas las sumas en el primer enfoque, especialmente una vez que entras en las estadísticas multivariadas.

Por lo tanto, mi analogía es que pasar de las matrices a los tensores es similar a pasar de los vectores a las matrices: si conoce los tensores, algunas cosas se verán más fáciles de esta manera.

Segundo, ¿de dónde vienen los tensores? No estoy seguro de toda la historia de esto, pero los aprendí en mecánica teórica. Ciertamente, teníamos un curso sobre tensores, pero no entendía cuál era el trato con todas estas formas elegantes de intercambiar índices en ese curso de matemáticas. Todo comenzó a tener sentido en el contexto del estudio de las fuerzas de tensión.

Entonces, en física también comienzan con un ejemplo simple de presión definida como fuerza por unidad de área, por lo tanto: Esto significa que puede calcular el vector de fuerza multiplicando la presión (escalar) por la unidad de área (vector normal). Es entonces cuando tenemos solo una superficie plana infinita. En este caso solo hay una fuerza perpendicular. Un globo grande sería un buen ejemplo.

F=pdS
FpdS

Sin embargo, si está estudiando la tensión dentro de los materiales, está tratando con todas las direcciones y superficies posibles. En este caso, tiene fuerzas sobre cualquier superficie dada que tira o empuja en todas las direcciones, no solo las perpendiculares. Algunas superficies están desgarradas por fuerzas tangenciales "de lado", etc. Por lo tanto, su ecuación se convierte en: La fuerza sigue siendo un vector y el área de la superficie todavía está representada por su vector normal , pero es un tensor ahora no es escalar.

F=PdS
FdSP

Ok, un escalar y un vector también son tensores :)

Otro lugar donde los tensores se muestran naturalmente es la matriz de covarianza o correlación. Solo piense en esto: ¿cómo transformar una matriz de correlación en otra ? Te das cuenta de que no podemos hacerlo de esta manera: donde porque necesitamos mantener todos los positivos semi-definidos.C0C1

Cθ(i,j)=C0(i,j)+θ(C1(i,j)C0(i,j)),
θ[0,1]Cθ

Entonces, tendríamos que encontrar la ruta manera que , donde es una pequeña perturbación de una matriz. Hay muchos caminos diferentes, y podríamos buscar los más cortos. Así es como entramos en la geometría riemanniana, múltiples y ... tensores.δCθC1=C0+θδCθδCθ

ACTUALIZACIÓN: ¿qué es tensor, de todos modos?

@amoeba y otros tuvieron una discusión animada sobre el significado de tensor y si es lo mismo que una matriz. Entonces, pensé que un ejemplo está en orden.

Digamos, vamos a un bazar a comprar comestibles, y hay dos tipos de comerciantes, y . Nos dimos cuenta de que si prestamos dólares para y dólares para continuación nos vende libras de manzanas, y vende US naranjas. Por ejemplo, si pagamos tanto 1 dólar, es decir, , entonces debemos obtener 1 libra de manzanas y 1,5 de naranjas.d1d2x 1 d 1 x 2 d 2 d 1 y 1 = 2 x 1 - x 2 d 2 y 2 = - 0.5 x 1 +x1d1x2d2d1y1=2x1x2d2y2=0.5x1+2x2x1=x2=1

Podemos expresar esta relación en forma de matriz :P

 2   -1
-0.5  2 

Entonces los comerciantes producen esta cantidad de manzanas y naranjas si les pagamos dólares: x

y=Px

Esto funciona exactamente como una matriz por multiplicación vectorial.

Ahora, digamos que en lugar de comprar los productos de estos comerciantes por separado, declaramos que hay dos paquetes de gastos que utilizamos. Pagamos ambos 0.71 dólares, o pagamos 0.71 dólares y exigimos 0.71 dólares de . Como en el caso inicial, vamos a un bazar y gastamos en el paquete uno y en el paquete 2.d1d2z1z2

Entonces, veamos un ejemplo donde gastamos solo en el paquete 1. En este caso, el primer comerciante obtiene dólares, y el segundo comerciante obtiene el mismo . Por lo tanto, debemos obtener las mismas cantidades de productos que en el ejemplo anterior, ¿no?z1=2x1=1x2=1

PP

P

P

d¯1,d¯2diid¯1,d¯2, que también es una simple rotación de la primera base 45 grados en sentido antihorario. También es una descomposición de PC de primera base. Por lo tanto, estamos diciendo que cambiar a los paquetes es un simple cambio de coordenadas, y no debería cambiar los cálculos. Tenga en cuenta que esta es una restricción externa que impusimos al modelo. No proviene de las propiedades matemáticas de las matrices.

x=x1d¯1+x2d¯2

P=ijpijd¯id¯j
y=y1d¯1+y2d¯2yii

y=Pz

z=z1d¯1+z2d¯2
y=y1d¯1+y2d¯2
P=ijpijd¯id¯j
PAd¯=Ad¯

x1=x2=1z1=0.71,z2=0

Aksakal
fuente
2
Me confundí por aquí: So, let's look at an example where we spend just z1=1.42 on bundle 1. In this case, the first merchant gets x1=1 dollars, and the second merchant gets the same x2=1.antes dices que el primer paquete es que nosotros pay both 0.71 dollars. Entonces, gastar 1.42 en el primer paquete debería obtener 0.71 cada uno y no 1, ¿no?
ameba
d¯1/2+d¯2/22d¯1+d¯2
2
d¯1/2+d¯2/2
@ Aksakal Esto es genial, ¡gracias! Creo que tiene un error tipográfico en la última línea, donde dice x1 = x2 = 1 (correcto) y z1 = 0.71, z2 = 0. Suponiendo que entendí todo correctamente, z1 debería ser 1.42 (o 1.41, que está un poco más cerca) a 2 ^ 0.5).
Mike Williamson
71

Esta no es una respuesta a su pregunta, sino un comentario extendido sobre el tema que se ha planteado aquí en comentarios de diferentes personas, a saber: ¿los "tensores" de aprendizaje automático son lo mismo que los tensores en matemáticas?

Ahora, según Cichoki 2014, Era of Big Data Processing: A New Approach via Tensor Networks and Tensor Decompositions , y Cichoki et al. 2014, descomposiciones de tensor para aplicaciones de procesamiento de señales ,

Un tensor de orden superior puede interpretarse como una matriz de múltiples vías, [...]

Un tensor puede considerarse como una matriz numérica de múltiples índices, [...]

Tensores (es decir, matrices multidireccionales) [...]

Los llamados tensores en el aprendizaje automático

1000640×480n×p

¡No es así como se definen los tensores en matemáticas y física!

VVVp×pp×p×ppV

3×34×44×4×4×4 V

VWpVqW

V

p×ppVn×pX

XWVWnVpXVWXWV

XRn×pRn×pn×p

Mi conclusión es: (a) los tensores de aprendizaje automático no son tensores matemáticos / físicos, y (b) tampoco es útil verlos como elementos de productos tensoriales.

En cambio, son generalizaciones multidimensionales de matrices. Desafortunadamente, no existe un término matemático establecido para eso, por lo que parece que este nuevo significado de "tensor" ha llegado para quedarse.

ameba
fuente
19
p
10
n3n
44
@amoeba, en la programación, las matrices multidimensionales generalmente se llaman matrices , pero algunos lenguajes como MATLAB las llamarían matrices . Por ejemplo, en FORTRAN las matrices pueden tener más de 2 dimensiones. En lenguajes como C / C ++ / Java, las matrices son unidimensionales, pero puede tener matrices de matrices, haciéndolas funcionar como matrices multidimensionales también. MATLAB admite 3 o más matrices dimensionales en la sintaxis.
Aksakal
3
Eso es muy interesante. Espero que enfatices ese punto. Pero tenga cuidado de no confundir un conjunto con un espacio vectorial que determine, porque la distinción es importante en las estadísticas. En particular (para recoger uno de sus ejemplos), aunque una combinación lineal de personas no tiene sentido, una combinación lineal de funciones de valor real en un conjunto de personas es significativa e importante. Es la clave para resolver la regresión lineal, por ejemplo.
whuber
8
Según T. Kolda, B, Bada, "Descomposición de tensor y aplicaciones" SIAM Review 2009, epubs.siam.org/doi/pdf/10.1137/07070111X 'Un tensor es una matriz multidimensional. Más formalmente, un tensor de orden N o de orden N es un elemento del producto tensor de N espacios vectoriales, cada uno de los cuales tiene su propio sistema de coordenadas. Esta noción de tensores no debe confundirse con los tensores en física e ingeniería (como los tensores de tensión), que generalmente se conocen como campos tensores en matemáticas "
Mark L. Stone,
14

Como alguien que estudia y construye redes neuronales y ha formulado esta pregunta repetidamente, he llegado a la conclusión de que tomamos prestados aspectos útiles de la notación tensorial simplemente porque hacen que la derivación sea mucho más fácil y mantienen nuestros gradientes en sus formas nativas. La regla de la cadena tensora es una de las herramientas de derivación más elegantes que he visto. Otras anotaciones tensoras fomentan simplificaciones computacionalmente eficientes que son simplemente una pesadilla para encontrar cuando se usan versiones extendidas comunes de cálculo vectorial.

En el cálculo vectorial / matricial, por ejemplo, hay 4 tipos de productos matriciales (Hadamard, Kronecker, Ordinary y Elementwise), pero en el cálculo tensorial solo hay un tipo de multiplicación, pero cubre todas las multiplicaciones matriciales y más. Si quiere ser generoso, interprete tensor como una matriz multidimensional para la que pretendemos usar cálculo basado en tensor para encontrar derivadas, no porque los objetos que estamos manipulando sean tensores .

Con toda honestidad, probablemente llamamos tensores a nuestras matrices multidimensionales porque a la mayoría de los expertos en aprendizaje automático no les importa mucho adherirse a las definiciones de matemáticas o física de alto nivel. La realidad es que solo estamos tomando prestados Convenciones y Cálculos de Suma de Einstein bien desarrollados, que generalmente se usan al describir tensores y no queremos decir cálculo basado en la convención de suma de Einstein una y otra vez. Tal vez algún día podamos desarrollar un nuevo conjunto de notaciones y convenciones que roben solo lo que necesitan del cálculo del tensor específicamente para analizar redes neuronales, pero como un campo joven que lleva tiempo.

James Ryland
fuente
Registre y / o combine sus cuentas (puede encontrar información sobre cómo hacerlo en la sección Mi cuenta de nuestro centro de ayuda ), luego podrá editar y comentar sus propias respuestas.
gung
10

Ahora estoy de acuerdo con la mayoría del contenido de las otras respuestas. Pero voy a jugar al abogado del Diablo en un punto. Nuevamente, fluirá libremente, así que disculpas ...

Google anunció un programa llamado Tensor Flow para el aprendizaje profundo. Esto me hizo preguntarme qué era 'tensor' sobre el aprendizaje profundo, ya que no podía hacer la conexión con las definiciones que había visto.

ingrese la descripción de la imagen aquí

iy

yi=σ(βijxj)

Ahora la idea es encadenar un montón de tales transformaciones para llegar a una representación útil de las coordenadas originales. Entonces, por ejemplo, después de la última transformación de una imagen, una regresión logística simple producirá una excelente precisión de clasificación; mientras que en la imagen en bruto definitivamente no lo haría.

Ahora, lo que parece haberse perdido de vista son las propiedades de invariancia que se buscan en un tensor adecuado. Particularmente cuando las dimensiones de las variables transformadas pueden ser diferentes de una capa a otra. [Por ejemplo, algunas de las cosas que he visto en los tensores no tienen sentido para los jacobianos no cuadrados; es posible que me falten algunos métodos]

Lo que se ha retenido es la noción de transformaciones de variables, y que ciertas representaciones de un vector pueden ser más útiles que otras para tareas particulares. La analogía es si tiene más sentido abordar un problema en coordenadas cartesianas o polares.


EDITAR en respuesta a @Aksakal:

El vector no se puede preservar perfectamente debido a los cambios en el número de coordenadas. Sin embargo, en cierto sentido, al menos la información útil puede conservarse bajo transformación. Por ejemplo, con PCA podemos soltar una coordenada, por lo que no podemos invertir la transformación, pero la reducción de dimensionalidad puede ser útil de todos modos. Si todas las transformaciones sucesivas fueran invertibles, podría asignar desde la penúltima capa al espacio de entrada. Tal como está, solo he visto modelos probabilísticos que permiten eso (RBM) por muestreo.

conjeturas
fuente
1
En el contexto de las redes neuronales, siempre asumí que los tensores actuaban como matrices multidimensionales. ¿Puede explicar cómo las propiedades de invariancia están ayudando a la clasificación / representación?
YS
Tal vez no estaba claro anteriormente, pero me parece, si la interpretación es correcta, el objetivo de las propiedades invariantes se ha eliminado. Lo que parece haberse mantenido es la idea de transformaciones variables.
conjeturas
r¯
¿Pero no es eso una propiedad de la transformación más que el tensor? Al menos con las transformaciones de tipo lineal y de elementos sabios, que parecen más populares en redes neuronales, están igualmente presentes con vectores y matrices; ¿Cuáles son los beneficios adicionales de los tensores?
YS
1
@conjectures, PCA es solo una rotación y proyección. Es como girar el espacio N-dimensional a la base de una PC, luego proyectar al subespacio. Los tensores se usan en situaciones similares en física, por ejemplo, al observar las fuerzas en las superficies dentro de los cuerpos, etc.
Aksakal
7

Aquí hay un extracto ligeramente editado (para el contexto) de Factorización de tensor no negativo con aplicaciones a estadísticas y visión por computadora, A. Shashua y T. Hazan, que llega al corazón de por qué al menos algunas personas están fascinadas con los tensores.

Cualquier problema n-dimensional se puede representar en forma bidimensional mediante la concatenación de dimensiones. Así, por ejemplo, el problema de encontrar una descomposición no negativa de bajo rango de un conjunto de imágenes es un 3-NTF (Factorización de tensor no negativo), con las imágenes formando las rebanadas de un cubo 3D, pero también se puede representar como un problema de NMF (Factorización de matriz no negativa) al vectorizar las imágenes (imágenes que forman columnas de una matriz).

Hay dos razones por las cuales una representación matricial de una colección de imágenes no sería apropiada:

  1. La redundancia espacial (píxeles, no necesariamente vecinos, que tienen valores similares) se pierde en la vectorización, por lo que esperaríamos una factorización menos eficiente, y
  2. Una descomposición de NMF no es única, por lo tanto, incluso si existe un modelo generativo (de partes locales), el NMF no necesariamente se movería en esa dirección, lo cual ha sido verificado empíricamente por Chu, M., Diele, F., Plemmons, R., & Ragni, S. "Optimización, cálculo e interpretación de factorizaciones matriciales no negativas" SIAM Journal on Matrix Analysis, 2004. Por ejemplo, las partes invariables en el conjunto de imágenes tenderían a formar fantasmas en todos los factores y contaminarían el efecto de dispersión. Un NTF es casi siempre único, por lo que esperaríamos que el esquema de NTF se mueva hacia el modelo generativo, y específicamente no sea influenciado por partes invariantes.
Mark L. Stone
fuente
6

[EDITAR] Acabo de descubrir el libro de Peter McCullagh, Tensor Methods in Statistics .

Los tensores muestran propiedades de interés en la identificación de mezclas desconocidas en una señal (o una imagen), especialmente en torno a la noción de descomposición del tensor canónico poliádico (CP), ver por ejemplo Tensores: una breve introducción , P. Comon, 2014. El campo es conocido bajo el nombre "separación de fuente ciega (BSS)":

Las descomposiciones de tensor están en el núcleo de muchos algoritmos de separación de fuente ciega (BSS), ya sea explícita o implícitamente. En particular, la descomposición del tensor canónico poliádico (PC) juega un papel central en la identificación de mezclas subdeterminadas. A pesar de algunas similitudes, la PC y la descomposición del valor singular (SVD) son bastante diferentes. En términos más generales, los tensores y las matrices disfrutan de diferentes propiedades, como se señala en esta breve introducción.

Recientemente se han obtenido algunos resultados de unicidad para tensores de tercer orden: sobre la unicidad de la descomposición canónica poliádica de tensores de tercer orden ( parte 1 , parte 2 ), I. Domanov et al. 2013.

Las descomposiciones de tensor son nodas que a menudo están conectadas a descomposiciones dispersas, por ejemplo, imponiendo una estructura sobre los factores de descomposición (ortogonalidad, Vandermonde, Hankel) y un rango bajo, para acomodar con no unicidad.

Con una creciente necesidad de análisis de datos incompletos y determinación de mediciones complejas de conjuntos de sensores, los tensores se utilizan cada vez más para completar la matriz, el análisis de variables latentes y la separación de fuentes.

Nota adicional: aparentemente, la descomposición canónica poliádica también es equivalente a la descomposición Waring de un polinomio homogéneo como una suma de potencias de formas lineales, con aplicaciones en la identificación del sistema (bloques estructurados, Wiener-Hammerstein paralelos o modelos no lineales de espacio de estado).

Laurent Duval
fuente
3

Puedo recomendar respetuosamente mi libro: Kroonenberg, PM Applied Multiway Data Analysis y Smilde et al. Análisis de múltiples vías. Aplicaciones en las Ciencias Químicas (ambas Wiley). De interés también puede ser mi artículo: Kroonenberg, PM (2014). Historia del análisis de componentes de múltiples vías y análisis de correspondencia de tres vías. En Blasius, J. y Greenacre, MJ (Eds.). Visualización y verbalización de datos (págs. 77–94). Nueva York: Chapman & Hall / CRC. ISBN 9781466589803.

Estas referencias hablan de datos de múltiples vías en lugar de tensores, pero se refieren a la misma área de investigación.

PM Kroonenberg
fuente
-1

Es cierto que las personas en Machine Learning no ven los tensores con el mismo cuidado que los matemáticos y los médicos. Aquí hay un documento que puede aclarar esta discrepancia: Comon P., "Tensores: una breve introducción" IEEE Sig. Proc. Revista , 31 de mayo de 2014

Moun
fuente
55
¿La distinción entre un tensor en matemáticas / física y un tensor en aprendizaje automático es realmente una cuestión de "cuidado"? Parece que la gente de aprendizaje automático usa "tensor" como un término genérico para matrices de números (escalar, vector, matriz y matrices con 3 o más ejes, por ejemplo, en TensorFlow), mientras que "tensor" en un contexto matemático / físico tiene un significado diferente sentido. Creo que sugerir que la pregunta es sobre "cuidado" es caracterizar erróneamente el uso como "incorrecto" en la capacidad de aprendizaje automático, cuando en realidad el contexto de aprendizaje automático no tiene la intención de replicar con precisión el uso matemático / físico.
Sycorax