Saya memiliki pengaturan berikut untuk proyek penelitian Keuangan / Pembelajaran Mesin di universitas saya: Saya menerapkan Jaringan Saraf (Jauh) (MLP) dengan struktur berikut di Keras / Theano untuk membedakan saham berkinerja lebih baik (label 1) dari saham berkinerja buruk ( label 0). Pertama-tama saya hanya menggunakan kelipatan valuasi aktual dan historis. Karena ini adalah data stok, orang dapat mengharapkan untuk memiliki data yang sangat bising. Selain itu, akurasi sampel yang stabil di atas 52% sudah dapat dianggap baik di domain ini.
Struktur jaringan:
- Layer Padat dengan 30 fitur sebagai input
- Aktivasi Relu
- Layer Normalisasi Batch (Tanpa itu, jaringan sebagian tidak konvergen sama sekali)
- Lapisan Dropout Opsional
- Padat
- Relu
- Batch
- Keluar
- .... Lapisan selanjutnya, dengan struktur yang sama
- Lapisan Padat dengan aktivasi Sigmoid
Pengoptimal: RMSprop
Kehilangan-Fungsi: Binary Cross-Entropy
Satu-satunya hal yang saya lakukan untuk pra pemrosesan adalah mengubah ukuran fitur ke kisaran [0,1].
Sekarang saya mengalami masalah khas overfitting / underfitting, yang biasanya saya atasi dengan Dropout atau / dan L1 dan L2 regularisasi kernel. Tetapi dalam hal ini, baik regularisasi Dropout dan L1 dan L2 memiliki dampak buruk pada kinerja, seperti yang Anda lihat pada grafik berikut.
Pengaturan dasar saya adalah: 5 Layer NN (termasuk input dan output layer), 60 Neuron per Layer, Learning Rate 0,02, no L1 / L2 dan no dropout, 100 Epochs, Normalisasi Batch, Batch-Size 1000. Semuanya sudah dilatih tentang 76000 sampel input (kelas hampir seimbang 45% / 55%) dan diterapkan pada jumlah sampel uji yang kira-kira sama. Untuk grafik, saya hanya mengubah satu parameter pada satu waktu. "Perf-Diff" berarti perbedaan kinerja stok rata-rata dari saham yang diklasifikasikan sebagai 1 dan saham yang diklasifikasikan sebagai 0, yang pada dasarnya adalah metrik inti pada akhirnya. (Lebih tinggi lebih baik)
Dalam kasus l1 jaringan pada dasarnya mengklasifikasikan setiap sampel ke satu kelas. Lonjakan terjadi karena jaringan melakukan ini lagi tetapi mengklasifikasikan 25 sampel secara acak benar. Jadi lonjakan ini seharusnya tidak diartikan sebagai hasil yang baik, tetapi sebuah pencilan.
Parameter lainnya memiliki dampak sebagai berikut:
Apakah Anda punya ide bagaimana saya bisa meningkatkan hasil saya? Apakah ada kesalahan nyata yang saya lakukan atau apakah ada jawaban yang mudah untuk hasil regularisasi? Apakah Anda menyarankan untuk melakukan segala jenis pemilihan fitur sebelum Pelatihan (misalnya PCA)?