Back to projects
3 min read
Machine LearningDeep LearningScratch

Long Short Term Memory From Scratch

Implementasi arsitektur Long Short Term Memory from scratch berserta dengan penerapan konsep matematika menggunakan numpy.

Long Short Term Memory From Scratch

Long Short-Term Memory From Scratch

Project ini adalah implementasi arsitektur Long Short-Term Memory (LSTM) dari nol hanya menggunakan NumPy dan konsep matematika yang saya pelajari.

Project ini saya buat setelah sebelumnya saya mempelajari Recurrent Neural Network (RNN). Dari eksperimen yang saya lakukan pada project RNN sebelumnya, saya mulai memahami bagaimana model dapat memproses data sequential seperti teks.

Namun saya juga menemukan bahwa Vanilla RNN memiliki beberapa keterbatasan, terutama ketika model harus memproses sequence yang panjang.

Salah satu masalah utama dari RNN adalah model sulit mengingat informasi yang berada di awal sequence ketika kalimat atau sequence menjadi terlalu panjang.

Hal ini terjadi karena adanya fenomena vanishing gradient, yaitu kondisi di mana nilai gradient menjadi semakin kecil ketika proses backpropagation dilakukan melalui banyak langkah waktu (time step).

Akibatnya, informasi dari kata-kata awal dalam sebuah kalimat seringkali tidak dapat dipertahankan oleh model.

Karena itulah saya memutuskan untuk mempelajari dan mengimplementasikan arsitektur Long Short-Term Memory (LSTM).


Problem

Vanilla RNN memiliki beberapa keterbatasan ketika digunakan untuk memproses sequence yang panjang, di antaranya:

  • sulit mempertahankan informasi dari awal sequence
  • gradient semakin mengecil saat backpropagation melalui banyak time step
  • model kesulitan mempelajari dependensi jangka panjang (long-term dependency)

Masalah ini dikenal sebagai vanishing gradient problem, yang membuat RNN kurang efektif untuk sequence yang panjang.


Solution

Untuk mengatasi masalah tersebut, para peneliti mengembangkan arsitektur Long Short-Term Memory (LSTM).

LSTM dirancang dengan mekanisme memory cell dan beberapa gate yang dapat mengontrol aliran informasi di dalam network.

Gate tersebut memungkinkan model untuk:

  • menyimpan informasi penting
  • melupakan informasi yang tidak diperlukan
  • memperbarui memori secara terkontrol

Dengan mekanisme ini, model dapat mempertahankan informasi dalam sequence yang lebih panjang dibandingkan Vanilla RNN.


LSTM Mechanism

Salah satu konsep penting dalam LSTM adalah mekanisme cell state yang berfungsi sebagai jalur utama aliran informasi.

Cell state ini sering dianalogikan seperti highway (jalan tol) bagi gradient.

Artinya, gradient dapat mengalir melalui cell state dengan lebih stabil tanpa cepat mengecil seperti pada arsitektur RNN biasa.

Di dalam LSTM terdapat beberapa komponen utama:

  • Forget Gate → menentukan informasi mana yang harus dibuang dari memori
  • Input Gate → menentukan informasi baru yang akan disimpan
  • Cell State Update → memperbarui memori internal
  • Output Gate → menentukan output dari hidden state

Mekanisme inilah yang memungkinkan LSTM untuk menangani long-term dependency dengan lebih baik.


Implementation

Dalam project ini saya mengimplementasikan beberapa komponen utama LSTM secara manual, antara lain:

  • memory cell
  • forget gate
  • input gate
  • output gate
  • forward propagation
  • backpropagation through time

Seperti project deep learning sebelumnya, saya juga menggunakan pendekatan Object Oriented Programming (OOP) agar struktur kode lebih modular dan mudah dipahami.

Dengan pendekatan ini, setiap komponen seperti layer, gate, dan proses training dapat diorganisasi dengan lebih rapi.


Tech Stack

Project ini dibangun menggunakan teknologi berikut:

  • Python
  • NumPy
  • Deep Learning fundamentals
  • Sequence modeling

Learning Outcome

Melalui project ini saya dapat memahami bagaimana arsitektur LSTM dirancang untuk mengatasi keterbatasan dari Vanilla RNN.

Saya juga memahami bagaimana mekanisme cell state dan gate pada LSTM memungkinkan model untuk mempertahankan informasi dalam sequence yang panjang.

Project ini membantu saya untuk memahami lebih dalam bagaimana model deep learning menangani long-term dependency dalam data sequential, yang merupakan konsep penting dalam berbagai aplikasi Natural Language Processing dan language modeling.