Mencegah overfitting LSTM pada dataset kecil

13

Saya memodelkan 15.000 tweet untuk prediksi sentimen menggunakan LSTM lapisan tunggal dengan 128 unit tersembunyi menggunakan representasi seperti word2vec dengan 80 dimensi. Saya mendapatkan akurasi keturunan (38% dengan acak = 20%) setelah 1 zaman. Lebih banyak pelatihan membuat akurasi validasi mulai menurun ketika akurasi pelatihan mulai naik - tanda yang jelas dari overfitting.

Karena itu saya memikirkan cara untuk melakukan regularisasi. Saya lebih suka tidak mengurangi jumlah unit tersembunyi (128 tampaknya sudah agak rendah). Saat ini saya menggunakan dropout dengan probabilitas 50%, tetapi ini mungkin bisa ditingkatkan. Pengoptimal adalah Adam dengan parameter default untuk Keras ( http://keras.io/optimizers/#adam ).

Apa sajakah cara efektif untuk mengurangi overfitting untuk model ini pada dataset saya?

pir
sumber
Saya mengalami masalah yang sama persis. Bagaimana akhirnya Anda bisa mengatur LSTM Anda? Akurasi validasi LSTM saya adalah 41%. Bentuk input saya adalah (200,) dan saya memiliki 1 lapisan LSTM dengan 64 unit, diikuti oleh 2 lapisan Padat dengan 0,4 dropout.
Nirvan Anjirbag

Jawaban:

7

Kamu bisa mencoba:

  • Kurangi jumlah unit tersembunyi, saya tahu Anda mengatakan itu sudah tampak rendah, tetapi mengingat bahwa layer input hanya memiliki 80 fitur, sebenarnya bisa jadi 128 terlalu banyak. Aturan praktisnya adalah memiliki jumlah unit tersembunyi di antara jumlah unit input (80) dan kelas output (5);
  • Atau, Anda dapat meningkatkan dimensi ruang representasi input menjadi lebih dari 80 (namun ini mungkin cocok juga jika representasi sudah terlalu sempit untuk kata tertentu).

Cara yang baik untuk menyesuaikan jaringan juga dimulai dengan jaringan overfitting dan kemudian mengurangi kapasitas (unit tersembunyi dan ruang embedding) sampai tidak lagi overfits.

Miguel
sumber
1
Apakah Anda mencoba regularisasi l1 dan l2? Apakah ini benar-benar berfungsi? Jawaban ini menunjukkan bahwa Anda seharusnya tidak melakukan ini secara umum
Jakub Bartczuk
Saya tidak mengetahui properti RNN ini, saya akan menghapus titik jawabannya
Miguel
Halo, saya bertanya-tanya bagaimana Anda mendapatkan aturan praktis yang menyatakan "memiliki jumlah unit tersembunyi di antara jumlah unit input dan kelas output". Apakah ada kertas yang bisa saya rujuk?
Kong
Itulah hal tentang aturan praktis, saya tidak tahu dari mana saya mendapatkannya ...
Miguel