neural networkebook.repo.mercubuana-yogya.ac.id/fti/materi_doc_20161... · 2018-08-01 · 1 logika...

14
1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang kerjanya meniru prinsip kerja saraf dalam otak manusia yang disebut neuron. Gambar berikut adalah arsitektur neuron dalam neural network. Variabel x1, x2, …..,xn adalah input neuron, dan variabel w1, w2, …, wn adalah bobot yang terkait dengan input neuron. Keluaran y ditentukan dengan formula: Dengan xi adalah input neuron wi adalah bobot terkait input t adalah nilai ambang (ditentukan oleh user) F(s) adalah fungsi nonlinier yang digunakan untuk mengambil keputusan. Misalnya digunakan fungsi sigmoid sbb:

Upload: others

Post on 04-Mar-2020

53 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

1

Logika Fuzzy

Neural Network

Neural network merupakan jaringan artifisial (buatan) yang kerjanya meniru prinsip kerja saraf

dalam otak manusia yang disebut neuron. Gambar berikut adalah arsitektur neuron dalam

neural network.

Variabel x1, x2, …..,xn adalah input neuron, dan variabel w1, w2, …, wn adalah bobot yang terkait

dengan input neuron. Keluaran y ditentukan dengan formula:

Dengan

xi adalah input neuron wi adalah bobot terkait input t adalah nilai ambang (ditentukan oleh user) F(s) adalah fungsi nonlinier yang digunakan untuk mengambil keputusan. Misalnya digunakan fungsi sigmoid sbb:

Page 2: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

2

Gambar berikut memperlihatkan sistem neural network yang sederhana dengan satu input dan

satu output; sistem terdiri atas 3 lapis. Lapis pertama disebut lapis input dan lapis terakhir

disebut lapis output; selain kedua lapis ini disebut lapis tersembunyi atau hidden layer. Pada

gambar terdapat satu lapis tersembunyi yang terdiri atas 4 elemen; contoh ini disebut sistem

neural network 1X4X1. Sistem neural network bisa memiliki lebih dari satu lapis tersembunyi.

Neural network menggunakan dataset pelatihan dan dataset pengujian untuk menentukan

outputnya. Bobot pada setiap lapis yaitu wijk pada awalnya dapat ditentukan secara acak dan

selama proses pelatihan neural network maka dilakukan update bobot sehingga pada akhir

pelatihan diperoleh bobot yang dapat memberikan output dengan kesalahan minimal. Pada

setiap pelatihan dengan satu data tertentu, maka output yaitu f(x)output akan dibandingkan nilai

aktualnya (sebenarnya); selisih yang terjadi disebut dengan error.

Page 3: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

3

Pada contoh ini, maka error terkait langsung dengan lapis ke-3 dari neural network. Oleh

karenanya maka error ini harus didistribusikan ke lapis tersembunyi; tekniknya disebut back

propagation.

Error dikaitkan dengan elemen-elemen yang berbeda dalam lapis tersembunyi dan dihitung

sbb. Misalkan Ej adalah error pada elemen ke-j (lihat gambar di bawah); dan wnj adalah bobot

pada garis yang menghubungkan elemen n ke elemen j; dan I adalah input pada unit n. Maka

error untuk elemen n dihitung sbb:

Untuk fungsi sigmoid

maka

Bobot di-update dengan formula:

dengan : konstanta pembelajaran E : error xi : input

Neural network dapat digunakan untuk membangun fungsi keanggotaan bagi sebuah dataset

input. Dataset dibagi menjadi dua bagian; sebagian digunakan untuk dataset pelatihan dan

sebagian yang lain digunakan untuk dataset pengujian. Dataset pelatihan digunakan untuk

Page 4: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

4

melatih (training) neural network yang digunakan. Misalkan pada gambar berikut. Pada gambar

a diperlihatkan dataset pelatihan 2 dimensi yang dinyatakan dengan 2 koordinat. Untuk

kepentingan proses pelatihan, maka setiap data dalam dataset pelatihan ini telah diketahui

