buku saku -...

50

Upload: others

Post on 11-Oct-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk
Page 2: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Buku Saku

PENGANTAR

DEEP NEURAL NETWORKUNTUK SISTEM CERDAS

Achmad Benny MutiaraRina Refianti

Penerbit Gunadarma

Page 3: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

PENGANTAR DEEP NEURAL NETWORK UNTUK SISTEM CERDASPenyusun : Achmad Benny Mutiara dan Rina RefiantiDesain : M. AlhazenDesain dan Layout : M. Alhazen

Diterbitkan pertama kali oleh Universitas GunadarmaHak Cipta dilindungi Undang-UndangJakarta 2018ISBN 978-602-9438-91-8

Page 4: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

KATA PENGANTAR

P uji syukur kami panjatkan kepada Allah SWT, yang telah memberikan rahmat dan kemu-dahan sehingga bisa menyelesaikan Buku yang berjudul PENGANTAR DEEP NEURAL

NETWORKS UNTUK SISTEM CERDAS.Buku ini disusun sebagai buku ajar untuk matakuliah pengantar kecerdasan buatan lanjut.

Buku ini disusun dengan mengambil materi dari paper-paper karya penulis terkenal di bidangDeep Learning dan Deep Neural Networks dan juga digabungkan pengalaman penulis dalammenyelesaiakn riset yang terkait dengan bidang Deep Learning dan Deep Neural Networks.

Buku ini disusun dalam 6 bab, yang mencakup: tentang RBMs, tentang toolbox yangdikembangkan oleh Tanaka dan Okutomi dan MNIST basis data, pengaturan parameterDNNs, beberapa contoh sederhana DNNs, dan pemrosesan suara dengan DNNs.

Misi dari penerbitan buku ini adalah untuk digunakan mahasiswa, dosen dan pembacayang tertarik pada peminatan kecerdasan buatan dan sistem cerdas. Mengingat saat ini bukujenis ini sangat jarang ditulis oleh penulis dari Indonesia.

Akhirnya sekali lagi kami mengucapkan terima kasih kepada PUREK II Universitas Gu-nadarma, berbagai pihak yang banyak membantu sehingga bisa diterbitkannya buku PEN-GANTAR DEEP NEURAL NETWORKS UNTUK SISTEM CERDAS .

Tiada gading yang tak retak, kami masih menyadari bahwa buku ini masih jauh darisempurna, saran dan kritik yang sangat membangun sangat kami harapkan.

Bogor, Maret 2018

ABM dan RR

Page 5: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk
Page 6: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

DAFTAR ISI

KATA PENGANTAR i

DAFTAR ISI iii

DAFTAR GAMBAR v

1 PENDAHULUAN 1

2 Mesin Boltzmann Terbatas (MBT) 3

2.1 Algoritma Divergensi Kontrastif . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Deep Belief Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Toolbox DNN 11

3.1 MNIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2 Running Contoh: DNN-MNIST . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3 Pemahaman Toolbox Dengan Contoh Basis Data MNIST . . . . . . . . . . . . 13

3.4 Pengaturan Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Contoh-Contoh Lebih Lanjut 19

4.1 Pembelajaran Mandiri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1.1 Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1.2 Hasil-Hasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1.3 Diskusi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2 Prediksi Pola-Pola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2.1 Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 7: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

iv PENGANTAR DEEP NEURAL NETWORKS

4.2.2 Hasil-Hasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2.3 Diskusi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.4 Masalah XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.2.5 Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.6 Hasil-Hasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2.7 Diskusi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Pengolahan Suara (Speech Processing) 31

5.1 Fitur-Fitur Ucapan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2 DNN dan Pengolahan Ucapan . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Ringkasan 35

DAFTAR PUSTAKA 37

Page 8: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

DAFTAR GAMBAR

2.1 Sebuah MBT dengan sebuah layar tampak dan layar tersembunyi. . . . . . . . 4

2.2 Blok pembangun sebuah MBT: sebuah neuron stokastik binera. Pada contohini, tampak ke tersembunyi, hj merupakan probabilitas pemroduksian sebuahspike [11]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3 Algoritma Divergensi Kontrastif (DK). . . . . . . . . . . . . . . . . . . . . . . 5

2.4 Sebuah belief network tidak-terbatas. Semakin banyak MBT(Restricted Boltz-mann Machines (RBMs)), semakin dalam pembelajaran, yaitu Deep Belief Net-works(DBN)[12]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.5 Sebuah DBN hybrid untuk pembelajaran terpandu (supervised learning). . . . 8

2.6 Sebuah DBN hybrid untuk pembelajaran terpandu [12]; Basis data MNIST. . 8

3.1 Arsitektur DNN lainya untk basis data MNIST [24]. . . . . . . . . . . . . . . . 12

3.2 Skript Matlab/Octave script: analisis N = 10 citra uji dari basis data MNIST. 13

3.3 Lanjutan Gbr.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4 10 contoh pengujian pertama dari basis data MNIST. Yang pertama adalahdigit 7, kemudian 2; yang terakhir adalah digit 9. . . . . . . . . . . . . . . . . 14

3.5 Input dan output dari DNN untuk basis data MNIST. . . . . . . . . . . . . . 15

4.1 Contoh pembelajaran mandiri dengan MBT tunggal. . . . . . . . . . . . . . . 20

4.2 Skript Matlab/Octave: contoh pembelajaran mandiri. . . . . . . . . . . . . . . 21

4.3 Lanjutan Gbr.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.4 Arsitektur DNN untuk contoh pembelajaran terpandu: prediksi pola. . . . . . 22

4.5 Skript Matlab/Octave: contoh prediksi pola. . . . . . . . . . . . . . . . . . . . 23

4.6 Lanjutan Gbr.4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.7 Arsitektur DNN untuk contoh XOR. . . . . . . . . . . . . . . . . . . . . . . . 26

Page 9: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

vi PENGANTAR DEEP NEURAL NETWORKS

4.8 Skript Matlab/Octave: Contoh XOR. . . . . . . . . . . . . . . . . . . . . . . . 27

4.9 Lanjutan Gbr.4.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.1 Pengolahan Ucapan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2 Contoh audio. (a) Audio direpresentasikan dalam bentuk gelombang domain-waktu; (b) Fitur-fitur diperoleh dari bentuk gelombang domain-waktu. . . . . 33

5.3 DNN dan Suara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Page 10: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 1

PENDAHULUAN

Sistem cerdas melibatkan pendekatan kecerdasan buatan termasuk jaringan syaraf tiruan.Tutorial ini berfokus terutama pada Deep Neural Networks (DNNs).

Inti dari DNNs adalah Mesin Boltzman Terbatas (MBT) (Restricted Boltzmann Ma-chines (RBMs)) yang diusulkan oleh Smolensky [23, 10], dan diteliti secara serius oleh Hintondkk. [13, 12, 11], dimana istilah/terminologi deep berasal dari Deep Beliefs Networks (DBN)[12]. Bab selanjut mendeskripsikan hubungan antara MBT, DBN dan DNNs.

