Apa itu recurrent neural network (RNN)?
Recurrent neural network (RNN) adalah neural network yang membaca sequence satu elemen setiap kali dan membawa hidden state dari satu langkah ke langkah berikutnya. Di setiap langkah, RNN menggabungkan hidden state sebelumnya dengan input saat ini memakai weight yang sama, sehingga hidden state menjadi ringkasan berjalan dari semua yang sudah dibaca. State terakhir, atau state di setiap langkah, diteruskan ke output layer.
RNN adalah model utama untuk teks, ucapan, dan time series sebelum ada Transformer. RNN dipakai pada neural machine translation generasi awal, pengenalan ucapan, pengenalan tulisan tangan, dan prediksi kata berikutnya di keyboard ponsel. RNN masih relevan untuk data streaming dan perangkat kecil karena setiap input baru memakan biaya komputasi yang tetap, dan masalah training-nya menjelaskan kenapa LSTM, GRU, dan attention diciptakan.
Ide utama
- RNN memperbarui hidden state dengan h_t = tanh(W_h · h_(t−1) + W_x · x_t + b).
- Weight yang sama dipakai ulang di setiap time step.
- Hidden state adalah ringkasan berukuran tetap dari semua yang sudah dibaca.
- Training melakukan unroll pada network dan menjalankan backpropagation through time.
- Gradient mengecil atau membesar secara eksponensial seiring panjang sequence.
- Gated cell seperti LSTM dan GRU dirancang untuk menyimpan informasi jarak jauh.
Pertanyaan umum
Apa bedanya RNN dengan feedforward network?
Feedforward network memetakan satu input berukuran tetap ke satu output dan tidak menyimpan memori di antara input. RNN punya putaran: output di satu langkah masuk lagi di langkah berikutnya. Putaran itu membuat RNN bisa menangani input sepanjang apa pun dan memperhitungkan input sebelumnya.
Apakah RNN bisa menangani sequence sepanjang apa pun?
Secara prinsip bisa, karena cell yang sama berjalan satu kali per elemen. Dalam praktiknya, RNN biasa kehilangan informasi dari lebih dari beberapa puluh langkah ke belakang karena vanishing gradient dan state yang ukurannya tetap. LSTM memperpanjangnya sampai ratusan langkah, dan attention menghilangkan hambatan itu dengan melihat langsung ke setiap posisi.
Kenapa RNN memakai tanh, bukan ReLU?
Weight yang sama diterapkan lagi di setiap langkah, jadi aktivasi tanpa batas seperti ReLU bisa membuat hidden state membesar tak terkendali pada sequence yang panjang. Tanh membatasi setiap nilai di antara −1 dan +1 dan berpusat di nol. RNN dengan ReLU bisa berjalan dengan inisialisasi yang hati-hati, misalnya W_h berupa matriks identitas, tetapi tanh tetap menjadi pilihan default.
Apakah RNN masih dipakai sekarang?
Transformer sudah menggantikannya untuk sebagian besar tugas bahasa, tetapi model recurrent masih dipakai untuk audio streaming, keyboard di perangkat, dan data sensor, ketika memori dan latency terbatas. State space model terbaru seperti Mamba juga menyimpan state recurrent, sehingga bisa menghasilkan setiap token baru dengan biaya tetap.
Penjelasan terkait
- LSTM · Gate dan memory cell untuk sequence panjang
- Vanishing dan Exploding Gradient · Kenapa deep network sulit dilatih dan cara mengatasinya
- Backpropagation · Cara network belajar dari kesalahannya
- Seq2Seq & Beam Search · Lakukan encode pada input sequence, lalu decode menjadi output: arsitektur di balik penerjemahan
- Embedding · Mengubah kata dan kategori menjadi vector
- Arsitektur Transformer · Panduan visual untuk paper "Attention Is All You Need"
Referensi
- Elman (1990), "Finding Structure in Time", Cognitive Science
- Bengio, Simard & Frasconi (1994), "Learning Long-Term Dependencies with Gradient Descent Is Difficult", IEEE Transactions on Neural Networks
- Pascanu, Mikolov & Bengio (2013), "On the Difficulty of Training Recurrent Neural Networks"
- Dive into Deep Learning, "Recurrent Neural Networks"
Terakhir diperbarui