Anda di halaman 1dari 31

Bab 1

PENDAHULUAN

1.1 Latar Belakang


Octave merupakan bahasa pemograman yang sangat efektif digunakan untuk
berbagai hal seperti Perhitungan matematika,Komputasi numerik,Simulasi dan
pemodelan Visualisasi dan analisis data,Pembuatan grafik untuk keperluan sains dan
teknik,Pengembangan aplikasi,Dan salah satu contoh penting dalam laporan praktikum
ini ialah pengaplikasiannya terhadap jaringan syaraf tiuran.

Beberapa kelebihan Octave jika dibandingkan dengan program lain seperti


Fortran, dan Basic ialah mudah dalam memanipulasi struktur matriks dan perhitungan
berbagai operasi matriks yang meliputi penjumlahan, pengurangan, perkalian, invers
dan fungsi matriks lainnya, menyediakan fasilitas untuk memplot struktur gambar
script program yang dapat diubah sesuai dengan keinginan user.

1.2 Rumusan Laporan

1. Bagaimana sejarah dan struktur dari jaringan Syaraf tiruan ?


2. Apa itu Octave ?
3. Bagaimana cara implementasi model matematika dari McCulloch-Pitts ?
4. Bagaimana cara implementasi model matematika dari Hebbian Rule ?
5. Bagaimana cara implementasi model matematika dari Perceptron ?
6. Bagaimana cara implementasi model matematika dari Adeline ?

1.3 Tujuan Laporan

1. Mengetahui sejarah dan strukur dari jaringan syaraf tiruan


2. Mengenal secara lengkap pemograman Octave
3. Mengetahui implementasi dari model matematika McCulloh-Pitts
4. Mengetahui implementasi dari model matematika Hebbian Rule
5. Mengetahui implementasi dari model matematika Perceptron
6. Mengetahui implementasi dari model matematika Adeline

1
Bab 2
LANDASAN TEORI

2.1 Sejarah Jaringan Syaraf Tiruan


Diperkenalkan secara sederhana pada tahun 1943 oleh McCulloch dan Pitts [Fausett;
1994]. Pada saat itu McCulloch dan Pitts melalui beberapa komputasi menggunakan neuron-
neuron sederhana dapat mengubahnya menjadi sebuah sistem baru (disebut sistem neural)
yang mempunya kemampuan komputasi yang lebih baik. Selain itu McCulloch dan Pitts juga
mengusulkan pemberian bobot dalam jaringan yang dapat diatur untuk melakukan fungsi
logika sederhana. Beliau-beliau ini menggunakan semacam fungsi aktivasi threshold.
Pada tahun 1958, Rosenblatt beserta Minsky dan Papert mulai mengembangkan model
jaringan yang disebut dengan perceptron. Dalam model ini mereka mencoba untuk
mengoptimalkan hasil iterasinya. Kemudian pada tahun 1960 Widrow dan Hoff
mengembangkan model perceptron ini dengan memperkenalkan aturan pelatihan jaringan yang
disebut aturan delta (sering juga disebut kuadrat rata-rata terkecil). Aturan tersebut akan
mengubah bobot perceptron apabila keluaran yang dihasilkan tidak lagi sesuai dengan target
yang telah ditetapkan. Hal inilah yang menyebabkan komputer dapat “belajar” dengan
sendirinya; kecepatan belajar dapat diatur dengan menggunakan parameter tertentu.
Perkembangan selanjutnya dibuat oleh Rumelhart (1986) dengan mencoba mengembangkan
sistem layar tunggal (single layer) pada perceptron menjadi sistem layar jamak (multilayers),
yang kemudian disebut dengan sistem backpropagation. Setelah itu, muncul beberapa model
jaringan saraf tiruan lain yang dikembangkan oleh Kohonen (1972), Hopfield (1982), dan lain-
lain.
2.2 Struktur Pada Jaringan Syaraf Tiruan
Sistem jaringan saraf tiruan merupakan analogi yang berkaitan erat dengan proses berpikir
dalam otak manusia. Sesungguhnya jaringan saraf tiruan merupakan pembentukan generalisasi
model matematika dengan menggunakan beberapa asumsi, diantaranya:

 Sistem proses informasi terjadi pada banyak elemen sederhana (neuron).


 Sinyal yang dikirimkan di antara neuron-neuron melalui penghubung-penghubung
(sinapsis).

 Penghubung antarneuron memiliki bobot yang akan memperkuat atau memperlemah


sinyal.

2
 Untuk menentukan output (target), setiap neuron menggunakan fungsi aktivasi (biasanya
bukan merupakan fungsi linear) yang dikenakan pada jumlahan input yang diterima.
Besarnya output akan dibandingkan (learning process) dengan suatu batas ambang
(threshold).

Dengan demikian, dari asumsi-asumsi tersebut jaringan saraf tiruan ditentukan oleh 3 hal yang
paling mendasar:

1. pola hubungan antarneuron (arsitektur jaringan),


