Bagaimana cara melatih model LSTM pada beberapa data deret waktu?
Kasus penggunaan: Saya memiliki penjualan mingguan 20.000 agen selama 5 tahun terakhir. Perlu memperkirakan penjualan mingguan mendatang untuk setiap agen.
Apakah saya perlu mengikuti teknik pemrosesan batch - mengambil satu agen pada suatu waktu, melatih model LSTM kemudian memperkirakan? Adakah cara yang lebih baik?
Jawaban:
Jadikan identitas agen salah satu fitur, dan latih semua data. Mungkin melatih pada batch-mini misalnya 128 agen pada saat: berjalan melalui seri-waktu dari awal hingga akhir untuk 128 agen tersebut, kemudian pilih mini-batch agen baru. Untuk setiap mini-batch, jalankan sepotong katakanlah 50 timesteps, lalu backprop. Jaga status akhir dari irisan itu, dan jalankan 50 langkah waktu berikutnya, mulai dari status akhir itu. Bilas dan ulangi sampai Anda mencapai akhir dari timesteps, untuk batch kecil ~ 128 agen.
Dengan menempatkan identitas masing-masing agen sebagai salah satu fitur, Anda memungkinkan jaringan untuk:
Sunting: Alpo Jose menulis:
Ooo, itu benar. Ada 20.000 di antaranya. Itu agak banyak. Saya pikir apa yang ingin Anda lakukan adalah 'menanamkan' mereka. Memiliki lapisan pencarian, yang mengambil id agen (dinyatakan sebagai bilangan bulat, indeks), dan menampilkan vektor dimensi tinggi, seperti sesuatu seperti vektor panjang 50-300, mungkin vektor yang panjangnya kira-kira cocok dengan ukuran tersembunyi dari LSTM Anda.
Secara matematis, tabel pencarian, juga disebut 'lapisan embedding', setara dengan membuat id agen menjadi vektor satu-panas, kemudian melewati lapisan linier (terhubung sepenuhnya). Namun, persyaratan dalam memori jauh berkurang untuk lapisan penyematan.
Dalam hal apa yang akan dipelajari oleh lapisan penanaman, saat Anda melatihnya, lapisan penanaman akan membentuk semacam representasi laten dari masing-masing agen. Representasi laten kemungkinan tidak akan dapat dibaca / ditafsirkan dengan cara apa pun, tetapi akan memungkinkan model untuk mempelajari hal-hal seperti 'ok agen ini, 1524, relatif efektif, tetapi tidak pada akhir pekan; di mana 1526 hebat setiap hari; dll .... '. Dimensi laten dari vektor embedding mungkin sebenarnya berarti hal-hal, tetapi tidak ada yang pernah mencoba untuk mencari tahu apa artinya (saya pikir itu akan sulit / tidak mungkin). Namun, embeddings per-agen berdimensi tinggi memungkinkan model untuk mempelajari sesuatu tentang perilaku masing-masing agen, dan membuat model ini dalam prediksi time-series.
sumber