Cálculo rápido de


8

Eu tenho a seguinte pergunta:

Suponha que eu tenha duas matrizes ,X,Y ambas de tamanho m×p e uma matriz gaussiana iid aleatória G de tamanho m×k , mp>k .

Existe uma maneira rápida de calcular exp(XYT)G ? Talvez usando o fato de que X e Y sejam muito menores que XYT ? Aqui, exp() significa expoente de entrada (isto é, de each entrada da matriz). Claramente, sem o expoente, é fácil e pode ser feito simplesmente por X(YTG) , mas o problema é que o expoente em elementos não é mais baixo.

A motivação para a pergunta é multiplicar um núcleo do formulário

Dij=exp(dij) ouDij=exp(dij2)

dij=xiyjxi,yiRp

Uma solução aproximada também é boa.


5
Acho a pergunta clara (infelizmente não tenho nenhuma ideia), mas o fato de o exponencial ser componente do componente acho que enganará muitas pessoas - é uma notação muito padrão para a matriz exponencial , especialmente na teoria das EDOs e EDPs. Você poderia reformular o título um pouco? exp(A)
21420 Kirill

Definir rápido? Você quer dizer de maneira vetorizada sem fazer um loop por toda a matriz ? XYT
Nligi

Complexidade computacional menor que . O(m2k)
Gil

1
Artigo do NIPS'16 que pode ser relevante papers.nips.cc/paper/6246-orthogonal-random-features
Memming

1
Eu olhei para o jornal, é muito útil. Obrigado! @Memming
Gil

Respostas:


1

Se as aproximações forem suficientes, talvez possamos começar desenvolvendo o operador seguinte maneira: Observe que os termos de potência seguem sua notação em elementos e consulte os poderes de Hadamard, abusando levemente das convenções padrão.exp

exp(Z)=k=0Zkk!=1+Z+Z22+Z36+Z424+...

Isso oferece possibilidades para reescrever a expressão: onde sou uma matriz de identidade de tamanho apropriado. Se alguém pudesse viver com aproximações de primeira ordem, então: resultando em uma operação mais fácil. Para aproximações de ordem superior, você gostaria de descobrir a solução para o poder Hadamard, que provavelmente é um pouco mais difícil ou ainda não vi uma solução imediata.

exp(XYT)G=(IXYT+(XYT)22(XYT)36+(XYT)424...)G=GXYTG+(XYT)2G2(XYT)3G6+(XYT)4G24...
I
exp(XYT)G=GXYTG+O(max(|XYT|)2)GXYTG=GX(YTG)

Boa ideia. Pequenos detalhes: que deve ser algo como . O(n2)O((XY)2)
Federico Poloni

@FedericoPoloni, eu concordo. Se você pudesse introduzir uma notação mais apropriada do que usar as normas das matrizes, ficaria feliz em atualizar.
Tolga Birdal

Bem, o uso de normas parece adequado o suficiente para mim, mas se você preferir, pode escrevê-lo como . O(max(|XYT|)2)
Federico Poloni

ok, atualizei.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.