RNN secara sederhana adalah kumpulan artificial neural network (ANN) yang kembali terhubung dengan diri sendiri. Jika digambarkan, berikut step dari ANN hingga terbentuk menjadi RNN.

Recurrent Neural Network, berikutnya akan kita singkat RNN, adalah neural network digunakan untuk memproses data sequence x(t)= x(1), . . . , x(τ) dengan range time step index t dari 1 sampai dengan τ.
Contoh dari sequential input adalah text. Dalam NLP , jika kita ingin memprediksi kata selanjutnya pada sebuah kalimat, kita perlu mengetahui kata sebelumnya. RNN disebut recurrent karena setiap element pada sequence tertentu melakukan tugas yang sama, dan tergantung dengan perhitungan sequence sebelumnya.
Secara sederhannya, RNN memiliki “memory” yang berisi informasi perhitungan terakhir dan yang membedakan RNN dari Artificial Neural Network (ANN).
Architecture RNN

Sisi kiri adalah notasi dari RNN. Pada sisi kanan adalah Architecture RNN dalam bentuk full network.
Input: x(t) adalah input pada time step t. Contoh, x1, dapat berupa one-hot vector dari sebuah kata pada text.
Hidden state: h(t) adalah hidden state pada time t, bertindak sebagai “memory” dari network. h(t) dihitung berdasarkan current input dan hidden state pada step sebelumnya: h(t) = f(U x(t) + W h(t−1)). Fungsi f adalah non-linear transformation seperti tanh, ReLU.
Weights: weight matrix U untuk koneksi dari RNN ke hidden layer, weight matrix W digunakan untuk koneksi dari hidden-to-hidden, dan koneksi hidden-to-output menggunakan weight matrix V.
Output: o(t) mengilustrasikan output dari network.
Aplikasi RNN
Hal yang menarik pada RNN adalah mampu menerima lebih dari satu input dan menghasilkan lebih dari satu output. Berikut contohnya:

- One to Many: input image anjing sedang melompat, hasil dari model mampu menghasilkan deskripsi tentang gambar tersebut, black and white dog jumps over bar.
- Many to One: contoh sentimen analisis, contoh input adalah review movie, model mampu mengklasifikasikan review sebagai positif atau negatif.
- Many to Many: contoh adalah translate software, subtitile pada movie.
Kekurangan RNN
- Ada Masalah Gradient Vanishing dan Exploding
- Cukup sulit melatih model RNN
- Tidak bisa memproses sequence yang panjang jika menggunakan tanh atau ReLu activation function.
1 thought on “Pengenalan Recurrent Neural Network (RNN)”