Bagaimana kita memasukkan informasi baru ke dalam distribusi Dirich Dirichlet sebelumnya?

8

Masalah saya adalah ini: Saya memiliki ansambel prediktor yang masing-masing menghasilkan distribusi melalui serangkaian kelas.

Apa yang ingin saya lakukan adalah terlebih dahulu memiliki informasi non-informatif tentang bagaimana penampilan label ini, dan kemudian memperbaruinya dengan prediksi masing-masing anggota ensemble.

Jadi saya berpikir untuk menggunakan Dirichlet non-informatif sebelumnya, yang kemudian saya perbarui dengan masing-masing distribusi sampel yang masuk sebagai prediksi.

Pertanyaan saya adalah: Apakah pendekatan ini valid, dan jika ya bagaimana saya akan memperbarui sebelumnya sehingga menjadi lebih didefinisikan sebagai lebih banyak sampel menumpuk?

Batang
sumber
Saya tahu Anda dapat melakukan hal itu di Latent Dirichlet Allocation. Mereka menggunakan data untuk memperbarui Dirichlet sebelum kemungkinan multinomial. Untuk informasi lebih lanjut, lihat link ini: dirichlet.net/pdf/wallach09rethinking.pdf dan people.eecs.berkeley.edu/~jordan/papers/hdp.pdf
KenHBS

Jawaban:

6

Dirichlet prior adalah prior yang tepat, dan merupakan konjugat sebelum distribusi multinomial. Namun, tampaknya agak sulit untuk menerapkan ini pada output dari regresi logistik multinomial, karena regresi tersebut memiliki softmax sebagai output, bukan distribusi multinomial. Namun, yang dapat kita lakukan adalah sampel dari multinomial, yang probabilitasnya diberikan oleh softmax.

Jika kita menggambarkan ini sebagai model jaringan saraf, sepertinya:

masukkan deskripsi gambar di sini

Kita dapat dengan mudah mengambil sampel dari ini, ke arah depan. Bagaimana menangani arah mundur? Kita dapat menggunakan trik reparameterisasi, dari makalah Kingma 'Auto-encoding variational Bayes', https://arxiv.org/abs/1312.6114 , dengan kata lain, kita memodelkan penarikan multinomial sebagai pemetaan deterministik, mengingat distribusi probabilitas input, dan gambar dari variabel acak standar Gaussian:

xdi luar=g(xdi,ϵ)

dimana:ϵN(0,1)

Jadi, jaringan kami menjadi:

masukkan deskripsi gambar di sini

Jadi, kita dapat meneruskan menyebarkan mini-batch contoh data, menarik dari distribusi normal standar, dan kembali menyebar melalui jaringan. Ini cukup standar dan banyak digunakan, misalnya kertas Kingma VAE di atas.

Sedikit nuansa adalah, kami menggambar nilai-nilai diskrit dari distribusi multinomial, tetapi kertas VAE hanya menangani kasus output nyata terus menerus. Namun, ada makalah baru-baru ini, trik Gumbel, https://casmls.github.io/general/2017/02/01/GumbelSoftmax.html , yaitu https://arxiv.org/pdf/1611.01144v1.pdf , dan https://arxiv.org/abs/1611.00712 , yang memungkinkan gambar dari kertas multinomial diskrit.

Rumus trik Gumbel memberikan distribusi keluaran berikut:

halα,λ(x)=(n-1)!λn-1k=1n(αkxk-λ-1saya=1nαsayaxsaya-λ)

The di sini adalah probabilitas sebelumnya untuk berbagai kategori, yang dapat Anda men-tweak, untuk mendorong distribusi awal Anda terhadap bagaimana Anda berpikir distribusi dapat didistribusikan pada awalnya.αk

Dengan demikian kami memiliki model yang:

  • berisi regresi logistik multinomial (lapisan linear diikuti oleh softmax)
  • menambahkan langkah pengambilan sampel multinomial di akhir
  • yang mencakup distribusi sebelumnya atas probabilitas
  • dapat dilatih, menggunakan Stochastic Gradient Descent, atau serupa

Edit:

Jadi, pertanyaannya adalah:

"mungkinkah menerapkan teknik semacam ini ketika kami memiliki banyak prediksi (dan setiap prediksi dapat menjadi softmax, seperti di atas) untuk sampel tunggal (dari ansambel pelajar)." (lihat komentar di bawah)

Jadi iya :). Ini. Menggunakan sesuatu seperti pembelajaran multi-tugas, misalnya http://www.cs.cornell.edu/~caruana/mlj97.pdf dan https://en.wikipedia.org/wiki/Multi-task_learning . Kecuali pembelajaran multi-tugas memiliki jaringan tunggal, dan banyak kepala. Kami akan memiliki beberapa jaringan, dan satu kepala.

'Kepala' terdiri dari lapisan ekstrak, yang menangani 'pencampuran' antara jaring. Perhatikan bahwa Anda akan membutuhkan non-linearitas antara 'pembelajar' Anda dan lapisan 'pencampuran', misalnya ReLU atau tanh.

Anda mengisyaratkan memberi masing-masing 'belajar' undian multinomial sendiri, atau setidaknya, softmax. Secara keseluruhan, saya pikir akan lebih standar untuk memiliki lapisan pencampuran terlebih dahulu, diikuti oleh satu softmax dan imbang multinomial. Ini akan memberikan varians yang paling sedikit, karena undiannya lebih sedikit. (misalnya, Anda dapat melihat makalah 'dropout variasional', https://arxiv.org/abs/1506.02557 , yang secara eksplisit menggabungkan beberapa undian acak, untuk mengurangi varians, suatu teknik yang mereka sebut 'reparameterisasi lokal')

Jaringan seperti itu akan terlihat seperti:

masukkan deskripsi gambar di sini

Ini kemudian memiliki karakteristik sebagai berikut:

  • dapat menyertakan satu atau lebih pelajar yang independen, masing-masing dengan parameternya sendiri
  • dapat menyertakan sebelum distribusi kelas output
  • akan belajar untuk bergaul di berbagai pelajar

Catat dengan sepintas bahwa ini bukan satu-satunya cara menggabungkan peserta didik. Kita juga bisa menggabungkan mereka dalam lebih dari jenis busana 'jalan raya', agak seperti meningkatkan, sesuatu seperti:

masukkan deskripsi gambar di sini

Dalam jaringan terakhir ini, setiap pelajar belajar untuk memperbaiki setiap masalah yang disebabkan oleh jaringan sejauh ini, daripada membuat prediksi sendiri yang relatif independen. Pendekatan semacam itu dapat bekerja dengan sangat baik, yaitu Meningkatkan, dll.

Hugh Perkins
sumber
1
Terima kasih ini sangat berguna, meskipun pertanyaannya masih memiliki aspek yang tidak terjawab: Apakah mungkin untuk menerapkan teknik semacam ini ketika kami memiliki beberapa prediksi (dan setiap prediksi dapat berupa softmax, seperti di atas) untuk sampel tunggal (dari ansambel dari peserta didik). Dugaan saya tidak akan, karena sampel tidak iid
Bar
@Bar: Poin bagus. Diperbarui untuk banyak pembelajar
Hugh Perkins