BAB 2 LANDASAN TEORI 2.1 Jaringan Syaraf Tiruan - Implementasi Algoritma Backpropagation Jaringan Syaraf Tiruan untuk Mendeteksi Penyakit Tanaman Karet (Hevea brasiliensis)

BAB 2 LANDASAN TEORI

2.1 Jaringan Syaraf Tiruan

  Jaringan saraf tiruan bisa dibayangkan seperti otak buatan di dalam cerita-cerita fiksi ilmiah. Otak buatan ini dapat berpikir seperti manusia, dan juga sepandai manusia dalam menyimpulkan sesuatu dari potongan-potongan informasi yang diterima. Khayalan manusia tersebut mendorong para peneliti untuk mewujudkannya. Komputer diusahakan agar bisa berpikir sama seperti cara berpikir manusia. Caranya adalah dengan melakukan aktivitas-aktivitas yang terjadi di dalam sebuah jaringan saraf biologis [13].

  Jaringan saraf biologis merupakan kumpulan sel-sel saraf (neuron). Neuron mempunyai tugas mengolah informasi yang bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Komponen-komponen utama neuron dikelompokkan menjadi tiga yaitu dendrit bertugas menerima informasi, badan sel (soma) berfungsi sebagai tempat pengolahan informasi, dan akson (neurit) berfungsi mengirimkan impuls- impluls ke sel saraf lainnya. Impuls dikirimkan melalui sinapsis-sinapsis. Sinapsis merupakan koneksi antara neuron yang satu dengan neuron lainnya.

  Pengembangan jaringansaraf tiruanpada awalnyatermotivasi olehpenelitiansistem sarafbiologisyangterdiri darijaringanneuron-neuron yang saling terhubung.

  2.1.1 Pengertian Jaringan Syaraf Tiruan

  Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi [15]. Menurut Kusumadewi [7],jaringan saraf tiruanadalah salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut.

  JST merupakan suatu model kecerdasan yang diilhami dari struktur otak manusia dan kemudian diimplementasikan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran berlangsung [2].

  Jaringan syaraf tiruan akan mentransformasikan informasi dalam bentuk bobot dari satu neuron ke neuron yang lainnya, informasi tersebut akan diproses oleh suatu fungsi perambatan dan semua bobot input/masukan yang datang dijumlahkan kemudian dibandingkan dengan suatu nilai ambang tertentu melalui fungsi aktivasi setiap neuron. Bila nilai melampaui nilai ambang maka neuron akan diaktifkan dan informasi keluaran diteruskan ke neuron yang tersambung dengannya [8].

  2.1.2 Komponen Jaringan Syaraf Tiruan

  Dalam meniru sistem jaringan biologis maka sistem jaringan saraf tiruan memiliki 3 karakteristik utama, yaitu:

  1. Arsitektur jaringan: merupakan pola keterhubungan antara neuron.

  Keterhubungan neuron-neuron inilah yang membentuk suatu jaringan.

  2. Algoritma jaringan: merupakan metode untuk menentukan bobot hubungan.

  3. Fungsi aktivasi: merupakan fungsi untuk menentukan nilai keluaran berdasarkan nilai total masukan pada neuron.

  Seperti halnya otak manusia, jaringan syaraf tiruan juga terdiri dari beberapa neuron [7]. Neuron adalah unit pemrosesan informasi yang menjadi dasar dalam pengoperasian jaringan syaraf tiruan [15]. Neuron terdiri dari tiga elemen pembentuk:

  � Bobot sinapsis

  2 .

  x

  1

  x

  n

  x

  . .

  Input .

  k

  u

  Fungsi Penjumlahan

  = bobot penghubung sinapsis yang menyimpan pola pembelajaran

  1. Himpunan unit-unit yang dihubungkan dengan jalur koneksi. Jalur-jalur tersebut memiliki bobot/kekuatan yang berbeda-beda. Bobot yang bernilai positif akan memperkuat sinyal dan yang bernilai negatif akan memperlemah sinyal yang dibawanya.

  kn

  , ... , w

  k2

  , w

  k1

  w

  1 , x 2 , ..., x n = input berupa sinyal yang masuk kedalam sinapsis neuron

  Keterangan: x

Gambar 2.1 Neuron buatan sederhana

  Neuron buatan (artificial neuron) dirancang untuk menirukan karakteristik neuron biologis [2].

  3. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan diteruskan ke neuron lain atau tidak.

  2. Suatu unit penjumlahan yang akan menjumlahkan input-input sinyal yang sudah dikalikan dengan bobotnya.

  . . w

k1

w k2

w kn

  = blok penjumlahan ∑ u k = output

  Dari gambar 2.1 terlihat serangkaian input yang dilakukan pada suatu neuron buatan. Setiap sinyal dikalikan dengan bobot (weight), sebelum masuk ke blok penjumlahan yang kurang lebih bersesuaian dengan badan sel syaraf biologis, fungsi ini menjumlahkan semua input terboboti (perkalian semua input dengan bobotnya) secara aljabar dan menghasilkan sebuah output (keluaran). Dalam unit keluaran, variabel x dimasukkan ke dalam suatu fungsi f tertentu untuk menghasilkan keluaran akhir.

  Input bobot Output

  

