Ultimamente, tenho notado que muitas pessoas estão desenvolvendo equivalentes a tensores de vários métodos (fatoração de tensão, núcleos de tensor, tensores para modelagem de tópicos etc.). Estou me perguntando, por que o mundo de repente é fascinado por tensores? Existem trabalhos recentes / resultados padrão que são particularmente surpreendentes, que trouxeram isso? É computacionalmente muito mais barato do que se suspeitava anteriormente?
Não estou sendo simplista, sinceramente estou interessado e, se houver alguma indicação para os papéis sobre isso, eu adoraria lê-los.
Respostas:
Os tensores geralmente oferecem representações mais naturais dos dados, por exemplo, considere o vídeo, que consiste em imagens obviamente correlacionadas ao longo do tempo. Você pode transformar isso em uma matriz, mas simplesmente não é natural ou intuitivo (o que significa uma fatoração de alguma representação matricial do vídeo?).
Os tensores estão tendendo por vários motivos:
fonte
Eu acho que sua pergunta deve ser combinada com uma resposta que seja igualmente livre e de mente aberta como a própria pergunta. Então, aqui estão minhas duas analogias.
Primeiro, a menos que você seja um matemático puro, provavelmente foi ensinado probabilidades e estatísticas univariadas primeiro. Por exemplo, provavelmente seu primeiro exemplo de OLS provavelmente estava em um modelo como este: Muito provavelmente, você as estimativas, minimizando realmente a soma dos mínimos quadrados: Em seguida, você escreve o FOC s para os parâmetros e obtém a solução:yi=a+bxi+ei TSS=∑i(yi−a¯−b¯xi)2 ∂ T T S∂TTS∂a¯=0
Mais tarde, você será informado de que há uma maneira mais fácil de fazer isso com a notação de vetor (matriz):y=Xb+e
e o TTS se torna:TTS=(y−Xb¯)′(y−Xb¯)
Os FOCs são:2X′(y−Xb¯)=0
E a solução éb¯=(X′X)−1X′y
Se você é bom em álgebra linear, seguirá a segunda abordagem depois de aprendê-la, porque na verdade é mais fácil do que escrever todas as somas na primeira abordagem, especialmente depois de entrar em estatísticas multivariadas.
Portanto, minha analogia é que mover para tensores de matrizes é semelhante a mover de vetores para matrizes: se você souber tensores, algumas coisas parecerão mais fáceis dessa maneira.
Segundo, de onde vêm os tensores? Não tenho certeza de toda a história dessa coisa, mas as aprendi em mecânica teórica. Certamente, tínhamos um curso sobre tensores, mas eu não entendia qual era o problema com todas essas maneiras sofisticadas de trocar índices naquele curso de matemática. Tudo começou a fazer sentido no contexto do estudo das forças de tensão.
Então, na física, eles também começam com um exemplo simples de pressão definido como força por unidade de área, portanto: Isso significa que você pode calcular o vetor de força multiplicando a pressão (escalar) pela unidade de área (vetor normal). É quando temos apenas uma superfície plana infinita. Neste caso, há apenas uma força perpendicular. Um balão grande seria um bom exemplo.F=p⋅dS F p dS
No entanto, se você estiver estudando a tensão dentro dos materiais, estará lidando com todas as direções e superfícies possíveis. Nesse caso, você tem forças em qualquer superfície puxando ou empurrando em todas as direções, não apenas perpendiculares. Algumas superfícies são separadas por forças tangenciais "laterais" etc. Então, sua equação se torna: A força ainda é um vetor e a área da superfície ainda é representada por seu vetor normal , mas é um tensor agora, não um escalar.F=P⋅dS F dS P
Ok, um escalar e um vetor também são tensores :)
Outro local em que os tensores aparecem naturalmente são as matrizes de covariância ou correlação. Basta pensar no seguinte: como transformar uma vez a matriz de correlação em outra ? Você percebe que não podemos fazer isso da seguinte maneira: onde porque precisamos manter todos os positivos semi-definidos.C0 0 C1 Cθ( i , j ) = C0 0( i , j ) + θ ( C1( i , j ) - C0 0( i , j ) ) , θ ∈ [ 0 , 1 ] Cθ
Portanto, teríamos que encontrar o caminho forma que , onde seja um pequeno distúrbio para uma matriz. Existem muitos caminhos diferentes, e poderíamos procurar os mais curtos. É assim que chegamos à geometria Riemanniana, manifolds e ... tensores.δCθ C1= C0 0+ ∫θδCθ δCθ
UPDATE: o que é tensor, afinal?
@amoeba e outros entraram em uma animada discussão sobre o significado de tensor e se é o mesmo que uma matriz. Então, pensei que um exemplo estivesse em ordem.
Digamos, vamos a um bazar para comprar mantimentos, e há dois caras comerciantes, e . Nós percebeu que se nós pagar dólares para e dólares para então nos vende libras de maçãs, e nos vende laranjas. Por exemplo, se pagarmos 1 dólar, ou seja, , devemos obter 1 libra de maçãs e 1,5 de laranjas.d1 d2 x1 d1 x2 d2 d1 y1= 2 x1- x2 d2 y2= - 0,5 x1+ 2 x2 x1= x2= 1
Podemos expressar essa relação na forma de uma matriz :P
Então os comerciantes produzem tanto maçãs e laranjas se lhes pagarmos dólares:x y= Px
Isso funciona exatamente como uma matriz por multiplicação de vetores.
Agora, digamos que, em vez de comprar os produtos desses comerciantes separadamente, declaramos que existem dois pacotes de gastos que utilizamos. Pagamos ambos os 0,71 dólares ou 0,71 dólares e exigimos 0,71 dólares do volta. Como no caso inicial, vamos a um bazar e gastamos no pacote 1 e no pacote 2.d1 d2 z1 z2
Então, vejamos um exemplo em que gastamos apenas no pacote 1. Nesse caso, o primeiro comerciante recebe dólar e o segundo comerciante recebe o mesmo . Portanto, precisamos obter as mesmas quantidades de produtos, como no exemplo acima, não é?z1= 2 x1= 1 x2= 1
Talvez talvez não. Você notou que a matriz não é diagonal. Isso indica que, por alguma razão, quanto um comerciante cobra pelos seus produtos depende também de quanto pagamos ao outro comerciante. Eles devem ter uma idéia de quanto pagá-los, talvez através de rumores? Nesse caso, se começarmos a comprar em pacotes, eles saberão com certeza quanto pagamos a cada um deles, porque declaramos nossos pacotes ao bazar. Nesse caso, como sabemos que a matriz deve permanecer a mesma?P P
Talvez com a informação completa de nossos pagamentos no mercado, as fórmulas de preços também mudem! Isso mudará nossa matriz , e não há como dizer exatamente.P
É aqui que entramos nos tensores. Essencialmente, com tensores, dizemos que os cálculos não mudam quando começamos a negociar em pacotes, em vez de diretamente com cada comerciante. Essa é a restrição, que imporá regras de transformação em , que chamaremos de tensor.P
Particularmente, podemos notar que temos uma base ortonormal , em que significa um pagamento de 1 dólar para um comerciante nada para o outro. Também podemos notar que os pacotes configuráveis também formam uma base ortonormal , que também é uma rotação simples da primeira base 45 graus no sentido anti-horário. É também uma decomposição de PC de primeira base. portanto, estamos dizendo que mudar para os pacotes configuráveis é uma simples mudança de coordenadas e não deve alterar os cálculos. Observe que essa é uma restrição externa que impusemos ao modelo. Não veio de propriedades matemáticas puras de matrizes.d¯1, d¯2 dEu Eu d¯′1, d¯′2
Agora, nossas compras podem ser expressas como um vetor . Os vetores também são tensores, btw. O tensor é interessante: ele pode ser representado como e os mantimentos como . Com compras, significa libra de produtos do comerciante , não os dólares pagos.x = x1d¯1+ x2d¯2 P= ∑eu jpeu jd¯Eud¯j y= y1d¯1+ y2d¯2 yEu Eu
Agora, quando alteramos as coordenadas para agrupar, a equação do tensor permanece a mesma:y= Pz
Isso é legal, mas os vetores de pagamento agora estão em uma base diferente: , enquanto podemos manter os vetores de produção na base antiga . O tensor também muda: . É fácil derivar como o tensor deve ser transformado, será , onde a matriz de rotação é definida como . No nosso caso, é o coeficiente do pacote.z= z1d¯′1+ z2d¯′2 y= y1d¯1+ y2d¯2 P= ∑eu jp′eu jd¯′Eud¯′j PUMA d¯′= A d¯
Podemos elaborar as fórmulas para a transformação tensorial, e elas produzirão o mesmo resultado que nos exemplos com e .x1= x2= 1 z1= 0,71 , z2= 0
fonte
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 você diz que o primeiro pacote é que nóspay both 0.71 dollars
. Portanto, gastar 1,42 no primeiro pacote deve receber 0,71 cada e não 1, não?Esta não é uma resposta para sua pergunta, mas um comentário estendido sobre o assunto que foi levantado aqui em comentários de pessoas diferentes, a saber: os "tensores" de aprendizado de máquina são a mesma coisa que os tensores em matemática?
Agora, de acordo com Cichoki 2014, Era do Big Data Processing: Uma Nova Abordagem via Redes Tensores e Decomposições de Tensores , e Cichoki et al. 2014, Decomposições de Tensores para Aplicações de Processamento de Sinais ,
Portanto, no aprendizado de máquina / processamento de dados, um tensor parece ser simplesmente definido como uma matriz numérica multidimensional. Um exemplo desse tensor 3D seria quadros de vídeo de tamanho. Uma matriz de dados usual é um exemplo de um tensor 2D de acordo com esta definição.640 × 480 n × p1000 640 × 480 n × p
Não é assim que os tensores são definidos em matemática e física!
Um tensor pode ser definido como uma matriz multidimensional que obedece a certas leis de transformação sob a mudança de coordenadas ( consulte Wikipedia ou a primeira frase no artigo MathWorld ). Uma definição melhor, mas equivalente ( veja Wikipedia ) diz que um tensor no espaço vetorial é um elemento de . Note-se que isto significa que, quando representado como matrizes multidimensionais, tensores são de tamanho ou etc., onde é a dimensionalidade da .V ⊗ ... ⊗ V * p × p p × p × p p VV V⊗ … ⊗ V∗ p × p p × p × p p V
Todos os tensores conhecidos em física são assim: o tensor de inércia na mecânica é , o tensor eletromagnético na relatividade especial é , o tensor de curvatura de Riemann na relatividade geral é . Curvatura e tensores eletromagnéticas são realmente campos tensores, que são seções de pacotes tensor (ver por exemplo aqui , mas fica técnico), mas tudo isso é definido sobre um espaço vetorial .3 × 3 4 × 4 4 × 4 × 4 × 4 V
Obviamente, pode-se construir um produto tensorial de um dimensional e dimensional mas seus elementos geralmente não são chamados de "tensores", como declarado, por exemplo, aqui na Wikipedia :V⊗ W p V q W
Um exemplo de um tensor real em estatística seria uma matriz de covariância. É e se transforma de uma maneira particular quando o sistema de coordenadas no espaço de característica dimensional é alterado. É um tensor. Mas uma matriz de dados não é.p × p p V n × p X
Mas podemos pelo menos pensar em como um elemento do produto tensorial , onde é dimensional e é dimensional? Para concretude, deixe as linhas em corresponderem a pessoas (assuntos) e colunas a algumas medidas (características). Uma mudança de coordenadas em corresponde à transformação linear de recursos, e isso é feito nas estatísticas o tempo todo (pense no PCA). Mas uma mudança de coordenadas em parece não corresponder a nada significativo (e exorto qualquer pessoa que tenha um contra-exemplo a me informar nos comentários)X W⊗ V W n V p X V W . Assim, não parece que haja algo ganhou por considerar como um elemento de .X W⊗ V
E, de fato, a notação comum é escrever , onde é um conjunto de todas as matrizes (que, a propósito, são definido como matrizes retangulares de números, sem nenhuma propriedade de transformação assumida).X∈ Rn × p Rn × p n × p
Minha conclusão é: (a) os tensores de aprendizado de máquina não são tensores de matemática / física e (b) também não é útil vê-los como elementos de produtos de tensores.
Em vez disso, são generalizações multidimensionais de matrizes. Infelizmente, não há um termo matemático estabelecido para isso, então parece que esse novo significado de "tensor" chegou para ficar.
fonte
Como alguém que estuda e constrói redes neurais e fez repetidamente essa pergunta, concluí que tomamos emprestados aspectos úteis da notação tensorial simplesmente porque eles facilitam muito a derivação e mantêm nossos gradientes em suas formas nativas. A regra da cadeia tensorial é uma das ferramentas de derivação mais elegantes que eu já vi. Notações adicionais de tensor encorajam simplificações computacionais eficientes que são simplesmente pesadelos para serem encontradas ao usar versões estendidas comuns do cálculo vetorial.
No cálculo Vector / Matrix, por exemplo, existem 4 tipos de produtos matriciais (Hadamard, Kronecker, Ordinary e Elementwise), mas no cálculo tensorial, existe apenas um tipo de multiplicação, mas abrange todas as multiplicações matriciais e muito mais. Se você quer ser generoso, interprete tensor como uma matriz multidimensional para a qual pretendemos usar cálculo baseado em tensor para encontrar derivadas, não que os objetos que estamos manipulando sejam tensores .
Com toda a honestidade, provavelmente chamamos nossos arrays multidimensionais de tensores, porque a maioria dos especialistas em aprendizado de máquina não se preocupa muito em seguir as definições de matemática ou física de alto nível. A realidade é que estamos apenas tomando emprestado Convenções e Cálculos de Soma de Einstein bem desenvolvidos e que são tipicamente usados na descrição de tensores e não queremos dizer repetidamente o cálculo baseado em convenções de soma de Einstein. Talvez um dia possamos desenvolver um novo conjunto de notações e convenções que roubam apenas o que precisam do cálculo tensorial especificamente para analisar redes neurais, mas como um campo jovem que leva tempo.
fonte
Agora, na verdade, eu concordo com a maior parte do conteúdo das outras respostas. Mas vou interpretar o advogado do diabo em um ponto. Novamente, o fluxo será livre, então desculpas ...
O Google anunciou um programa chamado Tensor Flow para aprendizado profundo. Isso me fez pensar o que era 'tensor' no aprendizado profundo, pois não conseguia fazer a conexão com as definições que tinha visto.
Os modelos de aprendizado profundo tratam da transformação de elementos de um espaço para outro. Por exemplo, se considerarmos duas camadas de alguma rede, você pode escrever coordenadas de uma variável transformada como uma função não-linear da camada anterior, usando a notação de soma sofisticada:Eu y
Agora, a idéia é encadear várias dessas transformações para chegar a uma representação útil das coordenadas originais. Assim, por exemplo, após a última transformação de uma imagem, uma regressão logística simples produzirá excelente precisão de classificação; enquanto que na imagem crua definitivamente não.
Agora, o que parece ter sido perdido de vista são as propriedades de invariância procuradas em um tensor adequado. Particularmente quando as dimensões das variáveis transformadas podem ser diferentes de camada para camada. [Por exemplo, algumas das coisas que eu vi nos tensores não fazem sentido para jacobianos não quadrados - talvez eu esteja faltando alguns métodos]
O que foi retido é a noção de transformações de variáveis, e que certas representações de um vetor podem ser mais úteis que outras para tarefas específicas. Analogia é se faz mais sentido resolver um problema nas coordenadas cartesianas ou polares.
EDIT em resposta a @Aksakal:
O vetor não pode ser perfeitamente preservado devido às alterações no número de coordenadas. No entanto, em certo sentido, pelo menos as informações úteis podem ser preservadas em transformação. Por exemplo, com o PCA, podemos descartar uma coordenada, portanto não podemos inverter a transformação, mas a redução da dimensionalidade pode ser útil, no entanto. Se todas as transformações sucessivas forem invertíveis, você poderá mapear de volta da penúltima camada para o espaço de entrada. Como é, só vi modelos probabilísticos que permitem isso (RBMs) por amostragem.
fonte
Aqui está um trecho levemente editado (de contexto) de Fatoração de Tensores Não Negativos com Aplicações em Estatística e Visão Computacional, A. Shashua e T. Hazan, que aborda o porquê de pelo menos algumas pessoas serem fascinadas por tensores.
fonte
[EDIT] Acabei de descobrir o livro de Peter McCullagh, Tensor Methods in Statistics .
Os tensores exibem propriedades de interesse na identificação desconhecida da mistura em um sinal (ou uma imagem), especialmente em torno da noção de decomposição de tensores poládicos canônicos (CP), veja, por exemplo, Tensores: uma breve introdução , P. Comon, 2014. O campo é conhecido sob o nome "separação da fonte cega (BSS)":
Alguns resultados de singularidade foram obtidos recentemente para tensores de terceira ordem: Sobre a singularidade da decomposição poládica canônica de tensores de terceira ordem ( parte 1 , parte 2 ), I. Domanov et al. , 2013.
As decomposições por tensor são formas nodais, muitas vezes ligadas a decomposições esparsas, por exemplo, impondo estrutura aos fatores de decomposição (ortogonalidade, Vandermonde, Hankel) e classificação baixa, para acomodar com não exclusividade.
Com uma crescente necessidade de análise de dados incompleta e determinação de medições complexas a partir de matrizes de sensores, os tensores são cada vez mais utilizados para a conclusão da matriz, análise de variáveis latentes e separação de fontes.
Nota adicional: aparentemente, a decomposição poládica canônica também é equivalente à decomposição de Waring de um polinômio homogêneo como uma soma de potências de formas lineares, com aplicações na identificação de sistemas (modelos de espaço de estado paralelo estruturado em bloco, Wiener-Hammerstein ou não-linear).
fonte
Gostaria de recomendar respeitosamente meu livro: Kroonenberg, PM Applied Multiway Data Analysis e Smilde et al. Análise Multiway. Aplicações nas ciências químicas (ambas Wiley). De interesse também pode ser o meu artigo: Kroonenberg, PM (2014). História da análise de componentes de múltiplas vias e análise de correspondência de três vias. In Blasius, J. e Greenacre, MJ (Eds.). Visualização e verbalização de dados (pp. 77-94). Nova York: Chapman & Hall / CRC. ISBN 9781466589803.
Essas referências falam sobre dados de várias vias em vez de tensores, mas referem-se à mesma área de pesquisa.
fonte
É verdade que as pessoas no Machine Learning não veem os tensores com o mesmo cuidado que os matemáticos e médicos. Aqui está um artigo que pode esclarecer essa discrepância: Comon P., "Tensores: uma breve introdução" IEEE Sig. Proc. Revista , 31 de maio de 2014
fonte