SlideShare a Scribd company logo
1 of 52
Download to read offline
Recurrent Neural Network
Pada IF3012 – Pembelajaran Mesin
Program Studi Teknik Informatika
Jurusan Teknologi Produksi dan Industri
Institut Teknologi Sumatera
2022
1
Outline Perkuliahan
• Sequence data: time-series data, symbolic sequence data,
biological sequences
• Recurrent Neural Network (RNN)
• Bidirectional RNNs, Deep Recurrent Networks
• Backpropagation Through Time (BPTT)
• Long Short Term Memory (LSTM)
• Gated Recurrent Unit (GRU)
2
Referensi
• http://colah.github.io/posts/2015-08-Understanding-LSTMs/
• https://medium.com/@camrongodbout/recurrent-neural-networks-for-
beginners-7aca4e933b82
• Chapter 10. Sequence Modeling: Recurrent and Recursive Nets.
https://www.deeplearningbook.org/contents/rnn.html
• Masayu Leylia Khodra, Materi Perkuliahan Pembelajaran Mesin (IF4071) - STEI ITB,
2019
• Training Material - Huawei Certified ICT Associate (HCIA) for Artificial Intelligence
3
Time Series Data
Contoh-contoh data sekuensial dan penerapannya:
• Rangkaian kata-kata dalam penerjemahan bahasa;
• Sinyal audio dalam pengenalan suara;
• Nada-nada dalam sintesa musik
• Rangkaian kata-kata dalam klasifikasi sentimen;
• Deret DNA dalam pemrosesan rangkaian DNA;
• Rangkaian gambar-gambar (frame) pada pengenalan aktivitas video;
• Kata-kata dalam pengenalan nama entitas;
4
Time Series Data
5
Hidayat, Y., Sutijo, B., Bon, A. T., & Supian, S. (2016). Indonesian financial data modeling and forecasting by using
econometrics time series and neural network. Global Journal of Pure and Applied Mathematics, 12(4), 3745-3757.
● Pada time-series
data, rangkaian
data terdiri dari
urutan data
numerik yang
panjang, dan
direkam pada
interval waktu yang
sama.
● Data bulanan
inflasi di Indonesia
Januari 2009 sd
April 2015 (Hidayat
dkk., 2016)
Symbolic Sequence Data
6
Tan dkk. (2004): https://slideplayer.com/slide/778153/
● Data urutan simbolik terdiri dari urutan panjang peristiwa atau data nominal,
yang biasanya tidak diamati pada interval waktu yang sama.
● Browsing history:
● Sequence of books checked out at library:
Next Number Model
Input: 1239
1239 + 1 → 1240
● Alternatif 1: Model Regresi: y=x+1
● Alternatif 2: Model RNN meniru
manusia 9+1=10, digit terakhir
hasil adalah 0, lalu 1 dijumlahkan
ke digit sebelumnya dst.
7
Recurrent Neural Network
• Recurrent neural network (RNN) merupakan jaringan saraf yang menangkap
informasi secara dinamis dalam data yang bersifat sequential, melalui hubungan
secara berkala dari node di hidden layer. Arsitektur jenis ini dapat
mengklasifikasikan data sequential.
• Tidak seperti Forward Neural Network lainnya, RNN dapat mempertahankan status
konteks dan bahkan menyimpan, mempelajari, dan mengungkapkan informasi
terkait dalam ruang konteks dengan panjang berapa pun.
• Berbeda dari traditional neural network, arsitektur ini tidak dibatasi pada batasan
ruang, tetapi juga mendukung rangkaian waktu.
• Dengan kata lain, terdapat sisi antara hidden layer saat ini dan hidden layer pada
momen berikutnya.
• RNN banyak digunakan dalam skenario yang berkaitan dengan deretan data,
seperti data video, data audio dan data kalimat.
8
Recurrent Neural Network
xt merupakan beberapa nilai masukan,
A adalah bagian dari RNN dan ht
merupakan nilai keluaran
9
• Dikenal pada akhir tahun 1980-an
• Topologi yang berguna, jika
urutan data adalah penting
(sequential data)
q Setiap neuron atau unit dapat
menggunakan memori internalnya
untuk menyimpan informasi tentang
input sebelumnya.
RNN : Neuron Dependent
• RNN memiliki loop di dalamnya yang memungkinkan informasi dibawa
melintasi neuron saat membaca input. RNN tidak dapat mengandalkan
input saja dan harus menggunakan koneksi berulangnya untuk melacak
konteks untuk mencapai tugas ini.
• Neuron dependent → komputasi bergantung pada komputasi sebelumnya
10
Contoh : Prediksi Penumpang
11
"Month","Passengers"
"1949-01",112
"1949-02",118
"1949-03",132
"1949-04",129
"1949-05",121
1 Feature Dataset:
X=t Y=(t+1)
112 118
118 132
132 129
129 121
121 135
3 Feature Dataset:
X1 X2 X3 Y
112 118 132 129
118 132 129 121
132 129 121 135
129 121 135 148
121 135 148 148
FFNN v.s. RNN 1 hidden layer 4 neuron, 1 output neuron
12
x1
x2
x3
+1 +1
x1 x2 x3
+1
FFNN v.s. RNN Sequential Data
13
• FFNN : Tidak terdapat konsep apapun dari urutan waktu diantara data
• RNN : Terdapat urutan waktu diantara data. Kita akan menginput X1 terlebih dahulu
kemudian memasukkan X2 ke hasil komputasi X1. Jadi dengan cara yang sama, X3
dihitung dengan hasil dari tahap komputasi X2.
RNN: Parameter Sharing
14
• Recurrent neural network dapat
dianggap sebagai banyak salinan
dari jaringan yang sama, masing-
masing meneruskan pesan ke
penerusnya.
• Berbagi parameter lebih baik
daripada menggunakan parameter
berbeda per posisi: lebih sedikit
parameter untuk diestimasi,
digeneralisasi ke berbagai panjang
dari arsitektur neural network.
• Wx, Wh, Wy
RNN: Weight
15
Wx=U=Wax=Wxh
Wh=W=Waa=Whh
Wy=V=Wya=Whx
RNN
16
xt : vector (one-hot vector, word embedding jika x kata)
st : hidden state, cell memory. f biasanya relu atau tanh
ot : output step t.
FFNN v.s. RNN
17
RNN : Proses
18
Contoh Penerapan RNN Character-Level Language Model (LM)
19
• Language model: model untuk memprediksi huruf/karakter selanjutnya
yang mempertimbangkan semua huruf/karakter sebelumnya
• Vocabulary: 4 huruf yang mungkin “h”, ”e”, ”l”, “o”
q Encode setiap karakter ke dalam data vektor menggunakan 1-of-k encoding
(one-hot encoding): h: <1,0,0,0>; e: <0,1,0,0>; l: <0,0,1,0>; o: <0,0,0,1>
• Training seq. “hello” merepresentasikan 4 separate instances:
q <h,e>: probabilitas muncul huruf “e” ketika diberikan konteks “h”,
q <he,l>: “l” seharusnya muncul ketika diberikan konteks “he”,
q <hel,l>: “l” seharusnya juga muncul ketika diberikan konteks “hel”,
q <hell,o>: “o” seharusnya muncul ketika diberikan konteks “hell”.
Language Model: RNN Topology & Weights
20
• Topology RNN: 4-Dimensi dari input dan output
layers, serta digunakan sebuah hidden layer
dengan 3 units (neurons)
• Inisialisasi:
q W_xh: matrix 3x4 (hidden neurons x input dimension)
q W_hy: matrix 4x3 (output neurons x hidden neurons)
q W_hh: matrix 1x1
q Bias xh: matrix 1x1
q Bias hy: matrix 1x1
q h(t-1)=h(0)=s0=<0,0,0>
X (4 dimension)
Language Model: Forward Phase
21
• t=1 (input “h”: x1=<1,0,0,0>):
q h1=f(W_xh*x1 + W_hh*h0 + b)
=<0.3, -0.1, 0.9>
q o1=argmax(softmax(W_hy*s1))
=argmax(sofmax(1.0,2.2,-
3.0,4.1))=”o”, seharusnya ”e”
• t=3 dan t=4 menerima input “l”
yang sama x3=x4=<0,0,1,0>
tetapi o3≠o4.
Contoh Perhitungan Output dengan Softmax
22
Target: ‘e’
Output: ‘o’
Detail Perhitungan: W_xh, W_hh, W_hy
Inisialisasi
• W_xh: matrix 3x4 (hidden neurons x input dimension)
• W_hy: matrix 4x3 (output neurons x hidden neurons)
• W_hh: matrix 1x1 = 0.427043
• Bias: matrix 1x1 = 0.56700
• h(t-1)=h(0)=s0=<0,0,0>
23
Detail Perhitungan: Step 1, x1=’h’
24
1. a1 = W_xh * x1 + (W_hh * s0 + bias)
Detail Perhitungan: Step 1, x1=’h’
25
1. s1 = tanh(W_xh * x1 + (W_hh * s0 + bias))
Detail Perhitungan: Step 2, x2=’e’
26
2. s2 = tanh(W_xh * x2 + (W_hh * s1 + bias))
Detail Perhitungan y : Step 3, x2=’e’
27
3. o2 = softmax(W_hy * s2) = ”h” (≠ ‘l’ ⇒ perlu training)
Backpropagation Through Time (BPTT)
BPPT Learning Algoritma merupakan suatu perpanjangan dari backpropagation
standar yang melakukan gradient descent pada jaringan RNN yang telah dibuka.
1. Forward pass: dapatkan output pada urutan saat ini
2. Backward pass:
q Hitung cross entropy error (negative log-likelihood dari y) menggunakan output pada
urutan saat ini (ȳ=ȳ1..ȳn) dan output dengan urutan data yang sebenarnya (y=y1..yn)
q E(ȳ,y) = – ∑ ȳt log(yt) dengan Et(ȳt,yt) = – ȳt log(yt)
q Untuk jaringan yang telah dibuka, gradien dihitung untuk setiap langkah waktu
sehubungan dengan parameter bobot
3. Sekarang bobotnya sama untuk semua langkah waktu, gradien dapat
digabungkan bersama untuk semua langkah waktu. Bobot kemudian diperbarui
untuk recurrent neuron dan dense layer.
28
Backward Pass
29
BPTT: Update Weight
• fo’,fh’: turunan fungsi aktivasi di
output/hidden layer
• 𝛿o(t): error di output layer
• 𝛿h(t): error di hidden layer
• ⊙ : the Hadamard product
(dimensi matrix berukuran
sama, langsung dikalikan)
• s(t): hasil fh(ah(t))
30
Truncated BPTT: Ilustrasi
31
Truncated BPTT
• Truncated BPTT dikembangkan untuk mengurangi kompleksitas komputasi dari setiap
pembaruan parameter dalam recurrent neural network.
• Truncated BPTT membagi umpan maju dan mundur menjadi satu set operasi umpan
maju/mundur yang lebih kecil. Panjang spesifik dari segmen umpan maju/mundur ini
adalah parameter yang ditetapkan oleh pengguna.
• Dengan panjang Truncated BPTT = 4. Misalkan pada langkah waktu 10, jaringan perlu
menyimpan beberapa informasi dari langkah waktu 0 untuk membuat prediksi yang
akurat.
q Dalam BPTT standar, ini baik-baik saja: gradien dapat mengalir mundur sepanjang jaringan
yang terbuka, dari waktu 10 ke waktu 0.
q Dalam Truncated BPTT, ini bermasalah: gradien dari langkah waktu 10 tidak mengalir
kembali cukup jauh menyebabkan pembaruan parameter yang diperlukan yang akan
menyimpan informasi yang diperlukan.
q Pengorbanan ini biasanya sepadan, dan (selama panjang BPTT yang terpotong diatur
dengan tepat), BPTT yang terpotong bekerja dengan baik dalam praktiknya.
32
RNN : Arsitektur
• One to Many : image captioning, document/
• Many to One : text classification/sentiment analysis
• Many to Many : machine translation, video frame classification,
POS tagging, voice recognition
33
fixed-
sized
input
vector xt
fixed-
sized
output
vector
ot
RNN
state
st
RNN untuk Klasifikasi Sentimen (Many to One)
34
RNN untuk Mesin Translasi Jerman-Inggris
• Terjemahan Mesin: input adalah
urutan kata dalam bahasa sumber
(misalnya bahasa Jerman). Output
adalah urutan kata dalam bahasa
target (misalnya bahasa Inggris).
• Perbedaan utama adalah bahwa
output kita hanya dimulai setelah
kita melihat input yang lengkap,
karena kata pertama dari kalimat
yang kita terjemahkan mungkin
memerlukan informasi yang
diambil dari urutan input yang
lengkap.
35
RNN untuk Sequence Tagging
• Input adalah urutan kata, dan output adalah urutan tag POS untuk
setiap kata.
36
Recurrent Neural Network: Analisis Sentimen
• Klasifikasi sentimen level kalimat:
qone to one (without RNN, fixed-sized input vector xt → fixed-sized output vector ot),
atau
qmany to one (sequence of fixed-sized input vector xt → fixed-sized output vector ot)
• Klasifikasi sentimen level aspek:
qMany to many (synced sequence of fixed-sized input vector xt and ot)
37
Contoh RNN pada Keras
38
from keras.preprocessing import sequence
from keras.layers import Embedding
from keras import models
from keras import layers
model = models.Sequential()
maxlen = 500
embed_dim = 20
model.add(Embedding(jum_vocab+1,embed_dim,input_length=maxlen))
model.add(layers.SimpleRNN(32))
model.add(layers.Dense(3, activation='softmax'))
model.compile(optimizer="adam",
loss='categorical_crossentropy',
metrics=['accuracy'])
Bidirectional RNNs
• Dalam banyak aplikasi, kita ingin
menampilkan prediksi y(t) yang mungkin
bergantung pada seluruh urutan input.
Misalnya: artikulasi bersama dalam
pengenalan suara, tetangga kanan
dalam POS tagging, dll.
• Bidirectional RNN menggabungkan RNN
yang bergerak maju melalui waktu mulai
dari awal urutan dengan RNN lain yang
bergerak mundur melalui waktu mulai
dari akhir urutan.
39
Bidirectional RNNs: Ekstraksi Informasi
40
Bidirectional RNNs: BPTT
• Isi
41
Deep Recurrent Networks
Deep recurrent networks:
multiple hidden layers RNN
42
Vanishing Gradient Problem
• Masing-masing bobot jaringan saraf menerima pembaruan yang sebanding
dengan turunan parsial dari error function sehubungan dengan bobot saat ini di
setiap iterasi pelatihan.
• Dalam beberapa kasus, gradien akan semakin kecil, secara efektif mencegah
bobot berubah nilainya.
q Dalam kasus terburuk, ini dapat sepenuhnya menghentikan jaringan saraf dari
pelatihan lebih lanjut.
• Contoh:
q fungsi aktivasi seperti fungsi tangen hiperbolik memiliki gradien dalam rentang (0, 1),
dan backpropagation menghitung gradien dengan aturan rantai.
q Ini memiliki efek mengalikan n dari angka-angka kecil ini untuk menghitung gradien
lapisan "depan" dalam jaringan lapisan-n
ü gradien (error signal) menurun secara eksponensial dengan n
43
Long Short Term Memory (LSTM) Network
• Diperkenalkan oleh Hochreiter & Schmidhuber (1997), LSTM secara eksplisit
dirancang untuk menghindari masalah ketergantungan jangka panjang.
• Jenis khusus RNN. Dalam RNN standar, modul berulang akan memiliki
struktur yang sangat sederhana, seperti lapisan tanh tunggal. Modul
berulang dalam LSTM berisi empat lapisan yang saling berinteraksi.
44
LSTM Unit
• Cell state ct seperti conveyor belt. Ini berjalan lurus
ke bawah seluruh rantai, dengan hanya
beberapa interaksi linier kecil. Sangat mudah bagi
informasi untuk mengalir begitu saja tanpa
berubah.
• Gerbang adalah cara opsional untuk membiarkan
informasi lewat. Lapisan sigmoid mengeluarkan
angka antara nol dan satu, menjelaskan berapa
banyak dari setiap komponen yang harus dilewati.
Nilai nol berarti "jangan biarkan apa pun lewat",
sedangkan nilai satu berarti "biarkan semuanya
lewat!"
45
LSTM Unit: Forget Gate Layer
Forget gate layer: untuk memutuskan informasi apa yang akan kita buang dari cell
state. Itu terlihat di ht−1 dan xt, dan menampilkan angka antara 0 dan 1 untuk
setiap angka dalam cell state Ct−1. Nilai 1 mewakili "sepenuhnya simpan ini"
sementara nilai 0 mewakili "sepenuhnya singkirkan ini."
46
LSTM Unit: Input Gate & Tanh Layer
Untuk memutuskan informasi baru apa yang akan kita simpan dalam cell
state.
• Input gate layer memutuskan nilai mana yang akan kita perbarui;
• Tanh layer menciptakan vektor nilai kandidat baru, Ct, yang dapat
ditambahkan ke state.
47
LSTM Unit: Update Ct−1 into Ct
• Kalikan Ct−1 * ft, lupakan hal-hal yang telah diputuskan untuk dilupakan
sebelumnya.
• Tambahkan it * Ct, nilai kandidat baru, yang diskalakan berdasarkan
seberapa banyak kita memutuskan untuk memperbarui setiap state value.
48
LSTM Unit: Output ht
• Output ht akan didasarkan pada Ct, tetapi akan menjadi versi yang difilter. Jalankan
lapisan sigmoid yang memutuskan bagian mana dari status sel yang akan dihasilkan.
Kemudian, masukkan Ct melalui tanh (untuk mendorong nilai menjadi antara -1 dan 1)
dan kalikan dengan output dari gerbang sigmoid, sehingga kita hanya menampilkan
bagian yang kita putuskan.
49
Contoh LSTM pada Keras
50
from keras.preprocessing import sequence
from keras.layers import Embedding
from keras import models
from keras import layers
model = models.Sequential()
maxlen = 500
embed_dim = 20
model.add(Embedding(jum_vocab+1,embed_dim,input_length=maxlen))
model.add(layers.LSTM(32))
model.add(layers.Dense(3, activation='softmax'))
model.compile(optimizer="adam",
loss='categorical_crossentropy',
metrics=['accuracy'])
Gated Recurrent Unit (GRU)
• Sebagai varian dari LSTM, GRU
menggabungkan Forget Gate dan Input
Gate ke dalam Update Gate tunggal.
• Hal ini menggabungkan cell state dan
hidden state dan juga menggabungkan
perubahan lainnya.
• Sebagai varian populer, model terakhir ini
lebih sederhana daripada Model LSTM
standar.
q [] menunjukkan proses concatenation;
q * menunjukkan proses perkalian elemen;
q . menunjukkan perkalian matriks.
51
TERIMA KASIH
Ada pertanyaan ???
Minggu Depan → Eksplorasi Penerapan ANN dan LSTM
52