kelasnya (untuk data real dari lapangan, maka dapat diperoleh dari tenaga ahli pada bidangnya

masing-masing). Pada contoh ini, dataset terbagi ke dalam 3 kelas yaitu R1, R2, dan R3.

Perhatikan data pertama (dari data pelatihan) yaitu x1 = 0,7 dan x2 = 0,8 (gambar d hingga f).

Karena data ini berada dalam wilayah R2 maka kita berikan keanggotaan penuh pada R2 dan

keanggotaan nol untuk kelas R1 dan R3. Dengan cara yang sama maka data yang berikutnya

diberikan keanggotaan penuh pada R3. Proses ini dilakukan untuk semua data yang ada dalam

dataset pelatihan; sehingga setelah proses ini selesai maka neural network dikatakan telah

“terlatih”.

Page 5: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

5

Neural network yang telah “terlatih” ini kemudian dapat digunakan untuk menentukan nilai

fungsi keanggotaan setiap data dalam dataset pengujian atau data yang lain yang sama sekali

baru. Perhatikan gambar berikut.

Pada gambar g sebuah data dari dataset pengujian yaitu x1 = 0,5 dan x2 = 0,5 akan menjadi

input bagi neural network yang telah “terlatih” (gambar h) dan hasilnya adalah tabel pada

gambar i dimana data tersebut mempunyai nilai keanggotaan = 0,1 pada R1, nilai keanggotaan =

0,8 pada R2 dan nilai keanggotaan = 0,1 pada R3. Hasil ini dapat diplot ke dalam fungsi

keanggotaan seperti gambar berikut.

Algoritma Genetik

Algoritma genetik menggunakan konsep teori Darwin mengenai evolusi. Teori Darwin

pada dasarnya berfokus pada kenyataan bahwa eksistensi semua makhluk hidup itu berdasar

pada aturan “yang terbaik dapat bertahan”. Darwin juga membuat postulat bahwa jenis

Page 6: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

6

silangan baru atau kelas baru dari makhluk hidup bisa bertahan melalui tiga proses yaitu

reproduksi, crossover, dan mutasi di antara organisme-organisme yang ada.

Konsep dalam teori evolusi ini telah diadaptasi ke algoritma untuk mencari solusi

terhadap suatu masalah dengan cara yang lebih “alamiah”. Pertama, dibuat sebanyak mungkin

solusi yang mungkin untuk memecahkan masalah. Solusi-solusi ini lalu dites kinerjanya;

sejumlah solusi yang baik dipilih dan yang lain dieliminasi. Solusi-solusi yang telah terpilih

kemudian akan dikenai proses reproduksi, crossover, dan mutasi untuk membuat solusi-solusi

generasi baru yang diharapkan mempunyai kinerja lebih baik daripada generasi sebelumnya.

Proses ini diulang-ulang hingga diperoleh konvergensi dalam satu generasi.

Misalkan terdapat data dua dimensi (x, y) dan diinginkan untuk membuat garis lurus

(kurva linier) melalui data-data ini. Sebuah garis lurus dinyatakan dengan persamaan

y=C1x + C2. Untuk mendapatkan kurva ini, akan dibuat sandi biner berupa deretan bit untuk

konstanta C1 dan C2. Jumlah bit yang digunakan dapat dipilih oleh perancangnya. Deretan bit

dapat dipetakan ke nilai parameter Ci (dengan i=1,2) dengan hubungan

Dengan b adalah bilangan desimal yang dinyatakan dalam bentuk biner (misalnya 152 =

10011000), L adalah panjang deret bit (misalnya 8), Cmax dan Cmin adalah konstanta yang dipilih

oleh user dimana C1 dan C2 bervariasi linier.

Berikut akan dijelaskan lebih mendetail mengenai 3 proses dasar dalam algoritma

genetic yaitu reproduksi, crossover, dan mutasi. Ketiga proses ini akan selalu ada dalam proses

untuk menemukan solusi yang terbaik.

Misal, dibuat populasi awal n string (untuk n parameter) yang mempunyai panjang L.

String dibuat dengan cara random, yaitu nilai-nilai parameter disandikan dalam string dengan