2. metode untuk menentukan bobot penghubung (learning atau training method), dan

3. fungsi aktivasi.

Berikut adalah gambar dari struktur jaringan syaraf tiruan

3
Bab 3

PEMBAHASAN

3.1 Pengenalan Octave

GNU Octave adalah suatu perangkat lunak gratis (freeware) dan bahasa tingkat tinggi
untuk komputasi numerik dan visualisasi data. Octave dirancang sebagai tiruan dari Matlab.

Pada awalnya Octave dikembangkan oleh John W. Eaton (Universitas Texas) dan
sekarang pengembangan dan pemeliharaan Octave dilakukan oleh beberapa orang volunteer
dari berbagai penjuru dunia. Kelebihan utama dari Octave yaitu gratis (freeware) dan tersedia
untuk berbagai sistem operasi seperti Windows 98/2000/XP, Mac OS/X, Debian, Suse, Fedora,
RedHat Linux.

Dalam implementasinya octave dapat digunakan dalam beberapa hal di antaranya yaitu

3.1.1 Function

Function pada Octave adalah sebuah program Octave yang ditulis dan disimpan dalam
bentuk function file, dan atau dapat digunakan secara langsung (built-in function).Dalam
function salah satunya di kenal yaitu function definition line.Berikut adalah sintaks dari
function definition line pada octave :

function output arguments = function_name (input arguments)

Berikut adalah source code dari function :

function l=lingkaran(r)

r=input('input jari-jari =');

l=pi*r*r;

printf('luas lingkaran=');

disp(l);

endfunction

Output :

Berikut adalah output pada program


4
3.1.2 Control Flow

Control flow pada octave merupakan fungsi pernyataan bersyarat. Conditional


Statements atau pernyataan bersyarat adalah perintah yang digunakan untuk melakukan
eksekusi beberapa perintah dengan menyesuaikan variabel dengan syarat terhadap masing-
masing perintah sehingga perintah-perintah dapat dilewati atau dieksekusi.

Terdapat 3 fungsi conditional statement pada

1. if-end
2. if-else-end
3. if-elseif-else-end
4. Switch-case

Dalam Pengaplikasiannya akan di buat sebuah program dimana menghitung nilai kurs mata
uang di beberapa negara.Lalu jenis control flow yang akan digunakan pada program ialah
switch-case

Berikut adalah Souce codenya :

function np=konversi(nominal,kurs)

nominal=input('input nominal=');

kurs=input('pilih valas=');

switch(kurs)

case 'USD'

rp=nominal*14660;

case 'AUD'

5
rp=nominal*7750;

case 'JPY'

rp=nominal*132,21;

otherwise

disp('pilih valas dengan benar');

end

printf('total uang untuk nominal %d adalah %.2f\n',nominal,rp);

end

Berikut adalah output pada program tersebut

Pada program di atas ketika user menginput nominal dan memilih valas dengan menggunkan
keyword pada progam maka nominal di kalikan dengan nilai masing-masing kurs di negara
yang di pilih

3.1.3 Matriks

Matriks adalah sekumpulan bilangan yang disusun secara baris dan kolom dan
ditempatkan pada kurung biasa atau kurung siku.Matriks bisa diimplemetasikan ke dalam
Octave maupun Mathlab dengan cara yang paling mudah untuk membuat matriks adalah
dengan menuliskan elemen-elemennya. Elemen pada baris yang sama dipisahkan
menggunakan koma (,), sedangkan untuk membatasi baris digunakan titik koma (;).

6
a. Matriks dengan baris b. Matrik dengan kolom dan baris

Aritmatika Matriks Dengan Menggunakan Octave

Penjumlahanan pada matriks dapat di definisikan sebagai berikut

Source code

>> A=[1,2;5,6];

>> B=[3,4;7,8];

>> jumlah=A+B;

>> A

A =

1 2

5 6

>> B

7
B =

3 4

7 8

>> jumlah

jumlah =

4 6

12 14

Output :

Pengurangan Matriks Dengan Menggunakan Octave

Pengurangan pada matriks dapat di definisikan sebagai berikut

Source code :

>> A=[10,80;90,0]

A =

10 80

90 0

8
>> B=[12,0;34,12]

B =

12 0

34 12

>> A-B

ans =

-2 80

56 -12

Output pada program tersebut ialah

3.2 McCulloch-Pitts
Model Jaringan McCulloch-Pitts merupakan model jaringan syaraf tiruan yang pertama
kali ditemukan, yang memiliki karakteristik :

1. Memiliki fungsi aktivasi berbentuk biner


2. Bobot garis bersifat unik, dimana bobot positif akan mempengaruhi kekuatan
neuron dan sebaliknya bobot negatif akan memperlemah sinyal neuron
3. Setiap neuron memiliki ambang batas (threshold) tetap, dan akan meneruskan sinyal
ke neuron lain jika total input melebihi nilai threshold.
Secara prinsip, model jaringan ini memiliki arsitektur jaringan dimana sinyal input terhubung
secara langsung dengan sinyal keluaran. Setiap sinyal masukan memiliki bobot yang unik yang

