RNN, atau recurrent neural network, adalah jaringan saraf yang dibuat untuk data berurutan seperti teks, ucapan, atau deret waktu. Pada setiap langkah, model ini menggabungkan input saat ini dengan hidden state dari langkah sebelumnya, sehingga output dapat bergantung pada apa yang datang lebih dulu.
Itulah gagasan utamanya: RNN memiliki memori yang terus berjalan. LSTM adalah jenis RNN berpintu yang mengelola memori itu dengan lebih hati-hati ketika informasi penting harus bertahan selama banyak langkah.
Apa yang dilakukan RNN pada setiap langkah waktu
Pada langkah waktu , RNN sederhana memperbarui hidden state-nya dengan aturan seperti
Di sini adalah input saat ini, adalah hidden state sebelumnya, dan adalah hidden state yang baru. Matriks dan serta bias dipelajari selama pelatihan.
Jika model juga menghasilkan output pada setiap langkah, bentuk yang umum adalah
Aturan output yang tepat bergantung pada tugasnya. Beberapa masalah memerlukan satu output per langkah, sementara yang lain hanya menggunakan hidden state terakhir.
Mengapa hidden state itu penting
Jaringan feedforward melihat satu input lalu selesai. RNN menggunakan kembali sebagian dari perhitungan sebelumnya. Penggunaan ulang inilah yang membuatnya berguna untuk teks, ucapan, deret waktu, dan data berurutan lainnya.
Anda bisa menganggap hidden state sebagai catatan ringkas yang ditulis model untuk dirinya sendiri setelah setiap langkah. Langkah berikutnya membaca catatan itu, memperbaruinya, lalu meneruskan versi yang sudah direvisi.
Jika Anda mengubah urutan dari input-input yang sama, hidden state biasanya juga berubah. Urutan dalam sequence memang penting.
Contoh RNN yang dikerjakan
RNN nyata biasanya menggunakan vektor dan aktivasi nonlinier. Agar perhitungannya tetap mudah dibaca, gunakan state mainan dengan satu angka:
Sekarang proses urutan , , .
Langkah pertama:
Langkah kedua:
Langkah ketiga:
Yang penting di sini bukan rumus pastinya. Yang penting adalah ketergantungan pada state sebelumnya. Pada langkah 2, pembaruan tidak hanya memakai ; pembaruan itu juga memakai apa yang dibawa dari langkah 1. Itulah inti gagasan RNN.
Jika Anda menukar urutannya dan memakai , , , maka
State akhirnya berbeda meskipun angka-angka yang sama tetap muncul. Itulah tepatnya alasan RNN adalah model urutan, bukan model bag-of-inputs.
Mengapa RNN dasar kesulitan pada urutan panjang
Dalam RNN dasar, informasi lama harus bertahan melewati banyak pembaruan berulang. Jika urutannya panjang, hal itu bisa sulit. Sinyal yang berguna dapat memudar, dan selama pelatihan gradien juga bisa mengecil atau meledak di banyak langkah.
Itulah sebabnya RNN biasa sering kesulitan ketika tugas bergantung pada informasi dari bagian yang jauh di belakang dalam urutan. Masalahnya bukan karena recurrence itu salah. Masalahnya adalah memori jarak jauh sulit dipertahankan dengan pembaruan hidden state yang sederhana.
Bagaimana LSTM meningkatkan memori RNN
LSTM, singkatan dari long short-term memory, adalah RNN berpintu. LSTM memperkenalkan jalur memori yang lebih terstruktur, biasanya disebut cell state, ditambah gate yang mengontrol informasi apa yang dilupakan, informasi baru apa yang ditulis, dan bagian mana yang ditampilkan sebagai output.
Anda tidak perlu persamaan gate lengkap untuk memahami intinya. Desain ini memberi model kontrol yang lebih besar atas memori. Jika suatu detail harus bertahan selama banyak langkah, LSTM lebih siap untuk mempertahankannya dibandingkan RNN biasa.
Itu tidak berarti LSTM mengingat semuanya selamanya. Artinya, arsitektur ini lebih baik dalam mempelajari kapan informasi perlu dipertahankan dan kapan perlu dibuang.
RNN vs. LSTM dalam bahasa sederhana
RNN dasar memiliki satu state berjalan dan memperbaruinya berulang kali. LSTM menambahkan mekanisme memori yang lebih kuat di sekitar gagasan itu.
Jika urutannya pendek dan ketergantungannya bersifat lokal, RNN biasa mungkin sudah cukup. Jika tugas bergantung pada informasi dari jauh lebih awal dalam urutan, LSTM sering menjadi pilihan yang lebih aman.
Kesalahan umum tentang RNN dan LSTM
Mengira RNN melihat seluruh urutan sekaligus
Biasanya tidak. Gambaran standarnya adalah pemrosesan langkah demi langkah, dengan state dibawa ke depan.
Menganggap LSTM menyelesaikan masalah memori dengan sempurna
LSTM membantu untuk dependensi jarak jauh, tetapi tetap merupakan model terlatih dengan kapasitas terbatas dan batasan praktis.
Mengabaikan urutan sequence
RNN dibuat untuk data berurutan. Mengacak elemen sequence akan mengubah perhitungannya.
Menganggap hidden state sebagai memori yang bisa dibaca manusia
Hidden state adalah representasi numerik yang dipelajari, bukan ringkasan rapi seperti kalimat.
Kapan RNN dan LSTM digunakan
Keduanya digunakan untuk masalah berurutan seperti language modeling, ucapan, tulisan tangan, aliran sensor, dan peramalan deret waktu. Saat ini, banyak tugas bahasa lebih sering memakai transformer, tetapi RNN dan LSTM tetap penting karena keduanya mengajarkan memori urutan dengan jelas dan masih bisa berguna dalam pengaturan yang lebih kecil atau khusus.
Coba versi Anda sendiri
Tulislah urutan empat langkah buatan Anda sendiri dan terapkan aturan mainan . Lalu tukar urutan dua input dan bandingkan state akhirnya. Eksperimen kecil itu membuat peran recurrence jauh lebih jelas daripada sekadar akronimnya.
Jika Anda ingin mengeksplorasi kasus lain, bandingkan halaman ini dengan penjelasan tentang transformer atau rantai Markov dan perhatikan apa yang dilakukan masing-masing model terhadap informasi masa lalu.
Butuh bantuan mengerjakan soal?
Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.
Buka GPAI Solver →