Definisi tepat dari Maxout

8

Saya sudah mencoba mencari tahu apa sebenarnya yang dimaksud dengan fungsi aktivasi "Maxout" di jaringan saraf. Ada pertanyaan ini , makalah ini , dan bahkan dalam buku Deep Learning oleh Bengio et al. , kecuali hanya dengan sedikit informasi dan TODO besar di sebelahnya.

Saya akan menggunakan notasi yang dijelaskan di sini untuk kejelasan. Saya hanya tidak ingin mengetik ulang dan menyebabkan pertanyaan menggembung. Secara singkat, , dengan kata lain, neuron memiliki bias tunggal , satu bobot untuk setiap input, dan kemudian menjumlahkan input dikalikan bobot, lalu menambahkan bias dan menerapkan fungsi aktivasi untuk mendapatkan nilai output (alias aktivasi).aji=σ(zji)=σ(kaki1wjki+bji)

Sejauh ini saya tahu bahwa Maxout adalah fungsi aktivasi yang "mengeluarkan maksimal dari inputnya". Apa artinya? Berikut adalah beberapa ide yang dapat saya artikan dari itu:

  1. aji=maxk(aki1) , juga dikenal sebagai penyatuan maks.
  2. aji=maxk(aki1wjki)+bji , cukup mengganti jumlah yang biasanya dilakukan dengan maks.
  3. aji=maxk(aki1wjki+bjki) , di mana setiap neuron sekarang memiliki satu nilai bias untuk setiap input, alih-alih nilai bias tunggal yang diterapkan setelah menjumlahkan semua input. Ini akan membuat backpropagation berbeda, tetapi masih memungkinkan.
  4. Setiap zji dihitung sebagai normal, dan setiap neuron memiliki bias tunggal dan bobot untuk setiap input. Namun, mirip dengan Softmax ( aji=exp(zji)kexp(zki) ), ini mengambil maksimum dari semua z 's di dalamnya lapisan saat ini . Secara formal, aji=maxkzki .

Apakah semua ini benar? Atau itu sesuatu yang berbeda?

Phylliida
sumber

Jawaban:

9

Bukan dari salah satu di atas; jaringan maksim tidak mengikuti arsitektur yang Anda asumsikan.

Dari awal bagian "deskripsi maxout" di makalah yang Anda tautkan, yang mendefinisikan maxout:

Diberikan input ( mungkin , atau mungkin status lapisan tersembunyi), lapisan tersembunyi maksimal mengimplementasikan fungsi tersebutxRdxv

hi=maxj[1,k]zij

di mana , dan dan berada parameter yang dipelajari.zij=xTWij+bijWRd×m×kbRm×k

Jadi, setiap unit dari unit memiliki kombinasi affine yang berbeda dari layer sebelumnya, dan menghasilkan maks dari fungsi affine tersebut. Bayangkan setiap lapisan dihubungkan ke lapisan sebelumnya dengan koneksi berwarna berbeda, dan ambil maks dari warnanya.mkkk

Sebagai alternatif, Anda dapat menganggap unit maksimum sebagai benar-benar dua lapisan: setiap unit lapisan sebelumnya terhubung ke masing-masing unit dengan fungsi aktivasi identitas, dan kemudian satu unit menghubungkan unit-unit linear dengan aktivasi max-pooling .kk

Ini berarti bahwa unit, dilihat sebagai fungsi dari hingga , adalah sebagian fungsi affine. Gambar 1 makalah ini memberikan beberapa contoh fungsi yang berbeda seperti:RdR

masukkan deskripsi gambar di sini

Setiap garis putus-putus mewakili . Anda dapat mewakili fungsi cembung dengan cara ini, yang cukup bagus.WTx+b

Dougal
sumber
Jadi karena , itu berarti . Bagaimana cara mengambil yang maksimal dari ini? Apakah besarnya vektor? zijRm×kzi1,zi2,...Rm
Phylliida
@DanielleEnsign Pengindeksan sedikit tidak standar di sini, tetapi masing-masing , , jadi . Itu normal, skalar maks. WijRdxRdbijRzijR
Dougal
2
Ah akhirnya saya mengerti sekarang, terima kasih. Pada dasarnya setiap neuron terdiri dari banyak "subneuron" yang mengambil input ke neuron itu, memiliki bobot dan bias sendiri, dan output melalui fungsi aktivasi identitas. Maka output untuk neuron itu adalah maks dari semua output sub-neuron itu.
Phylliida
Apakah akurat untuk mengatakan bahwa Anda dapat memodelkan ini menggunakan k beberapa koneksi antara setiap pasangan neuron yang terhubung (daripada satu koneksi seperti biasanya dilakukan), menghitung aktivasi k untuk setiap pasangan dan kemudian memilih yang teratas sebagai pemenang? Atau kadang-kadang perlu menggunakan bias terpisah untuk setiap sub-koneksi, sehingga membuatnya perlu untuk memodelkan setiap koneksi seolah-olah itu milik sub-neuron yang berbeda?
SQLServerSteve
1
@ SQLServerSteve Setiap koneksi dapat memiliki bias yang berbeda (ini diperlukan misalnya untuk "kuadratik" pada gambar di atas). Tapi Anda masih bisa memikirkannya dengan cara yang Anda jelaskan, Anda juga harus menambahkan bias untuk masing-masing koneksi. Kadang-kadang orang berbicara tentang "unit bias" imajiner yang selalu menghasilkan 1; dalam hal itu, model Anda berfungsi dengan baik selama unit bias juga memiliki beberapa koneksi. k
Dougal