9
sangat mempengaruhi keluaran jaringan. Bobot jaringan yang bersifat positif umumnya akan
meningkatkan kekuatan jaringan, sebaliknya bobot negatif akan memperlemah jaringan.

3.2.1 Arsitektur McCulloch-Pitts

Pada gambar diatas dapat kita lihat bahwa neuron Y, menerima sinyal dari node
X1,X2,X3,Xn. Penghubung merupakan garis yang memperkuat sinyal Amati juga bahwa x1,
x2, . . .,xn.ke Y, memiliki bobot yang sama. Demikian juga semua penghubung dari xn+1, .
juga memiliki bobot yang sama. Untuk menentukan keluaran dari neuron Y, maka berlaku
fungsi aktivasi berikut :

Dimana α adalah nilai ambang batas (threshold), sedangkan Y, adalah kuluaran jaringan
dengan net adalah jumlah total input (sum) yang dihitung dengan formula

3.2.2 Algoritma
1) Inisialisasi bobot untuk semua sinyal masukan, serta tetapkan threshold untuk fungsi
aktivasinya
2) Untuk semua vektor input xi = (i=1,..,n), lakukan
a. Set aktivasi unit keluaran 𝑓 𝑦𝑖𝑛 = 1, 𝑗𝑖𝑘𝑎 𝑦𝑖𝑛 ≥ 𝜃 0, 𝑗𝑖𝑘𝑎 𝑦𝑖𝑛 < 𝜃
b. Ubah bobot secara analitik dengan memperhatikan kaidah bila mana pola belum
dapat dikenali
3.2.3 Aplikasi MCP dalam Octave

Dalam pengaplikasiannya McCulloch-Pitts dapat mengenal fungsi logika AND dimana


pada logika and akan bernilai ‘true’ jika kedua inputnya adalah true dan akan ‘false’ jika kedua
atau salah satunya bernilai false.Berikut akan di buat sebuah program yang mana di cek apakah

10
MCP dapat mengenal sebuah fungsi logika AND.Dalam menyelesaikannya ada beberapa
langkah yang harus di lakukan ialah:

1. Memberi nilai pada masing-masing neuron input

Pada Octave ketika kita akan menginput nilai pada neuron input maka metode yang akan
di gunakan yaitu adalah dengan matriks

x1=[0 0 1 1];%Nilai neuron input pada X1


x2=[0 1 0 1];%Nilai neuron input pada X2
z=[ 0 0 0 1];%Merupakan sebuah target f(net)
w1=[0];%Nilai bobot awal pada W1
w2=[0];%Nilai bobot awal pada W2

theta=2;%Merupakan sebuah Threshold(ambang batas)

2. Set aktivasi unit keluaran


Pada McCulloch-Pitts berlaku biner dimana jika nilai neuron output melebihi ambang
batas akan mendapatkan nilai 1 pada f(net)-ny,namun jika neuron outputnya melebihi
nilai ambang batas/Theta maka akan mendapatkan nilai 0 maka script codingan pada
octave yang harus di lakukan adalah
a. Hitung nilai y_in dengan menggunakan script codingan berikut

zin=x1*w1+x2*w2;%rumus yin

b. Setelah di hitung maka hasil y_in akan di set nilai aktivasinya dengan
menggunakan codingan berikut
for i=1:4
if zin(i)>=theta
y(i)=1;
else
y(i)=0;

pada script codingan di atas dilakukan perulangan sebanyak 4 kali karena pada nilai neuron
input pada X1dan X2 ada 4 input yaitu :

X1 X1
0 0
0 1
1 0
1 1
Sehingga pada program melakukan 4 kali set aktivasi lalu pada program tersebut terdapat
control flow “if” dimana if tersebut akan menentukan nilai aktivasi keluarannya jika nilai

11
y_in-nya melebihi Threshold maka unit keluarannya akan 1 dan jika nilai y_in-nya kurang
dari nilai Threshold-nya maka unit keluarannya akan 0.

Berikut adalah source code dari MCP dimana dicek apakah MCP dapat mengenal fungsi
logika AND menggunakan Octave

x1=[0 0 1 1];
x2=[0 1 0 1];
z=[ 0 0 0 1];
y=[ 0 0 0 0];
w1=[0];
w2=[0];
theta=2;
ep=1;
while ep
zin=x1*w1+x2*w2;
for i=1:4
if zin(i)>=theta
y(i)=1;
else
y(i)=0;
end
end
disp('Output of Net');
disp(y);
if y(i)==z(i)
ep=0;
else
disp('pola tidak dikenali');
w1=input('weight w1=');
w2=input('weight w2=');
theta=input('theta=');
end

12
end
disp('Mcp');
disp('weights of neuron');
disp (w1);
disp(w2);
disp('threshold Value');
disp(theta);
plot(y);

Output Program :

