Professional Documents
Culture Documents
c
Definisi :
Artificial Neural Network (ANN) dalam bahasa Indonesia disebut juga Jaringan Saraf
Tiruan (JST) atau pada umumnya disebut juga hanya Neural Network adalah sebuah sistem
jaringan yang dimodelkan berdasarkan sistem jaringan saraf manusia. Tujuan dari dibuatnya
Neural Network adalah membuat sebuah sistem yang dapat belajar sendiri sesuai dengan data
dan kondisi lingkungan yang kita berikan serta dapat memodelkan data statistic (curve fitting)
non-linier, permodelan yang kompleks tersebut menghubungkan antara input dan output untuk
menemukan pola-pola data, seperti metode curve fitting.
Keuntungan :
Kerugian :
Neural Network bekerja pada 2 mode, yang pertama adalah ͚proses training͛ dan yang
kedua adalah ͚proses execution͛. Pada proses training kita akan melatih sistem dengan
memberinya sebanyak mungkin contoh data ͚input͛ serta data ͚output͛ yang akan dihasilkan
oleh data input tersebut.
Contoh, misalkan kita memberikan data training pada sistem untuk proses pembagian;
Data Input_1= 8
Data Input_2 = 2
Output = 4
Maka, kita telah mengajarkan pada sistem apabila inputan terdiri dari angka ͚8͛ dan ͚2͛,
maka outputnya adalah ͚4͛. Akan tetapi, jika hanya diberikan satu contoh, sistem tidak akan
belajar dengan baik. Sebaiknya diberikan data training sebanyak mungkin, agar sistem dapat
belajar dengan baik dan handal.
Struktur asitektur dari Neural Network pada umumnya terdiri dari 3 layer, yang menjadi
ciri khas dari sistem NN ini, yaitu ͞Input Layer͟, ͞Hidden Layer͟, dan ͞Output Layer͟. Tiap Layer
terdiri dari unit-unit node yang jumlahnya dapat kita tentukan sendiri, bias dibayangkan bahwa
tiap node pada sistem Neural Network ibaratnya seperti neuron pada otak manusia.
nput Layer :
Input Layer, merupakan data-data yang kita masukkan sebagai data training pada sistem
ANN. Banyaknya jumlah node pada input layer tergantung pada jumlah data input yang telah
kita masukkan ke dalam sistem.
Hidden Layer :
Jumlah node pada hidden layer sangat bervariasi, akan tetapi pada umumnya jumlah
node pada hidden layer adalah 5 yang dianggap sudah mencukupi untuk memecahkan berbagai
macam kasus. Ada juga teori yang dapat menentukan banyak-nya node pada hidden layer
denga tepat.
Output Layer :
Banyak-nya node pada output layer tergantung dari sistem ANN itu sendiri. Data output
juga termasuk dari data training yang sebelumnya telah diberikan.
Konsep dari sistem ANN yang penting adalah nilai Error minimum yang diharapkan.
Pada saat ANN di-inisialisasi akan dibangkitkan nilai random untuk koneksi antar node dari
suatu layer dengan layer sesudahnya, jadi antar node-node di hidden layer saling terkoneksi
satu sama lain dengan node-node di hidden layer, dan antar node-node di hidden layer akan
saling terkoneksi satu sama lain dengan node-node pada output layer. Nilai koneksi antar node
tersebut sering disebut 'bobot'. Nilai bobot inilah yang akan menentukan kecerdasan suatu
sistem. Pada saat proses training, nilai bobot tersebut akan terus berubah sehingga didapatkan
kesesuaian antara input dengan output dengan Error minimum. Dengan kata lain, pada proses
training kita akan menentukan nilai minimum error yang bisa di tolerir oleh sistem, sistem tidak
akan memberikan kepastian jawaban untuk suatu kasus yang tidak pernah dilatihkan
kepadanya, pasti ada nilai Error dari jawaban sistem dengan jawaban yang seharusnya, nilai
Error tersebut yang harus di-definisikan oleh kita sebelum melatih sistem sehingga sistem bisa
menjawab dengan tingkat kebenaran semaksimal mungkin (misalnya : tingkat kebenaran sistem
99,9999% dengan nilai Error 0.0001).
Dengan menggunakan library, dari FANN (Fast Artificial Neural Network) ͞fann.h͟
[Cyb3rh3b@pinguin.stttelkom.ac.id]$ cat sum_training.c
#include "fann.h"
/* Jumlah max pengulangan (Epoch) pada proses training apabila Minimal Error
didapat */
/* Baca data latih dari file sum.data dan lakukan proses training
terhadap seluruh data latih tersebut */
fann_save(ann, "sum_data.net");
fann_destroy(ann);
return 0;
}
Kemudian compile file sehingga menghasilkan program executable dengan nama sum_training.
Langkah selanjutnya adalah membuat file sum.data yang berisikan data training untuk sistem
tersebut.
[Cyb3rh3b@pinguin.stttelkom.ac.id]$ cat sum.data
10 2 1
0.1 0.1
0.2
0.2 0.3
0.5
0.2 0.5
0.7
0.8 0.1
0.9
0.6 0.2
0.8
0.7 0.2
0.9
0.1 0.2
0.3
0.4 0.1
0.5
0.5 0.4
0.9
0.5 0.1
0.6
Begitu seterusnya. Data yang dimasukan pada sistem ANN umumnya harus dinormalisasi
terlebih dahulu sehingga nilainya berkisar antara 0 s/d 1 (tidak boleh lebih dari 1). Sistem akan
membaca seluruh data latih tersebut dan diulang maksimal sebanyak 500000 kali (dalam ANN
disebut Epoch) atau jika kondisi Minimum Error (0.000001) telah ditemukan. Setelah proses
training dilakukan, maka seluruh nilai bobotnya akan disimpan pada file (dalam contoh program
akan di simpan pada file sum_data.net).
Langkah selanjutnya adalah melakukan proses testing terhadap hasil latihan sistem dengan
memberikannya test berupa dua buah input dan melihat hasil outputnya, berikut program
sederhana untuk test hasil latihan sistem diatas:
#include <stdio.h>
#include "floatfann.h"
int main()
fann_type *calc_out;
fann_type input[2];
/* Load data hasil training yang sebelumnya telah di simpan pada file */
fann_destroy(ann);
return 0;
Program tersebut akan meload data hasil training dari file "sum_data.net" dan melakukan test
dengan data input "0.3" dan "0.4", bisa dilihat bahwa data input "0.3" dan "0.4" tidak terdapat
diantara data latihan yang diberikan pada sistem, dan diharapkan sistem dapat melakukan
operasi penjumlahan dari kedua input tersebut. Compile code diatas menjadi program yang
executable:
[Cyb3rh3b@pinguin.stttelkom.ac.id]$ gcc -lm -lfann sum_test.c -o sum_test
[Cyb3rh3b@pinguin.stttelkom.ac.id]$ ./sum_run
sum test (0.300000,0.400000) -> 0.707560
Hasil outputnya bernilai 0.707 ~ 0.7 (mendekati 0.7). Seperti yang dijelaskan diatas bahwa
jawaban dari sistem ANN tidak pasti benar 100%, ada faktor Errornya, sehingga nilainya berupa
nilai pendekatan. Tingkat keberhasilan sistem ANN juga tergantung dari jenis data latih serta
proses training yang diberikan, jika pada saat proses training kita memberikan data latih yang
kurang akurat atau jumlahnya kurang memadai maka tingkat kebenaran dari ANN tidak akan
bagus, semua tergantung bagaiman cara kita melatih sistem tersebut.