JARINGAN SYARAF TIRUAN DAN CONTOH APLIKASINYA PADA MODEL ADALINE

1. Pendahuluan

Secara awam, aspek yang cukup penting yang mendasari berbagai teori dalam AI adalah system pengenalan pola (Pattern Recognizing) yang merupakan bagian dari pengimplementasian Neural Network (NN) atau Jaringan Syaraf Buatan secara praktis. Sistem pengenalan pola merupakan komponen penting dalam proses peniruan kemampuan inderawi manusia terutama penglihatan dan pendengaran. Sebagai contoh, untuk meniru indera penglihatan manusia, komputer harus mempunyai suatu mekanisme standar dan logis dalam mengenali pola yang ada pada suatu citra yang sedang diproses. Dari sinilah diperoleh motivasi untuk mencoba suatu konsep sederhana untuk mengenali pola dari suatu citra sehingga dapat diidentifikasi dengan baik oleh komputer. Permasalahan utama yang terjadi apabila hendak mengenali suatu pola tertentu dan mengumpankannya ke dalam suatu proses jaringan syaraf buatan adalah bagaimana proses akuisisi data dilakukan sehingga menghasilkan sejumlah data numerik yang representatif dan konsisten terhadap sampel yang diberikan. Dalam penulisan ini, kita mencoba mengaplikasikan suatu metode sederhana untuk mengenali suatu citra sehingga dapat diidentifikasi dengan baik oleh komputer dengan memanfaatkan berbagai teori seperti Image Proccessing, Artificial Neural Networks.

 

2. Landasan Teori

2.1 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 atau sinyal yang diberikan pada neuron. Neuron meneruskannya pada neuron lain. Diperkirakan manusia memiliki 1012 neuron dan 6.1018 sinapsis. Dengan jumlah yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan mengontrol organ-organ tubuh.

 

 

 

 

 

Neuron memiliki tiga komponen penting yaitu dendrit, soma dan axon. Dendrit menerima sinyal dari neuron lain. Sinyal tersebut berupa impuls elektrik yang dikirim melalui celah sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi di celah sinaptik. Berikutnya soma menjumlahkan semua sinyal-sinyal yang masuk. Kalau jumlah tersebut cukup kuat dan melebihi batas ambang (treshold), maka sinyal tersebut akan diteruskan ke sel lain melalui axon. Frekuensi penerusan sinyal berbeda beda antara satu sel dengan yang lain.

 

2.2 Jaringan Syaraf Tiruan

 

Jaringan syaraf tiruan (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 :

  • Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron)
  • Sinyal dikirimkan diantara neuron-neuron melalui penghubung- penghubung
  • Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal
  • Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi yang dikenakan pada jumlah output yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.

 

JST ditentukan oleh tiga hal :

 

  1. Pola hubungan antar neuron (disebut arsitektur jaringan)
  2. Metode untuk menentukan bobot penghubung (disebut metode training/learning/algoritma)
  3. Fungsi aktivasi

 

Sebagai contoh, perhatikan neuron Y pada gambar berikut.

 

Gambar 1.2

Y menerima input dari neuron x1,x2, dan x3 dengan bobot hubungan masing-masing adalah w1,w2,w3. ketiga impulse neuron yang ada di jumlahkan

net = x1w1+x2w2+x3w3

besarnya impulse yang diterima oleh Y mengikuti fungsi aktivitas  y=f(net). Apabila nilai fungsi aktivasi cukup kuat, maka sinyal akan diteruskan. Nilai fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai dasar untuk merubah bobot.

 

2.3  Aplikasi Jaringan Syaraf Tiruan

 

Beberapa aplikasi jaringan syaraf tiruan adalah sebagai berikut :

 

  1. Pengenalan Pola (pattern Recognition)

Jaringan syaraf tiruan dapat dipakai untuk mengenali pola (misal huruf, angka, suara atau tanda tangan) yang sudah sedikit berubah. Hal ini mirip dengan otak manusia yang masih mampu mengenali orang yang sudah beberapa waktu tidak di jumpainya (mungkin wajah/bentuk tubuhnya sudah sedikit berubah).

 

  1. Signal Processing

Jaringan syaraf tiruan (model ADALINE) dapat dipakai unuk menekan noise dalam saluran telepon.

 

  1. Peramalan

Jaringan syaraf tiruan juga dapat dipakai untuk meramalkan apa yang sudah terjadi di masa yang akan datang berdasarkan pola kejadian yang ada di masa lampau. Ini dapat dilakukan mengingat kemampuan jaringan syaraf tiruan untuk mengingat dan membuat generalisasi dari apa yang sudah ada sebelumnya.

 