More Related Content

Similar to Minggu 6 - Recurrent Neural Network (Compressed).pdf

Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-btribudi20
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bTri Budi Santoso
 
Presentasi Tugas Besar 1 Komdat Kelompok 3.ppt
Presentasi Tugas Besar 1 Komdat Kelompok 3.pptPresentasi Tugas Besar 1 Komdat Kelompok 3.ppt
Presentasi Tugas Besar 1 Komdat Kelompok 3.pptMentariKusuma2
 
Computer Vision Pertemuan 06
Computer Vision Pertemuan 06Computer Vision Pertemuan 06
Computer Vision Pertemuan 06soe sumijan
 
Tugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerTugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerAsep Jaenudin
 
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdf
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdfTUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdf
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdfHendroGunawan8
 
Multiplexer (masih draft)
Multiplexer   (masih draft)Multiplexer   (masih draft)
Multiplexer (masih draft)Asistenpelatih
 
materi mg 2 - Jaringan Saraf Tiruan.pdf
materi mg 2 -  Jaringan Saraf Tiruan.pdfmateri mg 2 -  Jaringan Saraf Tiruan.pdf
materi mg 2 - Jaringan Saraf Tiruan.pdfNariyahSilvianaErwan
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutIndividual Consultants
 
Arsitektur Komputer 1.ppt
Arsitektur Komputer 1.pptArsitektur Komputer 1.ppt
Arsitektur Komputer 1.pptAhmadNaswin
 
