BAB II LANDASAN TEORI Bab ini akan dibahas mengenai teori-teori pendukung pada penelitian ini. Adapun teori tersebut yaitu teori jaringan saraf tiruan dan algoritma backpropragation. 2.1. Jaringan Saraf Biologi Jaringan saraf biologi merupakan kumpulan dari sel-sel saraf (neuron) yang memiliki tugas untuk mengolah informasi (Puspitaningrum, 2006). Komponen-komponen utama dari sebuah neuron dapat dikelompokkan menjadi 3 bagian, yaitu: 1. Dendrit yang bertugas untuk menerima informasi. 2. Badan sel (soma) yang berfungsi sebagai tempat pengolahan informasi. 3. Akson (neurit) yang bertugas mengirimkan impuls-impuls ke sel saraf lainnya. Gambar 2.1 Sel Saraf Biologi Pada gambar 2.1 sebuah neuron menerima impuls-impuls sinyal dari neuron yang lain melalui dendrit dan mengirimkan sinyal yang dibangkitkan oleh badan sel melalui akson. Akson dari sel saraf biologi bercabang-cabang dan berhubungan Universitas Sumatera Utara 8 dengan dendrit dari sel saraf lainnya dengan cara mengirimkan impuls melalui sinapsis, yaitu penghubung antara dua buah sel saraf. Sinapsis memiliki kekuatan yang dapat meningkat dan menurun tergantung seberapa besar tingkat propagasi yang diterimanya. 2.2. Jaringan Saraf Tiruan Jaringan saraf tiruan (JST) merupakan sistem pemrosesan informasi yang mengadopsi cara kerja otak manusia (Fausset, 1994). JST memiliki kecenderungan untuk menyimpan pengetahuan yang bersifat pengalaman dan membuatnya siap untuk digunakan. Ada tiga elemen penting dalam JST (Rojas, 1996), yaitu: 1. Arsitektur jaringan beserta pola hubungan antar neuron. 2. Algoritma pembelajaran yang digunakan untuk menemukan bobot-bobot jaringan. 3. Fungsi aktivasi yang digunakan. JST terdiri dari sejumlah besar elemen pemrosesan sederhana yang sering disebut neurons, cells atau node. Proses pengolahan informasi pada JST terjadi pada neuron – neuron. Sinyal antara neuron – neuron diteruskan melalui link – link yang saling terhubung dan memiliki bobot terisolasi. Kemudian setiap neuron menerapkan fungsi aktivasi terhadap input jaringan. 2.2.1 Arsitektur Jaringan Saraf Tiruan Arsitektur jaringan yang sering dipakai dalam JST antara lain : 1. Jaringan layar tunggal (single layer network) Jaringan ini hanya memiliki satu buah lapisan bobot koneksi. Jaringan lapisan tunggal terdiri dari neuron-neuron input yang menerima sinyal dari dunia luar, dan neuron-neuron output dimana kita bisa membaca respons dari jaringan saraf tiruan tersebut. Universitas Sumatera Utara 9 Gambar dibawah menunjukkan arsitektur jaringan dengan n neuron input (X1, X2, X3, ..., Xn) dan m buah neuron output (Y1, Y2, Y3, ..., Ym). Semua neuron input dihubungkan dengan semua neuron output, meskipun memiliki bobot yang berbeda-beda. Tidak ada neuron input yang dihubungkan dengan neuron input lainnya. Begitu juga dengan neuron output. W11 X1 Wj1 Y1 Wm1 W1j Wji X2 Y2 Wmi W1n X3 Wjn Y3 Wmn Gambar 2.2 Single Layer Network Besaran Wji menyatakan bobot hubungan antara ubit ke-i dalam input dengan neuron ke-j dalam output. Bobot-bobot ini saling independen. Selama proses pelatihan, bobot – bobot saling dimodifikasi untuk menigkatkankeakuratan hasil. Metode ini tepat digunakan untuk pengenalan pola karena kesederhanaannya. 2. Jaringan Layar Jamak (multi layer network) Jaringan ini memiliki satu atau lebih lapisan tersembunyi. Jaringan layar jamak memiliki kemampuan lebih dalam memecahkan masalah dibandingkan dengan jaringan layar tunggal, namun pelatihannya lebih kompleks dan relatif lebih lama. Universitas Sumatera Utara 10 Gambar 2.3 Multilayer Network Pada gambar diatas jaringan dengan n buah neuron input (X1, X2, ..., Xn), sebuah layer tersembunyi yang terdiri dari p buah neuron (Z1, Z2, .. Zp) dan m buah neuron output (Y1,Y2, ... Ym). 3. Competitive layer network Jaringan ini mirip dengan jaringan layar tunggal ataupun ganda. Hanya saja, ada neuron output yang memberikan sinyal pada neuron input (sering disebut feedback loop). Sekumpulan neuron bersaing untuk mendapatkan hak menjadi aktif. 1 Al 1 Am 1 Ai Aj 1 Gambar 2.4 Competitive layer network Universitas Sumatera Utara 11 2.2.2. Fungsi Aktivasi Fungsi aktivasi pada jaringan saraf tiruan digunakan untuk memformulasikan output dari setiap neuron. Argumen fungsi aktivasi adalah net masukan (kombinasi linier masukan dan bobotnya). Jika net = XiWi, maka fungsi aktivasinya adalah 𝑓 𝑛𝑒𝑡 = 𝑓( 𝑋𝑖 𝑊𝑖 ). Fungsi aktivasi dalam jaringan Backpropagation memiliki beberapa karakteristik penting, yaitu fungsi aktivasi harus bersifat kontinu, terdiferensial dengan mudah dan tidak turun (Fausset, 1994). Beberapa fungsi aktivasi yang sering dipakai adalah sebagai berikut : 1. Fungsi aktivasi linier 𝑓 𝑥 =𝑥 (1) Fungsi aktivasi linier sering dipakai apabila keluaran jaringan yang diinginkan berupa sembarang bilangan riil (bukan hanya pada range [0,1] atau [-1,1]. Fungsi aktivasi linier umumnya digunakan pada neuron output. 2. Fungsi aktivasi sigmoid biner 1 𝑓 𝑥 = 1+𝑒 −𝑥 (2) Fungsi aktivasi sigmoid atau logistik sering dipakai karena nilai fungsinya yang terletak antara 0 dan 1 dan dapat diturunkan dengan mudah. 𝑓 ′ 𝑥 = 𝑓 𝑥 (1 − 𝑓 𝑥 ) (3) 3. Fungsi aktivasi sigmoid bipolar. 2 𝑓 𝑥 = 1+𝑒 −𝑥 − 1 (4) Universitas Sumatera Utara 12 Fungsi aktivasi ini memiliki nilai yang terletak antara -1 dan 1 dengan turunannya sebagai berikut: 𝑓′ 𝑥 = 1+𝑓 𝑥 (1−𝑓 𝑥 ) (5) 2 4. Fungsi aktivasi tangen hiperbola Fungsi aktivasi ini juga memiliki nilai yang terletak antara -1 dan 1. Formulanya yaitu: (𝑒 𝑥 −𝑒 −𝑥 ) 𝑡𝑎𝑛 𝑥 = (𝑒 𝑥 +𝑒 −𝑥 ) = 1−𝑒 −2𝑥 (6) 1+𝑒 −2𝑥 dengan rumus turunannya sebagai berikut: 𝑡𝑎𝑛′ 𝑥 = 1 + tanh 𝑥 (1 − tanh 𝑥 ) (7) 2.2.3. Bias Bias dapat ditambahkan sebagai salah satu komponen dengan nilai bobot yang selalu bernilai 1. Jika melibatkan bias, maka fungsi aktivasi menjadi: (8) Dimana: 𝑥=𝑏+ 𝑖 𝑥𝑖 𝑤𝑖 (9) Universitas Sumatera Utara 13 2.2.4. Laju Pembelajaran / learning rate (𝜼) Penggunaan parameter learning rate memiliki pengaruh penting terhadap waktu yang dibutuhkan untuk tercapainya target yang diinginkan. Secara perlahan akan mengoptimalkan nilai perubahan bobot dan menghasilkan error yang lebih kecil (Fajri, 2011). Variabel learning rate menyatakan suatu konstanta yang bernilai antara 0.1-0.9. Nilai tersebut menunjukkan kecepatan belajar dari jaringannya. Jika nilai learning rate yang digunakan terlalu kecil maka terlalu banyak epoch yang dibutuhkan untuk mencapai nilai target yang diinginkan, sehingga menyebabkan proses training membutuhkan waktu yang lama. Semakin besar nilai learning rate yang digunakan maka proses pelatihan jaringan akan semakin cepat, namun jika terlalu besar justru akan mengakibatkan jaringan menjadi tidak stabil dan menyebabkan nilai error berulang bolak-balik diantara nilai tertentu, sehingga mencegah error mencapai target yang diharapkan. Oleh karena itu pemilihan nilai variable learning rate harus seoptimal mungkin agar didapatkan proses training yang cepat (Hermawan, 2006). 2.3. Metode Backpropagation Backpropagation adalah salah satu bentuk dari jaringan saraf tiruan dengan pelatihan terbimbing. Ketika menggunakan metode pelatihan terbimbing, jaringan harus menyediakan input beserta nilai output yang diinginkan. Nilai output yang diinginkan tersebut kemudian akan dibandingkan dengan hasil output aktual yang dihasilkan oleh input dalam jaringan. Metode Backpropagation merupakan metode yang sangat baik dalam menangani masalah pengenalan pola-pola kompleks. Backpropagation melatih jaringan untuk mendapat keseimbangan antara kemampuan jaringan mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa dengan pola yang dipakai selama pelatihan (Siang, 2009). Universitas Sumatera Utara 14 Pelatihan jaringan Backpropagation meliputi tiga langkah, yaitu langkah maju (feedforward) dari pola pelatihan input, perhitungan langkah mundur (Backpropagation) dari error yang terhubung dan penyesuaian bobot-bobot (Fausset, 1994). Langkah maju dan langkah mundur dilakukan pada jaringan untuk setiap pola yang diberikan selama jaringan mengalami pelatihan. 2.3.1. Arsitektur Backpropagation Jaringan Backpropagation memiliki beberapa neuron yang berada dalam satu atau lebih lapisan tersembunyi (hidden layer). Setiap neuron yang berada dilapisan input terhubung dengan setiap neuron yang berada di hidden layer. Begitu juga pada hidden layer, setiap neuronnya terhubung dengan setiap neuron yang ada di output layer. Jaringan saraf tiruan Backpropagation terdiri dari banyak lapisan (multi layer), yaitu: 1. Lapisan masukan (input layer) Input layer sebanyak 1 lapis yang terdiri dari neuron – neuron input, mulai dari neuron input pertama sampai neuron input ke-n. Input layer merupakan penghubung yang mana lingkungan luar memberikan sebuah pola kedalam jaringan saraf. Sekali sebuah pola diberikan kedalam input layer, maka output layer akan memberikan pola yang lainnya (Heaton, 2008). Pada intinya input layer akan merepresentasikan kondisi yang dilatihkan kedalam jaringan. Setiap input akan merepresentasikan beberapa variabel bebas yang memiliki pengaruh terhadap output layer. 2. Lapisan tersembunyi (hidden layer) Hidden layer berjumlah minimal 1 lapis yang terdiri dari neuron-neuron tersembunyi mulai dari neuron tersembunyi pertama sampai neuron tersembunyi ke-p. Menentukan jumlah neuron pada hidden layer merupakan bagian yang sangat penting dalam arsitektur jaringan saraf. Ada beberapa aturan metode berdasarkan pengalaman yang dapat digunakan untuk menentukan jumlah neuron yang akan digunakan pada hidden layer. Menurut Haykin (1999) jumlah hidden neuron 2 sampai dengan 9 sudah dapat menghasilkan Universitas Sumatera Utara 15 hasil yang baik dalam jaringan, namun pada dasarnya jumlah hidden neuron yang digunakan dapat berjumlah sampai dengan tak berhingga (~). Sedangkan menurut Heaton (2008), ada beberapa aturan yang dapat digunakan untuk menentukan banyaknya jumlah neuron pada hidden layer yaitu: a. Jumlah hidden neuron harus berada diantara ukuran input layer dan output layer. b. Jumlah hidden neuron harus 2 3 dari ukuran input layer, ditambah ukuran output layer. c. Jumlah hidden neuron harus kurang dari dua kali jumlah input layer. Aturan-aturan tersebut hanya berupa pertimbangan dalam menentukan arsitektur jaringan saraf tiruan. Bagaimanapun, penentuan arsitektur jaringan akan kembali pada trial and error sesuai dengan masalah yang ditangani oleh jaringan. 3. Lapisan keluaran (output layer) Output layer berjumlah satu lapis yang terdiri dari neuron-neuron output mulai dari neuron output pertama sampai neuron output ke-m. Output layer dari jaringan saraf adalah pola yang sebenarnya diberikan oleh lingkungan luarnya (external environment). Pola yang diberikan output layer dapat secara langsung ditelusuri kembali ke input layernya. Jumlah dari neuron output tergantung dari tipe dan performa dari jaringan saraf itu sendiri. V11 X1 w11 Z1 Y1 wj1 Vj1 Vp1 V1i Xi Wp1 w1j V1i wji Zj Vpi wpi w1p V1n Xn Y2 wp1 Vn1 Zp Vpn b wpn Y3 b Gambar 2.5 Arsitektur Backpropagation Gambar 2.5 adalah arsitektur Backpropagation dengan n buah masukan (ditambah dengan bias), sebuah layar tersembunyi Z1 (Vji merupakan bobot garis Universitas Sumatera Utara 16 yang menghubungkan bias di neuron input ke neuron layar tersembunyi Zj). Wkj merupakan bobot dari neuron layar tersembunyi Zj ke neuron keluaran Yk ( Wk0 merupakan bobot dari bias di layar tersembunyi ke neuron keluaran Yk). Pelatihan Backpropagation meliputi tiga fase, yaitu : 1. Fase I: Propagasi maju Selama propagasi maju, sinyal masukan dipropagasikan ke hidden layer menggunakan fungsi aktivasi yang telah ditentukan hingga menghasilkan keluaran jaringan. Keluaran jaringan dibandingkan dengan target yang harus dicapai. Selisih antara target dengan keluaran merupakan kesalahan yang terjadi. Jika kesalahan lebih kecil dari batas toleransi, maka iterasi dihentikan. Akan tetapi jika kesalahan lebih besar, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi. 2. Fase II: Propagasi mundur Kesalahan yang terjadi di propagasi mundur mulai dari garis yang berhubungan langsung dengan neuron-neuron dilayar keluaran. 3. Fase III: Perubahan bobot Pada fase ini, bobot semua garis dimodifikasi secara bersamaan. Ketiga fase tersebut diulang- ulang terus hingga kondisi penghentian dipenuhi. Kondisi penghentian yang sering dipakai adalah jumlah maksimal iterasi (epoch) atau minimal kesalahan (error). 2.3.2. Algoritma Pelatihan Backpropagation Berikut adalah algoritma pelatihan Backpropagation dengan arsitektur satu hidden layer (Fausset, 1994): Langkah 0 Inisialisasi bobot (set dengan bilangan acak kecil) Langkah 1 Jika kondisi berhenti masih belum terpenuhi, lakukan langkah 2-9. Langkah 2 Untuk setiap pasang pelatihan, lakukan langkah 3-8 Feedforwad Langkah 3 Setiap neuron input (𝑋𝑖 , 𝑖 = 1, … , 𝑛) menerima sinyal input 𝑋𝑖 dan meneruskan sinyal ini kesemua neuron pada lapisan di atasnya (hidden Universitas Sumatera Utara 17 neuron). Berikut merupakan ilustrasi bagaimana sinyal dipropagasikan keseluruh input layer. 𝑊(𝑥𝑚 )𝑛 merupakan bobot penghubung pada input layer. Gambar 2.6 Propagasi sinyal ke neuron pertama pada input layer (www.home.agh.edu.pl) Gambar 2.7 Propagasi sinyal ke neuron kedua pada input layer (www.home.agh.edu.pl) Gambar 2.8 Propagasi sinyal ke neuron ketiga pada input layer (www.home.agh.edu.pl) Langkah 4 Setiap hidden neuron (𝑍𝑗 , 𝑗 = 1, … , 𝑝) menjumlahkan bobot dari sinyal-sinyal inputnya. 𝑍_𝑖𝑛𝑗 = 𝑉0𝑗 + 𝑛 𝑖=1 𝑋𝑖 𝑉𝑖𝑗 (10) Kemudian gunakan fungsi aktivasi untuk menghitung nilai sinyal outputnya. Universitas Sumatera Utara 18 𝑍𝑗 = 𝑓(𝑍_𝑖𝑛𝑗 ) (11) Dan kirimkan sinyal ini ke semua neuron yang berada pada lapisan diatasnya (output neuron). Gambar berikut merupakan ilustrasi bagaimana sinyal dipropagasikan keseluruh hidden layer. 𝑊𝑚𝑛 merupakan bobot penghubung pada hidden layer. Gambar 2.9 Propagasi sinyal ke neuron pertama pada hidden layer (www.home.agh.edu.pl) Gambar 2.10 Propagasi sinyal ke neuron kedua pada hidden layer (www.home.agh.edu.pl) Langkah 5 Setiap output neuron (𝑌𝑘 , 𝑘 = 1, … , 𝑚) menjumlahkan bobot dari sinyal-sinyal inputnya. 𝑌_𝑖𝑛𝑘 = 𝑊0𝑘 + 𝑝 𝑗 =1 𝑍𝑘 𝑊𝑗𝑘 (12) Dan menerapkan fungsi aktivasinya untuk menghitung nilai sinyal outputnya. 𝑌𝑘 = 𝑓(𝑦𝑖𝑛 𝑘 ) (13) Gambar 2.11 merupakan ilustrasi yang dapat menjelaskan bagaimana sinyal dipropagasikan ke output layer. Universitas Sumatera Utara 19 Gambar 2.11 Propagasi sinyal ke neuron output (www.home.agh.edu.pl) Backpropagation error Langkah 6 Setiap neuron output (𝑌𝑘 , 𝑘 = 1, … , 𝑚) menerima sebuah pola target yang sesuai pada input pola pelatihan, kemudian menghitung informasi kesalahannya. 𝛿𝑘 = 𝑡𝑘 − 𝑦𝑘 𝑓 ′ (𝑦_𝑖𝑛𝑘 ) (14) Hitung koreksi bobot (yang nantinya akan dipakai untuk merubah bobot 𝑊𝑗𝑘 ) ∆𝑊𝑗𝑘 = 𝛼𝛿𝑘 𝑍𝑗 (15) Hitung koreksi bias (yang nantinya akan digunakan untuk merubah bobot 𝑊0𝑘 ∆𝑊0𝑘 = 𝛼𝛿𝑘 (16) Dan kirim 𝛿𝑘 ke neuron pada lapisan dibawahnya. Berikut ini adalah ilustrasi dari prosesnya. Gambar 2.12 Perbandingan sinyal keluaran dan target (www.home.agh.edu.pl) Langkah 7 Setiap hidden neuron (𝑍𝑗 , 𝑗 = 1, … , 𝑝) menjumlahkan delta input (dari neuron yang berada dilapisan bawahnya), 𝛿_𝑖𝑛𝑗 = 𝑚 𝑘 =1 𝛿𝑘 𝑊𝑗𝑘 (17) Universitas Sumatera Utara 20 Mengalikan dengan turunan dari fungsi aktivasinya untuk menghitung informasi errornya. 𝛿𝑗 = 𝛿_𝑖𝑛𝑗 𝑓 ′ (𝑍_𝑖𝑛𝑗 ) (18) Hitung koreksi bobotnya (yang nantinya akan digunakan untuk mengupdate 𝑉𝑖𝑗 ∆𝑉𝒊𝒋 = 𝛼𝛿𝑗 𝑋𝑖 (19) Dan hitung koreksi biasnya (yang nantinya akan digunakan untuk mengupdate 𝑉0𝑗 . ∆𝑉0𝑗 = 𝛼𝛿𝑗 (20) Prosesnya dapat dilihat dari ilustrasi gambar 2.13 dan 2.14 berikut ini: Gambar 2.13 Propagasi sinyal error Δ Ke f4(E) (www.home.agh.edu.pl) Gambar 2.14 Propagasi sinyal error Δ Ke f5(E) (www.home.agh.edu.plx) Koefisien bobot Wmn digunakan untuk mempropagasikan error kembali adalah sama dengan bobot sebelumnya selama mengkomputasikan nilai keluaran. Hanya ketika arah alur data berubah Universitas Sumatera Utara 21 (sinyal di propagasikan dari keluaran ke masukan). Teknik ini digunakan untuk semua lapisan jaringan. Apabila propagasikan error datang dari beberapa neuron, seperti yang terlihat pada gambar 2.14 sampai 2.16 berikut: Gambar 2.15 Propagasikan Sinyal Error Δ Ke f1(E) (www.home.agh.edu.pl) Gambar 2.16 Propagasikan Sinyal Error Δ Ke f2(E) (www.home.agh.edu.pl) Gambar 2.17 Propagasikan Sinyal Error Δ Ke f3(E) (Fajri, 2011) Universitas Sumatera Utara 22 Update weight and bias Langkah 8 Setiap neuron output (𝑌𝑘 , 𝑘 = 1, … , 𝑚) mengupdate bias dan bobotbobotnya ( j=0, . . . ,p): 𝑊𝑗𝑘 𝑏𝑎𝑟𝑢 = 𝑊𝑗𝑘 𝑙𝑎𝑚𝑎 + ∆𝑊𝑗𝑘 (21) Setiap hidden neuron (𝑍𝑗 , 𝑗 = 1, … , 𝑝) mengupdate bias dan bobotbobotnya (i= 0, . . ., n) 𝑉𝑖𝑗 𝑏𝑎𝑟𝑢 = 𝑉𝑖𝑗 𝑙𝑎𝑚𝑎 + ∆𝑉𝑖𝑗 (22) Gambar 2.17 sampai dengan gambar 2.22 merupakan ilustrasi dari proses pengupdate-an bobot: Gambar 2.18 Modifikasi Bobot Δ1 (www.home.agh.edu.pl) Gambar 2.19 Modifikasi Bobot Δ2 (www.home.agh.edu.pl) Universitas Sumatera Utara 23 Gambar 2.20 Modifikasi Bobot Δ3 (www.home.agh.edu.pl) Gambar 2.21 Modifikasi Bobot Δ4 (www.home.agh.edu.pl) Gambar 2.22 Modifikasi Bobot Δ5 (www.home.agh.edu.pl) Universitas Sumatera Utara 24 Gambar 2.23 Modifikasi Bobot Δ6 (www.home.agh.edu.pl) Langkah 9 Tes kondisi berhenti dapat dilakukan ketika error yang dihasilkan oleh jaringan berada pada nilai yang lebih kecil sama dengan (≤) error target yang diharapkan atau ketika telah mencapai iterasi (epoch) maksimal yang telah ditetapkan. Berikut ini adalah contoh perhitungan sederhana dari arsitektur Backpropagation yang dilakukan secara manual: X1 V11 V12 V13 X2 Z1 V21 Z11 V22 V23 V31 V32 X3 Z2 Z21 Y1 V33 Z22 V41 V42 X4 V43 V51 X5 Z3 V52 b V53 b Gambar 2.24 Contoh Arsitektur Backpropagation Arsitektur Backpropagation yang terdiri dari 5 buah neuron ditambah sebuah bias pada input layer dan 3 buah neuron pada hidden layer ditambah sebuah bias dan satu Universitas Sumatera Utara 25 buah output layer. Nilai target pada jaringan adalah 1 dan learning rate 𝛼 = 0.25. Mula-mula bobot diberi nilai acak pada range [-1, 1]. Misal terdapat bobot seperti tabel 2.1 (bobot dari input layer ke hidden layer = 𝑉𝑖𝑗 ) dan tabel 2.2 (bobot dari hidden layer ke output layer =𝑊𝑘𝑗 ). Tabel 2.1 Bobot dari input layer ke hidden layer 𝒁𝟏 𝒁𝟐 𝒁𝟑 𝑿𝟏 = 4 -1 0.75 -0.25 𝑿𝟐 = 7 0.4 0.23 0.11 𝑿𝟑 = 11 0.17 0.05 -0.18 𝑿𝟒 = 6 0.29 0.55 0.03 𝑿𝟓 = 21 0.21 1 0.15 0.2 -08 1 b=1 Tabel 2.2 Bobot dari hidden layer ke output layer Y 𝒁𝟏 0.1 𝒁𝟐 0.03 𝒁𝟑 0.5 b=1 0.1 Normalisasi data input kedalam range [0, 1] dengan menggunakan rumus berikut: x′ = 0.8 x − min + 0.1 max − min (Siang, 2004) Keterangan: x’ = x yang telah dinormalisasi x = x sebelum dinormalisasi min = nilai minimum dari seluruh data max = nilai maksimum dari seluruh data Universitas Sumatera Utara 26 Maka didapatkan hasil input normalisasi dengan nilai minimum = 4 dan nilai maksimum = 21. X1′ = 0.8 4 − 4 + 0.1 = 0.1 21 − 4 X2′ = 0.8 7 − 4 + 0.1 = 0.24 21 − 4 X3′ = 0.8 11 − 4 + 0.1 = 0.33 21 − 4 X4′ = 0.8 6 − 4 + 0.1 = 0.19 21 − 4 X5′ = 0.8 21 − 4 + 0.1 = 0.9 21 − 4 Hitung nilai output dari masing-masing hidden neuron dengan persamaan (10): 𝑍_𝑖𝑛𝑗 = 𝑉0𝑗 + 𝑛 𝑖=1 𝑋𝑖 𝑉𝑖𝑗 𝑍𝑖𝑛 1 = 1 0.2 + 0.1 −1 + 0.24 0.4 + 0.33 0.17 + 0.19 0.29 + 0.9 0.21 = 0.2 + −0.1 + 0.096 + 0.561 + 0.551 + 0.189 = 1.48 𝑍𝑖𝑛 2 = 1 −0.8 + 0.1 0.75 + 0.24 0.23 + 0.33 0.05 + 0.19 0.55 + 0.9 1 = −0.8 + 0.75 + 0.552 + 0.165 + 0.104 + (0.9) = 1.67 𝑍𝑖𝑛 3 = 1 1 + 0.1 −0.25 + 0.24 0.11 + 0.33 −0.18 + 0.19 0.03 + 0.9 0.15 = 1 + −0.25 + 0.026 + (−0.059) + 0.006 + 0.135 = 0.86 Kemudian terapkan fungsi aktivasi untuk masing-masing neuronnya menggunakan persamaan (11), dalam soal ini diterapkan fungsi aktivasi sigmoid biner. 𝑍𝑗 = 𝑓 𝑍_𝑖𝑛 𝑗 = 1 −(𝑧 𝑖𝑛 ) 𝑗 1+𝑒 Universitas Sumatera Utara 27 1 = 1.23 1 = 1.19 𝑍1 = 1+𝑒 −1.48 𝑍2 = 1+𝑒 −1.67 1 𝑍3 = 1+𝑒 −0.86 = 1.42 Hitung nilai output dari neuron Y menggunakan persamaan (12) seperti berikut: 𝑌_𝑖𝑛𝑘 = 𝑊0𝑘 + 𝑝 𝑗 =1 𝑍𝑘 𝑊𝑗𝑘 Karena jaringan hanya memiliki sebuah output Y, maka 𝑌𝑛𝑒𝑡 = 1 0.1 + 1.23 0.1 + 1.19 0.03 + 1.42(0.5) = 0.97 1 𝑌 = 𝑓 𝑌𝑛𝑒𝑡 = 1+𝑒 −(𝑌 𝑛𝑒𝑡 ) = 1 1+𝑒 −(0.97) = 1.38 Hitung faktor 𝛿 pada neuron output Y𝑘 sesuai dengan persamaan (14) 𝛿𝑘 = 𝑡𝑘 − 𝑦𝑘 𝑓 ′ (𝑦_𝑖𝑛𝑘 ) = 𝑡𝑘 − 𝑦𝑘 𝑦𝑘 (1 − 𝑦𝑘 ) = 1 − 1.38 1.38 1 − 1.38 = 0.20 Suku perubahan bobot 𝑊𝑘𝑗 (dengan 𝛼 = 0.25) adalah sebagai berikut: ∆𝑊𝑗𝑘 = 𝛼𝛿𝑘 𝑍𝑗 ; 𝑗 = 0,1 … 3 ∆𝑊10 = 0.25 0.20 1 = 0.05 ∆𝑊11 = 0.25 0.20 1.23 = 0.01 ∆𝑊12 = 0.25 0.20 1.19 = 0.06 ∆𝑊13 = 0.25 0.20 1.42 = 0.07 Hitung penjumlahan kesalahan di hidden neuron (= 𝛿): 𝛿_𝑛𝑒𝑡𝑗 = 𝑚 𝑘 =1 𝛿𝑘 𝑊𝑘 karena jaringan hanya memiliki sebuah neuron output maka 𝛿_𝑛𝑒𝑡𝑗 = 𝛿𝑊1𝑗 𝛿𝑛𝑒𝑡 1 = 0.20 0.1 = 0.20 𝛿_𝑛𝑒𝑡2 = 0.20 0.03 = 0.01 𝛿_𝑛𝑒𝑡3 = 0.20 0.5 = 0.1 Universitas Sumatera Utara 28 Faktor kesalahan 𝛿 di hidden neuron: 𝛿𝑗 = 𝛿_𝑛𝑒𝑡𝑗 𝑓 ′ (𝑍_𝑛𝑒𝑡𝑗 ) = 𝛿_𝑛𝑒𝑡𝑗 𝑍𝑗 (1 − 𝑍𝑗 ) 𝛿1 = 0.20 1.23 1 − 1.23 = −0.06 𝛿2 = 0.01 1.19 1 − 1.19 = −0.002 𝛿3 = 0.1 1.42 1 − 1.42 = −0.06 Suku perubahan bobot ke hidden neuron ∆𝑉𝑗 = 𝛼𝛿𝑖 𝑋𝑖 dimana 𝑗 = 1,2,3; 𝑖 = 0,1, … 5 . Tabel 2.3 Suku Perubahan Bobot Hidden Neuron 𝒁𝟏 𝑿𝟏 𝑿𝟐 𝑿𝟑 𝑿𝟒 𝑿𝟓 b=1 𝒁𝟐 𝒁𝟑 ∆𝑉11 ∆𝑉21 ∆𝑉31 = 0.25 −0.06 0.1 = 0.25 −0.002 0.1 = 0.25 −0.06 0.1 = −0.0015 = −0.00005 = −0.0015 ∆𝑉12 ∆𝑉22 ∆𝑉32 = 0.25 −0.06 0.24 = 0.25 −0.002 0.24 = 0.25 −0.06 0.24 = −0.004 = −0.0012 = −0.004 ∆𝑉13 ∆𝑉23 ∆𝑉33 = 0.25 −0.06 0.33 = 0.25 −0.002 0.33 = 0.25 −0.06 0.33 = −0.005 = −0.000165 = −0.005 ∆𝑉14 ∆𝑉24 ∆𝑉34 = 0.25 −0.06 0.19 = 0.25 −0.002 0.19 = 0.25 −0.06 0.19 = −0.003 = −0.000095 = −0.003 ∆𝑉15 ∆𝑉25 ∆𝑉35 = 0.25 −0.06 0.9 = 0.25 −0.002 0.9 = 0.25 −0.06 0.9 = −0.01 = −0.00045 = −0.01 ∆𝑉10 ∆𝑉20 ∆𝑉30 = 0.25 −0.06 1 = 0.25 −0.002 1 = 0.25 −0.06 1 = −0.02 = −0.0005 = −0.02 Universitas Sumatera Utara 29 Perubahan bobot neuron output: 𝑊𝑗𝑘 𝑏𝑎𝑟𝑢 = 𝑊𝑗𝑘 𝑙𝑎𝑚𝑎 + ∆𝑊𝑗𝑘 𝑘 = 1; 𝑗 = 0, … ,3 𝑊11 𝑏𝑎𝑟𝑢 = 0.1 + 0.01 = 0.11 𝑊12 𝑏𝑎𝑟𝑢 = 0.03 + 0.06 = 0.09 𝑊13 𝑏𝑎𝑟𝑢 = 0.5 + 0.07 = 0.57 𝑊10 𝑏𝑎𝑟𝑢 = 0.1 + 0.05 = 0.15 Perubahan bobot hidden neuron: 𝑉𝑗𝑖 𝑏𝑎𝑟𝑢 = 𝑉𝑗𝑖 𝑙𝑎𝑚𝑎 + ∆𝑉𝑗𝑖 𝑘 = 1; 𝑖 = 0, … ,5 Tabel 2.4 Perubahan Bobot Hidden Neuron 𝒁𝟏 𝑿𝟏 𝒁𝟐 𝒁𝟑 ∆𝑉11 𝑏𝑎𝑟𝑢 ∆𝑉21 𝑏𝑎𝑟𝑢 ∆𝑉31 = −1 + (−0.0015) = 0.75 + (−0.00005) = −0.25 = −1.0015 = 0.75 + −0.0015 = (−0.25) 𝑿𝟐 𝑿𝟑 𝑿𝟒 𝑿𝟓 ∆𝑉12 ∆𝑉22 ∆𝑉32 = 0.4 + −0.004 = 0.23 + −0.0012 = 0.11 + −0.004 = 0.40 = 0.23 = 0.11 ∆𝑉13 ∆𝑉23 = 0.055 + = 0.17 + −0.005 −0.000165 = −0.18 + 0.005 = 0.17 = 0.55165 = (−0.18) ∆𝑉14 ∆𝑉24 ∆𝑉34 = 0.29 + −0.003 = 0.55 = 0.03 + −0.003 = 0.29 + −0.000095 = 0.55 = 0.3 ∆𝑉15 ∆𝑉25 = 1 + −0.00045 ∆𝑉35 = 0.21 + −0.01 = 0.9995 = 0.2 b=1 ∆𝑉33 = 0.15 + −0.01 = 0.15 ∆𝑉10 = 0.2 + −0.02 = 0.18 ∆𝑉20 ∆𝑉30 = 1 + −0.02 = −0.8 + −0.0005 = 0.98 = −0.8 Ulangi iterasi hingga maksimal epoch atau Error Jaringan ≤ Error target. Universitas Sumatera Utara 30 2.3.3. Inisialisasi Bobot Awal dan Bias Bobot merupakan salah satu faktor penting agar jaringan dapat melakukan generalisasi dengan baik terhadap data yang dilatihkan kedalamnya (Fitrisia dan Rakhmatsyah, 2010). Pemilihan inisialisasi bobot awal akan menentukan apakah jaringan mencapai global minimum atau hanya lokal minimum dan seberapa cepat konvergensi jaringannya. Peng-update-an antara dua buah neuron tergantung dari kedua turunan fungsi aktivasi yang digunakan pada neuron yang berada pada lapisan diatasnya dan juga fungsi aktivasi neuron yang berada pada lapisan bawahnya. Nilai untuk inisialisasi bobot awal tidak boleh terlalu besar, atau sinyal untuk setiap hidden atau output neuron kemungkinan besar akan berada pada daerah dimana turunan dari fungsi sigmoid memiliki nilai yang sangat kecil. Dengan kata lain, jika inisialisasi bobot awal terlalu kecil, input jaringan ke hidden atau output neuron akan mendekati nol, yang mana akan menyebabkan pelatihan akan menjadi sangat lambat (Fausset, 1994). Ada beberapa metode inisilisasi bobot yang dapat digunakan, yaitu: 2.3.3.1. Inisialisasi Acak Prosedur umum yang digunakan adalah menginisialisasi bobot dan bias (baik dari input neuron ke hidden neuron maupun dari hidden neuron ke output neuron) dengan nilai acak antara -0.5 dan 0.5 atau antara -1 dan 1 (atau dengan menggunakan interval tertentu – 𝛾 dan 𝛾. Nilai bobot menggunakan nilai posotif atau negatatif karena nilai bobot akhir setelah pelatihan juga dapat bernilai keduanya. 2.3.3.2. Inisialisasi Nguyen-Widrow Inisialisasi Nguyen-Widrow merupakan modifikasi bobot acak yang membuat inisialisasi bobot dan bias ke hidden neuron sehingga menghasilkan iterasi lebih cepat. Universitas Sumatera Utara 31 Bobot-bobot dari hidden neuron ke output neuron (dan bias pada output neuron) diinisialisasikan dengan nilai acak antara -0.5 dan 0.5. Inisialisasi bobot-bobot dari input neuron ke hidden neuron didesain untuk meningkatkan kemampuan hidden neuron untuk belajar. Inisialisasi bobot dan bias secara acak hanya dipakai dari input neuron ke hidden neuron saja, sedangkan untuk bobot dan bias dari hidden neuron ke output neuron digunakan bobot dan bias diskala khusus agar jatuh pada range tertentu. Faktor skala Nguyen-Widrow didefinisikan sebagai berikut: 𝛽 = 0.7(𝑝) 1 𝑛 (23) Keterangan: n : Banyak input neuron p : Banyak hidden neuron β : Faktor skala Prosedur Inisialisasi Nguyen-Widrow terdiri dari langkah-langkah sederhana sebagai berikut: Untuk setiap hidden neuron ( j = 1, ..., p): 𝑉𝑖𝑗 𝑙𝑎𝑚𝑎 = 𝑏𝑖𝑙𝑎𝑛𝑔𝑎𝑛 𝑎𝑐𝑎𝑘 𝑎𝑛𝑡𝑎𝑟𝑎 − 0.5 𝑑𝑎𝑛 0.5 (𝑎𝑡𝑎𝑢 𝑎𝑛𝑡𝑎𝑟𝑎 − 𝛾 𝑑𝑎𝑛 𝛾) Hitung 𝑉𝑗𝑖 𝑙𝑎𝑚𝑎 = 𝑉1𝑗 (𝑙𝑎𝑚𝑎)2 + 𝑉2𝑗 (𝑙𝑎𝑚𝑎)2 + … + 𝑉𝑛𝑗 (𝑙𝑎𝑚𝑎)2 (24) Bobot yang dipakai sebagai inisialisasi: 𝑉𝑖𝑗 = 𝛽 𝑉 𝑖𝑗 (𝑙𝑎𝑚𝑎 ) | 𝑉 𝑖𝑗 | (25) Bias yang dipakai sebagai inisialisasi: 𝑉0𝑗 = 𝑏𝑖𝑙𝑎𝑛𝑔𝑎𝑛 𝑎𝑐𝑎𝑘 𝑎𝑛𝑡𝑎𝑟𝑎 − 𝛽 𝑑𝑎𝑛 𝛽 Universitas Sumatera Utara 32 2.3.4. Momentum (𝜶) Pada standard Backpropagation, perubahan bobot didasarkan atas gradient yang terjadi untuk pola yang dimasukkan pada saat itu. Modifikasi yang dapat dilakukan adalah dengan menggunakan momentum yaitu dengan melakukan perubahan bobot yang didasarkan atas arah gradient pola terakhir dan pola sebelumnya yang dimasukkan. Penambahan momentum dimaksudkan untuk menghindari perubahan bobot yang mencolok yang diakibatkan oleh adanya data yang sangat berbeda dengan yang lain. Variabel momentum dapat meningkatkan waktu pelatihan dan stabilitas dari proses pelatihan (Al-Allaf, 2010). Berikut merupakan rumus dari Backpropagation: ∆𝑊 = 𝜂 ∗ 𝛿 ∗ 𝑛𝑖 (26) Keterangan: η : learning rate. Nilainya 0.25 atau 0.5 𝑛𝑖 : nilai dari neuron ke i Perubahan bobot dilakukan dengan cara menambahkan bobot yang lama dengan ∆w. Akan tetapi, bobot pada iterasi sebelumnya memberikan pengaruh besar terhadap performa jaringan saraf. Oleh karena itu, perlu ditambahkan dengan bobot yang lama dikalikan momentum, menjadi : ∆𝑊 = 𝜂 ∗ 𝛿 ∗ 𝑛𝑖 + 𝛼 ∗ Δ𝑊′ (27) Keterangan : α : momentum faktor, nilainya antara 0 dan 1. ∆w’ : bobot pada iterasi sebelumnya. Teknik momentum tidak menutup kemungkinan dari konvergensi pada lokal minimum, akan tetapi penggunaan teknik ini dapat membantu untuk keluar dari lokal minima (Li et al, 2009). Universitas Sumatera Utara 33 2.3.5. Perhitungan Error Perhitungan error bertujuan untuk pengukuran keakurasian jaringan dalam mengenali pola yang diberikan. Ada tiga macam perhitungan error yang sering digunakan, yaitu Mean Square Error (MSE), Mean Absolute Error (MAE) dan Mean Absolute Percentage Error (MAPE). MSE merupakan error rata–rata kuadrat dari selisih antara output jaringan dengan output target. Tujuan utama adalah memperoleh nilai errorsekecil-kecilnya dengan secara iterative mengganti nilai bobot yang terhubung pada semua neuron pada jaringan. Untuk mengetahui seberapa banyak bobot yang diganti, setiap iterasi memerlukan perhitungan error yang berasosiasi dengan setiap neuron pada output dan hidden layer. Rumus perhitungan MSE adalah sebagai berikut (Bayata et al, 2011): 1 𝑁 𝑖=1 (𝑡𝑘 𝑀𝑆𝐸 = 𝑁 − 𝑦𝑘 )2 (28) Keterangan: 𝑡𝑘 = nilai output target 𝑦𝑘 = nilai output jaringan N = jumlah output dari neuron MAE merupakan perhitungan error hasil absolute dari selisih antara nilai hasil system dengan nilai aktual. Rumus perhitungan MAE adalah sebagai berikut: 1 𝑁 𝑖 =1 |𝑡𝑘 𝑀𝐴𝐸 = 𝑁 − 𝑦𝑘 | (29) MAPE hampir sama dengan MAE, hanya hasilnya dinyatakan dalam persentase. Rumus perhitungan MAPE adalah sebagai berikut: 1 𝑀𝐴𝑃𝐸 = 𝑁 𝑁 𝑖 =1 |𝑡𝑘 − 𝑦𝑘 | x 100% (30) 2.3.6. Penggantian bobot Penggantian bobot jaringan dilakukan jika error yang dihasilkan oleh jaringan tidak lebih kecil sama dengan (≤) nilai error yang telah ditetapkan. Bobot baru didapat Universitas Sumatera Utara 34 dengan menjumlahkan bobot yang lama dengan ∆𝑤. Rumus untuk mengganti bobot adalah sebagai berikut: ∆𝑤 = η ∗ δi ∗ 𝑛𝑖 (31) Keterangan: η = learning rate δi = error yang berasosiasi dengan neuron yang dihitung 𝑛𝑖 = nilai error dari neuron yang dihitung Berikut adalah rumus penggantian bobot tanpa momentum: 𝑤𝑗𝑘 𝑡 + 1 = 𝑤𝑗𝑘 𝑡 + ∆𝑤𝑗𝑘 ∆𝑤𝑗𝑘 = −𝛼 (32) 𝜕𝐸 (𝑤 𝑗𝑘 ) (33) 𝜕 𝑤 𝑗𝑘 𝑣𝑖𝑗 𝑡 + 1 = 𝑣𝑖𝑗 𝑡 + ∆𝑣𝑖𝑗 ∆𝑣𝑖𝑗 = −𝛼 (34) 𝜕𝐸 (𝑣𝑖𝑗 ) (35) 𝜕 𝑣𝑖𝑗 Rumus penggantian bobot menggunakan momentum: 𝑤𝑗𝑘 𝑡 + 1 = 𝑤𝑗𝑘 𝑡 + ∆𝑤𝑗𝑘 + η ∆wjk (𝑡 − 1) ∆𝑤𝑗𝑘 = −𝛼 (36) 𝜕𝐸 (𝑤 𝑗𝑘 ) (37) 𝜕 𝑤 𝑗𝑘 𝑣𝑖𝑗 𝑡 + 1 = 𝑣𝑖𝑗 𝑡 + ∆𝑣𝑖𝑗 + η ∆vij (𝑡 − 1) ∆𝑣𝑖𝑗 = −𝛼 (38) 𝜕𝐸 (𝑣𝑖𝑗 ) (39) 𝜕 𝑣𝑖𝑗 2.3.7. Testing Pada proses testing JST hanya akan diterapkan tahap propagasi maju. Setelah training selesai dilakukan, maka bobot-bobot yang terpilih akan digunakan untuk menginisialisasi bobot pada proses testing JST. Adapun tahapannya adalah sebagai berikut: 1. Masukkan nilai input dari data testing. 2. Lakukan perhitungan neuron-neuron pada hidden layer dengan rumus: Universitas Sumatera Utara 35 𝑍𝑖𝑛𝑗 = 𝑉0𝑗 + 𝑛 𝑖=1 𝑋𝑖 . 𝑉𝑖𝑗 (40) 3. Hitung hasil output dari masing-masing hidden layer dengan menerapkan kembali fungsi aktivasi. 𝑍𝑗 = 𝑓(𝑍𝑖𝑛𝑗 ) = (41) 1 (42) 1+𝑒 −𝑍 _𝑖𝑛𝑗 Sinyal tersebut kemudian akan diteruskan kesemua neuron pada lapisan berikutnya yaitu output layer. 4. Setiap neuron pada output layer (Yk, k=1,..,5) menjumlahkan sinyal-sinyal output beserta bobotnya: 𝑌𝑖𝑛𝑘 = 𝑊0𝑘 + 𝑛 𝑖 =1 𝑍𝑗 . 𝑊𝑗𝑘 (43) 5. Menerapkan kembali fungsi aktivasi untuk menghitung sinyal output 𝑌𝑘 = 𝑓(𝑌_𝑖𝑛𝑘) = (44) 1 (45) 1+𝑒 −𝑌_𝑖𝑛𝑘 2.3.8. Metode Resilient Backpropagation Resilient backpropagation (Rprop) dikembangkan oleh Martin Riedmiller dan Heinrich Braun pada tahun 1992. Metode ini adalah salah satu modifikasi dari proses standard Backpropagation yang digunakan untuk mempercapat laju pembelajaran pada pelatihan jaringan syaraf tiruan Backpropagation. Rprop dikembangkan untuk menghindari perubahan gradien yang terlalu kecil selama proses update dengan fungsi aktivasi sigmoid, yang menyebabkan pembentukan jaringan menjadi lambat. Dalam proses update weight, Rprop memiliki faktor delta, dimana nilai delta akan mengikuti arah perubahan weight. Jika perubahan weight kecil, nilai delta akan membesar, sebaliknya, ketika perubahan weight aktif, nilai delta akan mengecil. Universitas Sumatera Utara 36 Rprop melaksanakan dua tahap pembelajaran yaitu tahap maju (forward) untuk mendapatkan error output dan tahap mundur (backward) untuk mengubah nilai bobot-bobot. Proses pembelajaran pada algoritma RPROP diawalai dengan definisi masalah, yaitu menentukan matriks masukan (P) dan matriks target (T). kemudian dilakukan proses inisialisasi yaitu menentukan bentuk jaringan, MaxEpoch, Target_Error, delta_dec, delta_inc, delta0, deltamax, dan menetapkan nilai-nilai bobot sinaptik vij dan wjk secara acak. Besarnya perubahan setiap bobot ditentukan oleh suatu faktor yang diatur pada parameter yang disebut delt_inc dan delt_dec. Apabila gradien fungsi error berubah tanda dari satu iterasi ke iterasi berikutnya, maka bobot akan berkurang sebesar delt_dec. Sebaliknya apabila gradien error tidak berubah tanda dari satu iterasi ke iterasi berikutnya, maka bobot akan berkurang sebesar delt_inc. Apabila gradien error sama dengan 0 maka perubahan sama dengan perubahan bobot sebelumnya. Pada awal iterasi, besarnya perubahan bobot diinisalisasikan dengan parameter delta0. Besarnya perubahan tidak boleh melebihi batas maksimum yang terdapat pada parameter deltamax, apabila perubahan bobot melebihi batas maksimum perubahan bobot, maka perubahan bobot akan ditentukan sama dengan maksimum perubahan bobot. Universitas Sumatera Utara