Disamping area-area terebut, jaringan syaraf tiruan juga di laporkan dapat menyelesaikan masalah dalam bidang kontrol, kedokteran, dan lain-lain.

 

Meskipun banyak aplikasi menjanjikan yang dapat di lakukan oleh jaringan syaraf tiruan juga memiliki beberapa keterbatasan umum, namun jaringan syaraf tiruan juga memiliki beberapa keterbatasan umum. Pertama adalah ketidak akuratan hasil yang di peroleh. Jaringan syaraf tiruan bekerja berdasarkan pola yang terbentuk pada inputnya.

 

2.4 Arsitektur Neural Network

 

Secara umum, terdapat tiga jenis neural network yang sering digunakan berdasarkan jenis network-nya, yaitu :

  • Single-Layer Neural Network
  • Multilayer Perceptron Neural Network
  • Recurrent Neural Networks

 

 

 

 

 

 

 

2.4.1 Single-Layer Neural Network

 

  • Neural network jenis ini memiliki koneksi pada inputnya secara langsung ke jaringan output.
  • Jenis neural network ini sangatlah terbatas, hanya digunakan pada kasus-kasus yang sederhana.

 

 

 

 

 

 

 

 

 

 

 

 

2.4.2 Recurrent Neural Network

 

  • Neural network jenis ini memiliki ciri, yaitu adanya koneksi umpan balik dari output ke input.
  • Kelemahan dari jenis ini adalah Time Delay akibat proses umpan balik dari output ke titik input.

 

 

 

 

 

 

 

 

 

 

 

 

2.5 Proses Pembelajaran pada Neural Network

 

Proses pembelajaran merupakan suatu metoda untuk proses pengenalan suatu objek yang sifatnya kontinuitas yang selalu direspon secara berbeda dari setiap proses pembelajaran tersebut. Tujuan dari pembelajaran ini sebenarnya untuk memperkecil tingkat suatu error dalam pengenalan suatu objek. Secara mendasar, neural network memiliki sistem pembelajaran yang terdiri atas beberapa jenis berikut :

 

  • Supervised Learning

Sistem pembelajaran pada metoda Supervised learning adalah system pembelajaran yang mana setiap pengetahuan yang akan diberikan kepada sistem, pada awalnya diberikan suatu acuan untuk memetakan suatu masukan menjadi suatu keluaran yang diinginkan. Proses pembelajaran ini akan terus dilakukan selama kondisi error atau kondisi yang diinginkan belum tercapai. Adapun setiap perolehan error akan  dikalkulasikan untuk setiap pemrosesan hingga data atau nilai yang diinginkan telah tercapai.

 

  • Unsupervised Learning

Sistem pembelajaran pada neural network, yang mana sistem ini memberikan sepenuhnya pada hasil komputasi dari setiap pemrosesan, sehingga pada sistem ini tidak  membutuhkan adanya acuan awal agar perolehan nilai dapat dicapai. Meskipun secara mendasar, proses ini tetap mengkalkulasikan setiap langkah pada setiap kesalahannya dengan mengkalkulasikan setiap nilai weight yang didapat

 

 

2.6 Arsitektur Jaringan Syaraf Tiruan

 

Berdasarkan strategi pelatihan, model jaringan dibagi menjadi :

  1. Pelatihan dengan supervisi.

Contoh model ini adalah : Hebbian, Perceptron, ADALINE, Boltzman, Hopfield, Backpropagation,dll.

  1. Pelatihan tanpa supervise

Contoh model yang masuk dalam kategori ini antara lain model competitive, Hebbian, Kohonen, LVQ (Learning Vektor Quantization),Neocognitron,dll.

 

3.  Aplikasi Model ADALINE

 

Model ADALINE (Adaptive Linear Neuron) ditemukan oleh Widrow dan Hoff (1960). Beberapa masukan dan sebuah bias (unit masukan tambahan) dihubungkan langsung dengan sebuah neuron keluaran. Bobot dimodifikasi dengan aturan delta (sering juga disebut least mean square). Selama pelatihan, fungsi aktivasi yang dipakai adalah fungsi identitas.

 

net = ∑ xi wi + b

i

y = f(net) = net = ∑ xi wi + b

i

 

Kuadrat selisih antara target (t) dan keluaran jaringan (f (net)) merupakan error yang terjadi. Dalam aturan delta, bobot dimodifikasi sedemikian hingga errornya minimum.

 

E = (t-f(net))2 = ( t- ( ∑ xi wi + b))2

i

E merupakan fungsi bobot wi. Penurunan E tercepat terjadi pada arah

 

δE

—–  =  -2 (-t(∑ xi wi + b))x1 = -2(t-y)x1 . Maka perubahan bobot adalah :

δw1 i

 

Δw1 = α (t-y)x1 dengan  α merupakan bilangan positip kecil (umumnya diambil = 0,1)

 

Algoritma pelatihan ADALINE adalah sebagai berikut :

  1. Inisialisasi semua bobot dan Bias (umumnya w1= b = 0)

Tentukan laju pemahaman (=α). Untuk penyederhanaan biasanya ά diberi nilai kecil (=0.1)

  1. selama max Δwi > batas toleransi, lakukan :

i

    1. Set aktivasi unit masukan xi = si (i=1,…,n)
    2. Hitung respon unit keluaran : net = ∑ xi wi + b

i

y = f(net) = net

    1. Perbaiki bobot pola yang mengandung kesalahan (y≠t) menurut persamaan :

w1(baru) = w1(lama) + α (t-y)x1

b (baru) = b (lama) + α (t-y)

 

setelah proses pelatihan selesai, ADALINE dapat dipakai untuk pengenalan pola.untuk itu, umumnya dipakai fungsi treshold bipolar (meskipun tidak menutup kemungkinan digunakan bentuk lainnya). Caranya sebagai berikut:

  1. Inisialisasi semua bobot dan bias dengan bobot dan bias hasil pelatihan.
  2. Untuk setiap input masukan bipolar x, lakukan :

a.       Set aktivasi unit masukan x1 = s1 ( i=1, …,n)

b.      Hitung net vektor keluaran :

net = ∑ xi wi + b

i

c.       kenaikan fungsi aktivasi :

 

y = 1    jika net ≥ 0

-1   jika net < 0

 

3.1 Pembentukan Jaringan

 

Pertama-tama, jaringan ADALINE harus di bentuk dengan menggunakan perintah newlin (singkatan dari new linear filter) perintah newlin akan membentuk ADALINE dengan spesifikasi tertentu(jumlah unit input, jumlah neuron, fungsi aktivasi, dll). Bentuk fungsi newlin adalah sebagai berikut :

 

net = newlin (PR,S,ID,IR,LR)

dengan

 

PR  :   matriks R x 2 yang berisi nilai minimum dan maksimum elemen masukan R.

S     :   jumlah elemen vektor keluaran.

ID    :   vektor delay masukan (default = [0]).

LR   :   laju pemahaman  (default  α =  0.01).

 

Dan menghasilkan sebuah ADELINE (dalam matlab disebut layar linear) baru.

 

Laju pemahaman dapat diatur dari perintah newlin (dengan cara memberi nilai pada parameter LR) atau dari parameter train.

 

Perintah newlin juga akan menset bobot dan bias awal ke 0. seperti pada perceptron, untuk mengubahnya dapat digunakan penugasan terhadap net.IW(i,j) dan net.b {i}. Indeks i dan j dalam net.IW(i,j) menunjukan bobot awal dari layar –j ke layar –i. Dalam ADALINE hanya ada sebuah layar masukan dan keluaran, sehingga net.IW  {1,1} menunjukan bobot awal dari layar masukan ke neuron targetnya.

 

Jika di jalankan, maka matlab akan menampilkan struktur jaringan default yang terbentuk.

 

Misalkan ada 2 buah unit masukan dan 1 buah neuron target dengan bobot seperti gambar 14.1 misalkan pula kedua masukannya memiliki range (0,10). Maka perintah yang sesuai adalah :

 

 

 

 

4

 

2

 

3

 

 

 

Gambar 14.1

 

net  =  newlin ( [0    10  ;   0    10],1)

 

net.IW  {1,1}  =  [2  3]

 

net.b    {1}      =   [-4]

 

Contoh 14.1

Bentuklah perceptron untuk mengenali pola fungsi logika “dan” 2 variabel x1 dan x2 dengan masukan dan target bipolar.

 

Penyelesaian

Fungsi logika “dan” dengan 2 variabel bipolar memiliki range nilai masukan [-1,1], dan sebuah target. Maka perintah yang di buat adalah

net   =   newlin   ( [-1    1   ;    -1     1] ,1)

Parameter [-1 1;-1 1] menunjukan bahwa kedua unit masukan x1, dan x2 memiliki range  [-1,1].  Parameter s =1 menunjukan bahwa jaringan hanya memiliki sebuah target (dalam matlab, target disebut neuron)

Jaringan yang terbentuk memiliki bobot awal, bias, perubahan bobot, dll yang mengikuti defaultnya.

 

3.2 Pembentukan Vektor Masukan Dan Target

 

