Apa itu LSTM (Long Short-Term Memory) ?
LSTM merupakan desain tambahan pada RNN yang membuat RNN istimewa. Tanpanya, RNN akan selalu memiliki masalah vanishing gradient. Dengan adanya penambahan LSTM, maka RNN terbukti dapat diaplikasikan ke dalam berbagai aspek, antara lain speech recognition (mengenali suara manusia), image captioning (menamai gambar dan memberinya judul hanya dengan melihatnya saja), translation (menerjemahkan kalimat dari bahas satu ke bahasa lainnya, seperti google translate), dan masih banyak lagi.
Kali ini saya akan menjelaskan LSTM berdasarkan tulisan yang dibuat oleh Christopher Olah di blognya yang sangat bagus membahas tentang teknik ini. Materi pembahasan dan animasi gambar juga saya ambil dari website ini. Saya akan coba menguraikannya kembali dengan bahasa yang lebih mudah dipahami oleh pembaca. Jadi sebenarnya apa itu LSTM?
LSTM pertama kali diperkenalkan oleh Hocreiter dan Schmidhuber di papernya. Tentunya kita tidak akan membahas papernya yang sangat matematis di pembahasan kali ini.
Ringkasnya, LSTM menambakan sebuah proses seleksi di dalam cell (kotak kontrol) nya sehingga bisa menyeleksi informasi mana yang layak untuk diteruskan, sekaligus menjadi solusi bagi permasalahan vanishing gradient.
Jika sebelumnya kita sudah mengetahui desain RNN seperti ini:

Maka jika kita jabarkan apa yang terjadi di dalam perceptron sebuah hidden layer, akan tampak sebagai berikut:

Sekarang kita melihat lebih detail apa yang terjadi di dalam hidden layer. Kita membedah isi dari perceptron Xt. Kita juga memiliki notasi baru It (dibaca input saat waktu t) yang merupakan input untuk perceptron Xt. Fungsi aktivasi di dalamnya yang digunakan bisa sigmoid atau hyperbolic (tanh).
Di dalamnya ia menerima input dari It dan Yt-1. Ilustrasi bergeraknya tampak seperti gambar berikut ini:

Sekarang kita lihat desain sebuah perceptron dari kerangka LSTM:

Kita melihat ada 2 fungsi aktivasi (activation function) yang digunakan di LSTM. Yang pertama adalah sigmoid (berwarna merah), di mana fungsi ini akan mengalikan nilai vektor yang melewatinya dengan angka antara 0-1. Sementara fungsi aktivasi kedua adalah hyperbolic tangent (tanh), di mana ia akan mengalikan vektor yang melewatinya dengan nilai antara -1 sampai 1.
Berbeda dengan RNN yang memiliki 2 input (It dan Xt-1), LSTM memiliki 3 input, yaitu (It, Xt-1, dan Ct–1), di mana Ct-1 adalah cell state dari perceptron di waktu sebelumnya).
Apa itu cell state? Ia seperti jalur tol (diilustrasikan oleh garis lurus paling atas dari kiri ke kanan) yang memungkinkan peroses berpindahnya informasi dari perceptron di waktu awal hingga perceptron di waktu akhir tanpa melewati gerbang-gerbang activation function. Dengan demikian, ia tidak akan mengalami permasalahan vanishing gradient maupun exploding gradient. Walau demikian, informasi yang melewati cell state juga dipengaruhi oleh hasil dari gerbang-gerbang activation function di perceptron tersebut (lihat lagi ilustrasi LSTM di atas).
Rancangan LSTM ini mungkin tampak membingungkan karena banyak panah dan fungsi aktivasi. Oleh karena itu, kita akan bedah satu demi satu prosesnya sehingga akan sangat terlihat mudah. Mari mulai!
Untuk melanjutkan membaca, silakan klik tombol ke halaman selanjutnya di bawah ini.
