Eu estou tentando escrever uma função que gera ruído uniformemente distribuído que vem de uma bola p-norma de dimensões:
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 .
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.
simulation
noise
Taeke de Haan
fonte
fonte
Respostas:
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:n r p
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 εEu= G¯( 1 / p , p ) G¯( μ , σ2) e- | x |p p = 2
2) construa o vetor dos componentes s i ∗ ε i , onde s i são sinais aleatórios independentesx sEu∗ εEu sEu
3) Gere , onde w é uma variável aleatória uniformemente distribuída no intervalo [0, 1].z= w1 / n W
4) retornary= r zx| | x | |p
fonte
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∥ x ∥2≤ r
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
Assim é uniformemente distribuída sobre a superfície do n-dimensional-hiperesfera.X∥ X∥2
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)r rn r rn
Se você usar a ésima raiz de uma variável amostrada de uma distribuição uniforme, obterá uma distribuição uniforme.n
direção
Não tenho prova formal, apenas intuição
mas testar com simulações parece bom.
distância
fonte