Matrizes aleatórias com restrições no comprimento da linha e da coluna


25

Preciso gerar matrizes não quadradas aleatórias com linhas e colunas , elementos distribuídos aleatoriamente com média = 0 e restritos de forma que o comprimento (norma L2) de cada linha seja e o comprimento de cada coluna seja . Equivalentemente, a soma dos valores quadrados é 1 para cada linha e para cada coluna.C 1 RC1 RRCRC

Até agora, encontrei uma maneira de conseguir isso: simplesmente inicialize os elementos da matriz aleatoriamente (por exemplo, a partir de uma distribuição uniforme, normal ou laplace com média zero e variação arbitrária) e normalize alternadamente linhas e colunas com , terminando com normalização de linha. Isso parece convergir rapidamente para o resultado desejado (por exemplo, para e , a variação do comprimento da coluna é tipicamente ~ após iterações), mas não tenho certeza se posso depender dessa taxa de convergência rápida em geral (para várias dimensões da matriz e distribuições de elementos iniciais).R = 40 C = 80 0,00001 2length=1R=40C=80 0.000012

Minha pergunta é a seguinte: existe uma maneira de alcançar o resultado desejado ( , ) diretamente sem iterar entre normalização de linha / coluna? Por exemplo, algo como o algoritmo para normalizar um vetor aleatório (inicialize elementos aleatoriamente, meça a soma dos valores quadrados e depois dimensione cada elemento por um escalar comum). Caso contrário, existe uma caracterização simples para a taxa de convergência (por exemplo, número de iterações até erro ) do método iterativo descrito acima?c o l u m n l e n g t h s = row lengths=1 <ϵcolumn lengths=RC<ϵ


11
Isso é bastante semelhante ao algoritmo de Sinkhorn-Knopp, também conhecido como ajuste proporcional iterativo.
cardeal

6
Além disso, você deve definir o que quer dizer com matrizes "aleatórias". Por exemplo, o procedimento que você descreve (quase sem dúvida) não produzirá matrizes aleatórias uniformemente sobre o espaço desejado.
cardeal

11
@ cardinal Bom ponto. Mas observe que você pode pelo menos obter distribuições (marginais) idênticas para todos os componentes pós-multiplicando por um par de matrizes de permutação aleatória (para organizar aleatoriamente linhas e colunas).
whuber

11
@ whuber: Sim, embora a distribuição conjunta ainda possa ser bastante estranha. Por "pós-multiplicação", presumo que você queira dizer multiplicar à esquerda e direita "pós-convergência" (em vez de, por exemplo, multiplicar à direita).
cardeal

9
Na verdade, depois de um pouco de reflexão, acho que o algoritmo é exatamente o algoritmo de Sinkhorn-Knopp com uma modificação muito pequena. Seja sua matriz original e seja uma matriz do mesmo tamanho, de modo que . Então, seu algoritmo é equivalente à aplicação de Sinkhorn-Knopp em , onde na etapa final você recupera o formulário desejado usando . Sinkhorn-Knopp é garantido para convergir, exceto em circunstâncias bastante patológicas. Ler sobre isso deve ser muito útil. Y Y i j = X 2 i j Y X i j = s g n ( X i j ) XYYij=Xij2YX^ij=sgn(Xij)Yij
cardeal

Respostas:


6

Como @cardinal disse em um comentário:

Na verdade, depois de um pouco de reflexão, acho que o algoritmo é exatamente o algoritmo de Sinkhorn-Knopp com uma modificação muito pequena. Seja sua matriz original e seja uma matriz do mesmo tamanho, de modo que . Então, seu algoritmo é equivalente à aplicação de Sinkhorn-Knopp em , onde na etapa final você recupera o formulário desejado usando . Sinkhorn-Knopp é garantido para convergir, exceto em circunstâncias bastante patológicas. Ler sobre isso deve ser muito útil.Y Y i j = X 2 i j Y X i j = s g n ( X i j ) XYYij=Xij2YX^ij=sgn(Xij)Yij

... parece que o algoritmo iterativo que sugeri na pergunta original é muito semelhante ao algoritmo de Sinkhorn-Knopp. Curiosamente, também parece muito semelhante ao ajuste proporcional iterativo (IPF), que, conforme descrito na página da IPF na Wikipédia, está relacionado ao método de Newton e à maximização de expectativas (todos têm o mesmo limite).

Esses métodos iterativos são frequentemente aplicados a problemas que não possuem uma solução de formulário fechado, portanto, assumirei que a resposta à pergunta é negativa: não há como alcançar a solução desejada sem a iteração de linha / coluna.


(+1) Para seu interesse contínuo nesta questão e seu acompanhamento independente. :-)
cardeal
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.