cara random atau acak (dengan cara secara acak menempatkan nilai nol dan 1 dalam string).

Setiap string diterjemahkan ke dalam satu set parameter yang diwakilinya. Satu set parameter

ini lalu dilewatkan melalui suatu model numeris dari permasalahan yang akan dicari solusinya.

Page 7: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

7

Output model numeris ini berupa solusi yang didasarkan pada input parameter. Kemudian

berdasarkan kualitas solusi, setiap string dicari nilai kelayakannya (fitness values). Dengan nilai

kelayakan ini, ketiga operator genetik akan digunakan untuk membuat string generasi baru

yang diharapkan mempunyai kinerja (nilai kelayakan) yang lebih baik daripada generasi

sebelumnya. String generasi baru ini kemudian dikenakan proses yang sama (diterjemahkan

dan dievaluasi) sehingga diperoleh string generasi yang berikutnya. Proses ini dilakukan terus-

menerus hingga dicapai konvergensi dalam populasi.

Proses reproduksi adalah proses dimana string dengan nilai kelayakan yang lebih baik

mendapatkan kesempatan yang lebih baik pula untuk tetap ada dalam generasi berikutnya.

Dengan kata lain bahwa harus dipastikan bahwa string tersebut tetap berperan dalam generasi

berikutnya. Cara ini juga memastikan bahwa string yang paling layak tetap bertahan. Oleh

karena jumlah total string dalam setiap generasi dibuat tetap (supaya ekonomis dan efektif

dalam komputasinya), string dengan nilai kelayakan yang lebih rendah harus dieliminasi.

Proses atau operasi crossover adalah proses dimana beberapa string dapat melakukan

mix and match dengan cara yang random atau acak. Proses ini juga bertujuan untuk

meningkatkan nilai kelayakan pada generasi berikutnya. Setelah reproduksi, proses crossover

berlangsung dalam 3 langkah sederhana.

1. Dua string baru dipilih secara acak (gambar a)

2. Sebuah lokasi dalam kedua string dipilih secara acak (gambar b)

3. Sebagian string pada kedua string tersebut dipertukarkan (gambar c)

Dengan cara tersebut di atas maka sebagian solusi berkualitas tinggi dipertukarkan dan

dikombinasi.

Page 8: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

8

Proses crossover dalam algoritma genetik

Proses reproduksi dan crossover paling banyak dilakukan dalam algoritma genetik

dibandingkan dengan proses mutasi. Proses mutasi digunakan untuk meningkatkan

kemampuan algoritma genetik dalam rangka menemukan solusi yang terbaik. Untuk

memahami tentang mengapa dibutuhkan mutasi, misalkan ada sebuah kasus dimana

reproduksi dan crossover tidak mungkin menghasilkan solusi yang paling optimum. Selama

proses tersebut mungkin saja terjadi bahwa keseluruhan string yang ada kehilangan (missing)

satu bit penting/vital (misalnya tidak ada string yang mempunyai bit bernilai “1” pada lokasi ke-

empat); sedangkan bit tersebut menentukan solusi yang paling mendekati optimum. Jika

keadaannya demikian maka generasi berikutnya tidak akan menghasilkan solusi yang optimum

(jika hanya menggunakan operator reproduksi dan crossover). Sehingga proses mutasi menjadi

sangat penting. Biasanya nilai pada lokasi tertentu dalam string diubah; dari “0” ke “1” atau

sebaliknya. Dengan demikian proses mutasi memastikan bahwa bit penting tersebut ada pada

generasi berikutnya. Seperti halnya di alam, mutasi sangat jarang terjadi (dalam orde satu per

ribuan lokasi bit dalam string; menurut Forrest ordenya 0,005/bit/generasi).

Page 9: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

9

Contoh:

Misalkan sebuah data set pada tabel berikut. Akan dilakukan fitting curve data tersebut menjadi garis lurus dengan persamaan

y = C1x + C2.

Tabel 1. Data set

No Data

x y’

1 1 1

2 2 2

3 4 4

4 6 6

Table 2. Iterasi pertama menggunakan algoritma genetik diperlihatkan pada tabel berikut.