Fungsi aktivasi

  bobot dari ke neuro- neuro-

  Output �

  neuron neuron yang yang lain lain

Gambar 2.2 Struktur neuron jaringan syaraf tiruan

  Keterangan: ∑ = fungsi penjumlahan

  Jaringan syaraf tiruan terdiri dari neuron-neuron, dan ada hubungan antara neuron-neuron tersebut. Neuron-neuron tersebut akan mentransformasikan informasi yang diterima melalui sambungan keluar menuju neuron-neuron yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Informasi (disebut dengan input) akan dikirimkan ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya.

  Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi (hidden layer). Tergantung pada algoritma pembelajarannya [6].

  Jaringan saraf tiruan bekerja berdasarkan asumsi awal yang diberikan sebagai titik tolak pembanding pada proses selanjutnya. Proses belajar pada jaringan saraf tiruan ditunjukkan dengan perubahan bobot penghubung antar-sel jaringan saraf [4].

  Ciri utama yang dimiliki oleh jaringan saraf tiruan adalah kemampuannya untuk belajar. Belajar (learning) pada JST dapat diartikan sebagai proses penyesuaian parameter pembobot karena keluaran yang diinginkan tergantung pada harga pembobot interkoneksi yang dimiliki oleh sel. Proses belajar akan dihentikan jika nilai kesalahan atau error sudah dianggap cukup kecil untuk semua pasangan data latihan. Jaringan yang sedang melakukan proses belajar disebut berada dalam tahap latihan (training) [17].

  Kemampuan JST untuk belajar dan memperbaiki dirinya telah menghasilkan banyak algoritma atau aturan belajar alternatif yang dapat digunakan, dari sekian banyak aturan yang ada, yang paling sering digunakan adalah aturan belajar

  

backpropagation yang termasuk kategori supervised learning yang dapat digunakan

memperbaiki kinerja jaringan saraf tiruan [1].

2.1.3 Manfaat dan Aplikasi Jaringan Syaraf Tiruan

  Dengan tingkat kemampuan yang sangat baik, beberapa aplikasi jaringan saraf tiruan sangat cocok untuk diterapkan pada:

  1. Klasifikasi, memilih suatu input data ke dalam satu kategori tertentu yang ditetapkan

  2. Asosiasi, menggambarkan suatu objek secara keseluruhan hanya dengan sebuah bagian dari objek lain

  3. Self organizing, kemampuan untuk mengolah data-data input tanpa harus memiliki data sebagai target

  4. Optimasi, menemukan suatu jawaban atau solusi yang paling baik sehingga seringkali dengan meminimalisasikan suatu fungsi biaya (optimizer) Berikut ini beberapa aplikasi jaringan syaraf tiruan [14]:

  1. Detektor virus komputer Jaringan saraf tiruan digunakan untuk mendeteksi dan mengoreksi virus komputer. Contohnya, program anti virus IBM yang selain mendeteksi juga mengeradikasi virus-virus baru secara otomatis. Virus baru yang ditemukan kemudian digunakan sebagai set pelatihan untuk versi antivirus berikutnya yang jauh lebih cerdas. Jaringan saraf yang digunakan adalah propagasi balik.

  2. Pendeteksian kanker kulit Jaringan saraf tiruan digunakan untuk mendiagnosis malignant melanoma.

  3. Pengidentifikasian pola-pola data pasar saham Jaringan saraf digunakan untuk memproses informasi dari basis data yang besar untuk mencari pola dan kecenderungan. Hasil pengolahan ini digunakan dalam keputusan investasi.

  4. Pendeteksi bom Jaringan saraf tiruan dilatih untuk mengenali bentuk-bentuk bom dalam tampilan sinyal-sinyal spektrograf yang mengindikasikan muatan nitrogen tinggi pada barang-barang.

  5. Pengontrol gerakan dan penglihatan robot Jaringan saraf tiruan digunakan untuk koordinasi mata-tangan robot memegang objek melalui pelatihan robot.

  6. Pendukung pengolahan bahasa alami Pada pengenalan suara, jaringan saraf tiruan melalui pelatihan menyimpan informasi-informasi bagian-bagian pembicaraan untuk nantinya dicocokkan secara cepat dengan pola-pola input.

  7. Pendukung Decision Support System (DSS) Optimasi: jaringan saraf tiruan dapat digunakan untuk menentukan solusi optimal dari masalah-masalah yang melibatkan banyak parameter, misalnya masalah TSP (Traveling Salesperson Problem). Alokasi sumber daya: alokasi ditentukan berdasarkan data historis. Sistem hibrid: sistem yang melakukan analisis statistikal standar pada kumpulan data yang telah diseleksi oleh jaringan saraf tiruan. Basis data cerdas (intelligent databases): tujuan dari basis data cerdas adalah untuk menangani informasi dan pembuatan keputusan dengan cara yang lebih mirip manusia. Jaringan saraf berperan penting dalam penemuan pola-pola data, menemukan pendekatan yang cocok, dan perkiraan terbaik.

2.1.4 Arsitektur Jaringan Syaraf Tiruan

  Penyusunan neuron pada lapisan-lapisan dan pola koneksinya dalam dan antarlapisan disebut arsitektur jaringan [9]. Dalam menentukan jumlah dari lapisan, unit input tidak terhitung sebagai lapisan karena unit tersebut tidak melakukan proses komputasi. Atau bisa dikatakan bahwa jumlah lapisan pada jaringan ditentukan berdasarkan lapisan yang berisikan bobot antar koneksi dari kumpulan neuron-neuron.

  Beberapa arsitektur jaringan syaraf tiruan, yaitu:

  1. Jaringan dengan lapisan tunggal (single layer network) Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan bobot- bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi. Pada Gambar 2.3, neuron-neuron pada lapisan input terhubung langsung dengan neuron-neuron pada lapisan output. W11

  Wi1 Y1

  X1 Wn1 W1j

  Xi Yj Wij Wnj W1m

  Ym Xn Wnm Wim

Gambar 2.3 Arsitektur jaringan syaraf tiruan dengan lapisan tunggal

  Keterangan: X1, Xi,..., Xn = neuron-neuron pada lapisan input Y1, Yj,..., Ym = neuron-neuron pada lapisan output w

  11 ,..., w nm = bobot dari lapisan input ke lapisan output

  2. Jaringan dengan banyak lapisan (multilayer network) Jaringan dengan banyak lapisan memiliki satu atau lebih lapisan yang terletak di antara lapisan input dan lapisan output. Lapisan tersebut disebut lapisan tersembunyi (hidden layer). Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan dengan lapisan

  tunggal, tentu saja dengan pembelajaran yang lebih rumit. Namun demikian, pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam menyelesaikan masalah. V11 W11

  X1 Vi1 Wj1 Y1 Vn1 V1j Z1 Wp1 W1k Wjk

  Yk Xi Zj Vij V1p Wpk W1m Vnj Vip Zp

  Xn Vnp Wpm Wjm Ym

Gambar 2.4 Arsitektur jaringan syaraf tiruan dengan banyak lapisan

  Keterangan: X1, Xi,..., Xn = neuron-neuron pada lapisan input Z1, Zj,..., Zp = neuron-neuron pada lapisan tersembunyi Y1, Yk,..., Ym = neuron-neuron pada lapisan output v ,..., v = bobot dari lapisan input ke lapisan tersembunyi

  11 np

  w

  11 ,..., w pm = bobot dari lapisan tersembunyi ke lapisan output

  3. Jaringan dengan lapisan kompetitif (competitive layer network) Hubungan antarneuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur seperti jaringan yang lain. Pada jaringan kompetitif neuron

  saling berkompetisi sehingga hanya satu diantaranya yang aktif, prinsip ini disebut winner-takes-all atau yang menanglah yang mengambil bagiannya.

  1

  1

  • A A

  ɛ

  

1 m

  

ɛ ɛ ɛ

ɛ

  • A A j

  i ɛ -

  1

  1 Gambar 2.5 Arsitektur jaringan syaraf tiruan dengan lapisan kompetitif Keterangan: A

  1 , A i ,A j , A m = neuron-neuron

  = bobot antara neuron yang satu dengan neuron yang lainnya - 1 = bobot pada neuron ke neuron itu sendiri

2.1.5 Fungsi Aktivasi Jaringan Syaraf Tiruan

  Dalam jaringan syaraf tiruan, fungsi aktivasi dipakai untuk menentukan keluaran suatu neuron. Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf tiruan, antara lain:

  1. Fungsi Undak Biner (Hard Limit) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step

  function

  ) untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu output biner (0 atau 1). Fungsi undak biner (hard limit) dirumuskan sebagai:

Gambar 2.6 Fungsi aktivasi: Undak Biner (hard limit)

  2. Fungsi Undak Biner (Threshold) Fungsi undak biner dengan menggunakan nilai ambang sering juga disebut dengan nama fungsi nilai ambang (threshold) atau fungsi Heaviside.

  Fungsi undak biner (dengan nilai ambang ) dirumuskan sebagai:

Gambar 2.7 Fungsi aktivasi: Undak Biner (threshold)

  3. Fungsi Bipolar (Symetric Hard Limit) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa 1, 0, atau –1.

  1 y x

  θ y

  = 0, jika x< 1, jika x

  ≥

  y

  = 0, jika x

  ≤ 0 1, jika x>0

  1 y x Fungsi Symetric Hard Limit dirumuskan sebagai: 1, jika x>0

  y

  = 0, jika x= 0

  • 1, jika x< 0

  y

  1 x

  • 1

