16
NEURAL NETWORK MATLAB TOOLBOX 1. Preprosessing Proses pelatihan JST akan menjadi lebih efisien jika dilakukan preprocessing pada data masukan jaringan dan target keluaran. Fungsi premnmx dapat digunakan untuk merubah skala input dan target outpput sehingga menjadi nilai dengan rentang nilai [- 1,1]. penggunaan fungsi ini dapat dilihat pada kode berikut: [Pn, minp, maxp, tn, mint, maxt] = premnmx (p, t); net = train (net, pn, tn); Matriks p dan t adalah nilai asli dari input dan target output. input dan target, pn dan tn, hasil dari fungsi ini akan bernilai dalam rentang nilai [-1,1] . vektor minp vektor dan maxp merupakan nilai minimum dan maksimum dari masukan asli, dan vektor mint dan maxt adalah nilai minimum dan maksimum dari target asli. Setelah jaringan selesai dilatih, vektor ini harus digunakan untuk mentransformasikan kembali setiap nilai input dan

Neural Network Matlab Toolbox

Embed Size (px)

DESCRIPTION

dfdg

Citation preview

Page 1: Neural Network Matlab Toolbox

NEURAL NETWORK MATLAB TOOLBOX

1. Preprosessing

Proses pelatihan JST akan menjadi lebih efisien jika dilakukan preprocessing pada data

masukan jaringan dan target keluaran.

Fungsi premnmx dapat digunakan untuk merubah skala input dan target outpput sehingga

menjadi nilai dengan rentang nilai [-1,1].

penggunaan fungsi ini dapat dilihat pada kode berikut:

[Pn, minp, maxp, tn, mint, maxt] = premnmx (p, t);

net = train (net, pn, tn);

Matriks p dan t adalah nilai asli dari input dan target output. input dan target, pn dan tn,

hasil dari fungsi ini akan bernilai dalam rentang nilai [-1,1] . vektor minp vektor dan maxp

merupakan nilai minimum dan maksimum dari masukan asli, dan vektor mint dan maxt adalah

nilai minimum dan maksimum dari target asli. Setelah jaringan selesai dilatih, vektor ini harus

digunakan untuk mentransformasikan kembali setiap nilai input dan target output jaringan.

Fungsi ini secara efektif menjadi bagian dari jaringan, seperti beban jaringan dan bias.

Pada penelitian ini, perintah untuk melakukan langkah preprocessing dengan Neural

Network Toolbox adalah sebagai berikut :

%Peramalan Konsumsi Bahan Bakar Minyak (BBM) Di Sumatera Barat Dengan Jaringan Syaraf Tiruan Backproptagation%Arief Kurniawan & Heri Noviko %Data input P=[4528.242 4603.957 4632.152 4697.764 4763.009 4817.176 1079.1 1157.364 1140.497 1121.904 1073.923 1101.321 27578137 29159481 30949945 32912969 35176632 36683238 151 138 178 172 181 183 2023 2134 2198 2234 2567 2907 41.51 56.59 66.09 72.23 99.92 104.6]

Page 2: Neural Network Matlab Toolbox

pnew=[4846.909 4891.443 4933.613 4970.060 5003.373 5033.554 5060.601 5084.514 5105.295 5122.942 5137.457 1134.122 1182.111 1184.375 1214.330 1249.321 1289.076 1333.867 1383.602 1483.283 1497.908 1562.479 38860187 40219124 47639809 49555320 51461937 53359661 55248491 57128427 58999470 60861619 62714875 187 193 193 193 191 188 184 178 171 163 153 3456 3971 4637 5397 6255 7211 8265 9417 10667 12015 13460 107.41 111.55 121.45 128.08 134.39 140.42 146.21 151.78 157.16 162.36 167.40] %Data Output T=[750.449 756.966 739.335 818.69 790.022 918.13] %Preprosessing[PN,minp,maxp,TN,mint,maxt]=premnmx(P,T)

