Asumsikan urutan 1 dimensi berikut:
A, B, C, Z, B, B, #, C, C, C, V, $, W, A, % ...
Surat-surat di A, B, C, ..
sini mewakili peristiwa 'biasa'.
Simbol di #, $, %, ...
sini mewakili acara 'khusus'
Jarak temporal antara semua peristiwa adalah tidak seragam (mulai dari detik, hingga hari) meskipun semakin lama peristiwa tersebut semakin kecil kemungkinannya untuk mempengaruhi peristiwa di masa depan. Idealnya saya dapat memperhitungkan penundaan waktu ini secara eksplisit.
Ada di urutan 10.000 jenis acara biasa, dan di urutan 100 jenis acara khusus. Jumlah acara biasa sebelum acara khusus bervariasi tetapi tidak mungkin lebih dari 100-300.
Pada dasarnya saya tertarik untuk mencari pola dalam urutan peristiwa biasa yang akhirnya menjadi prediksi untuk acara khusus.
Sekarang Anda dapat mendekati ini dengan berbagai cara: membuat vektor fitur + klasifikasi standar, pembelajaran aturan asosiasi, HMM, dll.
Dalam hal ini saya ingin tahu bagaimana jaringan berbasis LSTM paling cocok. Terus terang akan melakukan sesuatu seperti char-rnn Karparthy dan memprediksi acara berikutnya diberi sejarah. Kemudian untuk urutan baru
C, Z, Q, V, V, ... , V, W
Anda dapat menjalankannya melalui model dan melihat acara khusus apa yang paling mungkin terjadi selanjutnya. Tapi rasanya kurang pas.
Karena ini adalah masalah klasifikasi temporal, tampaknya hal yang tepat untuk dilakukan adalah menggunakan Classification Temporal Connectionist seperti yang dijelaskan oleh Alex Graves .
Namun, sebelum berinvestasi terlalu banyak pada saat ini saya sedang mencari sesuatu yang lebih mudah dan lebih cepat untuk bereksperimen untuk merasakan seberapa baik LSTM cocok di sini. Tensorflow akan melihat contoh CTC di beberapa titik, tetapi belum.
Jadi (sub) pertanyaan saya adalah:
- Mengingat masalah di atas dan saya ingin bereksperimen dengan LSTM apakah perlu mencoba pendekatan tipe char-rnn, haruskah saya menggigit peluru dan mulai menggunakan CTC, atau apakah ada tempat yang lebih baik untuk memulai.
- Bagaimana Anda akan secara eksplisit memasukkan informasi waktu antar peristiwa. Menggunakan jam tetap dengan acara no-op jelas bekerja tetapi tampaknya jelek.
- Dengan asumsi saya berhasil melatih LSTM apakah ada cara untuk memeriksa model untuk melihat seperti apa 'motif' acara itu telah diambil? (Yaitu, analog dengan filter di convnets)
Setiap kode sampel (lebih disukai python) selalu membantu.
Sunting: Hanya untuk menambahkan bahwa ada beberapa gangguan dalam urutan. Beberapa peristiwa dapat diabaikan dengan aman tetapi hal mana yang tidak selalu mungkin untuk dikatakan di muka. Jadi idealnya model (dan motif yang berasal dari itu) kuat terhadap ini.