Pada program di atas dapat disimpulkan bahwa McCulloch-Pitts dapat mengenali logika AND

3.3 Hebbian Rule

Kelemahan model McCulloch-Pitts adalah penentuan bobot garis dan bias yang secara
analitik. Untuk masalah yang kompleks, hal ini akan sangat sulit dilakukan.Tahun 1949,
Donald Hebb memperkenalkan cara menghitung bobot dan bias secara iteratif. Model Hebb
adalah model tertua yang menggunakan aturan supervisi.

Dasar algoritma Hebb adalah: kenyataan bahwa apabila dua neuron yang dihubungkan
dengan sinapsis secara serentak menjadi aktif (sama-sama benilai positif atau negatif), maka
kekuatan sinapisnya meningkat. Sebaliknya, apabila kedua neuron aktif secara tidak sinkron
(salah satu bernilai positif dan yang lain benilai negatif), maka kekuatan sinapsis akan melemah
Karena itulah, dalam setiap iterasi, bobot sinapis dan bias diubah berdasarkan perkalian
neuron-2 di kedua sisinya. Untuk jaringan layar tunggal dengan 1 unit keluaran dimana semua

13
unit masukan xi terhubung langsung dengan unit keluaran y, maka perubahan bobot dilakukan
berdasarkan persamaan:

wi (baru)= wi (lama) + xi*y

b=b(lama)+t

3.3.1 Arsitektur Hebbian :

Arsitektur pada neuron Hebbian sama dengan neuron pada Mcp hanya perbedaan
dimana fungsi aktivasi pada Mcp yaitu biner dan pada Hebbian yaitu bipolar dan pada neuron
Hebbian dan neuron Mcp memiliki kesamaan diantaranya sama-sama memiliki satu unit
masukan dan berhubungan dengan satu unit keluaran serta di tambah dengan bias.

3.3.2 Algoritma dari Hebbian

1. Inisialisasi semua bobot = wi = 0 (i = 1,2,…,n)


2. Bobot awal diset wi = 0 (i = 1,2,…,n) dan b = 0

Untuk semua vektor input s dan unit target t, lakukan:

–Set aktivasi unit masukan: xi = si (i = 1,2,…,n)

–Set aktivasi unit keluaran: y = t

–Perbaiki bobot menurut persamaan:

*wi baru = wi lama + ∆w (i = 1,2,…,n) dengan

*∆w = xi * t

Perbaiki bias menurut persamaan bbaru = blama+ t

14
3.3.3 Aplikasi Hebbian Rule dalam Octave

Dibuat sebuah program dimana neuron input pada program ialah bipolar dan target pada
program tersebut ialah bipolar akan di cek apakah Hebbian rule dapat mengenali bilangan
bipolar.Dalam Pengimplementasiannya dalam Octave ada beberapa hal yang haru dilakukan
diantaranya,yaitu :

1. Memberi input pada jaringan

Jaringan menerima input dan target berupa matriks, input dan target dapat berbentuk
bipolar karena pada hebbian menggunakan fungsi aktivasi bipolar. Perintah memberikan
input, target, bobot awal dan bias awal dapat dilakukan dengan perintah :

x1=[1 1 1 1 1 -1 -1 -1 1 1 1 1 -1 -1 -1 1 1 1 1 1];%neuron input pada x1

x2=[1 1 1 1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 1 1 1];%neuron input pada x2

b=0; w(1)=0;%bias dan bobot di set dengan nilai 0

t=[1 -1];%target

2. Melakukan perhitungan bobot dan bias


Pada proses pelatihan jaringan Hebb, input akan diproses sehingga dapat menghasilkan
output yang akan sama dengan target. Perubahan bobot dan bias pada jaringan Hebb dapat
dilakukan dengan perintah :

w=w+x(i,1:2)*t(i);%proses perubahan bobot

b=b*t(i);%proses perubahan nilai bias

Berikut adalah source code dari program Hebbian rule yang akan di jalankan

clear;

clc;

x1=[1 1 1 1 1 -1 -1 -1 1 1 1 1 -1 -1 -1 1 1 1 1 1];

x2=[1 1 1 1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 1 1 1];

x(1,1:20)=x1;

x(2,1:20)=x2;

15
b=0; w(1)=0;

t=[1 -1];

for i=1:2

w=w+x(i,1:2)*t(i);

b=b*t(i);

end

disp('outut = ');disp(t);

disp('matrik bobot = ');disp(w);

disp('biasnya =');disp(b);

plot(t);

Output Program Grafik :

Pada Program tersebut outputnya sama dengan target sehingga Hebbian rule dapat mengenali
pola bipolar.

3.4 Perceptron

Perceptron biasanya digunakan untuk mengklasifikasikan suatu tipe pola tertentu yang
sering dikenal dengan istilah pemisahan secara linear. Pada dasarnya perceptron pada Jaringan
Syaraf Tiruan (Neural Network) dengan satu lapisan memiliki bobot yang bisa diatur dan suatu
nilai ambang. Algoritma yang digunakan oleh aturan perceptron ini akan mengatur parameter-
parameter bebasnya melalui proses pembelajaran. Fungsi aktivasi dibuat sedemikian rupa

