Generar ruido uniforme a partir de una bola de la norma p (

10

Estoy tratando de escribir una función que genere ruido distribuido uniformemente que proviene de una bola de la norma p de dimensiones:norte

El |El |XEl |El |pagr

Encontré posibles soluciones para los círculos ( ) ( http://mathworld.wolfram.com/DiskPointPicking.html ), sin embargo, tengo problemas para extender esto para diferentes valores de .ppag=2pag

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.

Taeke de Haan
fuente
1
La respuesta se puede encontrar aquí para una esfera con n dimensiones usando la distancia euclidiana (p = 2) math.stackexchange.com/questions/87230/… Sin embargo, todavía no estoy seguro de cómo usar esto para diferentes normas p, ¿puedo? ¿simplemente cambia la distancia euclidiana utilizada en una relación diferente para la distancia?
Taeke de Haan
2
Hay muchos documentos, pero la mayoría están detrás de paywall: link.springer.com/article/10.1007/s00184-011-0360-x o visite google.com/…
kjetil b halvorsen el
3
¿"Uniforme" con respecto a qué métrica de volumen? Después de todo, si está utilizando una bola , ¿por qué sería interesante el volumen euclidiano ? pag
whuber
@whuber Sinceramente, no estoy seguro, ya que esto no se indica claramente en la asignación, pero esperaría en la norma p ya que cualquier otra métrica parece ser arbitraria en este caso.
Taeke de Haan
1
El problema proviene de una tarea de Machine Learning; "El problema es un problema de clasificación de dos clases en 204 dimensiones. El pequeño conjunto de entrenamiento etiquetado tiene un tamaño de 50 muestras por clase. Los datos no etiquetados proporcionan 20,000 muestras adicionales. Sin embargo, estas muestras han sufrido algún tipo de corrupción. La única información adicional que tenemos con respecto a esta corrupción es que es un ruido uniforme aditivo y que el ruido proviene de una bola de norma p fija, , donde tanto p como el radio r son desconocidos ". Necesito obtener la tasa de error más baja en los datos sin etiquetar. El |El |XEl |El |pagrpagr
Taeke de Haan

Respuestas:

5

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:nrpag

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=sol¯(1/ /pag,pag)sol¯(μ,σ2)mi-El |XEl |pagpag=2

2) construya el vector de los componentes s iε i , donde s i son signos aleatorios independientesXsyoεyosyo

3) Genere , donde w es una variable aleatoria distribuida uniformemente en el intervalo [0, 1].z=w1/ /nortew

4) devuelve y=rzXEl |El |XEl |El |pag

Taeke de Haan
fuente
2
Para completar, ¿podría decir cuál es en su respuesta? sol
Stéphane Laurent
Ha sido actualizado
Taeke de Haan
2
G es la distribución gaussiana generalizada (con una potencia diferente en el exponente lugar de solo p = 2 ). Esto hará que la distribución para el vector x , compuesta de múltiples variables distribuidas gaussianas generalizadas independientes x i , que es el producto de los pdf individuales, dependa de la norma p. f ( x ) e - | x | p pe|x|pp=2xxi
f(x)e|x|ppag
Sextus Empiricus
@MartijnWeterings Muchas gracias, se ha actualizado.
Taeke de Haan
Gracias. Para obtener información, hay una muestra de esta distribución en el paquete R pgnorm .
Stéphane Laurent
3

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 x2r

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

F(X1,X2,...,Xnorte)=1yonorte12πmi12Xyo2=12πmi121yonorteXyo2

Así se distribuye uniformemente en la superficie de la hiperesfera n-dimensional.XX2


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)rrnorterrnorte

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

X1r

dirección

XXEl |XEl |1

No tengo pruebas formales, solo intuición

F(X)reVF(X)reUNA

pero las pruebas con simulaciones se ven bien.

simulación recogiendo 20000 valores distribuidos uniformemente

library(rmutil)
x <- abs(rlaplace(20000))
y <- abs(rlaplace(20000))
z <- abs(rlaplace(20000))
rn <- abs(x)+abs(y)+abs(z)

xi <- (x/rn)
yi <- (y/rn)
zi <- (z/rn)
plot(sqrt(0.5)*(xi-yi),
     sqrt((0.5-0.5*(xi+yi))^2+zi^2),
     pc=21,bg=rgb(0,0,0,0.02), col=rgb(0,0,0,0),cex=1)

distancia

rnorte

Xpagr

F(X)miEl |XEl |pagsol()

Sexto empírico
fuente
1
pag
1
norterpagz=w1/ /nortewy=rzXEl |El |XEl |El |pag