Modul ajar dsp_2020-bab_4_sistem linear time invariant
Modul ajar dsp_2020-bab_4_sistem linear time invariantModul ajar dsp_2020-bab_4_sistem linear time invariant
Modul ajar dsp_2020-bab_4_sistem linear time invariantTri Budi Santoso
 
Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)ahmad haidaroh
 

Similar to Minggu 6 - Recurrent Neural Network (Compressed).pdf (20)

P1 jarkom
P1 jarkomP1 jarkom
P1 jarkom
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
 
Jaringan syaraf tiruan
Jaringan syaraf tiruanJaringan syaraf tiruan
Jaringan syaraf tiruan
 
Presentasi Tugas Besar 1 Komdat Kelompok 3.ppt
Presentasi Tugas Besar 1 Komdat Kelompok 3.pptPresentasi Tugas Besar 1 Komdat Kelompok 3.ppt
Presentasi Tugas Besar 1 Komdat Kelompok 3.ppt
 
Computer Vision Pertemuan 06
Computer Vision Pertemuan 06Computer Vision Pertemuan 06
Computer Vision Pertemuan 06
 
Tugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputerTugas Mandiri arsitektur dan organisasi komputer
Tugas Mandiri arsitektur dan organisasi komputer
 
P1 jaringan komputer
P1 jaringan komputerP1 jaringan komputer
P1 jaringan komputer
 