Dewasa ini, istilah Deep Learning (DL) menjadi populer dalam literatur machine learning.[15, 3, 22]. Akan tetapi , DL terutama mengacu pada Deep Neural Networks (DNNs) dankhususnya DBN dan MBT [15]. Beberapa penelitian yang berkaitan dengan DL berfokuspada komputasi kinerja tinggi untuk mempercepat pembelajaran DNN, yaitu Unit PengolahanGrafis (dikenal dengan GPU), Message Passing Interface (MPI) di antara teknologi paralelisasilainnya [3].

Sebuah survei yang luas tentang kecerdasan buatan dan khususnya DL telah dipublikasikanbelum lama ini, yang mencakup DNN, Convolutional Neural Networks (CNN), RecurrentNeural Networks (RNN), di antara banyak strategi pembelajaran lainnya [22].

Mesin Boltzman Terbatas (MBT) didefinisikan sebagai berikut: ”Satu lapisan unit tersem-bunyi ( hidden units) yang tidak terhubung satu sama lain dan memiliki koneksi simetris yangtidak berarah ke lapisan unit tampak ( visible units). Unit tampak ( visible units) dan keadaantersembunyi ( hidden states) diambil dari distribusi kondisional mereka menggunakan sampelGibbs dengan menjalankan rantai Markov sampai mencapai distribusi stasionernya. Aturanbelajar sama dengan aturan belajar maximum likelihood [divergensi kontrastif (contrastivedivergence)] untuk logistic belief net tak terbatas dengan bobot yang terikat” [12].

Produk-produk Pakar (products of Experts (PoE)) dan mesin Boltzmann merupakanmodel-model generatif probabilistik, dan interseksinya menghasilkan MBT [10]. Pembela-

Page 11: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

2 PENGANTAR DEEP NEURAL NETWORKS

jaran dengan contrastive divergence dari PoE merupakan basis dari algoritma pembelajaranDBNs [10, 12].

Kami merekomendasikan paper dari Fischer dan Igel [6] sebagai pengantar sederhana yangmenjelaskan pelatihan MBT dan hubungannya dengan model grafis termasuk Markov RandomFields (MRFs); dan juga menyajikan rantai Markov untuk menjelaskan bagaimana MBTmenarik sampel dari distribusi probabilitas, misalkan distribusi Gibbs dari MRF.

Blok pembangun MBT adalah neuron stokastik biner [12]. Namun demikian, ada beber-apa cara untuk mendefinisikan neuron terlihat nyata, dimana MBT-Gaussian-Biner banyakdigunakan [6].

Kita dapat menggunakan toolbox MATLAB R©/Octave yang tersedia untuk umum untukRBM yang dikembangkan oleh Tanaka dan Okutomi [24]. Toolbox ini menerapkan sparsitas[16], dropout [4] dan inferensi baru untuk MBT [24].

Kontribusi utama tutorial ini adalah contoh-contoh DNNs berikut kode sumber dalam Mat-lab/Octave untuk membangun sistem cerdas. Oleh karena itu, semangat tutorial ini adalahagar orang dapat dengan mudah mengeksekusi contoh dan melihat hasil seperti apa yangdiperoleh. Ada contoh-contoh dengan pembelajaran mandiri (unsupervised) atau terpandu(supervised), dan contoh-contoh untuk tugas prediksi dan klasifikasi juga disediakan. Selainitu, pengaturan parameter DNNs berikut contohnya juga ditunjukkan.

Tutorial ini diorganisasikan sebagai berikut: Bab(§2) berikut menerangkan tentang MBT.Bab §3 menerangkan tentang toolbox yang dikembangkan oleh Tanaka dan Okutomi [24]dan MNIST basis data. BAB §3.4 menyajikan sebuah diskusi tentang pengaturan param-eter DNNs. BAB §4 menjelaskan beberapa contoh sederhana DNNs. Bab terakhir menya-jikan pemrosesan ucapan dengan DNNs; BAB §5. Akhirnya, sebuah ringkasan dan referensi-referensi disajikan.

Page 12: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 2

Mesin Boltzmann Terbatas (MBT)

Sebuah MBT digambarkan seperti pada Gbr. 2.1. Lapisan tampak (visible layer) merupakaninput, data tanpa label, ke jaringan syaraf tiruan. Lapisan tersembunyi (hidden layer) mem-peroleh fitur dari data masukan, dan masing-masing neuron menangkap fitur yang berbeda[12]. Secara definisi, MBT merupaka graph bipartit yang tidak berarah. Sebuah MBT memi-

liki m unit tampak (visible units) ~V = (V1, V2, . . . , Vm), data input, dan n unit tersembunyi

(hidden units) ~H = (H1, H2, . . . , Hn), fitur-fitur [6]. Konfigurasi bersama, (~v,~h) dari unit-unittampak dan tersembunyi memiliki sebuah energi yang dinyatakan sebagai berikut[14]

E(~v,~h) = −m∑i=1

aivi −n∑

j=1

bjhj −m∑i=1

n∑j=1

vihjwij , (2.1)

dimana vi dan hj berurutan merupakan keadaan-keadaan biner dari unit-unit tampak dantersembunyi; ai, bj menyatakan bias-bias, dan wij adalah sebuah bobot bernilai riil terkaitsetiap tepi dalam jaringan [11], lihat Gbr. 2.1.

Blok pembangun MBT adalah neuron stokastik biner [12]. Gbr. 2.2 menunjukan bagaimanamemperoleh keadaan suatu neuron tersembunyi dari suatu layar tampak (data).

Sebuah MBT dapat dipandang sebagai sebuah jaringan neural stokastik. Pertama, bobot-bobot wij diinisialisasi secara acak. Kemudian, data yang akan dipelajari ditetapkan padalapisan tampak; daata ini dapat berupa gambar, sinyal, dan sebagainya. Selanjutnya, keadaanneuron pada lapisan tersembunyi diperoleh melalui persamaan berikut:

p(hj = 1|~v) = sig

(bj +

∑i

viwij

), (2.2)

sehingga probabilitas bersyarat dari hj menjadi 1 adalah laju pengaktivan neuron stokastik

Page 13: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

4 PENGANTAR DEEP NEURAL NETWORKS

Gambar 2.1. Sebuah MBT dengan sebuah layar tampak dan layar tersembunyi.

dengan fungsi aktivasi sigmoid , sig(x) = 1/(1 − e−x), lihat Gbr. 2.2. Langkah ini, daritampak ke tersembunyi, dinyatakan sebagai 〈vihj〉0, pada saat t = 0 [12, 6, 24].

Gambar 2.2. Blok pembangun sebuah MBT: sebuah neuron stokastik binera. Pada contohini, tampak ke tersembunyi, hj merupakan probabilitas pemroduksian sebuah spike [11].

Page 14: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Mesin Boltzmann Terbatas (MBT) 5

2.1 Algoritma Divergensi Kontrastif

Gambar 2.3. Algoritma Divergensi Kontrastif (DK).

Pembelajaran dalam sebuah MBT dicapai melalu algoritma Divergensi Kontrastif (DK),lihat Gbr. 2.3 [12]. Langkah pertama dari algoritma DK adalah 〈vihj〉0, seperti tampakpada gambar. Langkah berikutnya adalah ”rekonstruksi” lapisan tampak dengan persamaanberikut:

p(vi = 1|~h) = sig

(ai +

∑j

hjwi,j

), (2.3)

yaitu, tersembunyi ke tampak. Langkah ini dinyatakan dengan 〈hjvi〉0. Keadaan baru darilapisan tersembunyi diperoleh dengan menggunakan hasil rekonstruksi sebagai data masukan,dan langkah ini dinyatakan sebagai 〈vihj〉1; pada saat t = 1. Akhirnya, bobot-bobot danbias-bias disesuaikan dengan cara berikut [12]:

∆wij = ε(〈vihj〉0 − 〈vihj〉1

); (2.4)

∆ai = ε(v0i − v1i

); (2.5)

∆bj = ε(h0j − h1j

); (2.6)

dimana ε adalah laju pembelajaran. MBT menemukan model yang lebih baik jika ada lebihbanyak langkah algoritma DK yang dilakukan; DKk digunakan untuk menunjukkan pem-belajaran dalam k langkah/iterasi [11]. Algoritma DK diringkas dalam Algoritma 1, danmenggunakan data pelatihan yang lengkap, batch learning [6].

Page 15: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

6 PENGANTAR DEEP NEURAL NETWORKS

Algorithm 1 Pseudocode Algoritma Divergensi Kontrastif (DK).

1. Mengatur unit tampak (visible units) ke vektor pelatihan

2. Untuk (For) k ← 1 sampai (to) maksimum iterasi lakukan (do)

(a) Untuk (For) s← 1 sampai (to) ukuran data pelatihan lakukan (do)

i. Memperbarui seluruh unit tersembunyi secara paralel dengan Persamaan 2.2

ii. Memperbarui seluruh unit tampak secara paralel untuk memperoleh rekon-struksi dengan Persamaan 2.3

iii. Memperbarui kembali seluruh unit tersembunyi secara paralel dengan Per-samaan 2.2

iv. Memperbarui bobot dan bias dengan Persamaan 2.4-2.6

v. Memilih vektor pelatihan yang lain

(b) akhir (end)

3. akhir (end)

2.2 Deep Belief Network

Sebuah Deep Belief Network (DBN) [12] digambarkan seperti Gbr. 2.4. Perbandingan Gbr. 2.1dengan Gbr. 2.4, kita dapat melihat bahwa sebuah DBN dibangun melalui penumpukan MBT.Dengan demikian, semakin banyak tingkat yang dimiliki suatu DBN, DBN semakin dalam(deeper). Neuron tersembunyi pada suatu MBT1 menangkap fitur dari neuron tampak. Ke-mudian, fitur tersebut menjadi masukan bagi MBT2, dan seterusnya sampai MBTr tercapai;lihat juga Gbr. 2.5. DBN mengekstraksi fitur-fitur secara suatu cara yang mandiri (unsuper-vised manner) atau pembelajaran yang mendalam (deep learning).

Sebuah DBN hybrid telah diusulkan untuk pembelajaran terpandu/terbimbing (supervisedlearning), lihat Gbr. 2.5. Jaringan ini menambahkan label pada lapisan teratasnya. Bobot-

bobot ~WL antara lapisan teratas dan lapisan terakhir dari neuron-neuron tersembunyi, memoriasosiatif, dipelajari dengan cara terpandu/terbimbing. Proses ini disebut fine-tunning [12],dan ini dapat dicapai dengan berbagai algoritma yang berbeda termasuk backpropagation[21, 1, 19, 8]. DBN hybrid ini dirujuk sebagai Deep Neural Networks [16, 4, 6, 24].

Page 16: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Mesin Boltzmann Terbatas (MBT) 7

Gambar 2.4. Sebuah belief network tidak-terbatas. Semakin banyak MBT(RestrictedBoltzmann Machines (RBMs)), semakin dalam pembelajaran, yaitu Deep Belief Net-works(DBN)[12].

Page 17: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

8 PENGANTAR DEEP NEURAL NETWORKS

Gambar 2.5. Sebuah DBN hybrid untuk pembelajaran terpandu (supervised learning).

Gambar 2.6. Sebuah DBN hybrid untuk pembelajaran terpandu [12]; Basis data MNIST.

Page 18: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Mesin Boltzmann Terbatas (MBT) 9

Hinton dkk. menerapkan DNN pada database digit tulisan tangan MINST 1 [12], lihatGbr. 2.6. Pada saat itu, DNN menghasilkan kinerja terbaik dengan tingkat kesalahan 1,25 %dibandingkan dengan metode lain termasuk Support Vector Machines (SVM) yang memilikitingkat kesalahan 1,4

1http://yann.lecun.com/exdb/mnist/

Page 19: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

10 PENGANTAR DEEP NEURAL NETWORKS

Page 20: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 3

Toolbox DNN

Kita menggunakan toolbox publik dari MATLAB R© yang dikembangkan oleh Tanaka dan Oku-tomi [24], dan dapat diunduh secara online 1. Toolbox ini berdasarkan paper [12]. Toolbox iniberisikan sparsitas [16], dropout [4] dan novel baru MBT yang diusulkan oleh Tanaka [24]. Jikatoolbox telah diunduh dan di-unzipped, ini akan membangkitkan direktori-direktori berikut

• /DeepNeuralNetwork/

• /DeepNeuralNetwork/mnist

3.1 MNIST

Database MNIST2 dari digit tulisan tangan memiliki sekumpulan 60.000 contoh pelatihan,dan satu set tes 10.000 contoh. Begitu MNIST telah diunduh dan di-unzipped, kita akanmendapatkan file berikut

• train-images-idx3-ubyte: training set images

• train-labels-idx1-ubyte: training set labels

• t10k-images-idx3-ubyte: test set images

• t10k-labels-idx1-ubyte: test set labels

1http://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network2http://yann.lecun.com/exdb/mnist/

Page 21: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

12 PENGANTAR DEEP NEURAL NETWORKS

Catatan bahwa jika kita meng-compress file-file *.gz files, maka kita perlu mencek nama-nama file, dan mengganti “.” dengan “-”. Kita harus meletakkan file-file di dalam direktori/DeepNeuralNetwork/mnist/.

3.2 Running Contoh: DNN-MNIST

File /mnist/testMNIST.m merupakan file utama dari contoh yang disediakan oleh toolboxuntuk melatih sebuah DNN bagi basis data MNIST. Contoh menggunakan sebuah jaringanhybrid dengan hanya dua layer tersembunyi dari 800 neuron setiap layernya, lihat Gbr. 3.1.Kita telah menguji toolbox pada Octave3 3.2.4 dan MATLAB R© 7.11.0.584 (2010b), keduannyadalam Window Operating Systems.

Gambar 3.1. Arsitektur DNN lainya untk basis data MNIST [24].

Skript testMNIST.m akan membangkitkan file mnistbbdbn.mat dengan DNN yang telahdilatih. Setiap kali testMNIST.m selesai akan muncul informasi atau hasil seperti berikut:

• For training data: rmse = 0.0155251; ErrorRate = 0.00196667 (0.196%); Tanaka et al.reported 0.158% [24].

• For test data: rmse = 0.0552593; ErrorRate = 0.0161 (1.6%); Tanaka et al. reported1.76% [24].

3https://www.gnu.org/software/octave/

Page 22: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Toolbox DNN 13

Waktu komputasi yang diperlukan untuk melatih 60,000 contoh-contoh MNIST dan 10,000contoh-contoh untuk pengujian adalah sekitar 3 hari pada sebuah komputer dengan memori384 GB, 4 CPUs 2.3GHz dengan 16 cores masing-masing (total 64 cores).

3.3 Pemahaman Toolbox Dengan Contoh Basis Data

MNIST

Setiap kali skript contoh (testMNIST.m) telah berhasil dieksekusi, kita menjalankan skriptseperti tampak pada Gbr. 3.2.

% Skript Matlab/Octave

mnistfilenames = cell(4,1);

mnistfilenames{1} = ’train-images-idx3-ubyte’;

mnistfilenames{2} = ’train-labels-idx1-ubyte’;

mnistfilenames{3} = ’t10k-images-idx3-ubyte’;

mnistfilenames{4} = ’t10k-labels-idx1-ubyte’;

[TrainImages TrainLabels TestImages TestLabels]=mnistread(mnistfilenames);

% load data untuk pelatihan dan pengujian dari file-file

load mnistbbdbn; % load DNN terlatih

dbn = bbdbn; % set dbn sebagai jaringan terlatih

N = 10; %jumlah data uji untuk analisis

IN = TestImages(1:N,:); %load hanya N records dari data pengujian

OUT = TestLabels(1:N,:); %load hanya N dari data pengujian

for i=1:N,

imshow(reshape(IN(i,:),28,28));

name = [’print img-training-’,num2str(i),’.jpg -djpeg’]

eval(name); %save the plot, file in jpeg format

end

% v2h: memperoleh output dari DNN

out = v2h( dbn, IN );

% memperoleh nilai-nilai maksimum (m) dari out dan indeks-indeks (ind)

[m ind] = max(out,[],2);

out = zeros(size(out)); % menginisialisasi variabel out

Gambar 3.2. Skript Matlab/Octave script: analisis N = 10 citra uji dari basis data MNIST.

Page 23: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

14 PENGANTAR DEEP NEURAL NETWORKS

% selanjutnya, mengisi dengan "satu" nilai-nilai maksimum

%yang berada pada (ind):

for i=1:size(out,1)

out(i,ind(i)) = 1;

end

% selanjutnya bandingkan out vs OUT. Katakan output dari DNN (out) vs

% output yang diharapkan (OUT)

ErrorRate = abs(OUT-out); % secara analitik membandingkan OUT vs out

% sum(ErrorRate,2) melakukan penjumlahan dalam dua dimensi(sum in two

% dimensions),

% pertama per baris kemudian kolom yang dihasilkan.

% Kemudian dibagi 2; jika beberapa output gagal, jumlahnya akan dihitung

% dua kali.

% mean menampilakan persentase kesalahan, dikenal sebagai "error rate".

ErrorRate = mean(sum(ErrorRate,2)/2) % Akhirnya Error rate diperoleh.

Gambar 3.3. Lanjutan Gbr.3.2

Gambar 3.4. 10 contoh pengujian pertama dari basis data MNIST. Yang pertama adalah digit7, kemudian 2; yang terakhir adalah digit 9.

Page 24: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Toolbox DNN 15

Skript ini membangkitkan N = 10 citra via imshow, lihat Gbr. 3.4. Citra-citra adalahbagian dari 10 contoh pengujian pertama.

Setiap citra disimpan dalam sebuah vektor ukuran 784, yang bersesuaian dengan sebuahcitra ukuran 28×28 piksel. Dan setiap piksel menyimpan bilangan antara 0 dan 255, dimana0 berarti latar belakang (putih) dan 255 berarti latar depan (hitam); lihat Gbr. 3.4.

Gambar 3.5. Input dan output dari DNN untuk basis data MNIST.

Pada Gbr. 3.5, kita menampilkan input dan output dari DNN untuk basis data MNIST.Variabel IN merepresentasikan input dari sampel-sampel pelatihan atau pengujian. VariabelOUT merupakan output pelatihan, dan variabel out output pengujian. Kedua variabel out-put merepresentasikan label-label dari digit-digit untuk belajar/mengenali (digit dari 0 sampai9).

Sebagai contoh, skript pada Gbr. 3.2 membangkitkan hasil sebagai berikut:

out =

0 0 0 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 1

Variabel out mewakili label-label. Setiap baris terkait dengan setiap digit citra4, dan

4Catatan bahwa ada 60.000 citra untuk pelatihan, 10.000 citra untuk pengujian dan 10 citra untuk tujuanilustrasi (Gbr. 3.4), i.e. hanya 10 baris.

Page 25: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

16 PENGANTAR DEEP NEURAL NETWORKS

setiap kolom menandakan akitivasi atau tidak digit-digit 0–9. Yaitu, kolom pertama mewakilidigit 0, dan kolom terakhir digit 9. Contoh example, perhatikan kiri-atas pada Gbr. 3.4, citrayang mewakili digit 7 hanya mengaktifkan kolom 8 (yaitu 0 0 0 0 0 0 0 1 0 0) dari baris pertamavariabel out. Citra di sisi kanan digit 7 sesuai dengan 2, sehingga kolom ketiga diaktifkanpada baris kedua variabel out, dan seterusnya. Pada contoh ini ErrorRate adalah nol, karenasepuluh sampel pengujian pertama berhasil dikenali. Mari kita membuat skenario hipotetis dimana DNN gagal mengenali citra pertama (digit 7), yaitu bayangkan bahwa output terlihatseperti berikut ini:

out =

0 0 0 0 0 0 1 0 0 0

0 0 1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 1

Lihatlah baris pertama, sekarang baris ini menunjukkan bahwa gambar digit pertama padaGbr. 3.4 sesuai dengan digit 6, bukan digit 7. Oleh karena itu, Errorrate mengukur kesalahanini via fungsi abs dari perbedaan antara output yang diharapkan OUT dan output dari DNN,which is out. Maka tingkat kesalahan diperoleh sebagai berikut:

ErrorRate = abs(OUT-out)

ErrorRate =

0 0 0 0 0 0 1 1 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

Page 26: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Toolbox DNN 17

Sekarang, kita menjumlahkan setiap baris. Ini untuk mendeteksi berapa banyak perbedaanyang ditemukan oleh sampel uji.

sum(ErrorRate,2)

ans =

2

0

0

0

0

0

0

0

0

0

Jika ada kesalahan, maka hasilnya dibagi dengan 2. Ini karena jika ada beberapa perbedaanper setiap sampel, kita akan memiliki dua nilai 1 seperti yang ditunjukkan di atas.

sum(ErrorRate,2)/2

ans =

1

0

0

0

0

0

0

0

0

0

Akhirnya, tingkat kesalahan dinyatakan sebagai nilai rata-rata:

mean(sum(ErrorRate,2)/2)

ans = 0.10000

Karena DNN gagal mengenali satu digit dari sepuluh, tingkat kesalahannya adalah 10%(yaitu 0.10000).

Page 27: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

18 PENGANTAR DEEP NEURAL NETWORKS

3.4 Pengaturan Parameter

Ada beberapa parameter perlu diatur ketika bekerja dengan DNN, termasuk statistik untukmemantau algoritma divergensi kontrastif, ukuran batch, pemantauan overfitting (iterasi), lajubelajar ε, bobot awal, jumlah unit tersembunyi dan lapisan tersembunyi, jenis unit (misalnyabiner atau Gaussian), dropout, antara lain [16, 11, 4, 6]. Dalam praktiknya, kita hanya bisafokus pada hal-hal berikut:

• Maksimum iterasi (MaxIter), yang juga dikenal sebagai k untuk algoritma divergensikontrastif.

• Laju belajar ε (StepRatio).

• Tipe unit (yaitu distribusi Bernoulli atau Gaussian).

Kita analisis dampak dari parameter DNN ini melalui contoh XOR; lihat §4.2.4 di bawah.

Page 28: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 4

Contoh-Contoh Lebih Lanjut

Di samping contoh basis data MNIST, seperti dijelaskan di atas, bab ini menyajikan contoh-contoh untuk pembelajaran mandiri (unsupervised) dan terpandu (supervised); termasuk tu-gas prediksi dan klasifikasi.

4.1 Pembelajaran Mandiri

Kami sekarang menunjukkan contoh untuk pembelajaran mandiri. Arsitektur jaringan adalahRBM tunggal dengan enam unit yang terlihat dan delapan unit tersembunyi; lihat Gbr. 4.1.Tujuannya adalah untuk mempelajari pola sederhana (Pattern) seperti yang ditunjukkan dibawah ini dalam skrip pada Gbr. 4.2. Pattern ini adalah contoh yang sangat sederhana daridata yang tidak berlabel.

Semua waktu komputasi yang dilaporkan di seluruh bagian ini diperoleh dan dilakukanpada komputer pribadi dengan karakteristik berikut: 2.3 GHz Intel Core i7 dan 4GB memory;Linux-Ubuntu 12.04 dan GNU Octave 3.2.4.

4.1.1 Skript

Gbr. 4.2 menunjukan skript Matlab/Octave script untuk contoh pembelajaran mandiri. Kitamenggunakan toolbox yang sama seperti pada basis data MNIST [24].

Page 29: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

20 PENGANTAR DEEP NEURAL NETWORKS

Gambar 4.1. Contoh pembelajaran mandiri dengan MBT tunggal.

4.1.2 Hasil-Hasil

Ketika skript pada Gbr. 4.2 dieksekusi, beberapa data ditampilkan. Pertama, data pelatihan(pola kita) ditampilkan:

TrainData =

1 1 0 0 0 0

0 0 1 1 0 0

0 0 0 0 1 1

kemudian output setelah pretrainDBN adalah:

out =

9.9e-01 9.9e-01 1.0e-04 1.2e-04 2.5e-05 2.6e-05

5.0e-04 4.3e-04 9.9e-01 9.9e-01 6.1e-04 6.0e-04

4.2e-06 3.6e-06 5.9e-06 5.4e-06 9.9e-01 9.9e-01

Output ini merupakan probabilitas [0,1], yang dikenal sebagai rekonstruksi, sehingga kitadapat menerapkan fungsi round, dan kemudian kita peroleh:

out =

Page 30: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Contoh-Contoh Lebih Lanjut 21

% Matlab/Octave script

clear all;

addpath(’..’);

ini = clock;

Pattern = [1 1 0 0 0 0 ;

0 0 1 1 0 0 ;

0 0 0 0 1 1 ];

Inputs = 6; % #no variables as input

TrainData = Pattern(:,1:Inputs)

TestData = TrainData;

