25 votos

Matrices aleatorias con limitaciones en la fila y columna de longitud

Necesito generar al azar no de las matrices cuadradas con R filas y C columnas, elementos distribuidos en forma aleatoria con media = 0, y limitada de forma que la longitud (L2 norma) de cada fila es 1 y la longitud de cada columna es RC. De forma equivalente, la suma de los cuadrados de los valores es de 1 por cada fila y RC para cada columna.

Hasta ahora he encontrado una forma de lograr esto: simplemente inicializar los elementos de la matriz de forma aleatoria (por ejemplo, de un uniforme, normal, o de laplace de distribución con cero significa y arbitraria de la varianza), alternativamente, normalizar las filas y columnas de a length=1, terminando con la fila de normalización. Esto parece converger hacia el resultado deseado con bastante rapidez (por ejemplo, para R=40C=80, la varianza de la longitud de la columna es típicamente ~  0.00001 después 2 iteraciones), pero no estoy seguro de si puedo confiar en este rápido ritmo de convergencia en general (por diversas matriz de dimensiones y elemento inicial de las distribuciones).

Mi pregunta es esta: ¿hay una manera de lograr el resultado deseado (row lengths=1, column lengths=RC) directamente, sin la iteración entre la fila/columna de la normalización? E. g. algo así como el algoritmo para la normalización de un vector aleatorio (inicializar los elementos al azar, medir la suma de los cuadrados de los valores, la escala de cada elemento en común un escalar). Si no, hay una caracterización sencilla de la velocidad de convergencia (por ejemplo, num iteraciones hasta que el error <ϵ) del método iterativo descrito anteriormente?

6voto

Matt Puntos 1134

Como @cardenal dijo en un comentario:

En realidad, después de un poco de pensamiento, creo que el algoritmo es exactamente el Sinkhorn-Knopp algoritmo con una muy pequeña modificación. Deje X ser su matriz original y deje Y ser una matriz del mismo tamaño que el Yij=Xij2. A continuación, el algoritmo es equivalente a la aplicación de Sinkhorn-Knopp a Y, donde en el último paso de recuperar su forma deseada mediante la toma de X^ij=sgn(Xij)Yij. Sinkhorn-Knopp garantiza la convergencia excepto en muy circunstancias patológicas. Leyendo en los que deben ser muy útil.

...parece que el algoritmo iterativo he indicado en la pregunta original es muy similar a la Sinkhorn-Knopp algoritmo. Curiosamente, también parece muy similar a la iterativo de ajuste proporcional (IPF), que, como se describe en la IPF página de la wikipedia, está relacionado con el método de Newton y la maximización de la expectativa (todos tienen el mismo límite).

Estos métodos iterativos son a menudo aplicado a los problemas que la falta de una solución de forma cerrada, así que voy a tentativamente asumir que la respuesta a la pregunta es negativa: no hay manera de alcanzar la solución deseada sin fila/columna de la iteración.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X