Diberikan jaringan neural yang mengambil sebagai input titik data: . Kita katakan adalah invarian permutasi jika
untuk permutasi .
Bisakah seseorang merekomendasikan titik awal (artikel, contoh, atau makalah lain) untuk permutasi jaringan syaraf invarian?
neural-networks
machine-learning
reference-request
Josef Ondrej
sumber
sumber
Jawaban:
Sejauh yang saya tahu, tidak ada yang mencoba ini, karena cara jaringan terstruktur. Setiap input memiliki satu set bobot, yang terhubung ke lebih banyak input. Jika input beralih, output juga akan .
Namun, Anda dapat membangun jaringan yang mendekati perilaku ini. Di set pelatihan Anda, gunakan pembelajaran batch dan untuk setiap sampel pelatihan, berikan semua permutasi yang mungkin ke jaringan sehingga itu belajar untuk menjadi permutasi invarian. Ini tidak akan pernah persis invarian, mungkin saja dekat .
Cara lain untuk melakukan ini adalah memiliki bobot yang direplikasi untuk semua input. Sebagai contoh, anggaplah Anda memiliki 3 input (i0, i1, i2), dan lapisan tersembunyi berikutnya memiliki 2 node (hl0, hl1) dan fungsi aktivasi F. Dengan asumsi layer yang terhubung penuh, Anda memiliki 2 bobot w0 dan w1. Node layer tersembunyi hl0 dan hl1 diberikan, masing-masing, oleh
hl0 = F (i0w0 + i1w0 + i2w0)
hl1 = F (i0w1 + i1w1 + i2w1)
Dengan demikian memberi Anda lapisan tersembunyi yang nilainya invarian permutasi dari input. Mulai sekarang, Anda dapat mempelajari dan membangun sisa jaringan sesuai keinginan Anda. Ini adalah pendekatan yang berasal dari lapisan konvolusional.
Di luar topik, ini sepertinya proyek yang keren. Jika Anda ingin bekerja sama dalam beberapa proyek penelitian, hubungi saya (periksa profil saya)
sumber
Inilah beberapa yang mungkin Anda cari:
sumber
Saya telah mengimplementasikan Permutational Layer di sini menggunakan Keras: https://github.com/off99555/superkeras/blob/master/permutational_layer.py
Anda dapat memanggil
PermutationalModule
fungsi untuk menggunakannya.Diimplementasikan mengikuti makalah ini: https://arxiv.org/pdf/1612.04530.pdf
Idenya adalah untuk membandingkan semua pasangan N ^ 2 pasangan dari input N , gunakan model dengan bobot bersama, lalu gunakan fungsi pooling N kali pada input N. Output yang Anda dapat menggunakan pooling lagi tetapi di koran, mereka tidak menyebutkan pooling lain.
sumber