LSTM Stateless vs Stateful – Menuju AI

LSTM Stateless vs Stateful – Menuju AI

Pengarang: Harshit Sharma

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Dalam pembelajaran mesin, umumnya diasumsikan bahwa sampel pelatihan adalah Independen dan Terdistribusi Identik (IID). Sejauh menyangkut data urutan, ini tidak selalu benar. Jika nilai urutan memiliki ketergantungan temporal di antara mereka, seperti data Time Series, asumsi IID gagal.

Algoritma pemodelan urutan karenanya datang dalam dua rasa, Stateless dan Stateful, tergantung pada arsitektur yang digunakan saat pelatihan. Berikut ini adalah pembahasan yang menggunakan LSTM sebagai contoh, tetapi pengertian tersebut juga berlaku untuk varian lain, yaitu RNN, GRU, dll.

Arsitektur ini digunakan ketika asumsi IID berlaku. Saat membuat batch untuk pelatihan, ini berarti bahwa tidak ada hubungan antar batch, dan setiap batch independen satu sama lain.

Proses pelatihan khas dalam arsitektur LSTM stateless ditunjukkan di bawah ini:

Gambar oleh Penulis

Cara kedua arsitektur ini berbeda adalah cara di mana status (sel dan status tersembunyi) model (sesuai dengan setiap batch) diinisialisasi saat pelatihan berlangsung dari satu batch ke batch lainnya. Jangan bingung dengan parameter/bobot, yang bagaimanapun juga disebarkan melalui seluruh proses pelatihan (yang merupakan inti dari pelatihan)

Dalam diagram di atas, status awal LSTM direset ke nol setiap kali batch baru diambil dan diproses, sehingga tidak memanfaatkan aktivasi internal (status) yang sudah dipelajari. Ini memaksa model untuk melupakan pembelajaran dari batch sebelumnya.

Data urutan seperti Time Series berisi sampel non-IID, dan karenanya bukan ide yang baik untuk berasumsi bahwa kumpulan yang dibagi adalah independen padahal sebenarnya tidak. Oleh karena itu intuitif untuk menyebarkan keadaan yang dipelajari di seluruh batch berikutnya sehingga model menangkap ketergantungan temporal tidak hanya dalam setiap urutan sampel tetapi juga di seluruh batch.
(Perhatikan bahwa untuk data teks, di mana sebuah kalimat mewakili urutan, umumnya diasumsikan bahwa korpus terdiri dari kalimat independen tanpa hubungan di antara mereka. Oleh karena itu, aman untuk menggunakan arsitektur stateless. Kapan pun asumsi ini tidak benar, Stateful lebih disukai.)
Di bawah ini adalah seperti apa arsitektur LSTM Stateful:

Gambar oleh Penulis

Di sini, sel dan status tersembunyi LSTM untuk setiap batch diinisialisasi menggunakan status yang dipelajari dari batch sebelumnya, sehingga membuat model mempelajari ketergantungan di seluruh batch. Namun, statusnya diatur ulang pada awal setiap zaman. Visualisasi yang lebih halus menunjukkan propagasi ini di seluruh batch ditunjukkan di bawah ini:

Gambar oleh Penulis

Di sini keadaan sampel yang terletak pada indeks i, X[i] akan digunakan dalam perhitungan sampel X[i + b s] di batch berikutnya, di mana bs adalah ukuran batch. Lebih tepatnya, keadaan terakhir untuk setiap sampel pada indeks i dalam batch akan digunakan sebagai keadaan awal untuk sampel indeks i pada batch berikutnya. Dalam diagram, panjang setiap urutan sampel adalah 4 (langkah waktu), dan nilai-nilai status LSTM pada langkah waktu t=4 digunakan untuk inisialisasi pada batch berikutnya.

Pengamatan:
1. Saat ukuran batch meningkat, LSTM Stateless cenderung mensimulasikan LSTM Stateful.
2. Untuk arsitektur Stateful, batch tidak dikocok secara internal (yang sebaliknya merupakan langkah default dalam kasus stateless)

Referensi:

LSTM Stateful di Keras Stateful dan LSTM Stateless untuk Peramalan Deret Waktu dengan Python

Stateless vs Stateful LSTMs awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson