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 impulsimpluls 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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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: 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. 2. Suatu unit penjumlahan yang akan menjumlahkan input-input sinyal yang sudah dikalikan dengan bobotnya. 3. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan diteruskan ke neuron lain atau tidak.
Neuron buatan (artificial neuron) dirancang untuk menirukan karakteristik neuron biologis [2].
Input
x1
wk1
x2
wk2
. . .
. . .
xn
uk �
Fungsi Penjumlahan
wkn
Bobot sinapsis
Gambar 2.1 Neuron buatan sederhana Keterangan: x1, x2, ..., xn
= input berupa sinyal yang masuk kedalam sinapsis neuron
wk1, wk2, ... , wkn = bobot penghubung sinapsis yang menyimpan pola pembelajaran
Universitas Sumatera Utara
∑
= blok penjumlahan
uk
= 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 dari neuroneuron yang lain
Fungsi aktivasi
�
bobot Output
Output ke neuroneuron yang 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
Universitas Sumatera Utara
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].
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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 bobotbobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung
Universitas Sumatera Utara
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
X1
Wi1
Y1
Wn1
W1j
Xi
Yj
Wij
Wnj W1m
Xn
Wim
Ym
Wnm
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 w11,..., wnm
= 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
Universitas Sumatera Utara
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
X1
W11
Y1 Wj1
Vi1 Vn1
Z1
Wp1 W1k
V1j
Xi
Yk
Wjk
Zj
Vij
Wpk V1p Vip
Xn
W1m
Zp
Vnj 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 v11,..., vnp
= bobot dari lapisan input ke lapisan tersembunyi
w11,..., wpm
= 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
Universitas Sumatera Utara
saling berkompetisi sehingga hanya satu diantaranya yang aktif, prinsip ini disebut winner-takes-all atau yang menanglah yang mengambil bagiannya. 1
1 -ɛ
A1
-ɛ
-ɛ
Ai
Am
-ɛ
-ɛ
-ɛ
1
Aj
1
Gambar 2.5 Arsitektur jaringan syaraf tiruan dengan lapisan kompetitif Keterangan: A1, Ai,Aj, Am
= 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).
Universitas Sumatera Utara
Fungsi undak biner (hard limit) dirumuskan sebagai: 0, jika x≤ 0 y= 1, jika x>0
y 1
0
x
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:
y=
0, jika x< 𝜃𝜃 1, jika x≥ 𝜃𝜃
y 1
0
θ
x
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.
Universitas Sumatera Utara
Fungsi Symetric Hard Limit dirumuskan sebagai: 1, jika x>0 y=
0, jika x= 0
-1, jika x< 0
y 1
0
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: y=
1, jika x≥ 𝜃𝜃
-1, jika x< 𝜃𝜃
y 1
0
θ
x
-1
Gambar 2.9 Fungsi aktivasi: Bipolar (threshold)
5. Fungsi Linear (identitas) Fungsi linear memiliki nilai output yang sama dengan nilai inputnya.
Universitas Sumatera Utara
Fungsi linear dirumuskan sebagai: y=x y 1
-1
0
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; y=
jika x≥ 0,5
x+0,5; jika −0,5 ≤x≤0,5 0;
jika x≤ −0,5 y 1
-0,5
0
0,5
x
Gambar 2.11 Fungsi aktivasi: Saturating Linear
Universitas Sumatera Utara
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: jika x≥ 1
1; y=
jika −1 ≤x≤1
x;
jika x≤ −1
-1;
y 1
-1
0
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: y = 𝑓𝑓(𝑥𝑥)=
1
1+ 𝑒𝑒 −𝑥𝑥
dengan 𝑓𝑓′(𝑥𝑥) = 𝑓𝑓(𝑥𝑥)[1 − 𝑓𝑓(𝑥𝑥)]
Universitas Sumatera Utara
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: y = 𝑓𝑓(𝑥𝑥)=
2
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: y = 𝑓𝑓(𝑥𝑥)=
𝑒𝑒 𝑥𝑥 − 𝑒𝑒 −𝑥𝑥
𝑒𝑒 𝑥𝑥 + 𝑒𝑒
atauy = 𝑓𝑓(𝑥𝑥)= −𝑥𝑥
1 − 𝑒𝑒 −𝑥𝑥
1 + 𝑒𝑒 −𝑥𝑥
dengan 𝑓𝑓′(𝑥𝑥) =[1 + 𝑓𝑓(𝑥𝑥)][1 − 𝑓𝑓(𝑥𝑥)]
Universitas Sumatera Utara
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 thresholdmenjadi 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
Universitas Sumatera Utara
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 polapola 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:
Universitas Sumatera Utara
1. Aturan Pengkoreksian Error Prinsip dasar dari aturan pembelajaran pengkoreksian erroradalah memodifikasi bobot-bobot koneksi dengan menggunakan sinyal kesalahan (output targetoutput 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].
Universitas Sumatera Utara
Input
x1
w1
x2
w2
. .
xn
. . .
y
y_in � 𝑥𝑥𝑥𝑥 + 𝑏𝑏
F(y_in)
Fungsi Penjumlahan
wn Bobot sinapsis
Gambar 2.15 Arsitektur jaringan perceptron
Keterangan: x1, x2,..., xn
= sinyal-sinyal input
w1, w2,..., wn
= bobot-bobot sinapsis
∑ xw + b
= fungsi penjumlahan
F(y_in)
= fungsi aktivasi
y
= sinyal output
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].
Universitas Sumatera Utara
V11
X1
V1j
V1p
W11
Z1 W1m
Vi1
Wj1
Vij
Xi
Wjk
Zj
Vip
Wp1 Vnj
Lapisan Input
Yk
Wjm
Vn1
Xn
Y1
W1k
Vnp
Wpk
Ym
Zp Wpm
Lapisan Tersembunyi
Lapisan Output
Gambar 2.16 Arsitektur jaringan lapis banyak (multilayer)
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
v11,..., vnp
= bobot dari lapisan input ke lapisan tersembunyi
w11,..., wpm
= bobot dari lapisan tersembunyi ke lapisan output
Perceptron multilapis adalah jaringan saraf tiruan umpan maju (feedforward neural network) dan merupakan jaringan yang pembelajarannya terawasi sehingga ke 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].
Jaringan dengan perceptron lapis banyak dengan metode back-propogation (Backpropogation Multi Layer Perceptron) merupakan satu jenis JST yang sering digunakan dalam berbagai aplikasi [16].
Universitas Sumatera Utara
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 bobotbobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobotbobotnya 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.
Universitas Sumatera Utara
2.3.1 Arsitektur Jaringan Backpropagation
...
Y1
...
Yk
Ym
w11
w01
w0k
w1k
w0m
wj1
...
Z1
1
w1m
wjk
wpk wjm
...
Zj
wpm
wp1 Zp
v11
v01
v0j
v1j
v0p 1
v1p
...
X1
vi1
vij
vnj vip
Xi
vnp
vn1
...
Xn
Gambar 2.17 Arsitektur Jaringan Backpropagation dengan Satu Lapisan Tersembunyi
Keterangan: X1, Xi..., Xn
= unit input
Z1, Zj...,Zp
= unit lapisan tersembunyi (hidden layer)
Y1, Yk...,Ym
= unit output
v11,...,vnp
= bobot dari lapisan input ke lapisan tersembunyi
W11,...,wpm
= bobot dari lapisan tersembunyi ke lapisan output
1
= bias
v01,v0j,...,v0p
= bias dari lapisan input ke lapisan tersembunyi
w01, w0k,...,w0m
= bias dari lapisan tersembunyi ke lapisan output
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 (zj) ke tiap unit output. Tiap unit output (Yk) menghitung aktivasinya (yk) untuk membentuk respon dari net untuk pola input yang diberikan. Selama training, tiap unit output membandingkan aktivasi yang telah dihitung yk dengan nilai target tkuntuk medeterminasi asosiasi eror untuk pola dan unit tersebut.
Universitas Sumatera Utara
Berdasarkan eror ini, faktor δk(k = 1,...,m) dihitung. δkdigunakan untuk distribusi erortersebut pada unit output Ykkembali ke semua unit pada lapisan sebelumnya (unitunit tersembunyi yang terhubung ke Yk). Ini juga digunakan (nantinya) untuk mengupdatebobot-bobot diantara lapisan output dan lapisan tersembunyi. Dengan cara yang sama, faktor δj (j = 1,...,p) dihitung untuk tiap unit tersembunyi Zj. Tidak perlu merambatkan eror kembali ke lapisan input, tetapi δj digunakan untuk meng-updatebobot-bobot diantara lapisan tersembunyi dan lapisan input. Setelah semua faktor δ dideterminasi, bobot-bobot untuk semua lapisan disesuaikan secara simultan. Penyesuaian ke bobot wjk (dari unit tersembunyi Zjke unit ouput Yk) didasarkan pada faktor δk dan aktivasi zj dari unit tersembunyi. Penyesuaian bobot ke vij(dari unit input Xi ke unit tersembunyi Zj) didasarkan pada faktor δj dan aktivasi xidari unit input.
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). y = 𝑓𝑓(𝑥𝑥)= dengan 𝑓𝑓′(𝑥𝑥) =
2
1 + 𝑒𝑒 −𝑥𝑥
− 1
[1+𝑓𝑓(𝑥𝑥)][1−𝑓𝑓(𝑥𝑥)] 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
Universitas Sumatera Utara
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 (Xi, i = 1,2,3,…,n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi). 2) Tiap-tiap unit tersembunyi (Zj, j = 1,2,3,..,p) menjumlahkan sinyalsinyal input berbobot: 𝑧𝑧_𝑖𝑖𝑖𝑖 𝑗𝑗 = 𝑣𝑣0𝑗𝑗 + ∑𝑛𝑛𝑖𝑖=1 𝑥𝑥𝑖𝑖 𝑣𝑣𝑖𝑖𝑖𝑖
......(2.1)
dimana v0 =bias dan v = bobot. Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: zj = 𝑓𝑓(𝑧𝑧_𝑖𝑖𝑖𝑖 𝑗𝑗 )
......(2.2)
dan kirimkan sinyal tersebut ke semua unit lapisan atasnya (unitunit output). 3) Tiap-tiap unit output (Yk, k=1,2,3,…,m) menjumlahkan sinyalsinyal input berbobot:
Universitas Sumatera Utara
𝑝𝑝 𝑦𝑦_𝑖𝑖𝑖𝑖𝑘𝑘 = 𝑤𝑤0𝑘𝑘 + ∑𝑗𝑗 =1 𝑧𝑧𝑗𝑗 𝑤𝑤𝑗𝑗𝑗𝑗
(2.3)
dimana w0 = bias dan v = bobot. Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: yk = 𝑓𝑓(𝑦𝑦_𝑖𝑖𝑖𝑖𝑘𝑘 )
(2.4)
Dan kirimkan sinyal tersebut ke semua unit di lapisan sisanya (unitunit output). b. Untuk tiap-tiap pasangan pelatihan, lakukan: Backpropagation: 1.
Tiap-tiap unit output (Yk,k = 1,2,3,…,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi erornya δk = (tk – Yk) 𝑓𝑓’ (𝑦𝑦_𝑖𝑖𝑖𝑖𝑘𝑘 )
......(2.5)
dimana t = target output. Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperoleh nilai wjk): Δwjk = αδkzj
......(2.6)
dimana α = learning rate Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k): Δw0k = αδk......(2.7) Kirimkanδkini ke unit-unit yang ada di lapisan bawahnya. 2.
Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…,p) menjumlahkandelta inputnya (dari unit-unit yang berada pada lapisan diatasnya): 𝛿𝛿_𝑖𝑖𝑖𝑖𝑗𝑗 = ∑𝑚𝑚 𝑘𝑘=1 𝛿𝛿𝑘𝑘 𝑤𝑤𝑗𝑗𝑗𝑗
......(2.8)
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi eror: 𝛿𝛿𝑗𝑗 = 𝛿𝛿_𝑖𝑖𝑖𝑖𝑗𝑗 𝑓𝑓′(𝑧𝑧_𝑖𝑖𝑖𝑖 𝑗𝑗 )
......(2.9)
Universitas Sumatera Utara
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij): Δvij = αδjxi
......(2.10)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai vij) Δv0j = αδj
......(2.11)
c. Perbaharui bobot dan biasnya: 1.
Tiap-tiap unit output (Yk, k=1,2,3,…m) memperbaiki bias dan bobotnya (j = 0,1,2,…,p): wjk(baru) = wjk(lama) + Δwjk
(bobot) ...... (2.12)
w0k(baru) = w0k(lama) + Δw0k(bias)...... (2.13) 2.
Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…p) memperbaiki bias dan bobotnya (i = 0,1,2,…,n): vij(baru) = vij(lama) + Δvij
v0j(baru) = v0j(lama) + Δv0j(bias)
(bobot)
......(2.14)
......(2.15)
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 xi(dari unit ke-1 sampai unit ke-n pada lapisan input; i=1,...,n) menerima sinyal input pengujian xike semua unit pada lapisan di atasnya (unit-unit tersembunyi).
Universitas Sumatera Utara
3. Langkah 3: Setiap unit di lapisan tersembunyi zj(dari unit ke-1 sampai unit ke-p; i=1,...,p) menghitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input xi. Sinyal output dari lapisan tersembunyi kemudian dikirim ke semua unit pada lapisan di atasnya. 𝑧𝑧_𝑖𝑖𝑖𝑖 𝑗𝑗 = 𝑣𝑣0𝑗𝑗 + ∑𝑛𝑛𝑗𝑗=1 𝑥𝑥𝑖𝑖 𝑣𝑣𝑖𝑖𝑖𝑖 Zj = 𝑓𝑓(𝑧𝑧_𝑖𝑖𝑖𝑖 𝑗𝑗 )
4. Langkah 4: Setiap unit output yk(dari unit ke-1 sampai unit ke-m; j=1,...,p; k=1,...,m) menghitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input bagi lapisan ini, yaitu sinyal-sinyal input zjdari lapisan tersembunyi. 𝑝𝑝 𝑦𝑦_𝑖𝑖𝑖𝑖𝑘𝑘 = 𝑤𝑤0𝑘𝑘 + ∑𝑗𝑗 =1 𝑧𝑧𝑗𝑗 𝑤𝑤𝑗𝑗𝑗𝑗
Yk = 𝑓𝑓(𝑦𝑦_𝑖𝑖𝑖𝑖𝑘𝑘 )
5. Langkah 5:Menentukan nilai keluaran berdasarkan threshold(nilai ambang) yang telah ditetapkan (merupakan langkah tambahan). Dalam penelitian ini digunakan thresholddan output: if Yk< -0,5 then Yk= -1, else Yk= 1
elseif-0,5≤Yk≤ 0,5 then Yk= 0,
Siklus dari satu kali pola pelatihan disebut epoch. Dalam penelitian bayaknya epochmaksimal pada jaringan bisa diatur sebagai batasan pelatihan dimana pelatihan jaringan boleh dihentikan.
Keterangan: 1. Xi (i = 1,2,...,n)
: unit input
2. xi
: sinyal input
3. Zj (j = 1,2,...,p)
: unit tersembunyi
4. zj
: sinyal dari lapisan tersembunyi ke lapisan output
5. Yk (k=1,2,...,m)
: unit output
6. yk
: sinyal output
Universitas Sumatera Utara
7. voj
: bias dari lapisan input ke lapisan tersembunyi
8. w0k
: bias dari lapisan tersembunyi ke lapisan output
9. tk
:target output
10. δk
: informasi error yang diperoleh pada lapisan output yang akan dirambatkan ke lapisan tersembunyi
11. δj
: informasi error yang diperoleh pada lapisan tersembunyi
12. α
: laju pemahaman(learning rate)
2.3.4 Pemilihan Bobot dan Bias Awal
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]. Nguyen dan Windrow mengusulkan cara membuat inisialisasi bobot dan bias ke unit tersembunyi sehingga menghasilkan iterasi lebih cepat. Dimana:
n = jumlah unit masukan p = jumlah unit tersembunyi 𝛽𝛽 = faktor skala = 0.7 𝑛𝑛�𝑝𝑝
Algoritma Nguyen Windrow untuk setiap unit tersembunyi (j = 1,...,p) adalah sebagai berikut: 1. Inisialisasi semua bobot dengan (vji(lama)) dengan bilangan acak dalam interval [-0.5, 0.5] 2 2. Hitung || vj|| = �𝑣𝑣𝑗𝑗21 + 𝑣𝑣𝑗𝑗22 + … + 𝑣𝑣𝑗𝑗𝑗𝑗
3. Bobot yang dipakai sebagai inisialisasi = vji =
𝛽𝛽 𝑣𝑣𝑗𝑗𝑗𝑗 (𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 ) || 𝑣𝑣𝑗𝑗 ||
Universitas Sumatera Utara
4. Bias yang dipakai sebagai inisialisasi = vj0= bilangan acak antara −𝛽𝛽 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.
Universitas Sumatera Utara