Estoy tratando de escribir una función que genere ruido distribuido uniformemente que proviene de una bola de la norma p de dimensiones:
Encontré posibles soluciones para los círculos ( ) ( http://mathworld.wolfram.com/DiskPointPicking.html ), sin embargo, tengo problemas para extender esto para diferentes valores de .p
He intentado hacerlo simplemente extrayendo una muestra aleatoria de una distribución uniforme y redibujándola cuando no cumple con la restricción dada. Sin embargo, además de ser una solución fea, también se vuelve computacionalmente inviable para grandes dimensiones.
simulation
noise
Taeke de Haan
fuente
fuente
Respuestas:
Encontré la solución completa en un documento según lo sugerido por kjetil b halvorsen ( https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215 ). Sinceramente, tengo problemas para comprender las matemáticas detrás de esto, pero el algoritmo eventual es bastante simple. si tenemos dimensiones, un radio r y la norma p que:norte r pag
1) generan escalares reales aleatorias independientes varepsilon i = ˉ G ( 1 / p , p ) , donde ˉ G ( μ , σ 2 ) es la distribución generalizada de Gauss (con una potencia diferente en el exponente e - | x | p en vez de solo p = 2 )norte εyo= G¯( 1 / p , p ) sol¯( μ , σ2) mi- | x |pag p=2
2) construya el vector de los componentes s i ∗ ε i , donde s i son signos aleatorios independientesx si∗εi si
3) Genere , donde w es una variable aleatoria distribuida uniformemente en el intervalo [0, 1].z=w1/n w
4) devuelvey= r zXEl | El | x | El |pag
fuente
Utilizando variables multivariadas distribuidas homogéneamente
Taeke proporciona un enlace a un artículo que el texto a continuación hace más intuitivo al explicar específicamente los casos de 2 y 1 norma.
2-norma∥ x ∥2≤ r
dirección de muestra
Puede usar este resultado http://mathworld.wolfram.com/HyperspherePointPicking.html
Una variable distribuida gaussiana multivariada (con matriz de covarianza de identidad) depende solo de la distancia o suma de cuadrados.X
Así se distribuye uniformemente en la superficie de la hiperesfera n-dimensional.X∥ X∥2
distancia de muestra
Para completar solo necesita muestrear la distancia, para cambiar la distribución homogénea en la esfera a una distribución homogénea en una bola. (que es más o menos similar a su ejemplo vinculado para la selección de puntos de disco)
Si simplemente muestreara como una distribución uniforme, entonces tendría una densidad relativamente mayor cerca del centro (el volumen se escala como r n, por lo que una fracción r de los puntos terminaría en un volumen r n , que es más denso cerca del centro y no significaría una distribución uniforme)r rnorte r rnorte
Si, por el contrario, utiliza la raíz -ésima de una variable muestreada a partir de una distribución uniforme, obtendrá una distribución uniforme.norte
dirección
No tengo pruebas formales, solo intuición
pero las pruebas con simulaciones se ven bien.
distancia
fuente