Lompat ke konten Lompat ke sidebar Lompat ke footer

Recurrent Neural Network (RNN): Pengertian, Cara Kerja, dan Penerapannya

Pernahkah Anda mengetik sesuatu di pencarian Google kemudian Google secara otomatis memberikan saran kata setelahnya? Seolah-olah sistem tahu apa yang sedang ingin kita cari. Jika Anda penasaran bagaimana hal itu bisa terjadi, maka rahasianya adalah algoritma RNN, yang bekerja untuk memberi ramalan kata berdasarkan riwayat pencarian kita sebelumnya.

Recurrent Neural Network (RNN): Pengertian, Cara Kerja, dan Penerapannya

Di artikel ini kita akan membahas lebih dalam apa itu algoritma Recurrent Neural Network, bagaimana cara kerjanya, penerapannya serta kelebihan dan kekurangannya.

Daftar Isi

Pengertian Recurrent Neural Network

Recurrent Neural Network atau yang biasa disingkat RNN merupakan salah satu jenis algoritma Deep learning yang menerapkan pendekatan berurutan atau sequential. RNN termasuk ke dalam jenis Artificial Neural Network (ANN) yang umumnya digunakan pada rekognisi suara (speech recognition) dan Natural Language Processing (NLP). RNN digunakan pada deep learning untuk pengembangan model yang bekerja meniru aktivitas neuron yang ada di otak manusia.

RNN didesain untuk mengenali pola dalam urutan data, seperti teks, tulisan tangan, ucapan kata, dan data numerik berbentuk time series, misalnya data yang berasal dari sensor dan data pergerakan pasar saham.

Oleh karena itu, RNN cenderung digunakan untuk menyelesaikan tugas yang berkaitan dengan prediksi atau ramalan pada data berjenis deret waktu (time series), misalnya ramalan cuaca, prediksi harga saham, saran kata pada pencarian Google, dan sebagainya. Hal ini karena data-data tersebut biasanya membentuk pola yang dapat dikenali dan menjadi input bagi RNN untuk melakukan prediksi.

Recurrent Neural Network pada prinsipnya mirip seperti neural network biasa, namun dengan tambahan memory-state pada neuronnya. RNN mampu menyimpan memori atau ingatan (feedback loop) yang memungkinkan untuk mengenali pola data dengan baik, kemudian menggunakannya untuk membuat prediksi yang akurat. 

Cara yang dilakukan RNN untuk dapat menyimpan informasi dari masa lalu adalah dengan melakukan perulangan di dalam arsitekturnya, di mana data output disalin dan digunakan kembali sebagai data input yang secara otomatis membuat informasi dari masa lalu tetap tersimpan. Hal ini juga menjadi alasan kenapa algoritma ini disebut sebagai recurrent neural network atau jaringan saraf berulang. Disebut recurrent atau berulang karena melakukan perhitungan matematis secara berurutan / sequential.

Cara Kerja Algoritma RNN

Algoritma Recurrent Neural Network bekerja menganut prinsip perulangan dengan cara menyimpan output dari layer tertentu dan mengumpankannya kembali sebagai input untuk memprediksi output layer.

Ilustrasi RNN
Sumber javatpoint.com

Pada neural network biasa, semua input dan output independen satu sama lain. Namun dalam kasus tertentu seperti ketika hendak memprediksi kata berikutnya dari sebuah kalimat, maka diperlukan kata-kata sebelumnya. Pada kasus seperti itu kita perlu menyimpan informasi berupa kata-kata sebelumnya. RNN muncul untuk memecahkan masalah ini dengan bantuan hidden layer. Fitur utama dan terpenting dari RNN adalah hidden state, yang mengingat beberapa informasi mengenai urutan dari data.

Sebagai contoh: Misalkan terdapat deep network dengan satu input layer, tiga hidden layer dan satu output layer. Kemudian seperti neural network lainnya, setiap hidden layer akan memiliki bobot dan biasnya sendiri, misalkan untuk hidden layer 1 bobot dan biasnya adalah (w1, b1), (w2, b2) untuk hidden layer kedua dan (w3, b3) untuk hidden layer ketiga. Masing-masing lapisan ini independen satu sama lain, yaitu tidak menyimpan keluaran sebelumnya.

Adapun yang dilakukan algoritma RNN yaitu mengubah aktivasi independen menjadi aktivasi dependen dengan memberikan bobot dan bias yang sama untuk semua layer. Hal ini akan mengurangi kompleksitas parameter dan menghafal setiap output sebelumnya. Caranya dengan menjadikan setiap output sebagai input ke hidden layer berikutnya. Ketiga layer tersebut dapat digabungkan bersama sehingga bobot dan bias dari semua hidden layer adalah sama, menjadi satu lapisan berulang.

