Kecerdasan buatan (Artificial Intelligence) adalah bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan bisa lebih baik daripada yang dilakukan manusia.
1. Menurut T. Sutejo, Edi Mulyanto, dan Vincent Suhartono, 2010, Kecerdasan buatan merujuk pada mesin yang mampu berpikir, menimbang tindakan yang akan diambil dan mampu mengambil keputusan seperti yang dilakukan oleh manusia.
2. Menurut Anita Desiani dan Muhammad Arhami, 2005, Kecerdasan buatan merupakan cabang dari ilmu komputer yang konsern dengan pengautomatisasi tingkah laku cerdas.
3. Menurut Suyanto, 2014, Kecerdasan buatan adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bias melakukan aksi secara rasional berdasarkan hasil penalaran tersebut.
Cerdas adalah memiliki pengetahuan dan pengalaman, penalaran yaitu bagaimana membuat keputusan dan mengambil tindakan, serta moral yang baik. Agar mesin bisa cerdas atau bertindak seperti dan sebaik manusia, maka harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar.
Penerapan kecerdasan buatan digambarkan pada Gambar 2.1. Dua bagian utama yg dibutuhkan untuk aplikasi kecerdasan buatan adalah :
a. Basis pengetahuan (knowledgebase): berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya.
Gambar 2.1 Penerapan Kecerdasan Buatan (Puspitaningrum, 2006).
2.2 Jaringan Syaraf Biologi
Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Neuron meneruskannya pada neuron lain. Diperkirakan manusia memiliki 1012 neuron dan 6x1018 sinapsis. Dengan jumlah yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan mengontrol organ-organ tubuh dengan kecepatan yang lebih tinggi dibandingkan komputer digital (Puspitaningrum, 2006).
Jumlah dan kemampuan neuron berkembang seiring dengan pertumbuhan fisik manusia, terutama pada umur 0-2 tahun. Pada 2 tahun pertama umur manusia, terbentuk 1 juta sinapsis per detiknya.
Berikut ini adalah perbedaan terminologis antara jaringan syaraf biologis dan tiruan seperti terlihat pada Tabel 2.1.
Tabel 2.1 Perbedaan Jaringan Syaraf Biologis dengan Jaringan Syaraf Tiruan (Puspitaningrum, 2006)
2.3 Jaringan Syaraf Tiruan (JST)
Jaringan Syaraf Tiruan (JST) adalah suatu metode pembelajaran yang diinspirasi dari jaringan sistem pembelajaran biologis yang terjadi dari jaringan sel syaraf (neuron) yang terhubung satu dengan yang lainnya (Siang, 2005).
Berikut adalah beberapa definisi JST :
1. JST adalah suatu teknik pemrosesan informasi berbasis komputer yang mensimulasikan dan memodelkan sistem syaraf biologis.
2. Suatu model matematika yang mengandung sejumlah besar elemen pemroses yang diorganisasikan dalam lapisan-lapisan.
3. Suatu sistem komputasi yang dibuat dari sejumlah elemen pemroses yang sederhana dan saling diinterkoneksikan untuk memproses informasi melalui masukan dari luar dan mampu inresponsi keadaan yang dinamis.
4. JST adalah suatu teknologi komputasi yang berbasis hanya pada model syaraf biologis dan mencoba mensimulasikan tingkah laku dan kerja model syaraf.
5. JST adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa :
a. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron). b. Sinyal dikirirnkan diantara neuron-neuron melalui penghubung-penghubung. c. Penghubung antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal.
d. Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanyabukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.
Gambar 2.3 Model Struktur Neuron Jaringan Syaraf Tiruan (Siang, 2005)
Gambar 2.4 Model Struktur Jaringan Syaraf Tiruan (Siang, 2005)
2.3.1 Fungsi aktivasi
Fungsi aktivasi adalah salah satu parameter yang terpenting dalam jaringan syaraf tiruan. fungsi ini tidak hanya menentukan keputusan garis, disamping nilai fungsi aktivasi juga menunjukkan total signal dari node. Oleh karena pemilihan fungsi aktivasi tidak dapat secara sembarangan dipilih sebab sangat besar berdampak pada performan jaringan syaraf tiruan (Kusumadewi, 2004). Ada beberapa fungsi aktivasi yang sering digunakan dalam syaraf tiruan, antara lain :
a) Fungsi Linear
y = f(x) = x (2.1)
Gambar 2.5 Fungsi Linear (Kusumadewi, 2004) b) Fungsi Threshold
Fungsi threshold memetakan bobot input dengan nilai biner [0,1] seperti yang ditunjukkan dengan gambar 2.6 dimana :
y f x { (2.2)
Gambar 2.6 Fungsi Theshold (Kusumadewi, 2004)
c) Fungsi Piecewise Linear
Fungsi piecewise linear dapat juga ruang lingkup biner atau bipolar untuk batas saturasi output. fungsi output dapat ditulis sebagai berikut :
Y
1
X 0
-1
-1
1
Y
1
{
(2.3)
Gambar 2.7 Fungsi Piecewise Linear (Kusumadewi, 2004)
d) Fungsi Sigmoid
Ini type fungsi aktivasi yang mempunyai Garis S-shaped dan bentuk distribusi perubahan sigmois input dimana mempunyai nilai interval [-∞, ∞]
(2.4)
Gambar 2.8 Fungsi Sigmoid (Kusumadewi, 2004)
2.3.2 Single layer perceptron
Single layer perceptron hanya memiliki 1 lapisan dengan bobot-bobot terhubung dimana jaringan ini hanya menerima masukan kemudian secara langsung akan mengolahnya
0,5 0,5
menjadi keluaran tanpa harus melalui lapisan tersembunyi (Siang, 2005). Pada gambar berikut neuron-neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian. Semua unit masukan akan dihubungkan dengan setiap unit keluaran seperti terlihat pada Gambar 2.9.
Gambar 2.9 Single Layer Perceptron (Siang, 2005)
2.3.3 Multilayer perceptron
Gambar 2.10 Multilayer Perceptron (Popescu et al., 2009)
Multilayer perceptron tersusun oleh seperangkat sensor moder yang dikelompokkan dalam tiga tingkatan lapisan yang terdiri dari lapisan modul masukan, satu atau lebih perantara atau lapisan tersembunyi dari modul perhitungan dan lapisan keluaran modul yang mengkalkulasikan keluaran dari jaringan. semua lapisan berurutan terhubung secara lengkap. hubungan antara modul berbatasan lapisan relay sinyal keluaran dari satu lapisan ke berikutnya. Sebagai contoh, gambar diatas mempunyai 4 vektor dimensi, diikuti oleh 3 lapisan tersembunyi dan yang terakhir lapisan keluaran dimana terdiri dari 1 modul. jaringan ANN disebut dengan sebagai jaringan 4-3-1.
Jaringan saraf tiruan juga memiliki sejumlah besar kelebihan dibandingkan dengan metode perhitungan lainnya (sistem pakar, statistik, dll), yaitu :
2. Kemampuan merepresentasikan pengetahuan secara fleksibel. JST dapat menciptakan sendiri representasi melalui pengaturan diri sendiri atau kemampuan belajar (self organizing).
3. Kemampuan mentolerir suatu distorsi (error/fault ). Dimana gangguan kecil pada data dapat dianggap hanya noise (guncangan) belaka.
4. Kemampuan memproses pengetahuan secara efisien karena memakai sistem paralel, maka waktu yang diperlukan untuk mengoperasikannya menjadi lebih singkat. 5. Kemampuan untuk memperoleh pengetahuan melalui pembelajaran dari
pengalaman.
Walaupun dengan segudang kelebihan yang dimiliki, jaringan saraf tiruan tetap mempunyai sejumlah keterbatasan. Misal : Kekurangmampuannya dalam melakukan operasi-operasi numerik dengan presisi tinggi, operasi algoritma aritmatik, operasi logika, dan operasi simbolis serta lamanya proses pelatihan yang kadang-kadang membutuhkan waktu berhari-hari untuk jumlah data yang besar. Hal itu terjadi karena sulitnya mengukur performansi sebenarnya dari jaringan saraf tiruan itu sendiri.
Saat ini implementasi jaringan saraf tiruan sudah cukup luas digunakan mulai dari teknologi militer, satelit ruang angkasa, bisnis dan kesehatan.
2.4 Backpropagation
Algoritma pelatihan Backpropagation Neural Network (BPNN) pertama kali dirumuskan oleh Werbos dan dipopulerkan oleh Rumelhart & Mc.Clelland (Kusumadewi, 2004). Pada supervised learning terdapat pasangan data input dan output yang dipakai untuk melatih JST hingga diperoleh bobot penimbang (weight) yang diinginkan.
i) fase propagasi maju (feedforward) pola pelatihan masukan. Pola masukan dihitung maju mulai dari layer masukan hingga layer keluaran dengan fungsi aktivasi yang ditentukan;
ii) fase propagasi mundur (backpropagation) dari error yang terkait. Selisih antara keluaran dan target merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasi mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit dilayar keluaran;
iii) fase modifikasi bobot.
Ketiga tahapan tersebut diulangi terus-menerus sampai mendapatkan nilai error yang diinginkan. Setelah training selesai dilakukan, hanya tahap pertama yang diperlukan untuk memanfaatkan jaringan syaraf tiruan tersebut. Kemudian, dilakukan pengujian terhadap jaringan yang telah dilatih. Pembelajaran algoritma jaringan syaraf membutuhkan perambatan maju dan diikuti dengan perambatan mundur.
2.4.1 Fase propagasi maju
Selama propagasi maju, sinyal masukan (x1) dipropagasikan ke layer tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari unit tersembuyi (Z1) tersebut selanjutnya dipropagasi maju lagi ke layer tersembunyi berikutnya dengan fungsi aktivasi yang telah ditentukan. Dan seterusnya hingga menghasilkan keluaran jaringan (yk).
2.4.2 Fase propagasi mundur
Berdasarkan kesalahan t
k – yk dihitung faktor δk (k= 1, ..., m) yang dipakai untuk
mendistribusikan kesalahan di unit Y
k ke semua unit tersembunyi yang terhubung langsung dengan Y
k. δk juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran. Dengan cara yang sama, dihitung faktor δ
j di setiap layer tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit
tersembunyi di layer di bawahnya. Dan seterusnya hingga semua faktor δ di unit
tersembunyi yang terhubung langsung dengan unit masukan dihitung.
2.4.3Fase modifikasi bobot
Setelah semua faktor δ dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor δ neuron di layer atasnya. Sebagai contoh,
perubahan bobot garis yang menuju ke layer keluaran didasarkan atas yang ada di unit keluaran. Ketiga fase tersebut diulang-ulang hingga kondisi penghentian dipenuhi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah interasi atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang ditetapkan.
2.4.4Prosedur pelatihan
feedfoward (umpan maju) menggunakan gradien dari fungsi aktivasi untuk menentukan bagaimana mengatur bobot-bobot dalam rangka meminimumkan kinerja. Gradien ini ditentukan dengan menggunakan suatu teknik yang disebut backpropagation.
Pada dasarnya, algoritma pelatihan standar backpropagation akan menggerakkan bobot dengan arah gradien negatif. Prinsip dasar dari algoritma backpropagation adalah memperbaiki bobot-bobot jaringan dengan arah yang membuat fungsi aktivasi menjadi turun dengan cepat.
Langkah-langkah yang dilakukan pada prosedur pelatihan adalah:
Langkah 0 : Inisialisasi bobot keterhubungan antara neuron dengan menggunakan bilangan acak kecil misalnya (0.4 sampai +0.4, 0.5 sampai +0.5 dan -1sampai +1). (Puspitaningrum D. 2006).
Langkah 1 : Kerjakan langkah 2 sampai langkah 9 selama kondisi berhenti yang ditentukan tidak dipenuhi.
Langkah 2 : Kerjakan langkah 3 sampai langkah 8 untuk setiap pasangan pelatihan.
Propagasi Maju
Langkah 3 : Setiap unit masukan (xi, i 1,…., n) menerima sinyal masukan xi, dan menyebarkannya ke seluruh unit pada lapisan tersembunyi
Langkah 4 : Setiap unit tersembunyi xi, I 1,…….,p jumlahkan bobot sinyal masukannya :
(2.5)
voj = bias pada unit tersembunyi j aplikasikan fungsi aktivasinya untuk menghilangkan sinyal keluarannya, zj = f (z_inj), dan kirimkan sinyal ini keseluruh unit pada lapisan diatasnya (unit keluaran)
(2.6) wok = bias pada unit keluaran k dan aplikasikan fungsi aktivasinya
untuk menghitung sinyal keluarannya, yk = f(y_ink)
Propagasi Balik
Langkah 6 : tiap unit keluaran yk, k 1,…..,m menerima pola target yang saling berhubungan pada masukan pola pelatihan, hitung kesalahan informasinya,
(2.7) hitung koreksi bobotnya (digunakan untuk mempengaruhi wjk
nantinya),
(2.8)
hitung koreksi biasnya (digunakan untuk mempengaruhi wok nantinya)
(2.9)
dan kirimkan δk ke unit-unit pada lapisan dibawahnya,
Langkah 7 : Setiap unit lapisan tersembunyi zj, j 1,…..p jumlah hasil perubahan masukannya (dari unit-unit lapisan diatasnya),
(2.10)
Langkah 8 : Update bobot dan bias pada hubungan antar lapisan
(2.14) (2.15)
Langkah 9 : Tes kondisi terhenti
Backpropagation secara garis besar terdiri dari dua fase, fase maju dan fase mundur. Selama fase maju algoritma ini memetakan nilai masukan untuk mendapatkan keluaran yang diharapkan. untuk menghasilkan keluaran pola maka didapatkan dari rekapitulasi bobot masukan dan dipetakan untuk fungsi aktivasi jaringan. keluaran dapat dihitung sebagai berikut :
wij : bobot yang dihubungkan dari unit i ke unit j
a net,j : jaringan keluaran untuk j unit
θj : bias untuk j unit
Di dalam fase mundur, pola keluaran (aktual output) kemudian dibandingkan dengan keluaran yang dikehendaki dan sinyal error dihitung untuk masing – masing output. Sinyal-sinyal kemudian merambat mundur dari lapisan output ke masing-masing unit dalam lapisan lapisan transisi memberikan kontribusi langsung ke output, dan bobot disesuaikan iterasi selama proses pembelajaran, kemudian error diperkecil selama descent direction. fungsi error pada output neuron digambarkan sebagai berikut :
dimana,
n : angka pada modul keluaran didalam lapisan output tk : keluaran yang dikendaki dari keluaran unit k
ok : keluaran jaringan dari keluaran unit k
Parameter α merupakan laju pemahaman yang menentukan kecepatan iterasi. Nilai α
terletak antara 0 dan 1 0 ≤ a ≤ 1 . Semakin besar harga α, semakin sedikit iterasi yang
dipakai. Akan tetapi jika harga α terlalu besar, maka akan merusak pola yang sudah benar sehingga pemahaman menjadi lambat. Satu siklus pelatihan yang melibatkan semua pola disebut epoch.
Pemilihan bobot awal sangat mempengaruhi jaringan syaraf tiruan dalam mencapai minimum global (atau mungkin lokal saja) terhadap nilai error (kesalahan) dan cepat tidaknya proses pelatihan menuju kekonvergenan. Apabila bobot awal terlalu besar maka input (masukan) ke setiap lapisan tersembunyi atau lapisan output (keluaran) akan jatuh pada daerah dimana turunan fungsi sigmoidnya akan sangat kecil. Apabila bobot awal terlalu kecil, maka input (masukan) ke setiap lapisan tersembunyi atau lapisan output (keluaran) akan sangat kecil. Hal ini akan menyebabkan proses pelatihan berjalan sangat lambat. Biasanya bobot awal diinisialisasi secara random dengan nilai antara -0.5 sampai 0.5. Setelah pelatihan selesai dilakukan, jaringan dapat dipakai untuk pengenalan pola. Keuntungan dari metode backpropagation yaitu :
1. Backpropagation sangat luas digunakan dalam paradigma jaringan saraf, dan berhasil diaplikasikan dalam berbagai bidang. Misalnya : pengenalan pola militer, diagnosa kedokteran, klasifikasi gambar, menerjemahkan kode, dan dalam deteksi jenis penyakit paru.
2. Backpropagation dapat digunakan untuk dua atau lebih lapisan dengan bobot dan menggunakan aturan pengalaman belajar.
3. Pembelajaran dan penyesuaian prosedur didasari konsep yang relatif sederhana. 4. Dapat memisahkan pola yang terpisah secara linear maupun pola yang terpisah
Adapun kelemahannya yaitu : Waktunya Konvergen, karena pelatihan memerlukan ratusan atau ribuan contoh dalam kumpulan pelatihan, dan mungkin membutuhkan waktu komputasi sepanjang hari (atau lebih) untuk menyelesaikan pelatihan.
2.5 Learning Vector Quantization (LVQ)
LVQ adalah jaringan single layer yang terdiri dari dua lapisan yaitu lapisan input dan output (Nurkhozin, dkk, 2011). Menurut Kusumadewi (2003:258), Learning Vector Quantization (LVQ) adalah suatu metode untuk melakukan pembelajaran pada lapisan kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor-vektor input.
Dengan kata lain, LVQ merupakan jaringan syaraf dengan tipe arsitektur jaringan lapis-tunggal umpan maju (Single Layer Feedforward) yang terdiri atas unit masukan dan unit keluaran. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor-vektor masukan. Kelas-kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung pada jarak antara vektor-vektor masukan. Jika 2 vektor masukan mendekati sama maka lapisan kompetitif akan meletakkan kedua vektor masukan tersebut ke dalam kelas yang sama.
Arsitektur LVQ sama halnya dengan SOM (Self Organizing Map), LVQ juga terdiri dari 2 lapisan, input ( ) dan output ( ), dimana antara lapisannya dihubungkan oleh bobot tertentu yang sering disebut sebagai vektor pewakil ( ). Informasi yang diberikan ke jaringan pada saat pembelajaran bukan hanya vektor data saja melainkan informasi kelas dari data juga ikut dimasukkan.
Gambar 2.11 Learning Vector Quantization (Kusumadewi, 2003)
Keterangan :
X = vektor masukan (X1…, Xn…, Xn) W = vektor bobot atau vektor pewakil
|X-W| = selisih nilai jarak Euclidian antara vektor input dengan vektor bobot F = lapisan kompetitif
Y = keluaran (output)
Ketika hasil pemrosesan jaringan memberikan hasil klasifikasi yang sama dengan informasi kelas yang diberikan di awal, maka vektor pewakil akan disesuaikan agar lebih dekat dengan vektor masukan. Sebaliknya ketika hasil klasifikasi tidak sama dengan informasi kelas yang diberikan di awal, maka vektor pewakil akan disesuaikan agar menjauhi vektor masukan.
Algoritma LVQ adalah sebagai berikut:
Langkah 1 : Tetapkan: bobot ( ), maksimum epoch ( . h),error minimum yang diharapkan ( ), learning rate(�).
Langkah 3 :Tetapkan kondisi awal : a. h = 0;
b. = 1.
Langkah 4 :Kerjakan jika ( < . ) atau (� > ): a. h = h + 1;
b. kerjakan untuk = 1 sampai .
Langkah 5 : Tentukan � sedimikian hingga || X –Wj || minimum (sebut sebagai Cj).
Langkah 6 : Perbaiki Wj dengan ketentuan: a. jika � = � maka:
( ) = ( ) + �( - ( )); b. jika �≠� maka:
( ) = ( ) - �( - ( )).
2.6 Perbandingan Algoritma Backpropagation Dengan LVQ
Tabel 2.2 Perbandingan Algoritma Backpropagation Dengan LVQ
Parameter Backpropagation LVQ
Alur Pembelajaran
Menggunakan 2 alur, yaitu alur maju (forward propagation) dan
alur mundur (backpropagation)
Menggunakan 1 alur yaitu alur maju
Memiliki 2 nilai bobot yaitu bobot pada hidden layer (z) dan bobot
pada output layer (w).
Memiliki 1 nilai bobot yaitu bobot pada keluaran (w). Nilai awal setiap bobot diambil dari
nilai random yang cukup kecil.
Nilai awal bobot diambil dari salah satu data masukan untuk
setiap kelas. Perubahan bobot dihitung dengan
alur mundur (backpropagation), yaitu dengan mengubah nilai bobot
pada layer output (w), kemudian mengubah nilai bobot pada hidden
layer (z).
nilai Mean Square Error (MSE) masih lebih kecil dari minimal eror.
Dilakukan selama perulangan
Berupa nilai bobot pada hidden layer (z) dan bobot pada output
layer (w).
Berupa nilai bobot (w).
Hasil Pengenalan
Berupa angka biner dari nilai kelas yang dikenali.