Gambar 2.8 Fungsi aktivasi: Bipolar (symetric hard limit)

  4. Fungsi Bipolar (dengan threshold) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner dengan threshold , hanya saja output yang dihasilkan berupa 1, 0 atau –1.

  Fungsi bipolar (dengan nilai ambang ) dirumuskan sebagai:

  1, jika x ≥

  y

  =

  • 1, jika x<

  y

  1

θ

x

  • 1

Gambar 2.9 Fungsi aktivasi: Bipolar (threshold)

  5. Fungsi Linear (identitas) Fungsi linear memiliki nilai output yang sama dengan nilai inputnya.

  Fungsi linear dirumuskan sebagai: y = x

  y

  1

  • 1

  1 x

  • 1

Gambar 2.10 Fungsi aktivasi: Linear (identitas)

  6. FungsiSaturating Linear Fungsi ini akan bernilai 0 jika inputnya kurang dari –½, dan akan bernilai 1 jika inputnya lebih dari ½. Sedangkan jika nilai input terletak antara –½ dan ½, maka outpunya akan bernilai sama dengan nilai input ditambah ½. Fungsi saturating linear dirumuskan sebagai:

  1; jika x ≥ 0,5

  y

  = x+0,5; jika −0,5 ≤x≤0,5

  0; jika x ≤ −0,5

  y

  1

  • 0,5 0,5 x

Gambar 2.11 Fungsi aktivasi: Saturating Linear

  7. Fungsi Symetric Saturating Linear Fungsi ini akan bernilai -1 jika inputnya kurang dari –1, dan akan bernilai 1 jika inputnya lebih dari 1. Sedangkan jika nilai input terletak antara –1 dan 1, maka outpunya akan bernilai sama dengan nilai inputnya. Fungsi symetric saturating linear dirumuskan sebagai:

  1; jika x ≥ 1

  y

  = x; jika −1 ≤x≤1

  • 1; jika x

  ≤ −1

  y

  1

  • 1 1 x
  • 1

Gambar 2.12 Fungsi aktivasi: Symetric Saturating Linear

  8. Fungsi Sigmoid Biner Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1.

  Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1.

  Fungsi sigmoid biner dirumuskan sebagai:

  1

  y = ( )=

  − 1+

  dengan ′( ) = ( )[1 − ( )]

Gambar 2.13 Fungsi aktivasi: Sigmoid Biner

  9. Fungsi Sigmoid Bipolar Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai –1.

  Fungsi sigmoid bipolar dirumuskan sebagai:

  2

  y = ( )= − 1

  − 1 + [1+

  ( )][1− ( )]

  dengan ′( ) =

  2 Gambar 2.14 Fungsi aktivasi: Sigmoid Bipolar

  10. Fungsi Hyperbolic Tangent Memiliki range antara –1 sampai 1. Untuk fungsi hyperbolic tangent, dirumuskan sebagai:

  − −

  

1

− −

  y = atauy = ( )= ( )=

  − −

  • 1 +

  dengan ′( ) =[1 + ( )][1 − ( )]

  2.1.6 Bias dan Threshold

  Kadang-kadang dalam jaringan ditambahkan sebuah unit masukan yang nilainya selalu sama dengan 1. Unit yang sedemikian disebut bias. Bias dapat dipandang sebagai input yang nilainya sama dengan 1. Bias berfungsi mengubah nilai

  threshold menjadi sama dengan 0 [15].

  2.1.7 Pelatihan Jaringan Syaraf Tiruan

  Sebelum digunakan, JST dilatih untuk mengenal fungsi pemetaan. Pelatihan merupakan proses belajar JST yang dilakukan dengan menyesuaikan bobot interkoneksi jaringan [10]. Proses belajar JST diklasifikasikan menjadi dua:

  1. Belajar dengan pengawasan (supervised learning) Jaringan memberikan tanggapan dengan mendapatkan target tertentu. Sebelum jaringan mengubah sendiri bobotnya untuk mencapai target, bobot interkoneksi diinisialisasi. Proses belajar JST dengan pengawasan adalah proses belajar dengan memberikan latihan untuk mencapai suatu target keluaran yang ditentukan. JST mendapatkan latihan untuk mengenal pola-pola tertentu. Dengan memberikan target keluaran, perubahan masukan akan diadaptasi oleh keluaran dengan mengubah bobot interkoneksinya mengikuti algoritma belajar yang ditentukan. Set pelatihan dipilih dari fungsi keluaran maksimum setiap keadaan parameter yang diubah. Dengan menginisialisasi bobot tiap sel, JST akan mencari errorterkecil, sehingga bentuk fungsi keluaran mendekati target yang diinginkan. Berdasarkan proses belajar yang dilakukan, kita perlu memperhatikan beberapa hal dalam menyusun set pelatihan, yaitu: 1) Pemberian urutan pola yang akan diajarkan 2) Kriteria perhitungan error 3) Kriteria proses belajar

  4) Jumlah iterasi yang harus dilalui 5) Inisialisasi bobot dan parameter awal Pelatihan dilakukan dengan memberikan pasangan pola-pola masukan dan keluaran. Salah satu contoh JST yang menggunakan pembelajaran dengan pengawasan adalah jaringan bakpropagation.

  2. Belajar tanpa pengawasan (unsupervised learning) Pada belajar tanpa pengawasan jaringan tidak mendapatkan target, sehingga JST mengatur bobot interkoneksi sendiri. JST akan mengklasifikasikan contoh pola- pola masukan yang tersedia ke dalam kelompok yang berbeda-beda. Menurut [6], selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu.

  Hal yang ingin dicapai dengan melatih/mengajari jaringan saraf tiruan adalah untuk mencapai keseimbangan antara kemampuan memorisasi dan generalisasi. Yang dimaksud kemampuan memorisasi adalah kemampuan untuk memanggil kembali secara sempurna sebuah pola yang telah dipelajari. Kemampuan generalisasi adalah kemampuan jaringan saraf tiruan untuk menghasilkan respon yang bisa diterima terhadap pola-pola input yang serupa (namun tidak identik) dengan pola-pola yang sebelumnya telah dipelajari. Hal ini sangat bermanfaat bila pada suatu saat ke dalam jaringan saraf tiruan itu diinputkan informasi baru yang belum pernah dipelajari, maka jaringan saraf tiruan itu masih tetap dapat memberikan tanggapan yang baik, memberikan keluaran yang paling mendekati [14].