Setelah membentuk ADALINE, berikutnya harus di tentukan pola masukan dan target yang akan dikenali. Masing-masing masukan dan keluaran berupa vektor kolom. Perhatikan bahwa jumlah unit tiap pola masukan serta range nilainya harus sesuai dengan spesifikasi ADALINE yang di buat.

 

Contoh 14.2

Buatlah vektor masukan-keluaran ADALINE contoh 14.1

 

Penyelesaian

 

Fungsi logika “dan” memiliki 4 pola masukan masing-masing masukan terdiri dari 2 unit) sebagai berikut :

 

Pola masukan masukan target
P1 1

1

1
P2 1

-1

-1
P3 -1

1

-1
P4 -1

-1

-1

 

net =  newlin ( [-1    1  ;  -1    1], 1 )

p    =   [  [1  ;  1]   [1  ;  -1]   [-1  ;  1]   [-1  ;  -1]  ]

t     =   [1   -1   -1   -1]

 

 

 

3.3 Menghitung Keluaran ADALINE

 

Setelah pola masukan di berikan, kita dapat menghitung keluaran ADALINE. Perintah matlab yang dipakai sama seperti model perceptron :

 

[Y,Pf,Af,E,perf]  =  sim (net, P,Pi,Ai,T)

Dengan parameter masukan

 

net        :   nama jaringan dalam perintah Newlin.

P          :   kondisi delay awal masukan. Default  =  zeros.

Pi         :   kondisi delay layar. Default  =  zeros.

T          :   Vekor target jaringan. Default   =  zeros.

 

Dan parameter hasil

 

Y          :    keluaran jaringan.

Pf         :    kondisi akhir delay masukan.

Af         :    kondisi akhir delay layar.

E          :    Error jaringan  =  T – Y.

 

Perf      :    unjuk kerja jaringan.

 

Pi, Ai, Pf, Af hanya dipakai bagi jaringan yang memiliki delay masukan dan layar. Untuk sekedar menghitung keluaran jaringan, dapat di pakai statemen sederhana

 

y  =  sim (net, p) ;

 

perhatikan bahwa untuk menghitung keluaran jaringan, kita tidak perlu mengetahui targetnya. Akan tetapi jika ingin di hitung error yang terjadi (selisih antara target dengan keluaran jaringan), maka harus diketahui targetnya.

 

Contoh 14.3

 

Hitunglah keluara jaringan contoh 14.1 dengan pola masukan seperti pada contoh 14.2, menggunakan bobot awal w1 = 2, w2 = 3 dan bias = -4

 

Penyelesaian

net  =  newlin ( [ -1    1  ;  -1   1 ], 1 ) ;

p =  [ [ 1  ;  1 ] [ 1  ;  -1] [ -1  ;  1] [ -1 ;  -1] ] ;

t  =  [1   -1   -1   -1] ;

net.IW { 1 , 1}  =  [2   3];

net.b  {1}  =  [-4];

a  =  sim  (net,p)

 

Diperoleh hasil

 

a =     1            -5         -3         -9

 

 

perhatikan bahwa untuk menghitung keluaran jaringan tidak di butuhkan vektor target.

Vektor a merupakan keluaran jaringan untuk p1 hingga  p4 dengan menggunakan bobot dan bias masing-masing = [2 3] dan [-4]. Fungsi aktivasi yang dipakai dalam ADALINE adalah fungsi identitas. f(net) = net. Perhitungan manualnya tampak pada tabel 14.2. hasil f(net) di tampilkan oleh matlab dalam variabel a di atas.

 

Tabel

Pola Masukan 2

net = ∑ pi wji +b

i=1

f (net) =

net

P1 = 1

1

1 (2) + 1 (3) – 4 = 1 1
P2 = 1

-1

1 (2) + – 1 (3) – 4 = -5 -5
P3 = -1

1

-1 (2) + 1 (3) – 4 = -3 -3
P4 = -1

-1

-1 (2) + -1 (3) – 4 = 1 -9

 

Perintah sim(net,p) diatas hanya menampilkan hasil keluaran jaringan (f(net)) pada tabel diatas. Jika ingin menampilkan besarnya error dan unjuk kerja yang terjadi, maka parameter perintah sim ditambah sebagai berikut :

 

[a,Pf,Af,e,perf] = sim (net,p,[],[],t)

 

Perhatikan bahwa dalam kasus ini tidak dibutuhkan delay, sehingga parameter Pi dan Ai dikosongkan. Akan tetapi dibuthkan target keluaran (variabel t) untuk menghitung error.

 

Jika perintah tersebut dijalankan, akan diperoleh hasil :

 

