Hasilkan suara yang seragam dari bola norma-p ( )


10

Saya mencoba untuk menulis sebuah fungsi yang menghasilkan suara yang terdistribusi secara seragam yang berasal dari bola p-norma dimensi:n

||x||pr

Saya menemukan solusi yang mungkin untuk lingkaran ( ) ( http://mathworld.wolfram.com/DiskPointPicking.html ), namun saya mengalami kesulitan untuk memperluas ini untuk nilai berbeda .pp=2p

Saya telah mencoba melakukannya dengan hanya menggambar sampel acak dari distribusi yang seragam, dan menggambar ulang ketika tidak memenuhi batasan yang diberikan. Namun selain itu menjadi solusi yang jelek itu juga menjadi tidak layak secara komputasi untuk dimensi tinggi.


1
Jawabannya dapat ditemukan di sini untuk bola dengan n dimensi menggunakan jarak Euclidean (p = 2) math.stackexchange.com/questions/87230/... Saya masih tidak yakin bagaimana menggunakan ini untuk norma p yang berbeda, dapatkah saya cukup mengubah jarak Euclidean yang digunakan dalam hubungan yang berbeda untuk jarak?
Taeke de Haan

2
Ada banyak makalah, tetapi sebagian besar berada di belakang paywall: link.springer.com/article/10.1007/s00184-011-0360-x atau lihat google.com/…
kjetil b halvorsen

3
"Seragam" sehubungan dengan metrik volume apa? Lagi pula, jika Anda menggunakan bola- , mengapa volume Euclidean menarik? p
whuber

@whuber Jujur saya tidak yakin karena ini tidak jelas dinyatakan dalam penugasan, tapi saya harapkan dalam p-norma karena metrik lain tampaknya sewenang-wenang dalam kasus ini.
Taeke de Haan

1
Masalahnya berasal dari tugas Machine Learning; "Masalahnya adalah masalah klasifikasi dua kelas dalam dimensi 204. Set pelatihan berlabel kecil memiliki ukuran 50 sampel per kelas. Data yang tidak berlabel menyediakan 20.000 sampel tambahan. Namun, sampel ini telah mengalami semacam korupsi. hanya informasi tambahan yang kami miliki tentang korupsi ini, adalah bahwa itu adalah aditif seragam kebisingan dan bahwa kebisingan berasal dari bola norma p tetap, , di mana dan jari-jari tidak diketahui. " Saya perlu mendapatkan tingkat kesalahan terendah pada data yang tidak berlabel. p r||x||prpr
Taeke de Haan

Jawaban:


5

Saya menemukan solusi lengkap dalam sebuah makalah seperti yang disarankan oleh kjetil b halvorsen ( https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215 ). Sejujurnya saya kesulitan memahami matematika di baliknya, tetapi algoritma akhirnya cukup sederhana. jika kita memiliki dimensi, jari-jari dan norma dari:r pnrp

1) menghasilkan skalar nyata acak independen , di mana adalah distribusi Gaussian Umum (dengan kekuatan berbeda di eksponen bukan hanya )ε i = ˉ G ( 1 / p , p ) ˉ G ( μ , σ 2 ) e - | x | p p = 2nεi=G¯(1/p,p)G¯(μ,σ2)e|x|pp=2

2) membangun vektor komponen , di mana adalah tanda acak independens i * ε i s ixsiεisi

3) Hasilkan , di mana adalah variabel acak yang terdistribusi secara merata dalam interval [0, 1]. wz=w1/nw

4) mengembalikany=rzx||x||p


2
Untuk kelengkapan, dapatkah Anda memberi tahu apa yang dalam jawaban Anda? G
Stéphane Laurent

Telah diperbarui
Taeke de Haan

2
G adalah distribusi Gaussian umum (dengan kekuatan yang berbeda dalam eksponen alih-alih hanya ). Ini akan membuat distribusi untuk vektor , terdiri dari beberapa variabel independen umum gaussian didistribusikan , yang merupakan produk dari PDF tunggal, tergantung pada p-norma. p = 2 x x i f ( x ) e - | x |e|x|pp=2xxi
f(x)e|x|pp
Sextus Empiricus

