ARTIFICIAL NEURAL NETWORK

Sabtu, 01 Oktober 2016

ARTIFICIAL NEURAL NETWORK

PENGERTIAN ANN
Artificial Neural Network (Jaringan Saraf Tiruan) sudah mulai
banyak dimanfaatkan sebagai solusi terhadap berbagai macam kasus yang
muncul beberapa dekade terakhir, sejarah ANN (Artificial Neural Network)
menunjukan pembahasan terhadap masalah ini muncul sekitar awal tahun
1900-an namun implementasinya baru banyak muncul beberapa dekade terakhir.
Pemanfaatan ANN juga mulai merambah dunia security khususnya untuk
memecahkan masalah-masalah yang sifatnya tidak tetap sehingga sulit untuk
di pecahkan dengan menggunakan tehnik pemrograman konvensional yang ada
saat ini.

Artificial Neural Network merupakan suatu jaringan saraf tiruan yang
dibangun untuk meniru cara kerja otak manusia. Dengan jaringan saraf tiruan
maka kita dapat memberikan semacam kecerdasan pada sistem, dimana sistem
tersebut akan diberikan waktu untuk 'belajar' dan kemudian diharapkan dari
proses belajarnya, sistem bisa memberikan solusi dari suatu kasus.
Analoginya seperti mengajarkan seorang anak kecil untuk mengetahui bentuk
kursi, kita akan menunjukan pada anak tersebut berbagai macam bentuk kursi
dan bukan kursi. Kita akan memperlihatkan mana saja yang termasuk kursi dan
mana yang bukan, proses ini disebut proses training. Setelah proses training
selesai, maka tiba waktunya untuk melakukan test terhadap anak tersebut
dengan menunjukan suatu bentuk kursi dan menanyakan apakah itu termasuk kursi
atau bukan. Hal yang menarik adalah pada saat kita menunjukan suatu bentuk
kursi yang belum pernah diajarkan pada anak tersebut dan apabila itu memang
variasi dari kursi (dengan ciri misalnya: kakinya ada 4, ada pegangan
tangannya, bentuknya seperti angka 4, dll) maka dia dapat mengambil
kesimpulan bahwa benda tersebut adalah kursi, apabila jawaban si anak salah
maka kita kembali melatihnya (proses training) dengan memasukan bentuk kursi
yang baru tadi kedalam data latih, sehingga si anak dapat mengambil
kesimpulan bahwa benda tersebut (dan yang mirip benda tersebut dimasa yang
akan datang) adalah kursi.





PENERAPAN AAN PADA SECURITY

Pemanfaatan ANN juga sudah mulai banyak dibicarakan pada dunia
security, salah satu impelementasinya diterapkan pada IDS (Intrusion
Detection System).  Teknik IDS yang umumnya digunakan saat ini adalah
menggunakan signature serangan untuk menentukan apakah suatu paket termasuk
dalam jenis serangan tertentu atau bukan, misalnya rule Snort yang merupakan
salah satu IDS opensource yang sangat populer:

  "alert icmp $EXTERNAL_NET any <> $HOME_NET any (msg:"DDOS Stacheldraht
   handler->agent (ficken)"; content:"ficken"; itype:0;icmp_id:6667;
   reference:url,staff.washington.edu/dittrich/misc/stacheldraht.analysis;
   classtype:attempted-dos; sid:1856; rev:2;)"

apabila ada paket yang melintasi jaringan dan ditangkap oleh IDS (dalam hal
ini Snort) dan packet tersebut memenuhi kriteria rules diatas maka IDS akan
dapat langsung memutuskan bahwa telah terjadi suatu jenis serangan DDOS yang
memanfaatkan tools stacheldracht, dan snort akan langsung mengambil tindakan
yang telah ditetapkan sebelumnya (misal: mengirimkan pesan alert via sms/mail
ke administrator sistem).

        Yang menjadi masalah adalah jenis serangan akan terus berkembang dan
umumnya signature serangan tersebut baru akan diketahui apabila telah jatuh
'korban' oleh serangan baru tersebut, hal ini disebabkan jenis serangan baru
belum terdapat datanya di database signature IDS. Untuk mengatasi masalah
tersebut maka saat ini mulai banyak dikembangkan suatu IDS yang menggunakan
teknologi ANN sehingga diharapkan IDS dapat mengenali suatu jenis serangan
baru (walaupun sifatnya baru 'memperkirakan') dan mengambil langkah yang
sesuai, sehingga sistem dapat lebih terlindungi dari jenis serangan baru
tersebut.

        ANN sifatnya memperkirakan, yang artinya sistem akan diberikan suatu
kecerdasan sehingga apabila ada jenis serangan baru yang belum pernah
dilatihkan pada sistem, dia bisa berpikir "sepertinya ini termasuk dalam
kategori jenis serangan DOS stacheldracht" misalnya. Dan kecerdasan sistem
tergantung pada proses trainingnya, semakin baik jenis data yang dilatihkan
maka semakin baik kecerdasan sistem tersebut.











DASAR-DASAR ALGORITMA AAN


        Dasar teori yang menjelaskan implementasi ANN sangat banyak di
Internet, intinya...mesin ANN bekerja pada 2 mode, yang pertama adalah
'training' dan yang kedua adalah 'execution'. Pada saat proses training,
kita akan melatih sistem dengan memberikannya sebanyak mungkin contoh
data 'input' serta 'output' yang akan dihasilkan oleh data input tersebut.
Contoh paling mudah adalah mengajarkan sistem operasi penjumlahan:

        input ke-1 = 0.1
        input ke-2 = 0.2
        output = 0.3
pada contoh tersebut, kita mengajarkan pada sistem apabila inputan terdiri
dari angka "0.1" dan "0.2" maka outputnya adalah "0.3". Jika hanya diberikan
satu contoh maka sistem tidak akan belajar dengan baik, untuk itu sistem
sebaiknya diberikan contoh data dengan jumlah yang sangat besar sehingga
kecerdasan sistem bisa lebih handal.

        Konsep pertama yang harus di pahami sebelum masuk pada tahap coding
adalah layer. ANN umumnya terdiri dari 3 layer, yaitu "input layer", "hidden
layer", dan "output layer". Ketiga layer inilah yang akan membentuk topologi
ANN. Tiap layer terdiri dari unit-unit node yang jumlahnya dapat kita
tentukan sendiri, bisa dibayangkan bahwa tiap node pada ANN ibaratnya seperti
neuron pada otak manusia. Jumlah node pada input layer tergantung pada jumlah
data input yang akan masuk pada sistem, misalnya pada operasi penjumlahan
diatas maka jumlah node pada input layer sebanyak 2 buah.

        Jumlah node pada hidden layer bervariasi, dan terdapat banyak
teori yang dapat menjelaskan bagaimana mencari jumlah node yang tepat
pada hidden layer, namun pada umumnya 5 buah node pada hidden layer suatu
ANN sudah mencukupi  untuk memecahkan berbagai macam kasus. Node pada
output layer tergantung dari jumlah output pada sistem, pada contoh
operasi penjumlahan diatas dapat dilihat bahwa jumlah node di output
layernya sebanyak 1 buah.

        Konsep kedua 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....seperti yang
disampaikan diatas bahwa 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, nah nilai Error tersebut
yang harus di definisikan oleh kita sebelum melatih sistem sehingga sistem
bisa menjawab dengan tingkat kebenaran semaksimal mungkin (misal: tingkat
kebenaran sistem 99,9999% dengan nilai Error 0.0001).



0 komentar:

Posting Komentar