16
sehingga terjadi pembatasan antara daerah positif dan daerah negatif. Perceptron juga sebagai
model jaringan syaraf tiruan pertama yang menerapkan pembelajaran yang diawasi atau
dibimbing (supervised learning). Riset yang pernah dilakukan ini kemudian menghasilkan
struktur jaringan perceptron layer tunggal atau yang umum dinamakan dengan Single Layer
Perceptron (SLP).
3.4.1 Single Layer Perceptron
Single-layer perceptron bisa dibilang merupakan salah satu teknik jaringan saraf tiruan
yang paling sederhana. Jaringan ini hanya memiliki lapisan input dan lapisan output. Jaringan
ini termasuk supervised learning, artinya metode pembelajarannya dilakukan melalui contoh-
contoh. Jaringan akan ditraining dengan sekumpulan contoh-contoh yang diketahui input dan
outputnya. Selama proses belajar tersebut jaringan akan menyesuaikan nilai bobotnya agar
menghasilkan output yang diinginkan.
a. Arsitektur Single-Layer Perceptron

Jaringan di atas mempunyai input sebanyak n (X1 sampai xn) dengan masing-masing
input mempunyai bobot W1,W2...Wn. Sebuah bias ditambahkan ke dalam jaringan dengan
angka pembelajaran = 1. Output yang dihasilkan adalah Y. Karena metode ini adalah
supervised learning maka ada threshold yang harus dilewati.
b. Algoritma Single-Layer Perceptron
Algoritma Proses pelatihan Single Layer Perceptron mengacu kepada langkah-langkah
algoritma berikut :
Langkah 0 : Inisialisasi bobot dan bias dengan nilai 0, serta tetapkan learning rate α antara 0
sampai dengan 1 (dapat diatur sesuai kebutuhan). Misal α = 1.
Langkah 1 : Selama kondisi berhenti, respon unit keluaran masih salah (y≠t), lakukan
Langkah 2 : Untuk setiap pasangan data latih s:t, lakukan langkah 3-5
Langkah 3 : Set aktivasi unit masukan, dimana xi=si, untuk i=1,..,n
Langkah 4: Hitung respon unit keluaran (net) dengan persamaan

Dengan fungsi aktivasinya adalah

17
Langkah pertama hingga proses ini merupakan proses yang disebut dengan feed forward, yang
merupakan proses propagasi maju.
Langkah 5 : Perbaiki bobot dan bias
If y ≠ t
wi(baru)=wi(lama)+∆w (dimana ∆w = η.t.xi)
b(baru)=b(lama)+∆b (dengan ∆b=η.t)
else
wi(baru)= wi(lama) b(baru)= b(lama)
Langkah 6 : Uji kondisi berhenti : If tidak ada bobot-bobot yang berubah pada langkah 2,
berhenti; else, continue.
c. Aplikasi dari Single-layer Perceptron
Dalam pengaplikasiannya Single-Layer Perceptron dapat mengenal fungsi logika
AND dengan bipolar dimana untuk mengenalinya terdapat beberapa kali iterasi dan
perubahan nilai pada bobot dan bias baru untuk itu ada beberapa hal yang harus dilakukan
dalam pengimplementasiannya ke dalam Octave
1. Memberi nilai pada neuron input
a. Inisialisai nilai bobot awal dan bias awal dengan nilai 0
w=[0 0];%Nilai bobot awal
b=0;%Nilai bias awal

b. Beri nilai input pada neuron input


x=[1 1 0 0;1 0 1 0];%Neuron input X
pada script code di atas nilai x akan menampilkan sebuah matrik dengan baris 4 baris
dan 2 kolom
x= 1 1
1 0
0 1
0 0
Lalu set target dengan
t=[1 -1 -1 -1];%Nilai target dengan logika AND

c. Beri nilai pada learning rate dan threshold


lrate=input('learning rate =');
thres=input('threshold=');

18
Pada program di atas pengguna program di haruskan menginput nilai learning rate dan
threshold.

2. Hitung nilai respon unit keluaran (net) menggunakan script code berikut
for i=1:4
yin=b+x(1,i)*w(1)+x(2,i)*w(2);

pada script codingan di atas dilakukan perulangan sebanyak 4 kali karena pada nilai
neuron input pada X1dan X2 ada 4 input yaitu :

X1 X1
1 1
1 0
0 1
0 0
Setelah di lakukan perhitungan nilai net maka akan di lakukan fungsi aktivasi dengan
menggunakan script code yaitu
if yin>thres
y=1;
end
if yin<=thres && yin>-thres
y=0;
end
if yin<-thres
y=-1;
end

pada Program di atas dilakukan percabangan untuk menentukan nilai y pada program dimana
jika yin lebih besar dari threshold maka y=1,
jika yin lebih besar sama dengan dan kurang dari threshold maka y=0,
jika yin kurang dari dan yin adalah negatif maka threshold y=-1.

