Saya memiliki akses ke dataset yang sangat besar. Data tersebut dari rekaman MEG dari orang yang mendengarkan kutipan musik, dari satu dari empat genre. Data adalah sebagai berikut:
- 6 mata pelajaran
- 3 pengulangan Eksperimental (zaman)
- 120 Percobaan per zaman
- 8 detik data per percobaan pada 500Hz (= 4000 sampel) dari 275 saluran MEG
Jadi setiap "contoh" di sini adalah matriks ukuran [4000x275], dan ada 2160 contoh seperti itu, dan itu sebelum ekstraksi fitur apa pun. Tujuannya adalah untuk memprediksi genre berdasarkan sinyal otak (klasifikasi 4-kelas).
Jelas ada beberapa masalah yang menantang di sini, yaitu:
- Dataset tidak sesuai dengan memori
- Akan ada korelasi temporal yang kuat dalam data, dan variasi antar subjek akan sangat besar. Akibatnya tidak jelas bagaimana cara membagi data
- Rasio signal-to-noise sangat rendah
- Tidak jelas apa fitur yang benar untuk classifier
Ambil ini pada gilirannya:
Ada berbagai hal yang dapat dilakukan seseorang. Pertama, kita dapat dengan aman menurunkan sampel dari 500Hz hingga ~ 200Hz, karena bahkan dengan mempertimbangkan batas Nyquist, aktivitas otak tidak benar-benar terjadi pada lebih dari 100Hz. Kami juga dapat melakukan subsampel dari himpunan saluran (misalnya pusat atas area pendengaran) tetapi kami lebih suka tidak melakukan ini secara apriori , karena mungkin ada aktivitas di area lain (frontal dll) yang mungkin menarik. Kami mungkin juga dapat menjatuhkan sebagian dari jendela waktu. Mungkin hanya 2s pertama yang penting untuk tugas ini? Itu tidak benar-benar diketahui. Tentu saja semua orang akan berteriak " Pengurangan dimensi! ", tapi itu juga tidak sepele. Pertama, kita harus sangat berhati-hati tentang pemisahan kereta / uji kami (lihat 2.) dan juga tidak jelas apakah akan melakukan ini sebelum atau setelah pembuatan fitur. Kedua, selain mahal validasi silang, atau inspeksi visual yang melelahkan, tidak ada cara yang jelas untuk memilih metode yang sesuai atau jumlah dimensi yang sesuai. Kita tentu saja dapat menggunakan misalnya PCA, ICA, atau proyeksi acak dan berharap yang terbaik ....
Ini rumit. Jika kita memiliki sampel berturut-turut di set pelatihan, kita cenderung untuk mengganti set pelatihan, sedangkan jika kita memiliki sampel berturut-turut dibagi ke dalam kereta dan set tes kita cenderung kurang dari set pelatihan, tetapi masih bisa menyesuaikan set pengujian. Tampaknya ada berbagai opsi di sini:
- Klasifikasi Subjek Tunggal . Ambil masing-masing subjek secara terpisah, dan bagi sesuai zaman. Ini harus menjadi tugas termudah, karena kami tidak mencoba untuk memprediksi seluruh otak. Dalam yang satu ini bisa menggunakan dua zaman tetap untuk validasi silang. Untuk kelengkapannya, seseorang harus memutar semua kombinasi. Kami hanya akan melaporkan akurasi rata-rata untuk semua mata pelajaran. Tentu saja kami tidak berharap model ini dapat digeneralisasikan dengan baik sama sekali.
- Dalam klasifikasi mata pelajaran . Kumpulkan semua subjek, dan bagi sesuai zaman. Ini mungkin sebenarnya tugas yang paling mudah, karena kita akan melihat semua mata pelajaran dalam pelatihan. Namun kami mungkin tidak akan mengharapkan model untuk menggeneralisasi dengan baik untuk mata pelajaran baru. Dalam yang satu ini bisa menggunakan dua zaman tetap untuk validasi silang. Untuk kelengkapannya, seseorang harus memutar semua kombinasi.
- Klasifikasi antar mata pelajaran . Juga dikenal sebagai "tinggalkan satu", di mana satu subjek diambil sebagai data uji, dan sisanya digunakan untuk pelatihan. Kami kemudian akan memutar semua subjek. Validasi silang kemudian akan dilakukan pada subjek. Kami akan mengharapkan ini menjadi tugas yang jauh lebih sulit, karena kami mencoba untuk memprediksi pada "otak baru" setiap kali. Di sini kita akan mengharapkan model untuk menggeneralisasi dengan baik untuk populasi yang lebih besar, meskipun ada masalah reliabilitas uji-ulang (yaitu seberapa banyak overfitting disebabkan oleh korelasi temporal).
Ini adalah masalah klasik "jarum di tumpukan jerami" - sinyal aktual yang berkaitan dengan pengakuan genre musik, atau pemrosesan genre spesifik apa pun, cenderung sangat kecil dibandingkan dengan "sup" aktivitas di otak. Ada juga artefak terkenal yang hanya dapat dihilangkan sebagian (terutama terkait dengan pergerakan). Setiap fitur yang kami peroleh dari data, dan segala cara perlakuan terhadap data, harus menghindari penghancuran bagian dari sinyal yang diinginkan.
Di sini orang bisa membayangkan melakukan berbagai hal. Yang pertama adalah dengan hanya menggunakan data mentah (digabungkan ke dalam vektor) sebagai vektor fitur. Saya tidak yakin seberapa berbuahnya itu - saya pikir vektor-vektor ini mungkin pada dasarnya acak secara seragam. Ini kemudian benar-benar pertanyaan pemrosesan sinyal, tetapi ada beberapa pedoman umum yang dapat diikuti. Salah satunya adalah melakukan Analisis Fourier standar melalui jendela geser, dari mana komponen dapat dibagi menjadi pita frekuensi yang berbeda (alpha / beta / gamma dll), dan statistik ini (rata-rata, deviasi std.) Dapat digunakan sebagai fitur. Atau seseorang dapat menggunakan Wavelet, Hilbert Transforms, atau bahkan berusaha mencari penarik yang kacau. Tentu saja kemudian kita memiliki pilihan kernel (linear, polinomial, RBF dll) yang mengalikan jumlah permutasi. Mungkin hal terbaik untuk dilakukan di sini adalah menghasilkan sebanyak mungkin set fitur yang berbeda, dan kemudian menggunakan MKL atau meningkatkan metode untuk menggabungkannya.
Bagaimana Anda mendekati dataset semacam ini (jika tidak yang khusus ini)? Apakah ada sesuatu yang saya lewatkan? Apa strategi yang paling mungkin untuk berhasil, tanpa menghabiskan waktu peneliti dan sumber daya komputasi yang tidak terbatas?