2.1.8 Aturan Pembelajaran Jaringan Syaraf Tiruan

  Aturan pembelajaran adalah aturan kerja secara umum dari teknik/algoritma jaringan saraf tiruan [14]. Ada empat tipe dasar aturan pembelajaran, yaitu:

  1. Aturan Pengkoreksian Error Prinsip dasar dari aturan pembelajaran pengkoreksian erroradalah memodifikasi bobot-bobot koneksi dengan menggunakan sinyal kesalahan (output target- output aktual) untuk mengurangi kesalahan secara bertahap.

  2. Aturan Pembelajaran Boltzmann Aturan pembelajaran boltzmann juga dapat dikatakan sebagai kasus lain dari pembelajaran pengkoreksian error. Bedanya, kesalahan (error) diukur bukan sebagai perbedaan langsung antara output aktual dengan output yang diinginkan, melainkan perbedaan antara korelasi output-output dari 2 buah neuron dalam kondisi operasi clamped dan free-running. Pada clamped, neuron-neuron visibel ditahan pada keadaan-keadaan tertentu. Pada free-running, baik neuron visibel maupun hiddendapat beroperasi dengan bebas.

  3. Aturan Hebbian Kekuatan koneksi antara 2 buah neuron akan meningkat jika kedua neuron memiliki tingkah laku yang sama (keduanya memiliki aktivasi positif atau keduanya memiliki aktivasi negatif).

  4. Aturan Pembelajaran Kompetitif Unit-unit output pada aturan pembelajaran kompetitif ini harus saling bersaing untuk beraktivasi. Jadi hanya satu unit ouput yang aktif pada satu waktu (winner-take-all). Bobot-bobotnya diatur setelah satu node pemenang terpilih.

2.2Multilayer Perceptron

  Perceptron merupakan algoritma pembelajaran yang menjadi dasar algoritma

  

backpropagation . Arsitektur perceptron belajar mengenali pola dengan metode

  pembelajaran terbimbing [4]. Perceptron memiliki jaringan lapis tunggal [2]. Jaringan terdiri dari beberapa unit masukan (ditambah sebuah bias), dan memiliki sebuah unit keluaran. Fungsi aktivasi bukan merupakan fungsi biner (atau bipolar), tetapi memiliki kemungkinan -1, 0, atau 1 [15].

Gambar 2.15 Arsitektur jaringan perceptron

  Bobot sinapsis w 1 w 2 w n

  n Input

  x

  2

  x

  1

  x

  .

  F (y_in) .

  y y_in

  Fungsi Penjumlahan . . .

  Keterangan: x

  Arsitektur jaringan dengan banyak lapisan (multilayer) merupakan perluasan dari arsitektur lapisan tunggal (single layer). Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak diantara lapisan input dan lapisan output (memiliki 1 atau lebih lapisan tersembunyi) [6]. Jumlah lapisan menentukan jumlah matriks bobot [9].

  = fungsi penjumlahan F(y_in) = fungsi aktivasi y = sinyal output

  = bobot-bobot sinapsis ∑ xw + b

  n

  w

  2,...,

  , w

  1

  w

  1 , x 2,..., x n = sinyal-sinyal input

  � +

Gambar 2.16 Arsitektur jaringan lapis banyak (multilayer)

  11,...,

  Y m Y 1 Y k Zp Z 1 Zj

  Lapisan Tersembunyi Lapisan Output Wpk

Wp1

Wpm W11 W1k W1m

Wj1

Wjk

Wjm