3. Perubahan nilai bobot dan bias


Jika nilai y tidak sama dengan target maka dilakukan perubahan nilai bias dan bobot
dengan cara
if y~=t(i)
itr=1

19
for j=1:2
w(j)=w(j)+lrate*t(i)*x(j,i);%mencari nilai bobot baru
end
b=b+lrate*t(i);%mencari nilai bias baru
end
end

Berikut adalah source code pada program SLP untuk mengenali pola AND ketika dicompile
clc;
x=[1 1 0 0;1 0 1 0];
w=[0 0];
b=0;
lrate=input('learning rate =');
thres=input('threshold=');
t=[1 -1 -1 -1];
itr=1;
epoch=0;
while itr
itr=0;
for i=1:4
yin=b+x(1,i)*w(1)+x(2,i)*w(2);
if yin>=thres
y=1;
end
if yin<=thres && yin>-thres
y=0;
end
if yin<-thres
y=-1;
end

if y~=t(i)
itr=1

20
for j=1:2
w(j)=w(j)+lrate*t(i)*x(j,i);
end
b=b+lrate*t(i);
end
end
epoch=epoch+1;
end
disp('matriks bobot terbaru ='); disp(w);
disp('bias terbaru= '); disp(b);
disp('Net= '); disp(yin);

Output Program

Pada program diatas dapat di ambil kesimpulan bahwa program tersebut terus melakukan
pembelajaran dan juga melakukan beberapa kali iterasi dan dari setelah di lakukan iterasi
program menghasilkan nilai bobot baru yaitu 2 dan 3 ,menghasilkan nilai bias terbaru yaitu -4
dan Net yang di hasilkan dari program di atas yaitu -4.
3.4.2 Multi Layer Perceptron
Diperkenalkan oleh M. Minsky dan S. Papert pada tahun 1969, merupakan
pengembangan dari Perceptron dan mempunyai satu atau lebih hidden layers yangterletak
antara input dan output layers. Multi-layer-perceptron dapat digunakan untukoperasi logik
termasuk yang kompleks seperti XOR.

a. Arsitektur Multi layer Perceptron

21
Multi-Layer Perceptron adalah jaringan syaraf tiruan feed-forward yang terdiri dari
sejumlah neuron yang dihubungkan oleh bobot-bobot penghubung. Neuron-neuron tersebut
disusun dalam lapisan- lapisan yang terdiri dari satu lapisan input (inputlayer), satu atau lebih
lapisan tersembunyi (hidden layer), dan satu lapisan output(output layer). Lapisan input
menerima sinyal dari luar, kemudian melewatkannya kelapisan tersembunyi pertama, yang
akan diteruskan sehingga akhirnya mencapai lapisan output. Setiap neuron di dalam jaringan
adalah sebuah unit pemrosesan sederhana yang menghitung nilai aktivasinya yaitu terhadap
setiap nilai inputnya.Untuk lebih jelasnya bisa di lihat pada gambar di atas merupakan
arsitektur dari multi layer perceptron
b. Algoritma Multi-Layer Perceptron
Pada algoritma MLP menerapkan proses bolak balik dimana secara prinsip terbagi 3
yaitu
a. Feed Forward pass
Langkah ini merupakan langkah maju dimana node input akan menuju node
keluaran dimana setiap node inputnya akan melewati setiap node terdalam atau
hidden layer.Lalu akan di cek validasinya jika program salah maka akan kembali
ke node input
b. Calulate error or loss
Pada langkah ini merupakan penentuan nilai net dan juga merupakan proses fungsi
aktivasi dimana proses tersebut untuk menentukan keluaran jaringan.Langkah ini
juga menentukan apakah keluaran sesuai dengan target.
c. Backword pass
Langah ini disebut juga dengan backpropagation atau langkah propagasi balik,
yangterjadi manakala output pada training sebelumnya mengalami kesalahan.
Sebenarnyapada tahap ini juga termasuk kepada langkah Calculate (perhitungan).
Bedanya, jikapada tahap feed forward melakukan perhitungan ouput jaringan,
sementara pada tahapbackpropagation melakukan perhitungan perubahan dan
kesalahan bobot jaringan

c. Aplikasi MLP terhadap logika XOR

X1 X2 t
1 1 0

22
1 0 1
0 1 1
0 0 0
Salah satu contoh kelemahan dari single layer perceptron ialah terhadap permasalahan non-
linear dimana salah satu contohnya yaitu logika XOR dimana.Salah satu untuk mengatasi XOR
yaitu dengan menggunakan Multi-Layer Perceptron dimana pada MLP.Untuk membuat
Program XOR ada beberapa hal yang harus di lakukan yaitu :
1. Input nilai neuron input
a. Inisialisasi nilai bobot input layer,bobot pada hidden layer ,dan bias

w1=[20 20]; w2=[-20 -20];%bbobot pada input layer