1 2 3 4 5 6 7 8 9 10 11 12 13 No

String String C1

(decimal) C1 C2

(decimal) C2 y1 y2 y3 y4 f(x)=400-(yi-yi’)2 f/fav Jml

duplikat

1 000111 010100 7 -1,22 20 0,22 -1,00 -2,22 -4,66 -7,11 131,3 0,43 0

2 010010 001100 18 0,00 12 -0,67 -0,67 -0,67 -0,67 -0,67 332,22 1,1 1

3 010101 101010 21 0,33 42 2,67 3,33 5,00 5,00 4,67 391,44 1,29 2

4 100100 001001 36 2,00 9 3,00 3,00 3,67 3,67 11,00 358,00 1,18 1

Sum = f = 1212,96 Rerata = sum/4 = fav = 303,24

Maks = 391,44

Page 10: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

10

Langkah pengerjaan:

1. Parameter yang harus dicari adalah C1 dan C2. Sandikan kedua parameter ini dalam bentuk

string bit. String dapat dibuat dengan menempatkan bit ‘0’ atau ‘1’ pada lokasi yang

berbeda secara acak. Untuk persoalan di atas dimulai dengan populasi awal yang terdiri atas

4 string yang berbeda (sesuai dengan jumlah data pada soal).

2. Akan digunakan string sepanjang L = 12 bit; 6 bit pertama merupakan sandi untuk

parameter C1, dan 6 bit kedua merupakan sandi untuk parameter C2. String yang dibuat

secara acak diperlihatkan pada kolom 2.

3. Kolom 3 merupakan pernyataan C1 dalam bentuk decimal; kolom 5 merupakan pernyataan

C2 dalam bentuk decimal.

Untuk string no 1

000111 010100 C1 = 000111 decimal 7 (kolom 3)

C2 = 010100 decimal 20 (kolom 5)

4. Menggunakan persamaan

maka nilai biner untuk C1 dan C2 kemudian dipetakan ke nilai yang sesuai. Dalam hal ini

dipilih Cmax = 5 dan Cmin = -2 (pilihan ini adalah sembarang, ditentukan oleh user). Variabel b

adalah bilangan decimal pada kolom 3 atau 5 (b = C1 atau b = C2 ), L adalah panjang deret bit

(dalam hal ini L = 6).

Kolom 4 merupakan nilai C1 dari perhitungan untuk masing-masing string.

Kolom 6 merupakan nilai C2 dari perhitungan untuk masing-masing string.

Page 11: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

11

Untuk string no 1