Sumber: dezyre.gumlet.io

Langkah-langkah training pada RNN

Langkah pertama: Masukkan set input awal kepada neural network.

Langkah kedua: Hitung state saat ini menggunakan input yang ada sekarang dan state sebelumnya (jika ada). H(t) saat ini akan menjadi h(t-1) untuk langkah berikutnya.

Langkah ketiga: Lakukan perulangan langkah sebanyak mungkin sesuai dengan kasus yang ingin diselesaikan dan menggabungkan informasi dari semua state sebelumnya.

Langkah keempat: Setelah semua langkah selesai, state akhir digunakan untuk menghitung output.

Langkah kelima: Output kemudian dibandingkan dengan output aktual (target) untuk menghitung nilai kesalahan yang dihasilkan.

Langkah keenam: Kesalahan tersebut kemudian disebarkan kembali ke neural network untuk memperbarui bobot dan menghasilkan keluaran yang lebih akurat.

Contoh Penerapan Algoritma RNN

Berikut adalah beberapa contoh penerapan algoritma RNN:

1. Mesin penerjemah

Recurrent Neural Network digunakan pada mesin penerjemah untuk menerjemahkan teks dari satu bahasa ke bahasa lain. Contohnya seperti Google Translate. Untuk memberikan hasil terjemahan yang akurat, algoritma RNN dikombinasikan dengan model lain seperti LSTM (Long short-term memory)

2. Pengenalan suara

RNN dikolaborasikan dengan LSTM dapat digunakan untuk mengenali suara seperti pidato dan mengubahnya menjadi teks tanpa kehilangan konteks atau maksud dari kalimat yang disampaikan.

Sumber: javatpoint.com

3. Prediksi harga berdasarkan data

Di industri keuangan, RNN dapat membantu memprediksi harga saham atau tanda arah pasar saham (positif atau negatif).

4. Autocaption pada gambar.

RNN dipadukan dengan algoritma CNN dapat dipakai untuk mendeteksi gambar dan memberikan deskripsi singkat mengenai gambar tersebut dalam bentuk tag atau teks. Misalnya gambar berikut dapat dideskripsikan menjadi  “gambar mungkin berisi 1 orang sedang duduk dan di luar ruangan

Sumber: medium.com

Kelebihan RNN

  • Algoritma RNN dimodelkan untuk menyimpan setiap informasi secara berurutan yang sangat membantu pada tugas prediksi time series.
  • RNN dapat digunakan pada lapisan konvolusi (convolutional) untuk memperluas piksel tetangga saat melakukan proses pengenalan gambar.
  • RNN dapat memproses input dengan panjang berapa pun. Bahkan jika ukuran input lebih besar, ukuran model RNN tidak bertambah.
  • RNN dapat menggunakan memory internal untuk memproses rangkaian input yang berubah-ubah yang tidak terjadi pada jaringan syaraf tiruan berstruktur feedforward (feedforward neural network).

Kekurangan RNN

  • Karena sifatnya yang berulang, proses komputasinya lambat.
  • Melatih model RNN bisa jadi tugas yang sulit.
  • Tidak dapat memproses urutan yang sangat panjang jika menggunakan tanh atau relu sebagai fungsi aktivasi.

Penutup

Sebagai kesimpulan, algoritma Recurrent Neural Network (RNN) adalah salah satu algoritma deep learning yang dapat digunakan untuk mengenali pola dan melakukan prediksi pada data numerik berbentuk time series, misalnya ramalan cuaca dan prediksi harga saham.

Hal ini karena RNN dirancang untuk bekerja meniru aktivitas neuron otak manusia, yang mengingat dan menghimpun informasi yang didapatkan sebelumnya untuk memprediksi masa depan.

Demikianlah penjelasan lengkap mengenai algoritma Recurrent Neural Network (RNN). Apabila tertarik mengenai artikel seputar algoritma deep learning seperti ini, Anda bisa mengunjungi rubrik Deep Learning atau membaca artikel sebelumnya mengenai algoritma Convolutional Neural Network (CNN) yang juga menarik untuk dibaca.

Salam!

Referensi

Trivusi
Trivusi Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

Posting Komentar untuk "Recurrent Neural Network (RNN): Pengertian, Cara Kerja, dan Penerapannya"