v=[20 20];bobot pada hidden layer
b1=-10; b2=30; b3=-30;%bias

b. Beri nilai input pada neoron input,target,learning rate,dan threshold

t=[0 1 1 0];%nilai target


lrate=input('input learning rate = ');
threshold=input('input thresholding = ');
2. Hitung nilai net pada hidden layer dan set aktivasinya pada setiap hidden layer
Untuk mengihitung nilai hiddden layer kita dapat menggunakan rumus
a. Hitung nilai net pada hidden 1 dengan pola (1,1) dan Set aktivasinya

hin_1(i)=b1+x(1,i)*w1(1)+x(2,i)*w1(2);

Lalu setelah di hitung nilai net pada hidden layer maka set aktivasi nilainya dengan cara

if hin_1(i)>threshold
h1(i)=1;
end
if hin_1(i)<=threshold && hin_1(i)>=-threshold
h1(i)=0;
end
if hin_1(i)<-threshold
h1(i)=-1;
end

b. Hitung nilai pada hidden 2 dengan pola (2,1) dan set aktivasinya

hin_2(i)=b2+x(1,i)*w2(1)+x(2,i)*w2(2);

Lalu setelah di hitung nilai pada net pada hidden layer maka set aktivasi nilainya dengan
cara

if hin_2(i)>threshold
h2(i)=1;
end
if hin_2(i)<=threshold && hin_2(i)>=-threshold
h2(i)=0;
end

23
if hin_2(i)<-threshold
h2(i)=-1;
end

3. Hitung nilai y_in dengan menggunakan nilai aktivasi dari h1dan h2 dan set nilai aktivasi
untuk nilai y

for k=1:4% Program tersebut di lakukan 4 kali perhitungan nilai yin


dimana untuk pola(1,1),(1,2),(2,1),(2,2)
yin(k)=b3+h1(k)*v(1)+h2(k)*v(2);
if yin(k)>threshold
y(k)=1;
end
if yin(k)<=threshold && yin(k)>=-threshold
y(k)=0;
end
if yin(k)<-threshold
y(k)=-1;
end
end

4. Jika y~=t maka di lakukan perubahan bobot dan bias

if y~=t(i)
yes=0;
else
for j=1:2
w(j)=w(j)+lrate*t(i)*x(j,i);
end
b=b+lrate*t(i);
end
end

Berikut adalah source code dari SLP untuk dicek apakah megenali pola AND pada bipolar

clear;
clc;
x=[1 1 0 0;1 0 1 0];
t=[0 1 1 0];
w1=[20 20]; w2=[-20 -20]; v=[20 20];
b1=-10; b2=30; b3=-30;
lrate=input('input learning rate = ');
threshold=input('input thresholding = ');
yes=1;
while yes
for i=1:4
hin_1(i)=b1+x(1,i)*w1(1)+x(2,i)*w1(2);
if hin_1(i)>threshold
h1(i)=1;
end
if hin_1(i)<=threshold && hin_1(i)>=-threshold
h1(i)=0;

24
end
if hin_1(i)<-threshold
h1(i)=-1;
end
hin_2(i)=b2+x(1,i)*w2(1)+x(2,i)*w2(2);
if hin_2(i)>threshold
h2(i)=1;
end
if hin_2(i)<=threshold && hin_2(i)>=-threshold
h2(i)=0;
end
if hin_2(i)<-threshold
h2(i)=-1;
end
end
for k=1:4
yin(k)=b3+h1(k)*v(1)+h2(k)*v(2);
if yin(k)>threshold
y(k)=1;
end
if yin(k)<=threshold && yin(k)>=-threshold
y(k)=0;
end
if yin(k)<-threshold
y(k)=-1;
end
end
if y~=t(i)
yes=0;
%else
% for j=1:2
% w(j)=w(j)+lrate*t(i)*x(j,i);
% end
% b=b+lrate*t(i);
end
end
print=[hin_1 h1]
print=[hin_2 h2]
print=[yin y]

Output Program

25
Pada program di atas dapat di ambil kesimpulan bahwa MLP dapt mengenali XOR dimana
hin_1=[30 10 10 -10] dan h1=[1 1 1 -1]
hin_2=[-10 10 10 30] dan h2=[-1 1 1 1]
lalu di hitung nilai y_in dengan mengambil nilai pada h1 dan h2 lalu menghasilkan
yin=[-30 10 10 -30] dan y=[-1 1 1 -1]
karena program dapat megenali pola maka iterasi berhenti dan tidak ada perubahan nilai bobot
dan bias.

3.5 Adaline
Adeline merupakan jaringan syaraf yang menggunakan aktivasi bipolar (1 atau -1) baik
pada vektor input maupun target keluarannya. Begitu pun, adeline tidak menutup kemungkinan
dapat digunakan pada representasi data masukan yang lain, hanya saja representasi data
berbentuk bipolar sangat relevan. Adapun bobot jaringan dan bias, dapat disesuai sepanjang
proses pelatihan, dengan aktivasi biasnya selalu 1.

