Gere ruído uniforme a partir de uma bola de norma p (


10

Eu estou tentando escrever uma função que gera ruído uniformemente distribuído que vem de uma bola p-norma de dimensões:n

||x||pr

Encontrei possíveis soluções para círculos ( ) ( http://mathworld.wolfram.com/DiskPointPicking.html ), no entanto, tenho problemas para estender isso para diferentes valores de .p=2p

Eu tentei fazer isso apenas desenhando uma amostra aleatória de uma distribuição uniforme e redesenhando quando ela não atende à restrição fornecida. No entanto, além de ser uma solução feia, também se torna computacionalmente inviável para altas dimensões.


11
A resposta pode ser encontrada aqui para uma esfera com n dimensões usando a distância euclidiana (p = 2) math.stackexchange.com/questions/87230/… No entanto, ainda não tenho certeza de como usar isso para diferentes normas-p, posso basta alterar a distância euclidiana usada em uma relação diferente para a distância?
Taeke de Haan

2
Há muitos trabalhos, mas a maioria estão por trás paywall: link.springer.com/article/10.1007/s00184-011-0360-x ou ver google.com/...
b Kjetil Halvorsen

3
"Uniforme" com relação a qual métrica de volume? Afinal, se você estiver usando uma bola , por que o volume euclidiano seria interessante? p
whuber

@whuber Eu sinceramente não tenho certeza, pois isso não está claramente indicado na tarefa, mas eu esperaria na norma-p, já que qualquer outra métrica parece arbitrária nesse caso.
Taeke de Haan

11
O problema vem de uma tarefa de aprendizado de máquina; "O problema é um problema de classificação de duas classes em 204 dimensões. O pequeno conjunto de treinamento rotulado tem um tamanho de 50 amostras por classe. Os dados não rotulados fornecem 20.000 amostras adicionais. Essas amostras, no entanto, sofreram algum tipo de corrupção. A única informação adicional que temos sobre essa corrupção é que é um ruído uniforme aditivo e que o ruído provém de uma bola de norma p fixa, , onde e o raio são desconhecidos ". Preciso obter a menor taxa de erro nos dados não rotulados. p r||x||prpr
Taeke de Haan

Respostas:


5

Encontrei a solução completa em um artigo, conforme sugerido por kjetil b halvorsen ( https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215 ). Sinceramente, tenho problemas para entender a matemática por trás disso, mas o eventual algoritmo é bastante simples. se tivermos dimensões, um raio rep norma p que:nrp

1) gerar escalares reais aleatórios independentes £ i = ˉ L ( 1 / p , p ) , onde ˉ L ( μ , σ 2 ) é a distribuição generalizada de Gauss (com um poder diferente no expoente e - | x | p em vez de apenas p = 2 )nεi=G¯(1/p,p)G¯(μ,σ2)e|x|pp=2

2) construa o vetor dos componentes s iε i , onde s i são sinais aleatórios independentesxsiεisi

3) Gere , onde w é uma variável aleatória uniformemente distribuída no intervalo [0, 1].z=w1/nw

4) retornar y=rzx||x||p


2
Para completar, você poderia dizer o que é na sua resposta? G
Stéphane Laurent

Foi atualizado
Taeke de Haan

2
G é a distribuição gaussiana generalizada (com uma potência diferente no expoente vez de apenas p = 2 ). Isso fará a distribuição para o vetor x , composto por várias variáveis ​​gaussianas generalizadas independentes independentes x i , que é o produto dos pdfs únicos, dependentes da norma-p. f ( x ) e - | x | p pe|x|pp=2xxi
f(x)e|x|pp
Sexto Empírico

@MartijnWeterings Muito obrigado, foi atualizado.
Taeke de Haan

Obrigado. Para informações, há um amostrador dessa distribuição no pacote R pgnorm .
Stéphane Laurent

3

Usando variáveis ​​multivariadas distribuídas homogeneamente

Taeke fornece um link para um artigo que o texto abaixo torna mais intuitivo, explicando especificamente casos de 2 e 1 norma.

2-norma x2r

direção da amostra

Você pode usar este resultado http://mathworld.wolfram.com/HyperspherePointPicking.html

Uma variável gaussiana distribuída multivariada (com matriz de covariância de identidade) depende apenas da distância ou soma dos quadrados.X

f(X1,X2,...,Xn)=1in12πe12xi2=12πe121inxi2

Assim é uniformemente distribuída sobre a superfície do n-dimensional-hiperesfera.XX2


distância da amostra

Para concluir, você só precisa amostrar a distância, alterar a distribuição homogênea na esfera para uma distribuição homogênea na esfera. (que é mais ou menos semelhante ao seu exemplo vinculado para seleção de pontos de disco)

Se você simplesmente amostrasse como uma distribuição uniforme, teria uma densidade relativamente maior perto do centro (o volume é escalado como r n, de modo que uma fração r dos pontos acabaria em um volume r n , que é mais denso perto do centro e não significaria uma distribuição uniforme)rrnrrn

Se você usar a ésima raiz de uma variável amostrada de uma distribuição uniforme, obterá uma distribuição uniforme.n

x1r

direção

XX|X|1

Não tenho prova formal, apenas intuição

f(x)dVf(x)dA

mas testar com simulações parece bom.

simulação escolhendo 20000 valores uniformemente distribuídos

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)

distância

rn

xpr

f(x)e|x|pG()


11
p

11
nrpz=w1/nwy=rzx||x||p
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.