Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika, Universitas Sebelas Maret MODUL 3 MULTI LAYER PERCEPTRON (MLP

) DENGAN ALGORITMA PELATIHAN BACKPROPAGATION

A. Tujuan 1. Menjelaskan perintah dalam Matlab untuk membangun MLP 2. Membangun jaringan syaraf tiruan MLP dengan algoritma pembelajaran Backpropagasi untuk menyelesaikan suatu kasus

B. Pendahuluan Untuk membangun multi layer perceptron feedforward dengan algoritam trainningnya backpropagation dalam Matlab 6.1 telah disediakan fungsi-fungsi yang diperlukan. Fungsi tersebut adalah newff. net = newff(PR,[S1 S2 S3............SN1],{TF1 TF2 ........TFN1},BTF,BLF,PF) Dimana :  PR = matriks berukuran Rx2 yang berisi nilai minimum dan maksimum, dengan R jumlah variable input.   Si = jumlah neuron/unit pada lapisan ke-i, dengan i = 1, 2,3 ....N1; TFi= funsgi aktivasi yang digunakan pada lapisan ke-i, dengan i =1,2,3.....N1. (defaultnya : tansig).    BTF = fungsi pelatihan jaringan (defaultnya : trainlm) BLF = fungsi pelatihan untuk bobot(defaultnya : learngdm) PF = fungsi kinerja (defaultnya : mse)

Fungsi aktivasi yang digunakan adalah fungsi yang dapat dideferensiasikan (diturunkan), seperti tansig, logsig atau purelin. Fungsi pelatihan dapat digunakan fungsi-fungsi pelatihan untuk backpropagation, seperti trainlm, trainbfg, traingd. Untuk fungsi kinerja, bisa digunakan fungsi kinerja yang dapat dideferensiasikan seperti mse atau msereg.

WHT 2010

Halaman :

1