@ MartijnWeterings Terima kasih banyak, ini telah diperbarui.
Taeke de Haan

Terima kasih. Untuk info, ada sampler distribusi ini dalam paket R pgnorm .
Stéphane Laurent

3

Menggunakan variabel multivariat terdistribusi secara homogen

Taeke menyediakan tautan ke artikel yang teksnya di bawah ini menjadi lebih intuitif dengan menjelaskan secara khusus kasus 2-norma dan 1-norma.

2 normax2r

arah sampel

Anda dapat menggunakan hasil ini http://mathworld.wolfram.com/HyperspherePointPicking.html

Variabel Gaussian terdistribusi multivariat (dengan matriks kovarian identitas) hanya bergantung pada jarak, atau jumlah kuadrat.X

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

Dengan demikian terdistribusi secara merata pada permukaan n-dimensional-hypersphere.XX2


jarak sampel

Untuk menyelesaikan Anda hanya perlu mengambil sampel jarak, untuk mengubah distribusi homogen pada bola menjadi distribusi homogen dalam bola. (yang kurang lebih mirip dengan contoh tertaut Anda untuk memilih titik disk)

Jika Anda hanya akan sampel sebagai distribusi seragam maka Anda akan memiliki kepadatan relatif lebih tinggi dekat pusat (timbangan Volume sebagai sehingga sebagian kecil poin akan berakhir di volume , yang lebih padat dekat pusat dan tidak berarti distribusi seragam)rrnrrn

Jika sebaliknya Anda menggunakan akar ke- dari variabel yang diambil sampel dari distribusi yang seragam, maka Anda mendapatkan distribusi yang merata.n

1 normax1r

arah

Dalam hal ini Anda mengambil sampel dari distribusi Laplace alih-alih distribusi Gaussian dan dibagi dengan 1-norma. The terdistribusi secara seragam pada bola 1-norma n-dimensi.XX|X|1

Saya tidak punya bukti formal, hanya intuisi

(Karena pdf independen dari posisi, Anda akan mengharapkan untuk setiap area / volume yang sangat kecil dengan 1-norma yang sama memiliki probabilitas yang sama untuk dan ketika Anda menciutkannya ke permukaan unit, )f ( x ) d Af(x)dVf(x)dA

tetapi pengujian dengan simulasi terlihat bagus.

simulasi memilih 20000 nilai yang terdistribusi secara seragam

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)

jarak

Jaraknya sama dengan kasus 2-norma (volume masih berskala ).rn

p-normxpr

Dalam hal ini, jika Anda ingin mengikuti prinsip yang sama, Anda perlu mengambil sampel dari distribusi dengan (saya berhipotesis). Ini adalah distribusi normal umum dan mungkin berhubungan dengan distribusi disebutkan oleh Taeke. G ( )f(x)e|x|pG()


1
Bisakah Anda menguraikan bagaimana Anda menyimpulkan unit vektor didistribusikan secara seragam? BTW, saya percaya Anda ingin mengambil akar th. p
whuber

1
Terima kasih atas bantuan Anda, saya menemukan solusi lengkap di sini: ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215 ). Sejujurnya saya kesulitan memahami matematika di baliknya, tetapi algoritma akhirnya cukup sederhana. jika kita memiliki dimensi, jari-jari dan norma dari: 1) menghasilkan n skalar nyata acak independen E_i = G (1 / p, p) 2) membangun vektor x komponen s_i * E_i, di mana E_i adalah tanda acak independen 3) Hasilkan , di mana adalah variabel acak yang terdistribusi secara merata dalam interval [0, 1]. 4) mengembalikanr p z = w 1 / n w y = r z xnrpz=w1/nwy=rzx||x||p
Taeke de Haan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.