TOPIK DALAM JARINGAN SYARAF TIRUAN
Laporan Praktikum 1 Jaringan Syaraf Tiruan Muhammad Hafizhuddin Hilman 1006800144
2011
FAKULTAS ILMU KOMPUTER UI
Pendahuluan Jaringan syarat tiruan atau artificial neural network adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan syaraf manusia. Jaringan syaraf tiruan merupakan sistem adaptif yang dapat mengubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut [Wikipedia].
Tujuan Tujuan dari praktikum jaringan syaraf tiruan ini adalah untuk mengetahui dan mempelajari inplementasi dari konsep jaringan syaraf tiruan yang diterapkan pada dua masalah dunia nyata yaitu klasifikasi iris dan prediksi nilai tukar mata uang dollar amerika terhadap rupiah.
Permasalahan Ada dua permasalahan yang akan diselesaikan dalam praktikum ini. Permasalahan pertama adalah klasifikasi iris dan permasalahan yang kedua adalah prediksi nilai tukar mata uang dollar amerika terhadap rupiah. Kedua permasalahan ini akan diselesaikan dengan jaringan syaraf tiruan bertipe feed forward back propagation. Tools yang akan digunakan dalam praktikum ini adalah MATLAB dengan dua pendekatan, GUI dan non-GUI. Permasalahan klasifikasi iris akan diselesaikan dengan pendekatan non-GUI (source code akan dilampirkan) sementara permasalahan prediksi nilai tukar mata uang dollar amerika terhadap rupiah akan diselesaikan dengan pendekatan GUI.
Software dan Hardware Berikut ini adalah tabel dari software dan hardware yang digunakan dalam praktikum jaringan syaraf tiruan Tabel 1. Spesifikasi Software dan Hardware yang digunakan Software Operating System: Microsoft Windows XP Professional Version 2002 Service Pack 3 Computational Tools: MATLAB Version 7.8.0.347 R2009a 32-bit (win32)
Hardware Processor: Intel Core Duo Processor T2300E (1.66 GHz, 667 MHz, 2 MB L2 Cache) RAM: 1526 MB
Permasalahan I: Klasifikasi Iris Iris adalah genus dari spesies bunga yang memiliki warna yang cukup menarik. Iris berasal dari bahasa yunani yang artinya adalah pelangi. Dataset iris merupakan data umum yang biasa digunakan dalam eksperimen klasifikasi. Dataset ini pertama kali dikenalkan oleh Sir Ronald Aylmer Fisher pada tahun 1936 sebagai contoh dari permasalahan analisis diskriminan [Wikipedia]. Dataset iris ini memiliki empat atribut yang menjadi feature dalam klasifikasi tiga kelas yang berbeda. Keempat feature tersebut adalah sepal length, sepal width, petal length, dan petal width. Sementara tiga kelas yang menjadi dasar klasifikasi adalah species yaitu setosa, versicolor, dan virginica.
Desain Eksperimen Praktikum klasifikasi iris ini menggunakan feed forward back propagation yang berbasis non-GUI. Data iris yang digunakan sudah tersedia pada MATLAB. Dataset iris yang ada diproses pada bagian spesies sehingga tiga jenis klasifikasi tersebut diubah menjadi bentuk numerik. Berikut ini adalah contoh tabel berisi dataset iris yang belum diproses dan yang sudah diproses Tabel 2. Dataset Iris (sebelum preprocessing) Sepal Length 5,1 4,9 4,7 4,6 5 7 6,4 6,9 5,5 6,5 5,8 7,1 6,3 6,5 7,6
Sepal Width 3,5 3 3,2 3,1 3,6 3,2 3,2 3,1 2,3 2,8 2,7 3 2,9 3 3
Petal Length 1,4 1,4 1,3 1,5 1,4 4,7 4,5 4,9 4 4,6 5,1 5,9 5,6 5,8 6,6
Petal Width 0,2 0,2 0,2 0,2 0,2 1,4 1,5 1,5 1,3 1,5 1,9 2,1 1,8 2,2 2,1
Species setosa setosa setosa setosa setosa versicolor versicolor versicolor versicolor versicolor virginica virginica virginica virginica virginica
Tabel 2. Dataset Iris (setelah preprocessing) Sepal Length 5,1 4,9 4,7 4,6 5 7 6,4 6,9 5,5 6,5 5,8 7,1 6,3 6,5 7,6
Sepal Width 3,5 3 3,2 3,1 3,6 3,2 3,2 3,1 2,3 2,8 2,7 3 2,9 3 3
Petal Length 1,4 1,4 1,3 1,5 1,4 4,7 4,5 4,9 4 4,6 5,1 5,9 5,6 5,8 6,6
Petal Width 0,2 0,2 0,2 0,2 0,2 1,4 1,5 1,5 1,3 1,5 1,9 2,1 1,8 2,2 2,1
Species 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Untuk praktikum ini digunakan beberapa parameter dan skenario. Berikut ini adalah beberapa parameter yang digunakan dalam praktikum Tabel 3. Parameter yang digunakan dalam praktikum Parameter Epochs (max iteration) Learning rate Hidden layer Momentum constant Output function Training function Performance function
Nilai/Tipe 1000 0.00001 / 10-5 4 0.95 logsig dan purelin trainlm mse dan sse
Ada beberapa skenario yang digunakan dalam praktikum ini. Pada setiap skenario dilakukan lima kali percobaan. Berikut ini adalah skenario yang digunakan dalam pelatihan 1. 2. 3. 4.
TF trainlm menggunakan PF mse dan OF logsig (hasil pada tabel 4). TF trainlm menggunakan PF sse dan OF logsig (hasil pada tabel 5). TF trainlm menggunakan PF mse dan OF purelin (hasil pada tabel 6). TF trainlm menggunakan PF sse dan OF purelin (hasil pada tabel 7).
Source Code data1=load('data_iris.txt'); data2=data1; dataTrain=data1(:,1:size(data1,2)-1); dataTest=data2(:,1:size(data1,2)-1); target = ind2vec(data1(:,size(data1,2))); target = full(target)'; targetT = ind2vec(data2(:,size(data1,2))); targetT = full(targetT)'; hid=4; iter=1000; alva=0.00001; %=====================train backpropagation=============% NewdataTarget=target'; [pn,meanp,stdp]=prestd(dataTrain'); net=newff(minmax(pn),[hid 3],{'logsig' 'logsig'},'traingdx'); net.trainParam.epochs=iter; net.trainParam.min_grad=0; net.inputWeights{1,1}.initFcn = 'initzero'; net.layerWeights{2,1}.initFcn = 'initzero'; net.performFcn = 'sse'; net.trainParam.lr=alva; net.trainParam.mc=0.95; tic; net=train(net,pn,NewdataTarget); training=sim(net,pn); [ind classobj]=max(training); [a tcls]=max(NewdataTarget); toc; traintime=toc %=====================test backpropagation=============% testn=dataTest'; tTest=targetT'; [d N]=size(testn); dataTesting=testn; tic; dataTesting=trastd(dataTesting,meanp,stdp); testing=sim(net,dataTesting); [maxHasil classObj]=max(testing); toc; testime=toc
Hasil Eksperimen Berikut ini adalah tabel hasil praktikum yang telah dijalankan dengan skenario yang sudah disusun pada bagian sebelumnya Tabel 4. Hasil praktikum dengan skenario 1 Percobaan Epoch
1 2 3 4 5 Rata-rata
1000 1000 1000 1000 1000 1000
Time
12.1325+0.0194 12.0631+0.0238 13.9405+0.0249 12.4070+0.0243 13.0486+0.0237 12.71684+0.02322
Setosa Versicolor Virginica miss Kinerja
50 50 50 50 50 50
50 50 50 50 50 50
50 50 50 50 50 50
0 0 0 0 0 0
100% 100% 100% 100% 100% 100%
Tabel 5. Hasil praktikum dengan skenario 2 Percobaan
Epoch
Time
Setosa
Versicolor
Virginica
miss
Kinerja
1 2 3 4 5
1000 1000 1000 1000 1000
12.4954+0.0243 12.9861+0.0245 12.9865+0.0245 13.9683+0.0240 12.5963+0.0237
50 50 50 50 50
50 50 50 50 50
50 50 50 50 50
0 0 0 0 0
100% 100% 100% 100% 100%
Rata-rata
1000
13.00652+0.121
50
50
50
0
100%
Tabel 6. Hasil praktikum dengan skenario 3 Percobaan
Epoch
Time
Setosa
Versicolor
Virginica
miss
Kinerja
1 2 3 4 5
9 8 13 8 8
1.1347+0.0237 0.4341+ 0.0105 0.4978+0.0101 1.1089+0.0239 1.1228+0.0244
50 50 50 50 50
34 34 34 34 34
43 43 43 43 43
23 23 23 23 23
84.7% 84.7% 84.7% 84.7% 84.7%
Rata-rata
7.92
0.85966+0.01852
50
34
43
23
84.7%
Tabel 7. Hasil praktikum dengan skenario 4 Percobaan
Epoch
Time
Setosa
Versicolor
Virginica
miss
Kinerja
1 2 3 4 5
7 10 7 10 8
0.4270+ 0.0107 0.4255+ 0.0096 0.3984+ 0.0158 0.4323+ 0.0098 0.4100+ 0.0098
50 50 50 50 50
34 34 34 34 34
43 43 43 43 43
23 23 23 23 23
84.7% 84.7% 84.7% 84.7% 84.7%
Rata-rata
8.4
0.41864+0.01114
50
34
43
23
84.7%
Permasalahan II: Prediksi Kurs USD – Rp Salah satu implementasi dari jaringan syaraf tiruan adalah dalam permasalahan forecasting. Permasalahan forecasting yang akan dijadikan salah satu contoh pada praktikum ini adalah prediksi kurs mata uang dollar amerika terhadap rupiah. Pada praktikum ini akan digunakan data kurs mata uang dollar amerika terhadap rupiah pada bulan februari 2011 yang diambil dari kurs resmi Bank Indonesia yang akan digunakan untuk memprediksi kurs mata uang dollar amerika terhadap rupiah pada tanggal 1 maret 2011.
Desain Eksperimen Praktikum forecasting kali ini masih menggunakan feed forward back propagation namun dengan pendekatan GUI. Data kurs mata uang ini diambil dari http://www.ortax.org/ yang mengacu kepada kurs resmi yang dikeluarkan oleh Bank Indonesia. Berikut ini adalah tabel kurs mata uang dollar amerika terhadap rupiah Tabel 8. Tabel kurs dollar amerika terhadap rupiah Tanggal 1 Februari 2011 2 Februari 2011 4 Februari 2011 7 Februari 2011 8 Februari 2011 9 Februari 2011 10 Februari 2011 11 Februari 2011 14 Februari 2011 16 Februari 2011 17 Februari 2011 18 Februari 2011 21 Februari 2011 22 Februari 2011 23 Februari 2011 24 Februari 2011 25 Februari 2011 28 Februari 2011 1 Maret 2011
Nilai Jual 9542 9517 9530 9475 9417 9417 9424 9431 9421 9404 9377 9358 9345 9373 9357 9357 9358 9323 9312
Nilai Beli 8542 8517 8530 8475 8417 8417 8424 8431 8421 8404 8377 8358 8345 8373 8357 8357 8358 8323 8312
Nilai Tengah 9042 9017 9030 8975 8917 8917 8924 8931 8921 8904 8877 8858 8845 8873 8857 8857 8858 8823 8812
Untuk praktikum ini hanya digunakan data nilai tengah sebagai representasi dari kurs dollar amerika terhadap rupiah. Berikut ini adalah desain input dan target serta parameter yang digunakan dalam praktikum
Tabel 9. Desain input dan target praktikum Input Tanggal 1 Februari 2011 2 Februari 2011 4 Februari 2011 7 Februari 2011 8 Februari 2011 9 Februari 2011 10 Februari 2011 11 Februari 2011 14 Februari 2011 16 Februari 2011 17 Februari 2011 18 Februari 2011 21 Februari 2011 22 Februari 2011 23 Februari 2011 24 Februari 2011 25 Februari 2011 28 Februari 2011
Target Nilai Tengah 9042 9017 9030 8975 8917 8917 8924 8931 8921 8904 8877 8858 8845 8873 8857 8857 8858 8823
Tanggal 2 Februari 2011 4 Februari 2011 7 Februari 2011 8 Februari 2011 9 Februari 2011 10 Februari 2011 11 Februari 2011 14 Februari 2011 16 Februari 2011 17 Februari 2011 18 Februari 2011 21 Februari 2011 22 Februari 2011 23 Februari 2011 24 Februari 2011 25 Februari 2011 28 Februari 2011 1 Maret 2011
Nilai Tengah 9017 9030 8975 8917 8917 8924 8931 8921 8904 8877 8858 8845 8873 8857 8857 8858 8823 8812
Untuk skenario percobaan akan digunakan skenario yang sama dengan permasalahan I 1. 2. 3. 4.
TF trainlm menggunakan PF mse dan OF logsig (hasil pada gambar 1). TF trainlm menggunakan PF sse dan OF logsig (hasil pada gambar 2). TF trainlm menggunakan PF mse dan OF purelin (hasil pada gambar 3). TF trainlm menggunakan PF sse dan OF purelin (hasil pada gambar 4).
Sementara berikut ini adalah parameter yang digunakan dalam praktikum
Hasil Eksperimen Skenario 1 (Training)
Skenario 1 (Testing) Hasil prediksi kurs dollar 1 Maret 2011 = 9029.5357 Error = -72.3427
Skenario 2 (Training)
Skenario 2 (Testing) Hasil prediksi kurs dollar 1 Maret 2011 = 8796.1594 Error = 14.045
Skenario 3 (Training)
Skenario 3 (Testing) Hasil prediksi kurs dollar 1 Maret 2011 = 8815.6434 Error = -29.8027
Skenario 4 (Training)
Skenario 4 (Testing) Hasil prediksi kurs dollar 1 Maret 2011 = 8764.932 Error = -12.5573
Untuk mempermudah perbandingan, berikut ini adalah tabel yang merangkum keempat skenario yang digunakan dalam prediksi kurs mata uang. Tabel 10. Tabel perbandingan keempat skenario Skenario 1 2 3 4
Nilai Prediksi 9029.5357 8796.1594 8815.6434 8764.932
Error (abs) 72.3427 14.045 29.8027 12.5573
Analisis dan kesimpulan Ada beberapa cara untuk mengimplementasikan jaringan syaraf tiruan pada MATLAB, yaitu dengan pendekatan GUI maupun non-GUI. Selain itu, implementasi jaringan syaraf tiruan pada sebuah permasalahan pun tidak melulu sama, pada permasalahan pertama, jaringan syaraf tiruan digunakan untuk klasifikasi sementar pada permasalahan kedua digunakan untuk forecasting. Pada permasalahan pertama, tampak bahwa skenario 1 dan 2 lebih unggul daripada skenario 3 dan 4. Dari hasil praktikum terlihat pula bahwa skenario 1 mendapat hasil yang superior dibanding skenario yang lain. Sementar itu pada permasalahan kedua, tanpak bahwa skenario 2 dan 4 lebih unggul daripada skenario 1 dan 3. Dari hasil praktikum terlihat pula bahwa skenario 4 mendapat hasil yang superior dibanding skenario yang lain.