Matrik P adalah input data untuk pelatihan JST, sedangkan matrik Pnew adalah data input

untuk masa peramalan dan matrik T adalah target output untuk pelatihan JST.

Perintah premnmx akan menghasilkan keluaran matrik PN dan matrik TN yang

merupakan matrik P dan matrik T dengan rentang nilai [-1,1] seperti yang dapat dilihat pada

matrik TN berikut :

PN =

Columns 1 through 5

-1.0000 -0.4759 -0.2807 0.1734 0.6251

-0.8759 1.0000 0.5957 0.1501 -1.0000

-1.0000 -0.6526 -0.2594 0.1718 0.6691

-0.4222 -1.0000 0.7778 0.5111 0.9111

-1.0000 -0.7489 -0.6041 -0.5226 0.2308

-1.0000 -0.5220 -0.2208 -0.0262 0.8516

Page 3: Neural Network Matlab Toolbox

Column 6

1.0000

-0.3433

1.0000

1.0000

1.0000

1.0000

Matrik TN hasil dari proses preprocessing dapat dilihat sebagai berikut:

TN =

Columns 1 through 5

-0.8757 -0.8028 -1.0000 -0.1123 -0.4330

Column 6

1.0000

Untuk mengkonversikan output JST kembali ke dalam rentang nilai yang sama yang

ketika proses pelatihan, dapat dilakukan dengan menggunakan menggunakan fungsi postmnmx .

Pada kode berikut, kita mensimulasikan jaringan yang terlatih dalam kode sebelumnya, dan

kemudian mengubah output jaringan kembali ke unit asli.

Page 4: Neural Network Matlab Toolbox

an=sim (net, pn);

a= postmnmx(an, mint, maxt);

Output jaringan yang telah dikembalikan ke rentang nilai awalnya akan bernilai sama

dengan target asli t.

Jika premnmx digunakan untuk preprosesssing set data pelatihan, setiap kali jaringan

yang telah dilatih digunakan untuk masukan yang baru, maka nilai yang baru yang akan

diinputkan ke JST harus rentang nilainy dengan minimum dan maksimum yang dihitung saat

preprosessing data pelatihan. Hal ini dapat dilakuan dengan dengan menggunakan fungsi

tramnmx .

pnewn = tramnmx (pnew, minp, maxp);

anewn = sim (net, pnewn);

anew = postmnmx (anewn, mint, maxt);

Data input untuk masa peramalan sebelum di inputkan ke JST yang sudah dilatih harus

dirubah dulu rentang nilainya dengan dasar nilai minimum dan maksimum yang digunakan pada

proses preprocessing input data pelatihan, menggunakan peringah sebagai berikut:

pnewn=tramnmx(pnew,minp,maxp)

Perintah diatas akan menghasilkan matrik pnew yang merupakan matrik pnew yang telah

mengalami proses preprocessing, nilai matrik pnewn adalah sebagai berikut:

Page 5: Neural Network Matlab Toolbox

pnewn =

Columns 1 through 5

1.2058 1.5141 1.8060 2.0583 2.2889

0.4429 1.5932 1.6474 2.3654 3.2041

1.4782 1.7767 3.4067 3.8274 4.2462

1.1778 1.4444 1.4444 1.4444 1.3556

2.2421 3.4072 4.9140 6.6335 8.5747

1.0891 1.2203 1.5342 1.7443 1.9444

Columns 6 through 10

2.4978 2.6850 2.8505 2.9944 3.1165

4.1570 5.2306 6.4227 8.8120 9.1625

4.6631 5.0780 5.4909 5.9019 6.3110

Page 6: Neural Network Matlab Toolbox

1.2222 1.0444 0.7778 0.4667 0.1111

10.7376 13.1222 15.7285 18.5566 21.6063

2.1355 2.3191 2.4956 2.6662 2.8310

Column 11

3.2170

10.7102

6.7180

-0.3333

24.8756

2.9908

2. Membangun Jaringan Saraf Tiruan Backpropagation