>> [a,Pf,Af,e,perf] = sim (net,p,[],[],t)

a =

1  -5  -3  -9

Pf =

[]

Af=

[]

e =

0  4  2  8

perf =

21

 

3.4 Modifikasi Bobot dan Bias

 

Untuk mengubah bobot dan bias digunakan perintah learnwh (learn Windrow-Hoff ) yang formatnya adalah sebagai berikut :

 

[dW,LS] = learnwh (W,P,Z,N,A,T,E,gW,gA,D,LP,LS )

[dW,LS] = learnwh (b,ones(1,Q)W,P,Z,N,A,T,E,gW,gA,D,LP,LS )

 

Dengan

 

W : matriks bobot (matrik bias)

P : vektor masukan

Z : vektor masukan dengan bobot

N : vektor masukan net

A : vektor keluaran

T : vektor layar target

E : vektor layar error

gW : gradien bobot terhadap unjuk kerja

gA : gradien keluaran terhadap unjuk kerja

D : jarak neuron

LP : parametar pemahaman

LS : state pemahaman

 

Untuk ADALINE sederhana, parameter yang perlu diberikan hanyalah W, E, dan P (yang didapat dari sim (net,p) – t).

 

3.5 Pelatihan ADALINE

 

Error dihitung berdasarkan rata-rata kuadrat kesalahan terkecil (least mean square error) yang diperkenalkan oleh Windrow dan Hoff. Oleh karena itu model ADALINE sering juga disebut model Windrow-Hoff atau model LMS.

 

Rata-rata kuadrat kesalahan (MSE) dihitung dengan rumus :

 

MSE = 1/Q ∑ e2k = 1/Q ∑ ( tk – ak )2 dengan

 

Q = jumlah pola yang dihitung

tk = vektor target

ak = keluaran jaringan

ek =  tk – ak

 

Contoh 14.4

 

Hitunglah MSE untuk fungsi logika “dan” pada contoh 14.3

 

Penyeleseaian

 

Pada contoh 14.3, t = [1  -1  -1  -1] dan keluaran jaringan = a = [1  -5  -3  -9] sehingga error = =[0  4  2  8]

 

Maka MSE = ¼ (02 + 42 + 22 + 82) = 21

Contoh 14.5

 

Hitunglah bobot untuk mengenali fungsi logika “dan” menggunakan bobot dan bias awal seperti contoh 14.3

 

Penyelesaian

 

Jika dalam contoh 14.3 ditambahkan perintah train (net,p), diperoleh hasil :

 

>> train (net,p)

TRAINB, Epoch 0/100, MSE 29/0.

TRAINB, Epoch 25/100, MSE 3.76669/0.

TRAINB, Epoch 50/100, MSE 0.489239/0.

TRAINB, Epoch 75/100, MSE 0.0635452/0.

TRAINB, Epoch 100/100, MSE 0.00825362/0.

TRAINB, Maximum epoch reached.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Default perintah train pada ADALINE adalah jumlah epoch = 100, dan error = 0. Iterasi akan dihentikan jika salah satunya tercapai.

 

Umumnya error = 0 tidak pernah tercapai. Orang akan puas jika errornya cukup kecil dan dapat diabaikan.

 

Akan tetapi bobot setelah iterasi tidak dapat diperoleh. Untuk menyimpan perubahan bobot maka digunakan perintah :

 

>> net = train (net,p,t)

 

Hasilnya

 

TRAINB, Epoch 0/100, MSE 21/0.

TRAINB, Epoch 25/100, MSE 2.94513/0.

TRAINB, Epoch 50/100, MSE 0.600059/0.

TRAINB, Epoch 75/100, MSE 0.295468/0.

TRAINB, Epoch 100/100, MSE 0.255906/0.

TRAINB, Maximum epoch reached.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bobot hasil iterasi bisa ditampilkan dengan perintah disp

 

>>disp (net.iw{1,1})

0.5253     0.5422

>>disp (net.b{1})

-0.5590

 

Keluaran jaringan setelah iterasi dilakukan dapat diketahui dengan perintah sim

 

>>sim (net,p)

Dan error yang terjadi = t – sim (net,p) :

 

>> t – sim (net,p)

ans =    0.4916  -0.4241  -0.4578  0.6265

 

Maka MSE = ¼ (0.49162 + -0.42412 + -0.45782 + 0.62652) = 0.2559

Seperti yang ditampilkan pada MSE epoch 100.

About ApPhy

simpel aja.. g suka neko-neko

Posted on 7 Januari 2011, in Uncategorized. Bookmark the permalink. Tinggalkan komentar.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: