Apa "kapasitas" model pembelajaran mesin?

15

Saya mempelajari Tutorial ini pada Variational Autoencoders oleh Carl Doersch . Di halaman kedua disebutkan:

Salah satu kerangka kerja yang paling populer adalah Varienc Autoencoder [1, 3], subjek tutorial ini. Asumsi model ini lemah, dan pelatihan cepat melalui backpropagation. VAE memang membuat perkiraan, tetapi kesalahan yang diperkenalkan oleh perkiraan ini bisa dibilang kecil mengingat model berkapasitas tinggi . Karakteristik-karakteristik ini telah berkontribusi pada peningkatan cepat dalam popularitas mereka.

Saya sudah membaca di masa lalu semacam ini klaim tentang model berkapasitas tinggi , tapi saya sepertinya tidak menemukan definisi yang jelas untuk itu. Saya juga menemukan pertanyaan terkait stackoverflow ini tetapi bagi saya jawabannya sangat tidak memuaskan.

Apakah ada definisi untuk kapasitas model? Bisakah Anda mengukurnya?

Andrés Marafioti
sumber

Jawaban:

13

Kapasitas adalah istilah informal. Sangat dekat (jika bukan sinonim) untuk kompleksitas model. Ini adalah cara untuk berbicara tentang betapa rumitnya suatu pola atau hubungan yang dapat diekspresikan oleh seorang model. Anda bisa mengharapkan model dengan kapasitas lebih tinggi untuk dapat memodelkan lebih banyak hubungan antara lebih banyak variabel daripada model dengan kapasitas lebih rendah.

Menggambar analogi dari definisi sehari-hari kapasitas, Anda dapat menganggapnya sebagai kemampuan model untuk belajar dari lebih banyak data, hingga benar-benar "diisi" dengan informasi.

Ada berbagai cara untuk memformalkan kapasitas dan menghitung nilai numerik untuknya, tetapi yang penting ini hanyalah beberapa "operasionalisasi" kapasitas yang mungkin (dengan cara yang sama seperti itu, jika seseorang datang dengan formula untuk menghitung kecantikan, Anda akan menyadari bahwa rumusnya hanyalah satu interpretasi yang keliru tentang keindahan).


Dimensi VC adalah formulasi kapasitas matematis yang ketat. Namun, bisa ada kesenjangan besar antara dimensi VC suatu model dan kemampuan aktual model untuk mencocokkan data. Meskipun mengetahui VC redup memberi batasan pada kesalahan generalisasi model, ini biasanya terlalu longgar untuk berguna dengan jaringan saraf.

Garis lain dari penelitian lihat di sini adalah untuk menggunakan norma spektral dari matriks berat dalam jaringan saraf sebagai ukuran kapasitas. Salah satu cara untuk memahami ini adalah bahwa norma spektral membatasi konstanta Lipschitz dari jaringan.

Cara paling umum untuk memperkirakan kapasitas suatu model adalah dengan menghitung jumlah parameter. Semakin banyak parameter, semakin tinggi kapasitas secara umum. Tentu saja, seringkali jaringan yang lebih kecil belajar memodelkan data yang lebih kompleks lebih baik daripada jaringan yang lebih besar, sehingga ukuran ini juga jauh dari sempurna.

Cara lain untuk mengukur kapasitas mungkin dengan melatih model Anda dengan label acak ( Neyshabur et. Al ) - jika jaringan Anda dapat dengan benar mengingat banyak input bersama dengan label acak, itu pada dasarnya menunjukkan bahwa model memiliki kemampuan untuk mengingat semua titik data secara individual. Semakin banyak pasangan input / output yang dapat "dipelajari", semakin tinggi kapasitasnya.

Mengadaptasi ini ke auto-encoder, Anda dapat menghasilkan input acak, melatih jaringan untuk merekonstruksi mereka, dan kemudian menghitung berapa banyak input acak yang Anda dapat berhasil merekonstruksi dengan kesalahan kurang dari .ϵ

shimao
sumber
1
Ini adalah jawaban yang lebih baik daripada jawaban dari stackoverflow, terima kasih. Saya masih memiliki beberapa masalah dengan melihat istilah yang didefinisikan secara longgar digunakan sebagai pembenaran untuk sesuatu yang lain, tapi saya kira itulah cara bidang ini bergerak maju.
Andrés Marafioti
1
"Mungkin ada celah besar antara dimensi VC model dan kapasitas aktual model." ini adalah pernyataan yang sangat menyesatkan karena "kapasitas aktual" tidak didefinisikan secara tepat. Bahkan, dimensi VC adalah ukuran yang baik dari kapasitas model. Hanya karena jaringan saraf tampaknya memecahkan masalah tertentu, itu tidak membuat mereka "sangat mampu". Bahkan, sebagian besar waktu, orang berpikir jaringan saraf memecahkan masalah, sementara mereka memecahkan masalah yang jauh lebih sederhana dan, pada kenyataannya, mereka sering gagal total (karena mereka "secara tak terduga" dilatih untuk memecahkan masalah yang lebih sederhana).
nbro