JARINGAN SYARAF TIRUAN DAN
JARINGAN SYARAF TIRUAN DAN
CONTOH APLIKASINYA PADA
CONTOH APLIKASINYA PADA
MODE
MODEL
L ADALI
ADALINE
NE
1. Landasan Teori 1. Landasan Teori
2.1 Jaringan Syaraf Biologi 2.1 Jaringan Syaraf Biologi
Otak manusia memiliki struktur
Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luaryang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak terdiri dari
biasa. Otak terdiri dari neuron-neuron dan penghubunneuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerjag yang disebut sinapsis. Neuron bekerja berdasarkan impuls atau sinyal
berdasarkan impuls atau sinyal yang diberikan pada neuron. Neuron meneruskannya padayang diberikan pada neuron. Neuron meneruskannya pada neuron lain. Diperkirakan manusia memiliki 10
neuron lain. Diperkirakan manusia memiliki 101212neuron dan 6.10neuron dan 6.101818 sinapsis. Dengan jumlahsinapsis. Dengan jumlah yang begitu banyak, otak mampu
yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan mengontrolmengenali pola, melakukan perhitungan, dan mengontrol organ-organ tubuh.
organ-organ tubuh.
Neuron memiliki tiga komponen penting yaitu dendrit, soma
Neuron memiliki tiga komponen penting yaitu dendrit, soma dan axon. Dendrit menerimadan axon. Dendrit menerima sinyal dari neuron lain. Sinyal t
sinyal dari neuron lain. Sinyal tersebut berupa impuls elektrik yang dikirim melalui ersebut berupa impuls elektrik yang dikirim melalui celahcelah sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi di
sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi di celah sinaptik. Berikutnyacelah sinaptik. Berikutnya soma menjumlahkan semua sinyal-sinya
soma menjumlahkan semua sinyal-sinyal yang masuk. Kalau jumlah l yang masuk. Kalau jumlah tersebut cukup kuat dantersebut cukup kuat dan melebihi batas ambang (treshold), maka sinyal tersebut akan diteruskan ke sel
melebihi batas ambang (treshold), maka sinyal tersebut akan diteruskan ke sel lain melaluilain melalui axon. Frekuensi penerusan sinyal berbeda beda antara satu sel dengan yang lain.
axon. Frekuensi penerusan sinyal berbeda beda antara satu sel dengan yang lain. 2.2 Jaringan Syaraf Tiruan
2.2 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi
Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik yang memiliki karakteristik mirip dengan jaringan syaraf biologi.
mirip dengan jaringan syaraf biologi.
JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa :
asumsi bahwa :
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.
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.
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 = ∑ xiwi + b
y = f(net) = net = ∑ xiwi + b
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
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 :
δw1i
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.
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.
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 = ∑ xiwi + b
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).
net = newlin ( [0 10 ; 0 10],1)net.IW {1,1} = [2 3] net.b {1} = [-4]
Contoh 14.1Bentuklah perceptron untuk mengenali pola fungsi logika ―dan‖ 2 variabel x1
dan x2dengan 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.2Buatlah 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
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 la yar. 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
Vektor a merupakan keluaran jaringan untuk p1hingga p4dengan 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 Masukan2 net = ∑ pi w ji +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.
>> [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 )2dengan
Q = jumlah pola yang dihitunt 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) = 21Contoh 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.