Langkah pertama sebelum pelatihan JST backpropagation adalah menciptakan objek

jaringan. Fungsi newff berfungsi menciptakan jaringan. Fungsi ini memerlukan empat input dan

mengembalikan objek jaringan. Input pertama adalah matrik R dengan 2 nilai minimum dan

maksimum untuk setiap elemen R dari vektor input. Masukan kedua adalah array yang berisi

Page 7: Neural Network Matlab Toolbox

jumlah neuron setiap lapisan. Masukan ketiga adalah array yang berisi nama-nama fungsi

transfer yang digunakan untuk setiap lapisan. Masukan terakhir berisi nama fungsi pelatihan

yang akan digunakan.

Perintah untuk penggunaan fungsi newff adalah sebagai berikut :

net = newff (PR, [S1 S2 ... SNL], {TF1 tF2 ... TFNl}, BTF, BLF, PF)

Deskripsi

NET = NEWFF : menciptakan jaringan baru.

NEWFF (PR, [S1 S2 ... SNL], {TF1 tF2 ... TFNl}, BTF, BLF, PF) mengambil:

PR - matriks Rx2 nilai min dan max untuk elemen input R

Si – jumlah neuron pada lapisan ke-i, untuk untuk setiap lapisan Ni

TFI - Fungsi transfer lapisan ke-i

BTF - fungsi pelatihan jaringan backpropagation

Dalam penelitian ini, perintah untuk membangun JST backpropagation adalah sebagai

berikut:

net=newff(minmax(PN),[6 25 20 1],{'tansig','purelin','purelin'},'trainlm')

Perintah diatas akan mendeklarasikan jaringan baru dengan nama jaringan net, dengan 3

lapisan tersembunyi yang terdiri dari 6 neuron pada lapisan tersembunyi pertama, 25 neuron

pada lapisan tersembunyi kedua, dan 20 neuron pada lapisan tersembuyi ketiga. Fungsi aktifasi

yang digunakan adalah tansig untuk lapisan tersembunyi pertama, dan fungsi aktifasi purelin

untuk lapisan tersembunyi berikutnya.

3. Proses pelatihan

Page 8: Neural Network Matlab Toolbox

Pelatihan dilakukan dengan fungsi TRAIN untuk meng-update bobot dengan fungsi

pelatihan pelatihan yang telah ditentukan, dengan perintah sebagai berikut:

%paramater jaringan

net.trainParam.epochs=1000

net.trainParam.goal=1e-7

net.trainParam.lr=0.1

net.trainParam.show=1

%pelatihan jaringan

net=train(net,PN,TN);

hasil dari proses pelatihan adalah bobot-bobot jaringan dan bias yang sesuai antara target

output dan input pelatihan.

4. Analisa Hasil Pelatihan

Kinerja jaringan yang terlatih dapat diukur dengan melakukan analisis regresi antara

respon jaringan dan target yang yang dilatihkan ke jaringan. Perintah berikut ini menggambarkan

bagaimana melakukan analisis regresi pada jaringan yang kita sebelumnya

a = sim (net, p);

[m, b, r] = postreg (a, t)

Di sini output jaringan dan target dibandingkan dengan fungsi postreg. Ia fungsi ini akan

mengembalikan parameter. M dan b, adalah kemiringan dan titik perpotongan dengan sumbu-y.

Page 9: Neural Network Matlab Toolbox

Jika output persis sama dengan target, kemiringan akan 1, dan titik perpotongan dengan sumbu-y

akan menjadi 0. Variabel ketiga dikembalikan oleh postreg adalah koefisien korelasi (R) antara

output dan target. Ini adalah ukuran dari seberapa baik variasi dalam output dijelaskan oleh

target.

Teori

1. Pelatihan- Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil)- Tetapkan :Maksimum epoch, target error, dan learning rate (α)- Inissialisasi Epoch = 0, MSE = 1- Kerjakan langkah- langkah berikut selama (Epoch < maksimun epoch) dan (MSE< target

error):1. Epoch = Epoch+12. Untuk tiap-tiap pasangan elemen yang dilakukan pembelajaran, kerjakan:

Feedforward:

a. Tiap-tiap unit input (xi, I = 1,2,3,…,n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi)

b. Tiap-tiap unit pada lapisan tersembunyi (Zj, j=1,2,3,..p) menjumlahkan sinyal-sinyal input terbobot:

Gunakan fungsi aktifasi untuk menghitung sinyal outputnya:

Dan kirim sinyal tersebut ke semua unit di lapisan diatasnya (unit-unit output)

c. Tiap-tiap unit output (Yk, k= 1,2,3,…,m) menjumlahkan sinyal-sinyal input berbobot:

Gunakan fungsi aktifasi untuk menghitung sinyal outputnya:

Page 10: Neural Network Matlab Toolbox

Dan kirimkan sinyal tersebut ke semua unit lapisan diatasnya (unit-unit output).

Catatan: langkah (b) dilakukan sebanyak jumlah lapisan tersembunyi.

Backpropagation

d. Tiap-tiap unit output (Yk, k = 1,2,3,…,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya:

Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai

wjk):

Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki b2k)

Langkah (d) dilakukan sebanyak jumlah lapisan tersembunyi.

e. Tiap-tiap unit tersembunyi (Zj, j = 1,2,3,…p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan diatasnya):

Kalikan nilai ini dengan turunan dari fungsi aktifasinya untuk menghitung informasi error:

Kemudian hitung nilai koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):

Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki b1j):

Page 11: Neural Network Matlab Toolbox

f. Tiap-tiap unit output (Yk, k = 1,2,3,…,m) memperbaiki bias dan bobotnya(j = 1,2,3,..p):

Wjk (baru) = wjk(lama) + (12)

b2k (baru) = b2k(lama) + (13)

tiap-tiap unit tersembunyi (Zj, j = 1,2,3,…,p) memperbaiki bias dan bobotnya (i = 1,2,3,..,n):

vij (baru) = vij(lama) + (14)

b1j (baru) = b1j(lama) + (15)

2. Peramalan:

1. Data yang akan diujikan dibaca dan dimasukkan ke lapisan input.2. Gunakan bobot yang telah diperoleh melalui proses pelatihan yang seseuai dengan pola

yang diujikan.3. Hitung jumlah input (xi, i = 1,2,3,…,n) terbobot untuk lapisan tersembunyi (Z j, j =

1,2,3,..,p) dan hitung keluaran lapisan tersembunyi dengan fungsi aktifasi sigmoid bipolar kirimkan ke lapisan atasnya.

4. Hitung jumlah lapisan tersembunyi (Zj, j = 1,2,3,..p) terbobot untuk output layer dan hitung keluaran lapisan output (Yk, k = 1,2,3,…,m) dengan fungsi aktifasi sigmoid bipolar.

5. Hitung MSE6. Tampilkan hasil peramalan.

Page 12: Neural Network Matlab Toolbox

3. Hasil penelitian

3.1 Penentuan Pola Input dan Target Output

Penentuan pola input pelatihan JST untuk peramalan konsumsi bahan bakar minyak didasarkan pada teori bahwa peningkatan kebutuhan konsumsi BBM dipengaruhi oleh faktor-faktor sebagai berikut:

1. Jumlah Penduduk2. Jumlah Rumah Tangga3. Jumlah Industri4. Jumlah Alat Transportasi5. PDRB6. Harga Minyak Mentah Rata-Rata

Data input untuk pelatihan JST adalah factor-faktor yang mempengaruhi konsumsi bahan bakar minyak. Data-data yang diperlukan dalam penelitian ini diambil dari Badan Pusat Statistik Sumatera Barat (BPS Sumbar), dan PT Pertamina (Persero) wilayah Sumatera Barat,.,……………………(tambah nan di buku panek ngetik)