Pengantar Komunikasi Data
Pengantar Komunikasi DataPengantar Komunikasi Data
Pengantar Komunikasi Data
 
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdf
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdfTUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdf
TUGAS2_DEEP LEARNING_NIM 200401072103_NAMA_HENDRO GUNAWAN_KELAS IT602.pdf
 
Multiplexer (masih draft)
Multiplexer   (masih draft)Multiplexer   (masih draft)
Multiplexer (masih draft)
 
Makalah Kumpulan remaja
Makalah Kumpulan remajaMakalah Kumpulan remaja
Makalah Kumpulan remaja
 
Materi 2
Materi 2Materi 2
Materi 2
 
materi mg 2 - Jaringan Saraf Tiruan.pdf
materi mg 2 -  Jaringan Saraf Tiruan.pdfmateri mg 2 -  Jaringan Saraf Tiruan.pdf
materi mg 2 - Jaringan Saraf Tiruan.pdf
 
Jaringan-Syaraf-Tiruan.ppt
Jaringan-Syaraf-Tiruan.pptJaringan-Syaraf-Tiruan.ppt
Jaringan-Syaraf-Tiruan.ppt
 
Materi 3 maret_2014
Materi 3 maret_2014Materi 3 maret_2014
Materi 3 maret_2014
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
 
