Mengapa autoencoder untuk pengurangan dimensi simetris?

13

Saya bukan ahli autoencoder atau jaringan saraf dengan cara apa pun, jadi maafkan saya jika ini adalah pertanyaan konyol.

Untuk tujuan pengurangan dimensi atau memvisualisasikan cluster dalam data dimensi tinggi, kita dapat menggunakan autoencoder untuk membuat representasi 2 dimensi (lossy) dengan memeriksa output dari lapisan jaringan dengan 2 node. Sebagai contoh, dengan arsitektur berikut, kami akan memeriksa output dari lapisan ketiga

[X]N1=100N2=25(N3=2)N4=25N5=100[X]

di mana adalah data input dan adalah jumlah node di lapisan ke- .N l lXNll

Sekarang, pertanyaan saya adalah, mengapa kita menginginkan arsitektur simetris? Bukankah cermin dari fase 'kompresi' yang dalam berarti kita mungkin memiliki fase 'dekompresi' yang sama rumitnya sehingga menghasilkan output 2 simpul yang tidak dipaksa menjadi sangat intuitif? Dengan kata lain, tidakkah fase decoding yang lebih sederhana menghasilkan output dari layer dengan 2 node juga menjadi lebih sederhana?

Pemikiran saya di sini adalah bahwa fase dekompresi yang lebih kompleks, representasi 2D yang lebih sederhana (lebih linier?). Fase dekompresi yang lebih kompleks akan memungkinkan representasi 2D yang lebih kompleks.

dcl
sumber

Jawaban:

12

Tidak ada batasan spesifik pada simetri autoencoder.

Pada awalnya, orang cenderung menerapkan simetri seperti itu secara maksimal: tidak hanya lapisan yang simetris, tetapi juga bobot lapisan dalam encoder dan decoder di mana dibagikan . Ini bukan persyaratan, tetapi memungkinkan untuk menggunakan fungsi kerugian tertentu (yaitu pencocokan skor RBM) dan dapat bertindak sebagai regularisasi , karena Anda secara efektif mengurangi setengah jumlah parameter untuk dioptimalkan. Namun, saat ini, saya pikir tidak ada yang memaksakan pembagian bobot encoder-decoder.

Tentang simetri arsitektur, adalah umum untuk menemukan jumlah lapisan yang sama, jenis lapisan yang sama dan ukuran lapisan yang sama dalam encoder dan decoder, tetapi tidak perlu untuk itu.

Sebagai contoh, dalam autoencoder konvolusional, di masa lalu sangat umum untuk menemukan lapisan konvolusional dalam enkoder dan lapisan dekonvolusional di dalam decoder, tetapi sekarang Anda biasanya melihat lapisan upampling dalam decoder karena mereka memiliki lebih sedikit masalah artefak.

ncasas
sumber
7

Pertanyaan Anda sudah pasti ada, namun saya menemukan bahwa ada pertanyaan dalam format "haruskah saya melakukan X atau Y dalam pembelajaran yang mendalam?" hanya punya satu jawaban.

Cobalah keduanya

Pembelajaran mendalam adalah bidang yang sangat empiris, dan jika auto-encoder non-simetris berfungsi untuk domain Anda, maka gunakan (dan terbitkan kertas)

Ankit Suri
sumber
2

Saya melakukan beberapa percobaan untuk menjawab pertanyaan yang diajukan. Eksperimen saya menunjukkan bahwa jalur penyandian (kaki kiri NN) seharusnya memiliki lapisan yang lebih sedikit tetapi lebih luas. Saya biasanya mengambil setengah lapisan begitu banyak, tetapi jumlah node dua kali lipat untuk jalur pengkodean. Saya tidak punya penjelasan untuk ini, hanya konfigurasi ini yang sering menyebabkan konvergensi yang lebih cepat.

JamesLi
sumber