22,1

))2(5(12

72

)(12

6

minmaxmin1

CCb

CCL

kolom 4

22,0

))2(5(12

202

)(12

6

minmaxmin2

CCb

CCL

kolom 6

5. Kolom 7, 8, 9, dan 10 merupakan nilai y hasil perhitungan menggunakan persamaan

y = C1x + C2.

dengan C1 dan C2 diperoleh dari kolom 4 dan 6, sedangkan x diperoleh dari data set pada

tabel 1 (ada 4 nilai x yang berbeda).

Untuk string no 1

x = 1 y1 = -1,22x + 0,22 = -1 kolom 7

x = 2 y2 = -1,22x + 0,22 = -2,22 kolom 8

x = 4 y3 = -1,22x + 0,22 = -4,66 kolom 9

x = 6 y4 = -1,22x + 0,22 = -7,11 kolom 10

6. Nilai y kemudian dibandingkan dengan nilai yang sebenarnya yaitu y’ (tabel 1); kemudian

dihitung kuadrat error-nya dan untuk setiap x dihitung besaran

f(x) = 400 - ( yi - yi’ )2

Hasilnya diperlihatkan pada kolom 11. Konstanta 400 digunakan untuk membuat soal

menjadi persoalan maksimisasi. Nilai pada kolom 11 ini merupakan nilai kelayakan untuk

Page 12: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

12

masing-masing string. Pada tabel juga diperlihatkan hasil jumlahan, rerata, dan nilai

maksimumnya.

Untuk string no 1

3,131

7,268400

)9,171758,174(400

))611,7()466,4()222,2()11((400

)(400)(

2222

2'

ii yyxf

kolom 11

7. Kolom 12 memperlihatkan hasil estimasi relatif nilai kelayakan satu terhadap yang lain

dengan menghitung f/fav. Nilai pada kolom ini dapat digunakan sebagai panduan untuk

memilih string mana yang harus dieliminasi dan string yang mana pula yang akan

direproduksi pada generasi selanjutnya.

Untuk string no 1

f/fav = 131,3/303,24 = 0,43 kolom 12

8. Kolom 13 memperlihatkan jumlah duplikat (copies) dari setiap string yang akan digunakan

untuk membuat string generasi berikutnya. Nilai pada kolom 13 diperoleh dari kolom 12

dengan menerapkan nilai cut off sebesar 0,8.

9. Tabel 3 memperlihatkan hasil iterasi kedua menggunakan algoritma genetik. Kolom

pertama memperlihatkan string yang telah terseleksi pada iterasi pertama; perhatikan

bahwa string 010101 101010 muncul 2 kali (hasil pada iterasi pertama kolom 13). String

kemudian dikenakan operasi crossover pada lokasi yang ditandai dan hasilnya diperlihatkan

pada kolom 2. String yang ada pada kolom 2 kemudian dikenakan perlakuan yang sama

dengan langkah 3 – 8. Terlihat pada tabel bahwa rerata kelayakan untuk string generasi

Page 13: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

13

kedua lebih besar daripada pada generasi pertama. Proses iterasi dilanjutkan hingga

diperoleh solusi yang konvergen.

Kolom pertama tabel 3 diperoleh dari hasil iterasi pertama; bahwa

String no 1 dieliminasi

String no 2 dipertahankan 1 duplikat jumlah populasi tetap 4

String no 3 dipertahankan 2 duplikat

String no 4 dipertahankan 1 duplikat

String no 3 muncul 2 kali pada kolom pertama (duplikat = 2). Pada string di kolom pertama

ini kemudian dikenakan operasi crossover.

Dua string yang pertama, dipilih lokasi setelah bit ke-empat untuk operasi crossover

Dua string yang lain, dipilih lokasi setelah bit ke-sembilan untuk operasi crossover

Kolom ke-3 pada tabel 3 memperlihatkan hasil operasi crossover; string pertama dan kedua

dipertukarkan mulai bit kelima, string ke-tiga dan ke-empat dipertukarkan mulai bit ke-

sepuluh. Hasil operasi crossover inilah yang merupakan string generasi baru.

Tugas:

Perlihatkan proses hitungan matematis untuk:

1. Tabel 2 baris ke-2

2. Tabel 2 baris ke-3

3. Tabel 2 baris ke-4

4. Tabel 3 baris ke-1

5. Tabel 3 baris ke-2

6. Tabel 3 baris ke-3

7. Tabel 3 baris ke-4

Adakah selisih antara yang tertera dalam tabel dengan perhitungan anda sendiri? Yang

mana saja?

Page 14: Neural Networkebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20161... · 2018-08-01 · 1 Logika Fuzzy Neural Network Neural network merupakan jaringan artifisial (buatan) yang

14

Table 3. Iterasi kedua menggunakan algoritma genetik diperlihatkan pada tabel berikut.

1 2 3 4 5 6 7 8 9 10 11 12 13

String lama String baru C1 (decimal)

C1 C2 (decimal) C2 y1 y2 y3 y4 f(x)=400-(yi-yi’)2 f/fav Jml aktual

0101|01 101010 010110 001100 22 0,44 12 -0,67 -0,22 0,22 1,11 2,00 375,78 1,15 1

0100|10 001100 010001 101010 17 -0,11 42 2,67 2,56 2,44 2,22 2,00 380,78 1,17 2

010101 101|010 010101 101001 21 0,33 41 2,56 2,89 3,22 3,89 4,56 292,06 0,90 1

100100 001|001 100100 001010 36 2,0 10 -0,89 1,11 3,11 7,11 11,11 255,73 0,78 0

Sum 1304,35 Rerata 326,09 Maks 380,78