dan E adalah fungsi wi yang dapat diturunkan dengan kecepatan pada arah

3.5.1 Arsitektur Adeline


Arsitektur Adaline adalah single layer neuron yang memiliki beberapa komponen diantaranya
sinyal input, sebuah unit keluaran serta sebuah bias yang dapat dipandang sebagai unit
masukkan yang nilainya selalu +1. Merujuk kepada karakteristiknya, arsitektur jaringan
adeline dapat tersusun seperti pada gambar berikut :

26
3.5.2 Algoritma Adeline
1. Inisialisasi bobot (dengan nilai acak kecil,bukan nol),serta nilai learning rate dan batas
toleransi
2. Selama maksimal ∆wi > batas toleransi,atau selama kondisi berhenti bernilai salah maka
3. Set aktivasi unit masukan,untuk i=1..n
4. Hitung input bersih ke unit output,dengan persemaan :

5. Ubah bobot untuk setiap pola yang mengandung kesalahan (y~=t) dengan persamaan

6. Iterasi berhenti
Iterasi berhenti mungkin akan terjadi ketika perubahan bobot menncapai tingkat yang
paling kecil atau jika jumlah maksimal iterasi telah terpenuhi.

3.5.3 Aplikasi Adeline kedalam Octave


Disini kita akan mencoba mengaplikasikan neuron adeline pada sebuah contoh
kasus yang representasi data input dan keluarannya berbentuk bipolar, dengan fungsi
logika or
X1 X2 T
1 1 1
1 -1 1
-1 1 1
-1 -1 -1
Untuk mengimplementasikannya kedalam porgram octave ada beberapa hal yang harus
di lakukan yaitu:
1. Input nilai pada neuron
a. Inisialisasi nilai bobot,bias, ∆w1, ∆w2, ∆b,learning rate,error

w=[0.1 0.1]; b=0.1;


dw1=0; dw2=0; db=0;
alfa=0.2;
irate=0.2; err=2;

27
b. Beri nilai input pada neoron input dan target pada logika OR dengan
menggunakan bipolar

x=[1 1 -1 -1;1 -1 1 -1];


t=[1 1 1 -1];

2. Hitung Nilai yin lalu ubah bobot pada,∆w1, ∆w2, ∆b

for i=1:4%dilakukan perulangan untuk menghitung masing-masing neuron


input.
yin(i)=b+x(1,i)*w(1)+x(2,i)*w(2);
dw1=alfa*(t(i)-yin(i))*x(1,i);
dw2=alfa*(t(i)-yin(i))*x(2,i);
db=alfa*(t(i)-yin(i));

3. Lakukan perubahan bobot,dan bias baru

for j=1:2
w(j)=w(j)+alfa*(t(i)-yin(i))*x(j,i);
endfor
b=b+alfa*(t(i)-yin(i));
print=[x(1,i) x(2,1) yin(i) t(i) dw1 dw2 db w(1) w(2) b]
endfor

4. Setelah di lakukan perubahan nilai bobot dan bias hitung kembali nilai yin baru dengan
menggunakan nilai bobot baru dan bias baru dan hitung nilai error pada masing-masing
pola
for i=1:4
yin(i)=b+x(1,i)*w(1)+x(2,i)*w(2);
err=err+(t(i)-yin(i))^2;
endfor
err

28
Pada program di atas dapat disimpulkan bahwa proses perhitungan nilai error
menghasilkan nilai yang sama di setiap epoch

29
Bab 4

PENUTUP

4.1 Kesimpulan

GNU Octave adalah suatu perangkat lunak gratis (freeware) dan bahasa tingkat tinggi
untuk komputasi numerik dan visualisasi data. Octave dirancang sebagai tiruan dari Matlab.
Pada awalnya Octave dikembangkan oleh John W. Eaton (Universitas Texas) dan sekarang
pengembangan dan pemeliharaan Octave dilakukan oleh beberapa orang volunteer dari
berbagai penjuru dunia. Kelebihan utama dari Octave yaitu gratis (freeware) dan tersedia untuk
berbagai sistem operasi.

Octave juga merupakan bahasa pemograman yang sangat efektif digunakan untuk
berbagai hal seperti Perhitungan matematika,Komputasi numerik,Simulasi dan pemodelan
Visualisasi dan analisis data,Pembuatan grafik untuk keperluan sains dan
teknik,Pengembangan aplikasi,Dan salah satu contoh penting dalam laporan praktikum ini
ialah pengaplikasiannya terhadap jaringan syaraf tiuran.

30
Daftar Pustaka
[1] Yuliana.Modul Jaringan Syaraf Tiruan.
http://yuliana.lecturer.pens.ac.id/ (30 desember 2019)

[2] Arief,Saifuddin.Pengenalan GNU Octave

https://ilmukomputer.org/wp-content/uploads/2008/04/Pengenalan-
Octave3.pdf (30 desember 2019)

31

Anda mungkin juga menyukai