nodes = [Inputs 8]; % [#inputs #hidden]

bbdbn = randDBN( nodes, ’BBDBN’ ); % Bernoulli-Bernoulli RBMs

nrbm = numel(bbdbn.rbm);

% meta-paramters or hyper-parameters

opts.MaxIter = 50;

opts.BatchSize = 1;

opts.Verbose = false;

opts.StepRatio = 2.5;

opts.object = ’CrossEntorpy’;

Gambar 4.2. Skript Matlab/Octave: contoh pembelajaran mandiri.

%Learning stage

fprintf( ’Training...\n’ );

opts.Layer = nrbm-1;

bbdbn = pretrainDBN(bbdbn, TrainData, opts);

%Testing stage

fprintf( ’Testing...\n’ );

H = v2h( bbdbn, TestData); % visible layer to hidden layer

out = h2v(bbdbn,H); % hidden to visible layers (reconstruction)

fprintf( ’Results...\n’ );

out

round(out)

theend = clock;

fprintf(’\nElapsed time: %f\n’,etime(theend,ini));

Gambar 4.3. Lanjutan Gbr.4.2.

Page 31: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

22 PENGANTAR DEEP NEURAL NETWORKS

1 1 0 0 0 0

0 0 1 1 0 0

0 0 0 0 1 1

Total waktu yang digunakan adalah 0.254730 detik.

4.1.3 Diskusi

Kami menemukan bahwa DNN pada Gbr. 4.1 mampu mempelajari pola yang diberikab secaramandiri. Kita menggunakan stepRatio 2.5 karena ini memungkinkan kita untuk memilikilebih sedikit iterasi, yaitu MaxIter = 50. Beberapa penulis merekomendasikan lajur pembe-lajaran (stepRatio) 0.01 [11, 24], tetapi dengan pengaturan ini, kita memerlukan setidaknya1.000 iterasi untuk mempelajari pola ; lihat §4.2.4 untuk masalah pengaturan parameter.

4.2 Prediksi Pola-Pola

Contoh berikut mensimulasikan skenario prediksi time series. Kita menguji dua pola yangberbeda (Pattern1 dan Pattern2). Data pelatihan kita adalah matriks dengan delapankolom, yang menunjukan jumlah variabel. Kita hanya menggunakan enam variabel seba-gai input, dan dua variabel kolom terakhir sebagai output. Gagasan utamanya adalah bah-wa kita memberi masukan jaringan hanya dengan enam variabel, kemudian jaringan harus“ memprediksi ” dua variabel berikutnya; lihat Gbr. 4.4. Dibandingkan dengan contoh se-belumnya, kita menggunakan pembelajaran terpandu seperti yang ditunjukkan di atas padacontoh MNIST, lihat §3. Oleh karena itu, label adalah dua kolom terakhir dari pola (output),yaitu TrainLabels.

Gambar 4.4. Arsitektur DNN untuk contoh pembelajaran terpandu: prediksi pola.

Page 32: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Contoh-Contoh Lebih Lanjut 23

4.2.1 Skript

Skript untuk contoh ini ditunjukkan pada Gbr. 4.4.

% Matlab/Octave script

clear all;

addpath(’..’);

ini = clock();

Pattern1 = [ 0 0 0 0 0 1 0 1;

0 0 0 0 1 0 1 0;

0 0 0 1 0 1 0 0;

0 0 1 0 1 0 0 0;

0 1 0 1 0 0 0 0;

1 0 1 0 0 0 0 0];

Pattern2 = [ 1 1 0 0 0 0 0 0;

0 1 1 0 0 0 0 0;

0 0 1 1 0 0 0 0;

0 0 0 1 1 0 0 0;

0 0 0 0 1 1 0 0;

0 0 0 0 0 1 1 0;

0 0 0 0 0 0 1 1;

1 0 0 0 0 0 0 1];

Pattern=Pattern1; % set the pattern to simulate

Inputs = 6; % #no variables as input

Outputs = 2; % #no. variables as ouputs

TrainData = Pattern(:,1:Inputs); % get the training data, inputs

TrainLabels = Pattern(:,Inputs+1:Inputs+Outputs); % show the labels

TestData = TrainData; % we test with the same training data

TestLabels = TrainLabels;

nodes = [Inputs 20 Outputs]; % [#inputs #hidden #outputs]

bbdbn = randDBN( nodes, ’BBDBN’ ); % Bernoulli-Bernoulli RBMs

nrbm = numel(bbdbn.rbm);

% meta-parameters or hyper-parameters

Gambar 4.5. Skript Matlab/Octave: contoh prediksi pola.

Page 33: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

24 PENGANTAR DEEP NEURAL NETWORKS

% meta-parameters or hyper-parameters

opts.MaxIter = 1000;

opts.BatchSize = 6;

opts.Verbose = false;

opts.StepRatio = 2.5;

opts.object = ’CrossEntorpy’;

%Learning stage

fprintf( ’Training...\n’ );

[TrainData TrainLabels]

opts.Layer = nrbm-1;

bbdbn = pretrainDBN(bbdbn, TrainData, opts);

bbdbn= SetLinearMapping(bbdbn, TrainData, TrainLabels);

opts.Layer = 0;

bbdbn = trainDBN(bbdbn, TrainData, TrainLabels, opts);

fprintf( ’Testing...\n’ );

out = v2h( bbdbn, TestData );

[TestData out]

[TestData round(out)]

theend = clock();

fprintf(’\nElapsed time: %f\n’,etime(theend,ini));

Gambar 4.6. Lanjutan Gbr.4.5.

4.2.2 Hasil-Hasil

Skript pada Gbr. 4.5 menghasilkan output berikut. Pertama, ia akan mencetak TrainData

dan TrainLabels bersama dengan instruksi [TrainData TrainLabels]:

Training...

ans =

0 0 0 0 0 1 0 1

0 0 0 0 1 0 1 0

0 0 0 1 0 1 0 0

0 0 1 0 1 0 0 0

0 1 0 1 0 0 0 0

1 0 1 0 0 0 0 0

Rekrontruksi (probabilitas) dinyatakan pada dua kolom terakhir:

Page 34: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Contoh-Contoh Lebih Lanjut 25

Testing...

ans =

0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0031 0.9881

0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.9911 0.0011

0.0000 0.0000 0.0000 1.0000 0.0000 1.0000 0.0044 0.0112

0.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.0092 0.0073

0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0065 0.0002

1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0003 0.0041

Seperti pada contoh sebelumnya, kita menerapkan fungsi round, sehingga kita peroleh:

[TestData round(out)]

ans =

0 0 0 0 0 1 0 1

0 0 0 0 1 0 1 0

0 0 0 1 0 1 0 0

0 0 1 0 1 0 0 0

0 1 0 1 0 0 0 0

1 0 1 0 0 0 0 0

4.2.3 Diskusi

Dalam contoh ini, kita menetapkan DNN untuk memprediksi dua variabel yang diberikanenam variabel input. Kita menemukan bahwa DNN berhasil memprediksi pola yang diberikan.Di sini, kita hanya menampilkan hasil untuk Pattern1, tetapi hasil untuk Pattern2 serupa.Kita mulai menguji DNN dengan pola yang berbeda, dan kita menemukan secara tidak sengajadengan suatu pola yang DNN tidak dapat memprediksinya (4 input, 2 output):

Training...

ans =

0 0 0 0 0 1

0 0 0 0 1 0

0 0 0 1 0 0

0 0 1 0 0 0

0 1 0 0 0 0

1 0 0 0 0 0

Testing...

Page 35: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

26 PENGANTAR DEEP NEURAL NETWORKS

ans =

0.00000 0.00000 0.00000 0.00000 0.49922 0.49922

0.00000 0.00000 0.00000 0.00000 0.49922 0.49922

0.00000 0.00000 0.00000 1.00000 0.00993 0.00993

0.00000 0.00000 1.00000 0.00000 0.01070 0.01070

0.00000 1.00000 0.00000 0.00000 0.01142 0.01142

1.00000 0.00000 0.00000 0.00000 0.01109 0.01109

Dua baris pertama dari data pelatihan memiliki nilai input yang sama, tetapi merekamemiliki output yang berbeda. Oleh karena itu, DNN “ secara cerdas ” menyarankan output0,499 (probabilitas).

4.2.4 Masalah XOR

Masalah XOR adalah masalah non-linear yang merupakan tes tipikal bagi classfier karena iniadalah masalah yang tidak bisa dipelajari oleh classifier linear sederhana. Dalam literaturjaringan saraf, contoh dari classifier linear adalah perceptron yang diperkenalkan oleh FrankRosenblatt pada tahun 1957 [20]. Satu dekade kemudian, Marvin Minsky dan Seymour Papermenulis buku terkenal mereka Perceptrons, dan mereka menunjukkan bahwa perceptrons tidakdapat memecahkan masalah XOR [18]. Mungkin sebagian karena publikasi Perceptrons, adapenurunan penelitian dalam jaringan saraf sampai algoritma backpropagation muncul sekitardua puluh tahun setelah publikasi Minsky dan Paper.

Di sini, kita menganalisis masalah XOR dengan DNN; lihat Gbr. 4.7.

Gambar 4.7. Arsitektur DNN untuk contoh XOR.

Page 36: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Contoh-Contoh Lebih Lanjut 27

4.2.5 Skript

Skript untuk masalah XOR ditunjukan pada Gbr. 4.8.

%Matlab/Octave script

TrainData = [0 0; 0 1; 1 0; 1 1];

TrainLabels = [0; 1; 1; 0];

TestData = TrainData;

TestLabels = TrainLabels;

nodes = [2 12 1]; % [#inputs #hidden #outputs]

bbdbn = randDBN( nodes, ’BBDBN’ ); % Bernoulli-Bernoulli RBMs

nrbm = numel(bbdbn.rbm);

% meta-paramters or hyper-parameters

opts.MaxIter = 100;

opts.BatchSize = 4;

opts.Verbose = false;

opts.StepRatio = 2.5;

opts.object = ’CrossEntorpy’;

%Learning stage

fprintf( ’Training...\n’ );

opts.Layer = nrbm-1;

bbdbn = pretrainDBN(bbdbn, TrainData, opts);

bbdbn= SetLinearMapping(bbdbn, TrainData, TrainLabels);

opts.Layer = 0;

bbdbn = trainDBN(bbdbn, TrainData, TrainLabels, opts);

%Testing stage

fprintf( ’Testing...\n’ );

TestData = [0.1 0.1; 0 0.9; 1 0.2; 0.8 1];

TestData

out = v2h( bbdbn, TestData )

%Printing results

fprintf( ’\nResults:\n\n’ );

rmse= CalcRmse(bbdbn, TestData, TestLabels);

ErrorRate= CalcErrorRate(bbdbn, TestData, TestLabels);

fprintf( ’For test data:\n’ );

Gambar 4.8. Skript Matlab/Octave: Contoh XOR.

Page 37: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

28 PENGANTAR DEEP NEURAL NETWORKS

fprintf( ’rmse: %g\n’, rmse );

fprintf( ’ErrorRate: %g\n’, ErrorRate );

Gambar 4.9. Lanjutan Gbr.4.8.

4.2.6 Hasil-Hasil

Skript pada Gbr. 4.8 melibatkan hanya dua variabel dan satu output, sehingga TrainData

dan TrainLabels adalah sebagai berikut:

TrainData =

0 0

0 1

1 0

1 1

TrainLabels =

0

1

1

0

Sebelum menjalankan skript Gbr. 4.8, kita menguji berbagai konfigurasi untuk DNN. Kitamulai dengan pengaturan hyper-parameter berikut:

nodes = [2 3 3 1]; % [#inputs #hidden #hidden #outputs]

pts.MaxIter = 10;

opts.BatchSize = 4;

opts.Verbose = true;

opts.StepRatio = 0.1;

opts.object = ’CrossEntropy’;

TestData = TrainData;

TrainLabels merupakan sebuah vektor kolom, dan out’ merupakan sebuah vektor baris,dimana out’ merupakan transpose dari out. Dengan demikian, output yang dharapkan adalahout’ = 0 1 1 0. Output dari DNN dengan pengaturan ini adalah:

out’ = 0.49994 0.49991 0.50009 0.50006

Page 38: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Contoh-Contoh Lebih Lanjut 29

Pengaturan ini tidak bekerja dengan parameter-parameter di atas. Jika kita menambahkanlebih banyak iterasi opts.MaxIter = 100, ia masih tidak bekerja sebagaimana mestinya, dankami mendapatkan hasil:

out’ = 0.47035 0.51976 0.49161 0.50654

Jika kita menambahkan lebih banyak neuron tersembunyi nodes = [2 12 12 1] dengan jum-lah iterasi yang sama, maka kinerjanya meningkat. Outputnya sekarang adalah:

out’ = 0.118510 0.906046 0.878771 0.096262

Performanya masih lebih baik jika kita menambahkan lebih banyak iterasiopts.MaxIter = 1000. Outputnya sekarang adalah:

out’ = 0.014325 0.982409 0.990972 0.012630

Elapsed time: 32.607048 seconds

Percobaan sebelumnya membutuhkan waktu sekitar 33 detik. Untuk mengurangi komplek-sitas jaringan, kita mengurangi jumlah neuron yang tersembunyi. Sekarang kita memi-liki satu layer tersembunyi nodes = [2 12 1], dan dengan jumlah iterasi yang samaopts.MaxIter = 1000. Dalam 24 detik, hasilnya adalah:

out’ = 0.043396 0.950205 0.947391 0.059305

Elapsed time: 23.640984 seconds

Sekarang, jika kita mengurangi jumlah iterasi dengan lebih sedikit neuron seperti eksper-imen sebelumnya, yaitu. opts.MaxIter = 100, hasilnya lebih cepat tetapi kinerja menurun(decay). Jadi hasilnya sekarang adalah:

out’ = 0.16363 0.80535 0.82647 0.20440

Elapsed time: 2.617439 seconds

Hiperparameter lainnya adalah opts.StepRatio, laju belajar, jadi kita menyetel param-eter ini ke opts.StepRatio = 0.01, dan jumlah iterasi adalah opts.MaxIter = 1000. Kitamenemukan hasil yang serupa dengan percobaan sebelumnya, yaitu kita tidak mencapai out-put yang diinginkan.

Namun demikian, jika kita menggunakan opts.StepRatio = 2.5 danopts.MaxIter = 100, maka kita mendapatkan kinerja yang baik dalam waktu sekitarsatu detik. Outputnya adalah:

Page 39: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

30 PENGANTAR DEEP NEURAL NETWORKS

out’ = 0.022711 0.955236 0.955606 0.065202

Elapsed time: 0.806343

Eksperimen penting lainnya adalah menguji kinerja dengan nilai nyata. Jadi kita men-gubah data uji, dan kita mendapatkan hasil berikut:

TestData =

0.10000 0.10000

0.00000 0.90000

1.00000 0.20000

0.80000 1.00000

out =

0.213813

0.956192

0.889679

0.053432

Elapsed time: 0.686760

Akhirnya, kami melakukan beberapa eksperimen dengan menyetel hyperparameteropts.object ke ‘Square’ atau ‘CrossEntorpy’, dan kami tidak menemukan perbedaan dalamkinerja. Flag opts.verbose hanya untuk menunjukkan atau tidaknya kinerja pelatihan.

4.2.7 Diskusi

Untuk masalah XOR, kita menemukan bahwa kinerja terbaik adalah dengan kombinasiberikut:: opts.StepRatio = 2.5 dan opts.MaxIter = 100. Rasio langkah besar denganbeberapa iterasi memungkinkan kita memperoleh hasil lebih cepat daripada pengaturan lain-nya. Performanya cukup bagus untuk menyelesaikan masalah XOR. Selain itu, pengaturan inimengklasifikasikan dengan benar ketika input adalah data nyata. Untuk alasan ini, pengaturanini digunakan dalam contoh sebelumnya; lihat §4.1 dan §4.2.

Page 40: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 5

Pengolahan Suara (Speech Processing)

Speech Processing memiliki beberapa aplikasi termasuk Speech Recognition, Language Identifi-cation, dan Speaker Recognition; lihat Gbr. 5.1. Terkadang, informasi tambahan disimpan dandikaitkan dengan ucapan. Oleh karena itu, Speaker Recognition dapat berupa teks dependenatau teks independen. Selain itu, Speaker Recognition melibatkan berbagai tugas seperti [2]:

• Identifikasi Pengucap (speaker Identification)

• Deteksi Pengucap (Speaker Detection)

• Verifikasi Pengucap (Speaker Verification).

5.1 Fitur-Fitur Ucapan

Langkah pertama untuk sebagian besar sistem pengenalan suara adalah ekstraksi fitur darigelombang akustik yang disampel pada domain-waktu (audio); lihat Gbr. 5.2.a. Gelombangdomain-waktu diwakili oleh frames yang tumpang tindih. Setiap frame dibangkitkan setiap10 ms dengan suatu durasi 25 ms. Kemudian, fitur diekstraksi untuk setiap frame. Beberapametode telah diteliti untuk ekstraksi fitur (representasi akustik) termasuk Linear PredictionCoefficients (LPC), koefisien Perceptual Linear Prediction (PLP) dan Mel-Frequency SpacedCepstral Coefficients (MFCCs) [5, 25].

Page 41: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

32 PENGANTAR DEEP NEURAL NETWORKS

Gambar 5.1. Pengolahan Ucapan

5.2 DNN dan Pengolahan Ucapan

Seperti yang ditunjukkan di atas, DNN memiliki fleksibilitas untuk digunakan sebagai pembe-lajaran mandiri atau terpandu. Oleh karena itu, DNN dapat digunakan untuk masalah regresiatau klasifikasi dalam pengenalan suara; lihat Gbr. 5.3.

Saat ini, DNN telah berhasil diterapkan pada pemrosesan suara termasuk pengenalansuara [9, 26], identifikasi bahasa [7] dan generasi ucapan [17]. VOICEBOX1 merupakan sebuahtoolbox Speech Processing pada MATLAB R©, yang juga tersedia untuk umum.

1http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html

Page 42: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

Pengolahan Suara (Speech Processing) 33

Gambar 5.2. Contoh audio. (a) Audio direpresentasikan dalam bentuk gelombang domain-waktu; (b) Fitur-fitur diperoleh dari bentuk gelombang domain-waktu.

Page 43: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

34 PENGANTAR DEEP NEURAL NETWORKS

Gambar 5.3. DNN dan Suara.

Page 44: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

BAB 6

Ringkasan

Pendekatan jaringan saraf telah digunakan secara luas untuk membangun Sistem Cerdas.Kita memperkenalkan Deep Neural Networks (DNNs) dan Restricted Boltzmann Machines(RBMs), dan hubungannya dengan Deep Learning (DL) dan Deep Belief Nets (DBNs). Dariseluruh literatur, ada beberapa makalah pengantar untuk RBM [11, 6]. Salah satu kontribusidari buku ini adalah contoh sederhana untuk pemahaman yang lebih baik tentang RBMdan DNN. Contohnya mencakup pembelajaran mandiri dan terpandu, oleh karena itu, kitamenerapkan data yang tidak berlabel dan berlabel, untuk prediksi dan klasifikasi. Selain itu,kita memperkenalkan toolbox MATLAB R© yang tersedia secara umum untuk menunjukkankinerja DNN dan RBM [24]. Toolbox dan contoh-contoh telah diuji pada Octave, versi opensource dari MATLAB R©. Contoh terakhir, masalah XOR, menampilkan beberapa hasil-hasildengan setting yang berbeda beberapa hyper-parameter dari DNN. Akhirnya, dua aplikasiuntuk pengenalan pola yang cerdas juga dibahas dalam buku ini: benchmarking MNIST danpengenalan suara (speech recognition).

Page 45: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

36 PENGANTAR DEEP NEURAL NETWORKS

Page 46: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

DAFTAR PUSTAKA

[1] C. M. Bishop and G. E. Hinton. Neural Networks for Pattern Recognition. ClarendonPress, 1995.

[2] J.P. Jr. Campbell. Speaker recognition: A tutorial. Proceedings of IEEE, 85(6):1437–1462,1997.

[3] A. Coates, B. Huval, T. Wang, and A. Y. Wu, D. J.and Ng. Deep learning with COTSHPC systems. In Proceedings of the 30th International Conference on Machine Learning(ICML-2013), 2013.

[4] G. E. Dahl, T. N. Sainath, and G. E. Hinton. Improving deep neural networks for LVCSRusing rectified linear units and dropout. In IEEE International Conference on Acoustics,Speech and Signal Processing (ICASSP-2013), pages 8609–8613, 2013.

[5] S. Davis and P. Mermelstein. Comparison of parametric representations for monosyllabicword recognition in continuously spoken sentences. In IEEE Transactions on Acoustics,Speech and Signal Processing, volume 28, 1980.

[6] A. Fischer and C. Igel. Training restricted Boltzmann machines: An introduction. PatternRecognition, 14:25–39, 2014.

[7] J. Gonzalez-Dominguez, I. Lopez-Mreno, P.J. Moreno, and J. Gonzalez-Rodriguez.Frame-by-frame language identification in short utterances using deep neural networks.Neural Networks, 64:49–58, 2015.

[8] S. Haykin. Neural Networks: A Comprehensive Foundation. Prentice Hall, 1999.

[9] G. Hinton, L. Deng, D. Yu, G.E. Dahl, A. Mohamed, N. Jaitly, A. Senior, V. Vanhoucke,P. Nguyen, T.N. Sainath, and B. Kingsbury. Deep Neural Networks for Acoustic Mod-eling in Speech Recognition: The Shared Views of Four Research Groups. IEEE SignalProcessing Magazine, 29(6):82–97, 2012.

Page 47: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

38 PENGANTAR DEEP NEURAL NETWORKS

[10] G. E. Hinton. Training products of experts by minimizing contrastive divergence. NeuralComputation, 14(8):1711–1800, 2002.

[11] G. E. Hinton. A practical guide to training restricted Boltzmann machines version 1.Department of Computer Science, University of Toronto, 2010.

[12] G. E. Hinton, S. Osindero, and Y. W. Teh. A fast learning algorithm for deep belief nets.Neural Computation, 18(7):1527–1554, 2006.

[13] G. E. Hinton and R. R. Salakhutdinov. Reducing the dimensionality of data with neuralnetworks. Science, 313(1):504–507, 2006.

[14] J. J. Hopfield. Neural networks and physical systems with emergent collective compu-tational abilities. In Proceedings of the National Academy of Sciences, volume 79, pages2554––2558, 1982.

[15] Q. Le, M. Ranzato, R. Monga, M. Devin, K. Chen, G. Corrado, J. Dean, , and A. Ng.Building high-level features using large scale unsupervised learning. In Proceedings ofInternational Conference on Machine Learning (ICML2012), 2012.

[16] H. Lee, C. Ekanadham, and A. Y. Ng. Sparse deep belief net model for visual area V2.In Advances in Neural Information Processing Systems (NIPS-2008), volume 20, 2008.

[17] Z.H. Ling, S.Y. Kang, H. Zen, A. Senior, M. Schuster, X.J. Qian, H. Meng, and L. Deng.Deep learning for acoustic modeling in parametric speech generation. IEEE Signal Pro-cessing Magazine, 32(3):35–52, 2015.

[18] M. L. Minsky and S. A. Papert. Perceptrons. Cambridge, MA: MIT Press, 1969.

[19] R. Rojas. Neural Networks: A Systematic Introduction. Springer-Verlag, 1996.

[20] F. Rosenblatt. The perceptron–A perceiving and recognizing automaton. Technical Re-port 85-460-1, Cornell Aeronautical Laboratory, 1957.

[21] D. E. Rumelhart, G. E. Hinton, and R.J. Williams. Learning representations by back-propagating errors. Nature, 323(1):533–536, 1986.

[22] J Schmidhuber. Deep learning in neural networks: An overview. Neural Networks, 61:85–117, 2015.

[23] P. Smolensky. Parallel Distributed Processing, volume 1, chapter Information Processingin Dynamical Systems: Foundations of Harmony Theory, pages 194–281. MIT Press,Cambridge, 1986.

Page 48: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk

DAFTAR PUSTAKA 39

[24] M. Tanaka and M. Okutomi. A novel inference of a restricted Boltzmann machine. InInternational Conference on Pattern Recognition (ICPR2014), 2014.

[25] R. Togneri and D. Pullella. An overview of speaker identification: Accuracy and robust-ness issues. IEEE Circuits and Systems Magazine, 2(1):23–61, 2011.

[26] C. Weng, D. Yu, M.L. Seltzer, and J. Droppo. Single-channel mixed speech recogni-tion using deep neural networks. In IEEE International Acoustics, Speech and SignalProcessing (ICASSP), pages 5632–5636, 2014.

Page 49: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk
Page 50: Buku Saku - amutiara.staff.gunadarma.ac.idamutiara.staff.gunadarma.ac.id/Publications/files/3940/2018bukuDNN.pdf · Kita dapat menggunakan toolbox MATLABR /Octave yang tersedia untuk