Arsitektur Komputer 1.ppt
Arsitektur Komputer 1.pptArsitektur Komputer 1.ppt
Arsitektur Komputer 1.ppt
 
Modul ajar dsp_2020-bab_4_sistem linear time invariant
Modul ajar dsp_2020-bab_4_sistem linear time invariantModul ajar dsp_2020-bab_4_sistem linear time invariant
Modul ajar dsp_2020-bab_4_sistem linear time invariant
 
Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)
 

Minggu 6 - Recurrent Neural Network (Compressed).pdf

  • 1. Recurrent Neural Network Pada IF3012 – Pembelajaran Mesin Program Studi Teknik Informatika Jurusan Teknologi Produksi dan Industri Institut Teknologi Sumatera 2022 1
  • 2. Outline Perkuliahan • Sequence data: time-series data, symbolic sequence data, biological sequences • Recurrent Neural Network (RNN) • Bidirectional RNNs, Deep Recurrent Networks • Backpropagation Through Time (BPTT) • Long Short Term Memory (LSTM) • Gated Recurrent Unit (GRU) 2
  • 3. Referensi • http://colah.github.io/posts/2015-08-Understanding-LSTMs/ • https://medium.com/@camrongodbout/recurrent-neural-networks-for- beginners-7aca4e933b82 • Chapter 10. Sequence Modeling: Recurrent and Recursive Nets. https://www.deeplearningbook.org/contents/rnn.html • Masayu Leylia Khodra, Materi Perkuliahan Pembelajaran Mesin (IF4071) - STEI ITB, 2019 • Training Material - Huawei Certified ICT Associate (HCIA) for Artificial Intelligence 3
  • 4. Time Series Data Contoh-contoh data sekuensial dan penerapannya: • Rangkaian kata-kata dalam penerjemahan bahasa; • Sinyal audio dalam pengenalan suara; • Nada-nada dalam sintesa musik • Rangkaian kata-kata dalam klasifikasi sentimen; • Deret DNA dalam pemrosesan rangkaian DNA; • Rangkaian gambar-gambar (frame) pada pengenalan aktivitas video; • Kata-kata dalam pengenalan nama entitas; 4
  • 5. Time Series Data 5 Hidayat, Y., Sutijo, B., Bon, A. T., & Supian, S. (2016). Indonesian financial data modeling and forecasting by using econometrics time series and neural network. Global Journal of Pure and Applied Mathematics, 12(4), 3745-3757. ● Pada time-series data, rangkaian data terdiri dari urutan data numerik yang panjang, dan direkam pada interval waktu yang sama. ● Data bulanan inflasi di Indonesia Januari 2009 sd April 2015 (Hidayat dkk., 2016)
  • 6. Symbolic Sequence Data 6 Tan dkk. (2004): https://slideplayer.com/slide/778153/ ● Data urutan simbolik terdiri dari urutan panjang peristiwa atau data nominal, yang biasanya tidak diamati pada interval waktu yang sama. ● Browsing history: ● Sequence of books checked out at library:
  • 7. Next Number Model Input: 1239 1239 + 1 → 1240 ● Alternatif 1: Model Regresi: y=x+1 ● Alternatif 2: Model RNN meniru manusia 9+1=10, digit terakhir hasil adalah 0, lalu 1 dijumlahkan ke digit sebelumnya dst. 7
  • 8. Recurrent Neural Network • Recurrent neural network (RNN) merupakan jaringan saraf yang menangkap informasi secara dinamis dalam data yang bersifat sequential, melalui hubungan secara berkala dari node di hidden layer. Arsitektur jenis ini dapat mengklasifikasikan data sequential. • Tidak seperti Forward Neural Network lainnya, RNN dapat mempertahankan status konteks dan bahkan menyimpan, mempelajari, dan mengungkapkan informasi terkait dalam ruang konteks dengan panjang berapa pun. • Berbeda dari traditional neural network, arsitektur ini tidak dibatasi pada batasan ruang, tetapi juga mendukung rangkaian waktu. • Dengan kata lain, terdapat sisi antara hidden layer saat ini dan hidden layer pada momen berikutnya. • RNN banyak digunakan dalam skenario yang berkaitan dengan deretan data, seperti data video, data audio dan data kalimat. 8
  • 9. Recurrent Neural Network xt merupakan beberapa nilai masukan, A adalah bagian dari RNN dan ht merupakan nilai keluaran 9 • Dikenal pada akhir tahun 1980-an • Topologi yang berguna, jika urutan data adalah penting (sequential data) q Setiap neuron atau unit dapat menggunakan memori internalnya untuk menyimpan informasi tentang input sebelumnya.
  • 10. RNN : Neuron Dependent • RNN memiliki loop di dalamnya yang memungkinkan informasi dibawa melintasi neuron saat membaca input. RNN tidak dapat mengandalkan input saja dan harus menggunakan koneksi berulangnya untuk melacak konteks untuk mencapai tugas ini. • Neuron dependent → komputasi bergantung pada komputasi sebelumnya 10
  • 11. Contoh : Prediksi Penumpang 11 "Month","Passengers" "1949-01",112 "1949-02",118 "1949-03",132 "1949-04",129 "1949-05",121 1 Feature Dataset: X=t Y=(t+1) 112 118 118 132 132 129 129 121 121 135 3 Feature Dataset: X1 X2 X3 Y 112 118 132 129 118 132 129 121 132 129 121 135 129 121 135 148 121 135 148 148
  • 12. FFNN v.s. RNN 1 hidden layer 4 neuron, 1 output neuron 12 x1 x2 x3 +1 +1 x1 x2 x3 +1
  • 13. FFNN v.s. RNN Sequential Data 13 • FFNN : Tidak terdapat konsep apapun dari urutan waktu diantara data • RNN : Terdapat urutan waktu diantara data. Kita akan menginput X1 terlebih dahulu kemudian memasukkan X2 ke hasil komputasi X1. Jadi dengan cara yang sama, X3 dihitung dengan hasil dari tahap komputasi X2.
  • 14. RNN: Parameter Sharing 14 • Recurrent neural network dapat dianggap sebagai banyak salinan dari jaringan yang sama, masing- masing meneruskan pesan ke penerusnya. • Berbagi parameter lebih baik daripada menggunakan parameter berbeda per posisi: lebih sedikit parameter untuk diestimasi, digeneralisasi ke berbagai panjang dari arsitektur neural network. • Wx, Wh, Wy
  • 16. RNN 16 xt : vector (one-hot vector, word embedding jika x kata) st : hidden state, cell memory. f biasanya relu atau tanh ot : output step t.
  • 19. Contoh Penerapan RNN Character-Level Language Model (LM) 19 • Language model: model untuk memprediksi huruf/karakter selanjutnya yang mempertimbangkan semua huruf/karakter sebelumnya • Vocabulary: 4 huruf yang mungkin “h”, ”e”, ”l”, “o” q Encode setiap karakter ke dalam data vektor menggunakan 1-of-k encoding (one-hot encoding): h: <1,0,0,0>; e: <0,1,0,0>; l: <0,0,1,0>; o: <0,0,0,1> • Training seq. “hello” merepresentasikan 4 separate instances: q <h,e>: probabilitas muncul huruf “e” ketika diberikan konteks “h”, q <he,l>: “l” seharusnya muncul ketika diberikan konteks “he”, q <hel,l>: “l” seharusnya juga muncul ketika diberikan konteks “hel”, q <hell,o>: “o” seharusnya muncul ketika diberikan konteks “hell”.
  • 20. Language Model: RNN Topology & Weights 20 • Topology RNN: 4-Dimensi dari input dan output layers, serta digunakan sebuah hidden layer dengan 3 units (neurons) • Inisialisasi: q W_xh: matrix 3x4 (hidden neurons x input dimension) q W_hy: matrix 4x3 (output neurons x hidden neurons) q W_hh: matrix 1x1 q Bias xh: matrix 1x1 q Bias hy: matrix 1x1 q h(t-1)=h(0)=s0=<0,0,0> X (4 dimension)
  • 21. Language Model: Forward Phase 21 • t=1 (input “h”: x1=<1,0,0,0>): q h1=f(W_xh*x1 + W_hh*h0 + b) =<0.3, -0.1, 0.9> q o1=argmax(softmax(W_hy*s1)) =argmax(sofmax(1.0,2.2,- 3.0,4.1))=”o”, seharusnya ”e” • t=3 dan t=4 menerima input “l” yang sama x3=x4=<0,0,1,0> tetapi o3≠o4.
  • 22. Contoh Perhitungan Output dengan Softmax 22 Target: ‘e’ Output: ‘o’
  • 23. Detail Perhitungan: W_xh, W_hh, W_hy Inisialisasi • W_xh: matrix 3x4 (hidden neurons x input dimension) • W_hy: matrix 4x3 (output neurons x hidden neurons) • W_hh: matrix 1x1 = 0.427043 • Bias: matrix 1x1 = 0.56700 • h(t-1)=h(0)=s0=<0,0,0> 23
  • 24. Detail Perhitungan: Step 1, x1=’h’ 24 1. a1 = W_xh * x1 + (W_hh * s0 + bias)
  • 25. Detail Perhitungan: Step 1, x1=’h’ 25 1. s1 = tanh(W_xh * x1 + (W_hh * s0 + bias))
  • 26. Detail Perhitungan: Step 2, x2=’e’ 26 2. s2 = tanh(W_xh * x2 + (W_hh * s1 + bias))
  • 27. Detail Perhitungan y : Step 3, x2=’e’ 27 3. o2 = softmax(W_hy * s2) = ”h” (≠ ‘l’ ⇒ perlu training)
  • 28. Backpropagation Through Time (BPTT) BPPT Learning Algoritma merupakan suatu perpanjangan dari backpropagation standar yang melakukan gradient descent pada jaringan RNN yang telah dibuka. 1. Forward pass: dapatkan output pada urutan saat ini 2. Backward pass: q Hitung cross entropy error (negative log-likelihood dari y) menggunakan output pada urutan saat ini (ȳ=ȳ1..ȳn) dan output dengan urutan data yang sebenarnya (y=y1..yn) q E(ȳ,y) = – ∑ ȳt log(yt) dengan Et(ȳt,yt) = – ȳt log(yt) q Untuk jaringan yang telah dibuka, gradien dihitung untuk setiap langkah waktu sehubungan dengan parameter bobot 3. Sekarang bobotnya sama untuk semua langkah waktu, gradien dapat digabungkan bersama untuk semua langkah waktu. Bobot kemudian diperbarui untuk recurrent neuron dan dense layer. 28
  • 30. BPTT: Update Weight • fo’,fh’: turunan fungsi aktivasi di output/hidden layer • 𝛿o(t): error di output layer • 𝛿h(t): error di hidden layer • ⊙ : the Hadamard product (dimensi matrix berukuran sama, langsung dikalikan) • s(t): hasil fh(ah(t)) 30
  • 32. Truncated BPTT • Truncated BPTT dikembangkan untuk mengurangi kompleksitas komputasi dari setiap pembaruan parameter dalam recurrent neural network. • Truncated BPTT membagi umpan maju dan mundur menjadi satu set operasi umpan maju/mundur yang lebih kecil. Panjang spesifik dari segmen umpan maju/mundur ini adalah parameter yang ditetapkan oleh pengguna. • Dengan panjang Truncated BPTT = 4. Misalkan pada langkah waktu 10, jaringan perlu menyimpan beberapa informasi dari langkah waktu 0 untuk membuat prediksi yang akurat. q Dalam BPTT standar, ini baik-baik saja: gradien dapat mengalir mundur sepanjang jaringan yang terbuka, dari waktu 10 ke waktu 0. q Dalam Truncated BPTT, ini bermasalah: gradien dari langkah waktu 10 tidak mengalir kembali cukup jauh menyebabkan pembaruan parameter yang diperlukan yang akan menyimpan informasi yang diperlukan. q Pengorbanan ini biasanya sepadan, dan (selama panjang BPTT yang terpotong diatur dengan tepat), BPTT yang terpotong bekerja dengan baik dalam praktiknya. 32
  • 33. RNN : Arsitektur • One to Many : image captioning, document/ • Many to One : text classification/sentiment analysis • Many to Many : machine translation, video frame classification, POS tagging, voice recognition 33 fixed- sized input vector xt fixed- sized output vector ot RNN state st
  • 34. RNN untuk Klasifikasi Sentimen (Many to One) 34
  • 35. RNN untuk Mesin Translasi Jerman-Inggris • Terjemahan Mesin: input adalah urutan kata dalam bahasa sumber (misalnya bahasa Jerman). Output adalah urutan kata dalam bahasa target (misalnya bahasa Inggris). • Perbedaan utama adalah bahwa output kita hanya dimulai setelah kita melihat input yang lengkap, karena kata pertama dari kalimat yang kita terjemahkan mungkin memerlukan informasi yang diambil dari urutan input yang lengkap. 35
  • 36. RNN untuk Sequence Tagging • Input adalah urutan kata, dan output adalah urutan tag POS untuk setiap kata. 36
  • 37. Recurrent Neural Network: Analisis Sentimen • Klasifikasi sentimen level kalimat: qone to one (without RNN, fixed-sized input vector xt → fixed-sized output vector ot), atau qmany to one (sequence of fixed-sized input vector xt → fixed-sized output vector ot) • Klasifikasi sentimen level aspek: qMany to many (synced sequence of fixed-sized input vector xt and ot) 37
  • 38. Contoh RNN pada Keras 38 from keras.preprocessing import sequence from keras.layers import Embedding from keras import models from keras import layers model = models.Sequential() maxlen = 500 embed_dim = 20 model.add(Embedding(jum_vocab+1,embed_dim,input_length=maxlen)) model.add(layers.SimpleRNN(32)) model.add(layers.Dense(3, activation='softmax')) model.compile(optimizer="adam", loss='categorical_crossentropy', metrics=['accuracy'])
  • 39. Bidirectional RNNs • Dalam banyak aplikasi, kita ingin menampilkan prediksi y(t) yang mungkin bergantung pada seluruh urutan input. Misalnya: artikulasi bersama dalam pengenalan suara, tetangga kanan dalam POS tagging, dll. • Bidirectional RNN menggabungkan RNN yang bergerak maju melalui waktu mulai dari awal urutan dengan RNN lain yang bergerak mundur melalui waktu mulai dari akhir urutan. 39
  • 42. Deep Recurrent Networks Deep recurrent networks: multiple hidden layers RNN 42
  • 43. Vanishing Gradient Problem • Masing-masing bobot jaringan saraf menerima pembaruan yang sebanding dengan turunan parsial dari error function sehubungan dengan bobot saat ini di setiap iterasi pelatihan. • Dalam beberapa kasus, gradien akan semakin kecil, secara efektif mencegah bobot berubah nilainya. q Dalam kasus terburuk, ini dapat sepenuhnya menghentikan jaringan saraf dari pelatihan lebih lanjut. • Contoh: q fungsi aktivasi seperti fungsi tangen hiperbolik memiliki gradien dalam rentang (0, 1), dan backpropagation menghitung gradien dengan aturan rantai. q Ini memiliki efek mengalikan n dari angka-angka kecil ini untuk menghitung gradien lapisan "depan" dalam jaringan lapisan-n ü gradien (error signal) menurun secara eksponensial dengan n 43
  • 44. Long Short Term Memory (LSTM) Network • Diperkenalkan oleh Hochreiter & Schmidhuber (1997), LSTM secara eksplisit dirancang untuk menghindari masalah ketergantungan jangka panjang. • Jenis khusus RNN. Dalam RNN standar, modul berulang akan memiliki struktur yang sangat sederhana, seperti lapisan tanh tunggal. Modul berulang dalam LSTM berisi empat lapisan yang saling berinteraksi. 44
  • 45. LSTM Unit • Cell state ct seperti conveyor belt. Ini berjalan lurus ke bawah seluruh rantai, dengan hanya beberapa interaksi linier kecil. Sangat mudah bagi informasi untuk mengalir begitu saja tanpa berubah. • Gerbang adalah cara opsional untuk membiarkan informasi lewat. Lapisan sigmoid mengeluarkan angka antara nol dan satu, menjelaskan berapa banyak dari setiap komponen yang harus dilewati. Nilai nol berarti "jangan biarkan apa pun lewat", sedangkan nilai satu berarti "biarkan semuanya lewat!" 45
  • 46. LSTM Unit: Forget Gate Layer Forget gate layer: untuk memutuskan informasi apa yang akan kita buang dari cell state. Itu terlihat di ht−1 dan xt, dan menampilkan angka antara 0 dan 1 untuk setiap angka dalam cell state Ct−1. Nilai 1 mewakili "sepenuhnya simpan ini" sementara nilai 0 mewakili "sepenuhnya singkirkan ini." 46
  • 47. LSTM Unit: Input Gate & Tanh Layer Untuk memutuskan informasi baru apa yang akan kita simpan dalam cell state. • Input gate layer memutuskan nilai mana yang akan kita perbarui; • Tanh layer menciptakan vektor nilai kandidat baru, Ct, yang dapat ditambahkan ke state. 47
  • 48. LSTM Unit: Update Ct−1 into Ct • Kalikan Ct−1 * ft, lupakan hal-hal yang telah diputuskan untuk dilupakan sebelumnya. • Tambahkan it * Ct, nilai kandidat baru, yang diskalakan berdasarkan seberapa banyak kita memutuskan untuk memperbarui setiap state value. 48
  • 49. LSTM Unit: Output ht • Output ht akan didasarkan pada Ct, tetapi akan menjadi versi yang difilter. Jalankan lapisan sigmoid yang memutuskan bagian mana dari status sel yang akan dihasilkan. Kemudian, masukkan Ct melalui tanh (untuk mendorong nilai menjadi antara -1 dan 1) dan kalikan dengan output dari gerbang sigmoid, sehingga kita hanya menampilkan bagian yang kita putuskan. 49
  • 50. Contoh LSTM pada Keras 50 from keras.preprocessing import sequence from keras.layers import Embedding from keras import models from keras import layers model = models.Sequential() maxlen = 500 embed_dim = 20 model.add(Embedding(jum_vocab+1,embed_dim,input_length=maxlen)) model.add(layers.LSTM(32)) model.add(layers.Dense(3, activation='softmax')) model.compile(optimizer="adam", loss='categorical_crossentropy', metrics=['accuracy'])
  • 51. Gated Recurrent Unit (GRU) • Sebagai varian dari LSTM, GRU menggabungkan Forget Gate dan Input Gate ke dalam Update Gate tunggal. • Hal ini menggabungkan cell state dan hidden state dan juga menggabungkan perubahan lainnya. • Sebagai varian populer, model terakhir ini lebih sederhana daripada Model LSTM standar. q [] menunjukkan proses concatenation; q * menunjukkan proses perkalian elemen; q . menunjukkan perkalian matriks. 51
  • 52. TERIMA KASIH Ada pertanyaan ??? Minggu Depan → Eksplorasi Penerapan ANN dan LSTM 52