Vip Vn1 Vnj Vnp V11 V1j V1p Vi1 Vij

  16 ]. Lapisan Input

  Jaringan dengan perceptron lapis banyak dengan metode back-propogation (Backpropogation Multi Layer Perceptron) merupakan satu jenis JST yang sering digunakan dalam berbagai aplikasi [

  dalam jaringan perlu dimasukkan contoh-contoh respon untuk dikenali. Seperti halnya teknik jaringan saraf lainnya yang memiliki jenis pembelajaran terawasi, perceptron multilapis belajar mentransformasikan data input sedemikian rupa sehingga menghasilkan keluaran/ respon seperti yang diingini [13].

  

neural network ) dan merupakan jaringan yang pembelajarannya terawasi sehingga ke

  = bobot dari lapisan tersembunyi ke lapisan output Perceptron multilapis adalah jaringan saraf tiruan umpan maju (feedforward

  pm

  w

  v 11,..., v np = bobot dari lapisan input ke lapisan tersembunyi w

  Keterangan:

  1 , Y k,..., Y m = neuron-neuron pada lapisan output

  = neuron-neuron pada lapisan tersembunyi Y

  p

  Z

  j,...,

  , Z

  1

  X n = neuron-neuron pada lapisan input Z

  1 , X i,...,

  X

  X 1 Xi Xn

2.3 Backpropagation

  Metode backpropagation (propagasi balik) merupakan metode pembelajaran lanjut yang dikembangkan dari aturan perceptron. Hal yang ditiru dari perceptron adalah tahapan dalam algoritma jaringan. Metode ini terdiri dari dua tahap, yaitu tahap

  feedforward yang diambil dari perceptron dan tahap backpropagationerror [13].

  Arsitektur jaringan backpropagation merupakan jaringan lapis banyak (multilayer).

  Backpropagation merupakan algoritma pembelajaran yang terawasi dan

  biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot- bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot- bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu [6]. Menurut Haykin [3], backpropagation adalah sebuah teknik spesifik untuk implementasi penurunan gradien bobot pada multilayer perceptron.

  Training sebuah jaringan dengan backpropagation meliputi tahap berikut:

  feedforward

  untuk training pola input, backpropagation untuk asosiasi error, dan penyesuaian bobot.

  2.3.1 Arsitektur Jaringan Backpropagation Y . . . . . .

1 Y Y

k m w 11 w 01 w 0k w pk wjk w pm w 1k w j1 w jm w 1m w p1 w 0m

  Z

1 . . . Z . . . Z

1 j p v 11 v 01 v 0j v nj

v ij

v np v 1j v i1 v ip v 1p v v 0p n1

  X 1 X i n

  1 . . .

  X . . .

Gambar 2.17 Arsitektur Jaringan Backpropagation dengan Satu Lapisan Tersembunyi

  Keterangan: X , X ..., X = unit input

  1 i n

  Z

  1 , Z j ...,Z p = unit lapisan tersembunyi (hidden layer)

  Y

  1 , Y k ...,Y m = unit output

  v ,...,v = bobot dari lapisan input ke lapisan tersembunyi

  11 np

  W ,...,w = bobot dari lapisan tersembunyi ke lapisan output

  11 pm

  1 = bias v ,v ,...,v = bias dari lapisan input ke lapisan tersembunyi

  01 0j 0p

  w , w ,...,w = bias dari lapisan tersembunyi ke lapisan output

  01 0k 0m

  Selama feedforward setiap unit input menerima sinyal input dan mengirimkan sinyal tersebut ke tiap unit tersembunyi. Tiap unit tersembunyi kemudian menghitung aktivasinya dan mengirim sinyal tersebut (z j ) ke tiap unit output. Tiap unit output (Y k ) menghitung aktivasinya (y k ) untuk membentuk respon dari net untuk pola input yang diberikan.

  Selama training, tiap unit output membandingkan aktivasi yang telah dihitung y k dengan nilai target t k untuk medeterminasi asosiasi eror untuk pola dan unit tersebut.

  Berdasarkan eror ini, faktor (k = 1,...,m) dihitung. digunakan untuk distribusi δ k δ k erortersebut pada unit output Y k kembali ke semua unit pada lapisan sebelumnya (unit- unit tersembunyi yang terhubung ke Y ). Ini juga digunakan (nantinya) untuk meng-

  k

update bobot-bobot diantara lapisan output dan lapisan tersembunyi. Dengan cara yang

  sama, faktor j (j = 1,...,p) dihitung untuk tiap unit tersembunyi Z j . Tidak perlu δ merambatkan eror kembali ke lapisan input, tetapi δ j digunakan untuk meng-update - bobot-bobot diantara lapisan tersembunyi dan lapisan input.

  Setelah semua faktor δ dideterminasi, bobot-bobot untuk semua lapisan disesuaikan secara simultan. Penyesuaian ke bobot w (dari unit tersembunyi Z ke

  jk j unit ouput Y ) didasarkan pada faktor dan aktivasi z dari unit tersembunyi. k δ k j

  Penyesuaian bobot ke v ij (dari unit input X i ke unit tersembunyi Z j ) didasarkan pada faktor dan aktivasi x dari unit input.

  δ j i

2.3.2 Fungsi Aktivasi

  Dalam backpropagation, fungsi aktivasi yang dipakai harus memenuhi syarat yaitu: kontinu, terdiferensial dengan mudah, dan merupakan fungsi yang tidak turun. Salah satu fungsi yang memenuhi syarat tersebut sehingga sering dipakai adalah fungsi sigmoid bipolar yang memiliki range (-1,1).

  2

  y = ( )= − 1

  −

1 +

[1+

  ( )][1− ( )]

  dengan ′( ) =

  2 Fungsi sigmoid memiliki nilai maksimum = 1. Maka untuk pola yang targetnya lebih

  besar dari 1, pola masukan dan keluaran harus terlebih dahulu ditransformasi sehingga semua polanya memiliki range yang sama seperti fungsi sigmoid yang dipakai. Alternatif lain adalah menggunakan fungsi aktivasi sigmoid hanya pada layar yang bukan layar keluaran. Pada layar keluaran fungsi aktivasi yang dipakai adalah fungsi identitas: f(x) = x

Gambar 2.18 Fungsi aktivasi sigmoid bipolar

2.3.3 Algoritma Backpropagation

  Algoritma pelatihan jaringan backpropagation:

  1. Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil

  2. Langkah 1 :Selama kondisi berhenti tidak terpenuhi (bernilai salah), kerjakan langkah-langkah berikut: a. Untuk tiap-tiap pasangan pelatihan, lakukan:

  Feedforward

  : 1) Tiap-tiap unit input (X , i = 1,2,3,…,n) menerima sinyal x dan

  i i

  meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi). 2) Tiap-tiap unit tersembunyi (Z , j = 1,2,3,..,p) menjumlahkan sinyal-

  j

  sinyal input berbobot: = ......(2.1)

  • =1

    dimana v =bias dan v = bobot.

  ∑ _

  Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: z = ) ......(2.2)

  j

  ( _ dan kirimkan sinyal tersebut ke semua unit lapisan atasnya (unit- unit output). 3) Tiap-tiap unit output (Y k , k=1,2,3,…,m) menjumlahkan sinyal- sinyal input berbobot:

  = (2.3) ∑

  • =1 dimana w 0 = bias dan v = bobot.

  _

  Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: y = ) (2.4)

  k

  ( _ Dan kirimkan sinyal tersebut ke semua unit di lapisan sisanya (unit- unit output).

  b. Untuk tiap-tiap pasangan pelatihan, lakukan:

  Backpropagation :

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

  = (t – Y ) ) ......(2.5) δ k k k

  ’ ( _ dimana t = target output.

  Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperoleh nilai w ):

  jk

  = z ......(2.6) Δw jk αδ k j dimana

  α = learning rate Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w ):

  0k 0k = k ......(2.7)

  Δw αδ Kirimkan k ini ke unit-unit yang ada di lapisan bawahnya.

  δ

  2. Tiap-tiap unit tersembunyi (Z , j=1,2,3,…,p) menjumlahkandelta

  j

  inputnya (dari unit-unit yang berada pada lapisan diatasnya): = ......(2.8)

  ∑ _

  =1

  Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi eror: = ) ......(2.9)

  _ ′( _

  Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai v ij ): Δvij = αδ j x i ......(2.10) Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai v ij )

  0j = j ......(2.11)

  Δv αδ

  c. Perbaharui bobot dan biasnya:

  1. Tiap-tiap unit output (Y , k=1,2,3,…m) memperbaiki bias dan

  k

  bobotnya (j = 0,1,2,…,p): w (baru) = w (bobot) ...... (2.12)

  jk jk (lama) + Δw jk

  w (baru) = w (bias)...... (2.13)

  0k 0k (lama) + Δw 0k

  2. Tiap-tiap unit tersembunyi (Z j , j=1,2,3,…p) memperbaiki bias dan bobotnya (i = 0,1,2,…,n): v (baru) = v (bobot) ......(2.14)

  ij ij (lama) + Δv ij

  v 0j (baru) = v 0j 0j (bias) ......(2.15) (lama) + Δv d. Tes kondisi berhenti.

  Setelah algoritma pelatihan jaringan backpropagationdilakukan dan diperoleh output yang paling mendekati target maka bobot dan bias akhir dari hasil pelatihan disimpan kemudian dilakukan proses pengujian dengan algoritma pengujian. Pada algoritma pengujian yang digunakan hanyalah tahap umpan maju (feedforward) saja.

  Algoritma pengujian jaringan backpropagation:

  0. Langkah 0: Inisialisasi bobot. Bobot ini diambil dari bobot-bobot terakhir yang diperoleh dari algoritma pelatihan.

  1. Langkah 1: untuk setiap vektor input, lakukan langkah ke-2 sampai ke-4.

  2. Langkah 2: setiap unit input x (dari unit ke-1 sampai unit ke-n pada lapisan

  i

  input; i=1,...,n) menerima sinyal input pengujian x i ke semua unit pada lapisan di atasnya (unit-unit tersembunyi).

  3. Langkah 3: Setiap unit di lapisan tersembunyi z (dari unit ke-1 sampai unit ke-p;

  j

  i=1,...,p) menghitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input x . Sinyal output dari lapisan

  i tersembunyi kemudian dikirim ke semua unit pada lapisan di atasnya.

  = ∑

  • =1

  _

  Z = )

  j

  ( _

  4. Langkah 4: Setiap unit output y (dari unit ke-1 sampai unit ke-m; j=1,...,p;

  k

  k=1,...,m) menghitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input bagi lapisan ini, yaitu sinyal-sinyal input z dari lapisan tersembunyi.

  j

  = ∑

  • =1

  _

  Y k = ) ( _

  5. Langkah 5:Menentukan nilai keluaran berdasarkan threshold(nilai ambang) yang telah ditetapkan (merupakan langkah tambahan). Dalam penelitian ini digunakan thresholddan output: if Y < -0,5 then Y = -1,

  k k

  elseif-0,5 = 0,

  k k

  ≤Y ≤ 0,5 then Y else Y = 1

  k

  Siklus dari satu kali pola pelatihan disebut epoch. Dalam penelitian bayaknya

  

epoch maksimal pada jaringan bisa diatur sebagai batasan pelatihan dimana pelatihan

jaringan boleh dihentikan.

  Keterangan:

  1. Xi (i = 1,2,...,n) : unit input 2. x i : sinyal input

  3. Zj (j = 1,2,...,p) : unit tersembunyi 4. z : sinyal dari lapisan tersembunyi ke lapisan output

  j

  5. Yk (k=1,2,...,m) : unit output 6. y : sinyal output

  k

2.3.4 Pemilihan Bobot dan Bias Awal

  1. Inisialisasi semua bobot dengan (v

  ( ) || ||

  3. Bobot yang dipakai sebagai inisialisasi = v ji =

  

2

  2

  2

  1

  2. Hitung || v j || = �

  (lama)) dengan bilangan acak dalam interval [-0.5, 0.5]

  ji

  Algoritma Nguyen Windrow untuk setiap unit tersembunyi (j = 1,...,p) adalah sebagai berikut:

  7. v

  Dimana: n = jumlah unit masukan p = jumlah unit tersembunyi = faktor skala = 0.7 �

  Nguyen dan Windrow mengusulkan cara membuat inisialisasi bobot dan bias ke unit tersembunyi sehingga menghasilkan iterasi lebih cepat.

  Bobot awal akan mempengaruhi apakah jaringan mencapai titik minimum lokal atau global, dan seberapa cepat konvergensinya. Bobot yang menghasilkan nilai turunan aktivasi yang kecil sedapat mungkin dihindari karena akan menyebabkan perubahan bobot menjadi sangat kecil. Demikian pula bobot awal tidak boleh terlalu besar karena nilai turunan aktivasinya menjadi sangat kecil juga. Oleh karena itu dalam standar backpropagation , bobot dan bias diisi dengan bilangan acak kecil [15].

  α : laju pemahaman(learning rate)

  12.

  : informasi error yang diperoleh pada lapisan output yang akan dirambatkan ke lapisan tersembunyi 11. δ j : informasi error yang diperoleh pada lapisan tersembunyi

  :target output 10. δ k

  k

  : bias dari lapisan input ke lapisan tersembunyi 8. w 0k : bias dari lapisan tersembunyi ke lapisan output 9. t

  oj

  • … +
  • 2

  4. Bias yang dipakai sebagai inisialisasi = v = bilangan acak antara

  j0

  − dan

2.3.5 Lapisan Tersembunyi

  Hasil teoritis yang didapat menunjukkan bahwa jaringan dengan sebuah layar tersembunyi sudah cukup bagi backpropagation untuk mengenali sembarangan perkawanan antara masukan dan target dengan tingkat ketelitian yang ditentukan. Akan tetapi penambahan jumlah layar tersembunyi kadangkala membuat pelatihan lebih mudah [15].

  Menurut Diyah [14], tidak ada aturan yang pasti untuk mengetahui seberapa banyak lapisan tersembunyi yang sebenarnya diperlukan. Ada 2 ide yang bisa dipakai. Pertama adalah dengan menerapkan jaringan yang besar kemudian memangkas yang tidak perlu, atau sebaliknya, bergerak dari jaringan yang kecil kemudian bergerak melakukan penambahan yang dipandang perlu.

  1. Dari jaringan besar ke kecil Arsitektur jaringan dibangun berdasarkan data, membentuk jaringan yang besar dan kemudian memangkas node-node dan koneksi-koneksi sampai menjadi jaringan terkecil yang bisa melakukan aplikasi.

  2. Dari jaringan kecil ke besar Dimulai dari pembangunan sebuah jaringan kecil kemudian secara bertahap dilakukan penambahan node-node tersembunyi.