kita juga dapat memperoleh beberapa informasi yang diantaranya adalah :  Bobot input layer : Bobot = net. Incremental Mode Pada cara ini.1}  Bobot bias hiddenlayer : biasHidden = net.1} Algoritma Pelatihan Sepertihalnya pada perceptron. Gradien ini ditentukan dengan menggunakan suatu teknik yang disebut dengan nama backpropagation. jaringan syaraf tiruan MLP ini juga perlu dilakukan pelatihan untuk melakukan pengaturan bobot. Universitas Sebelas Maret Berdasarkan fungsi newff.b{2. y.t) Dimana :  net : jaringan syaraf tiruan yang telah beradaptasi WHT 2010 Halaman : 2 .IW{1.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika. e] = adapt(net.b{1. Sebagaian besar algoritma pelatihan jaringan feedforward menggunakan gradient dari fungsi kinerja untuk menentukan bagaimana mengatur bobot dalam rangka meminimalkan kinerja. Untuk menggunakan pelatihan backpropagation dengan incremental mode. bobot diatur secara iterative dengan meminimalkan fungsi kinerja. diguankan fungsi adapt.p.IW{2.1}  Bobot bias input layer: bobotBias = net. Selama palatihan. sehingga pada akhirnya diperoleh bobot yang terbaik. Dalam Matlab ada 2 cara untuk mengimplementasikan algoritma gradient descent yaitu : 1.1}  Bobot hidden layer : bobotHidden = net. [net. penghitungan gradient dan perbaikan nilai bobot-bobot dilakukan pada setiap pengoperasian input data.

learnFcn= nama_fungsi_pembelajaran_w_input net.biases{i. Parameter yang berhubungan dengan learngd. bias dan layer) untuk melakukan pembelajaran sesuai dengan fungsi pembelajarannya sendiri-sendiri. Default fungsi yang digunakan jaringan feedforward adalah adaptwb.j}. Semakin besar learning rate akan berimplikasi pada semakin besarnya langkah pembelajaran.lr = learning_rate_layer net. Instruksi yang digunakan untuk mengubah learning rate dari jairngan net adalah : net.learnParam. Fungsi pembelajaran untuk masing-masing bobot (input.j}. Universitas Sebelas Maret     y : Output jaringan syaraf tiruan e : Error pelatihan p : input jaringan (data-data yang diadaptasikan) t : target jaringan syaraf Dalam menggunakan mode ini ada beberapa hal yang harus dilakukan konfigurasi yaitu : a.lr = learning_rate_input net.biases{i. yaitu learning rate.learnParam.layerWeights{i. Net. Fungsi pembelajaran yang digunakan.j}.inputWeights{i.learnFcn= nama_fungsi_pembelajaran_w_bias Fungsi pembelajaran bobot-bobot yang digunakan adalah : a.lr = learning_rate_bias Parameter lain yang perlu diset adalah jumlah maksimum iterasi (epoh) WHT 2010 Halaman : 3 . Gradient Descent (learngd) Fungsi ini menggunakan algoritma dasar gradient descent (ingat kembali algoritma backpropagasi). bias dan layer) net.layerWeights{i.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.j}. Fungsi ini mengijinkan setiap bobot (baik input.learnParam.j}.adaptFcn =’adaptwb’ b.inputWeights{i. Jika learning rate di set terlalu besar membuat algoritma jadi tidak stabil.learnFcn= nama_fungsi_pembelajaran_w_layer net.j}.

Dimana nilai mc terletak antar 0-1. selain setting learning rate juga disertai dengan setting nilai momentum : net.Ai) Dengan : Net Tr P T Pi Ai : jaringan syaraf tiruan : informasi pelatihan (epoh dan fungsi kinerja) : matriks data input : matriks data target : kondisi delay awal input (default : 0) : Kondisi delay awal layer (default : 0) Fungsi ini akan menggunakan objek jaringan.p.t.mc = momentum_input net. tr] = train(net.Pi.learnParam. penghitungan gradient dan perbaikan nilai bobot-bobot dilakukan setelah pengoperasian semua input data. Gradient descent (traingd) WHT 2010 Halaman : 4 .passes=maksimum_epoh b. [net.adaptParam.layerWeights{i. Gradien descent dengan momentum (learngdm) Fungsi ini tidak hanya merespon gradient local saja.j}. Besarnya perubahan bobbot ini dipengaruhi oleh suatu konstanta (momentum).biases{i.mc = momentum_bias 2. mc.learnParam.j}.inputWeights{i. Batch Mode Pada batch mode.learnParam. Dalam penggunaan learngdm. namun juga mempertimbangkan kecenderungan yang baru saja terjadi pada permukaan error.mc = momentum_layer net.j}. Fungsi pembelajaran untuk algirtma gradient descen ini diantaranya : a. kumpulan data input dan target sebagai input pelatihan yang akan menghasilkan objek jaringan terlatih. Universitas Sebelas Maret net. Untuk menggunakan pelatihan backpropagation dengan batch mode digunakan fungsi train.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.

net.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.max_fail=maksimum_kegagalan (defaultnya :5) Gardient minimum Gradient minimum adalah akar dari jumlah kuadrat semua gradient(input. Universitas Sebelas Maret Fungsi ini sama halnya dengan fungsi learngd. WHT 2010 Halaman : 5 . Tidak seperti pada model sebelumnya yang setiap bobot memiliki fungsi pelatihan sendiri-sendiri.min_grad=minimum_gradient (defaultnya:10-10) Jumlah epoh yang akan ditunjukkan kemajuannya Menunjukkan berapa jumlah epoh berselang yang akan ditunjukkan kemajuannya. net. Iterasi akan berhenti jika nilai fungsi kinerja kurang dari atau sama dengan kinerja tujuan.trainParam.trainParam.trainParam. bias) terkecil yang diperbolehkan.trainParam.trainParam.lr = learning_rate (defaultnya : 0.01) Maksimum kegagalan net. Parameter yang perlu diset dalam model pembelajaran ini adalah fungsi pelatihan diset menjadi traingd.trainParam.epochs=maks_epoh (default maksimum 10) Kinerja tujuan Kinerja tujuan adalah target nilai fungsi kinerja. Ada 7 para meter yang perlu diset yaitu : Maksimum epoh net. net. layer.goal = target_error (defaultnya : 0) Learning rate net. pada model ini hanya menggunakan satu funsgi pelatihan.show = epoh_yang_dilihatkan (defaulnyta : 25) Waktu maskimum untuk pelatihan Menunjukkan waktu maksimum yang diijinkan untuk melakukan pelatihan.

mc = momentum C.'purelin'}).m) clear. clc. title('Perbandingan antara target dengan output jaringan').'bo'. net.m clear.trainParam.t. net = train(net.trainParam.trainParam.epochs=10. t=[5 6 7 8 9 11 12 13 14 15]. p =[1 2 3 4 5 6 7 8 9 10]. net = newff(minmax(p). xlabel('input'). Universitas Sebelas Maret net.y.{'logsig'. clc. net. Kasus 2 : (Penggunaan Increment Mode dengan Fungsi pembelajaran ‘learngd’) File : kasus2.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.[3 1].time = maskimum_time (defaultnya : inf) b.p. grid. ylabel('Target'). y = sim(net.p). Praktikum Kasus 1 : (file : kasus1.p. %Menampilkan perbandingan input dengan output plot(p.t). yang dikerjakan dalam incremental mode. WHT 2010 Halaman : 6 .'r*'). Gradient descent dengan momentum(traingdm) Fungsi ini sama halnya dengan learngdm.

Universitas Sebelas Maret %Pola inputan p=[0 1 2 1 10 12 -5 -8 -10 -15.biases{2. net.biases{1.02.b{2.b{1.lr = 0.'purelin'}).1}. net. %Membangun jaringan MLP dengan backpropgation net = newff(minmax(p). %menampilkan bobot masing-masing layer wawal_input = net.lr = 0.1}.[5.1} wawal_bias_layer=net.1} wawal_bias_input = net.1}.1} wawal_layer = net.1}.LW{2. net. %Konfigurasi learning ratenya net.IW{1.learnParam.1}.learnParam.learnFcn ='learngd'.1]. net.biases{1.learnFcn ='learngd'.learnParam.layerWeights{2.inputWeights{1.1}. %Konfigurasi maksimum epoh (iterasinya) WHT 2010 Halaman : 7 . net.02. 0 1 -1 6 3 -1 -2 2 -5 1] t=[0 0 1 1 2 2 -1 -1 -2 -2].02.learnFcn ='learngd'.{'tansig'. net.adaptFcn='adaptwb'.lr = 0.1}.learnParam.1} %konfigurasi fungsi pelatihan jaringan net. %Konfigursai masing-masing bobot input.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.lr = 0.biases{2. layer dan bias net.learnFcn ='learngd'.layerWeights{2.inputWeights{1.02.1}.

p.:).b{1. %bobot setelah dilakukan trainning wakhir_input = net. e] = adapt(net. subplot(212) plot(p(2.t.1} %melakukan simulasi a = sim(net.1} wakhir_bias_layer=net. title('Perbandingan antara target dengan output jaringan').1} wakhir_bias_input = net.:).a. xlabel('input kedua').'bo'. %ubah pola input dan target ke bentuk cell P = num2cell(p. xlabel('input pertama').p(2.t. T = num2cell(t.:).passes=50.adaptParam.'r*').1).a. grid. ylabel('Target').'bo'.'r*'). y.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.1).:). %Melakukan pelatihan [net.p(1.b{2. title('Perbandingan antara target dengan output jaringan').IW{1.t).LW{2.p) %Grafik perbandingan input dengan target subplot(211) plot(p(1.1} wakhir_layer = net. WHT 2010 Halaman : 8 . Universitas Sebelas Maret net.

biases{2. net.1}.b{1.learnFcn ='learngdm'. 0 1 -1 6 3 -1 -2 2 -5 1] t=[0 0 1 1 2 2 -1 -1 -2 -2]. %Membangun jaringan MLP dengan backpropgation net = newff(minmax(p).learnFcn ='learngdm'. net.1]. %Pola inputan p=[0 1 2 1 10 12 -5 -8 -10 -15.1} wawal_bias_input = net. Kasus 3 : (Penggunaan Increment Mode dengan Fungsi pembelajaran ‘learngdm’) File : kasus3.{'tansig'.IW{1.layerWeights{2.b{2.'purelin'}).[5.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.1}. layer dan bias net.1} %konfigurasi fungsi pelatihan jaringan net.learnFcn ='learngdm'. grid. %Konfigursai masing-masing bobot input. net. %menampilkan bobot masing-masing layer wawal_input = net.m clear.learnFcn ='learngdm'. Universitas Sebelas Maret ylabel('Target').1}.1} wawal_layer = net. clc.inputWeights{1.1} wawal_bias_layer=net.LW{2.adaptFcn='adaptwb'. WHT 2010 Halaman : 9 .1}.biases{1.

1} wakhir_bias_input = net.biases{2.02.1} wakhir_layer = net. %Melakukan pelatihan [net.learnParam. %bobot setelah dilakukan trainning wakhir_input = net.learnParam.1).3. %konfigurasi momentumnya net.3.mc = 0.layerWeights{2.IW{1.1}. net.mc = 0.mc = 0.1}.1}.learnParam. %ubah pola input dan target ke bentuk cell P = num2cell(p.3.biases{1. net.b{2.passes=50.t).1}.learnParam.1).p.1}.1}. e] = adapt(net.inputWeights{1. net.02.1} WHT 2010 Halaman : 10 . %Konfigurasi maksimum epoh (iterasinya) net. net.biases{1. y.02.mc = 0.inputWeights{1.learnParam.LW{2. net.1} wakhir_bias_layer=net.adaptParam.lr = 0.layerWeights{2. T = num2cell(t.1}. net.1}.biases{2.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.b{1.lr = 0.02. Universitas Sebelas Maret %Konfigurasi learning ratenya net.learnParam.lr = 0.lr = 0.3.learnParam.learnParam.

ylabel('Target').'r*'). %Membangun jaringan MLP dengan backpropgation net = newff(minmax(p).{'tansig'.p) %Grafik perbandingan input dengan target subplot(211) plot(p(1.t. xlabel('input kedua').a. Kasus 4 : (Penggunaan Batch Mode dengan ‘traingd’) File : kasus4.'r*').'bo'. %menampilkan bobot masing-masing layer WHT 2010 Halaman : 11 . title('Perbandingan antara target dengan output jaringan').'bo'.'traingd'). %Pola inputan p=[0 1 2 1 10 12 -5 -8 -10 -15.a. Universitas Sebelas Maret %melakukan simulasi a = sim(net.t.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika. xlabel('input pertama').[5. subplot(212) plot(p(2.m clear.:). 0 1 -1 6 3 -1 -2 2 -5 1] t=[0 0 1 1 2 2 -1 -1 -2 -2]. clc.:).'purelin'}. title('Perbandingan antara target dengan output jaringan').1]. grid.:). ylabel('Target').p(1. grid.p(2.:).

xlabel('input pertama'). net.p(1.lr=0.b{2.trainParam.trainParam. title('Perbandingan antara target dengan output jaringan').1} wawal_layer = net.t.'bo'.1} %set max epoh. %melakukan pembelajaran net = train(net.'r*'). WHT 2010 Halaman : 12 .b{1.show=10.goal=1e-3.trainParam.epochs=50. subplot(211) plot(p(1.1} wakhir_bias_layer=net.1} %melakukan simulasi a = sim(net.p. Universitas Sebelas Maret wawal_input = net.IW{1.trainParam.LW{2.t). learning rate. net. show step net.b{1.p) %Grafik perbandingan input dengan target pause. goal.1.1} wakhir_layer = net.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.1} wawal_bias_input = net. net.1} wawal_bias_layer=net.a.:).LW{2.1} wakhir_bias_input = net. %bobot setelah dilakukan trainning wakhir_input = net.IW{1.b{2.:).

%Membangun jaringan MLP dengan backpropgation net = newff(minmax(p). grid.1} wawal_layer = net. %Pola inputan p=[0 1 2 1 10 12 -5 -8 -10 -15. show step net.b{2.trainParam.IW{1. learning rate.1} %set max epoh.m clear.'bo'.'r*').{'tansig'.1} wawal_bias_layer=net.:).b{1. Universitas Sebelas Maret ylabel('Target').1]. subplot(212) plot(p(2.'purelin'}.'traingd').a. %menampilkan bobot masing-masing layer wawal_input = net. title('Perbandingan antara target dengan output jaringan'). xlabel('input kedua').p(2. Kasus 5 : (Penggunaan Batch Mode dengan ‘traingdm’) File : kasus5.1} wawal_bias_input = net. WHT 2010 Halaman : 13 . 0 1 -1 6 3 -1 -2 2 -5 1] t=[0 0 1 1 2 2 -1 -1 -2 -2]. goal.t. grid.epochs=50. ylabel('Target'). clc.:).LW{2.[5.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.

grid. title('Perbandingan antara target dengan output jaringan').b{2.trainParam. Universitas Sebelas Maret net. %melakukan pembelajaran net = train(net.'r*').a.:).t.'bo'.IW{1.1} wakhir_bias_layer=net.lr=0.3. subplot(211) plot(p(1. ylabel('Target').1} wakhir_layer = net.LW{2. subplot(212) plot(p(2. ylabel('Target'). WHT 2010 Halaman : 14 .goal=1e-3.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika.a.t).mc=0. net. title('Perbandingan antara target dengan output jaringan'). xlabel('input kedua'). xlabel('input pertama').show=10.1} %melakukan simulasi a = sim(net.:).t.1.trainParam.p(1. %bobot setelah dilakukan trainning wakhir_input = net.p.:).:). net.trainParam.1} wakhir_bias_input = net.trainParam.'r*').b{1. net.p) %Grafik perbandingan input dengan target pause.'bo'.p(2.

D. Referensi 1. Penjualan pada hari ke Xi ditentukan oleh penjualan pada hari yang sama. 1 minggu. Membangun Jaringan Syaraf Tiruan Menggunakan Matlab dan Excel Link. 2 minggu. WHT 2010 Halaman : 15 . Sri. Yogayakarta. Kusumadewi.Riset Group Ilmu Rekayasa & Komputasi Teknik Informatika. Graha Ilmu. dipengaruhi oleh Untuk proses ramalan tersebut toko swalayan mempunyai data sebagai berikut : No Hari Tgl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 S S R K J S M S S R K J S M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 P 10 8 12 10 12 30 35 9 10 11 10 12 23 26 No Hari Tgl 15 16 17 18 19 20 21 22 23 24 25 26 27 28 S S R K J S M S S R K J S M 15 16 17 18 19 20 21 22 23 24 25 26 27 28 P 10 11 12 11 12 24 26 9 9 12 13 12 21 26 No Hari Tgl 29 30 31 32 33 34 35 36 37 38 39 40 41 42 S S R K J S M S S R K J S M 29 30 1 2 3 4 5 6 7 8 9 10 11 12 P 9 10 12 11 12 31 36 11 13 12 10 9 24 26 No Hari Tgl 43 44 45 46 47 48 49 50 51 52 53 54 55 56 S S R K J S M S S R K J S M 13 14 15 16 17 18 19 20 21 22 23 24 25 26 P 10 12 12 11 12 23 25 10 7 15 13 14 23 27 E. Universitas Sebelas Maret grid. 2004. Latihan Toko swalayan ingin melakukan suatu peramalan (forechasting) penjualan suatu produk Mie Instan “Super Indomie Solone”. 3 minggu dan 4 minggu sebelumnya.

Sign up to vote on this title
UsefulNot useful