Anda di halaman 1dari 52

Jaringan Syaraf Tiruan

(Artificial Neural Networks)


KECERDASAN BUATAN
(ARTIFICIAL INTELLIGENCE)

Otak Manusia
2

Manusia bisa belajar dari pengalaman.

Belajar mengenali suhu air: panas, dingin, hangat


Belajar mengurus STNK, SIM
Belajar berhitung

Manusia dapat merasakan rasa sakit, geli, capek, dsb karena

adanya stimulus yang dikirim ke otak, kemudian otak menjawab


dengan membangkitkan suatu perasaan/rasa: senang, sedih,
manis, asam, dsb. Manusia dapat beradaptasi dengan sesuatu
yang baru (belum pernah dikenalnya) untuk digeneralisasikan

Biasanya makan nasi, singkong, dsb kemudian merasakan makanan keju, pizza
Campuran gula 1 sendok dengan garam 2 sendok.

Otak adalah sistem pemrosesan informasi yang sangat kompleks,

nonlinear, dan paralel.

Jaringan Syaraf Tiruan


3
Diilhami dari sistem kerja otak manusia.
Otak manusia terdiri dari sejumlah sel syaraf yang saling terhubung, sel syaraf tersebut adalah unit

pemroses informasi, disebut Neuron.


Otak manusia terdiri dari sekitar 10 milyar neuron dan 60 triyun koneksi antar neuron
Synapses (Shepherd and Koch, 1990)
Menggunakan banyak neouron secara simultan, otak dapat mengerjakan fungsinya lebih cepat dari
pada komputer tersepat saat ini.
Sebuah neuron terdiri dari sebuah badan sel, soma, sejumlah serat yang disebut dendrit, dan
sebuah serat panjang tunggal disebut axon.
Sedangkan dendrit bercabang membentuk jaringan seperti soma, axon meregang menuju dendrit
dan soma dari neuron lain.

Pemodelan Neuron
4
Neuron adalah unit pemrosesan informasi

yang merupakan dasar operasi jaringan syaraf.


Tiga elemen dasar :

Sejumlah (himpunan) synapses atau connecting links,

Sebuah Adder

Masing-masing dikarakterkan oleh bobot (weight) atau


kekuatan (strength) dari dirinya sendiri.
Sinyal xj pada input synapse j dihubungkan ke neuron k
dikalikan oleh bobot synaptic wkj.
Dalam bobot wkj, k mengacu neuron yang terhubung,
sedangkan j mengacu pada akhir input dari synapse
dimana bobot digunakan
Untuk penjumlahan sinyal input,
Dimuati oleh hasil synapses dari neuron

Sebuah fungsi aktivasi (activation function)

Normalisasi range amplitude dari


output neuron ditulis menjadi
interval unit [0,1] atau [-1,1]

Unsur eksternal BIAS


Untuk pembatasan amplitude dari output neuron.
Bias bk mempunyai pengaruh dalam
Fungsi aktivasi ini disebut juga dengan squashing
function yang melakukan pembatasan range amplitude meningkatkan atau menurunkan input net dari
yang diijinkan dari sinyal output pada beberapa batas nilaifungsi aktivasi, tergantung nilai dari nilai bias
apakah positif atau negatif.
Jika positif akan meningkatkan, dan jika
negatif akan menurunkan
Nilai input vektor Bias selalu 1

Pemodelan Neuron
5
Input dari semua vektor dihitung oleh setiap

neuron (didalam Adder) dengan persamaan:

x adalah vektor input


w adalah bobot (synapse)
m adalah jumlah input sebuah vektor x
u adalah hasil perhitungan sinyal input ke sebuah neuron
k adalah neuron ke-k

Untuk JST yang mengunakan Bias, persamaan

adder akan ditambah vektor Bias x0 (sebesar 1)


dengan besar bobot Bias sebesar w0, menjadi : vk
= uk + x0.w0
Nilai uk kemudian dilakukan aktivasi
menggunakan fungsi aktivasi : Yk = sign(vk)
Nilai Yk adalah keluaran (output) JST dari
sebuah neuron k

Analogi
Jaringan Syaraf
Biologis
Soma
Dendrit
Axon
Synapse

Jaringan
Syaraf Tiruan
Neuron
Input
Output
Bobot

Bias
6
Dalam bagian tertentu, tergantung pada saat bias bk

positif atau negatif, hubungan antara induced local field


atau activation potential vk dari neuron k dan combiner
linear output uk diubah seperti pada gambar x, disini
setelah digunakannya induced local field.
Bias bk adalah parameter eksternal dari neuron buatan k
pengaruh bias dihitung untuk melakukan dua hal :

(1) menambahkan sinyal input lain dengan nilai tetap +1;


(2) menambahkan bobot synaptic baru yang sama dengan bias bk.

Fungsi Aktivasi
7
Mendefinisikan output neuron dalam daerah induced local

field v
Ada tiga jenis fungsi aktivasi dasar :

Fungsi Identitas (Identity Function)/Linear

(v)

1
0
-1

Fungsi Piece-wise (Piece-wise Linear Function)

-2
-2

-1

0
v

Fungsi identitas
v
(v)

1
0.8
0.6

Fungsi Threshold (Threshold Function)

Threshold Biner
Threshold Bipolar

Fungsi Sigmoid (Sigmoid Function)

Sigmoid Biner
Sigmoid Bipolar

0.4
0.2
0
-0.2
-2

-1

Fungsi Piece-wise

Fungsi Aktivasi
8
Fungsi Threshold Biner (step)

Fungsi Threshold Bipolar (sign)

Fungsi Sigmoid Biner

Threshold Biner
Fungsi Sigmoid Bipolar
1.2

(v)

(v)

1
0.8

a=0.5

0.6

a=1

0.4

a=3

a=1
0

0
-10

-5

0
v

Sigmoid Biner

a=3

-0.5

a=5

0.2

a=0.5

0.5

a=5

-1
10

-10

-5

0
v

Sigmoid Bipolar

10

Threshold Bipolar

Model JST McCulloch-Pitts


9

Operasi AND
FA adalah threshold
Threshold = 2
x1
1

x2
1

Operasi OR

FA adalah threshold
Threshold = 2

y
1

x1
1

x2
1

y
1

Operasi AND
10

Fungsi Aktivasi Threshold

biner
Threshold = 2

Y = 1, jika v 2
Y = 0, jika v < 2

Hasil Y sama dengan targetVektor

JST dapat mengenali


pola dengan benar

[x1 x2]

Bobot
[w1 w2]

[1 1]
[1 0]
[0 1]
[0 0]

[1 1]
[1 1]
[1 1]
[1 1]

v=x1*w1 +
x2*w2
1*1 + 1*1 = 2
1*1 + 0*1 = 1
0*1 + 1*1 = 1
0*1 + 0*1 = 0

Y=Sign(v
)

Target

1
0
0
0

1
0
0
0

Operasi OR
11

Fungsi Aktivasi Threshold

biner
Threshold = 2

Y = 1, jika v 2
Y = 0, jika v < 2

Hasil Y sama dengan targetVektor

JST dapat mengenali


pola dengan benar

[x1 x2]

Bobot
[w1 w2]

[1 1]
[1 0]
[0 1]
[0 0]

[2 2]
[2 2]
[2 2]
[2 2]

v=x1*w1 +
x2*w2
1*2 + 1*2 = 4
1*2 + 0*2 = 2
0*2 + 1*2 = 2
0*2 + 0*2 = 0

Y=Sign(v
)

Target

1
1
1
0

1
1
1
0

Operasi AND (dengan Bias)


12

Fungsi Aktivasi

Threshold biner
Threshold = 0

Y = 1, jika v 0
Y = 0, jika v < 0

Hasil Y sama dengan

target JST dapat


mengenali pola dengan
benar

Vektor
[x y 1]
[1 1 1]

Bobot
[w1 w2 w3]
[1 1 -2]

[1 0 1]

[1 1 -2]

[0 1 1]

[1 1 -2]

[0 0 1]

[1 1 -2]

v=x1*w1 + x2*w2

Y=
Sign(v)

Targ
et

1*1 + 1*1 + 1*(-2)


=0
1*1 + 0*1 + 1*(-2)
= -1
0*1 + 1*1 + 1*(-2)
= -1
0*1 + 0*1 + 1*(-2)
= -2

Jaringan FeedForward
13

Dalam JST berlayer, neuron diorganisasikan

dalam bentuk layer.


Bentuk yang paling sederhana dari jaringan
berlayer, dimiliki adanya input layer(lapis
masukan) dari node sumber yang
diproyeksikan pada output layer (lapis
keluaran) neuron (computation node/node
penghitung), tetapi tidak sebaliknya.
Jaringan ini disebut feedforward lurus atau
acyclic.

Jaringan seperti ini disebut single-layer network,


dengan pendesainan single-layer diartikan pada
layer output dari node (neuron) komputasi.
Layer input dari node sumber tidak dihitung karena
tidak ada komputasi yang dilakukan disana

JST Feedfordward Lapis Tunggal (Single-Layer Feedforward Networks)

Jaringan FeedForward Contd


14

JST feedforward yang membedakan dirinya

dengan adanya satu atau lebih hidden layers


(lapis tersembunyi), dimana node komputasi
juga dihubungkan dengan apa yang disebut
hidden neurons (neuron tersembunyi) atau
hidden units.
Fungsi dari neuron tersembunyi menjadi
perantara antara input eksternal dan output
jaringan dengan suatu kegunaan tertentu.
Dengan menambahkan satu atau lebih layer
tersembunyi, jaringan akan dapat
mengeluarkan statistik yang tinggi yang
dalam hal tertentu dapat bernilai ketika
ukuran dari layer input sangat besar
JST 10-4-2
JST Feedfordward Lapis Jamak (Multi-Layer Feedforward Networks)

Pelatihan Jaringan Syaraf Tiruan


15

Karena JST awalnya tidak dapat memahami pola masukan dan pola

keluaran, maka proses pelatihan perlu diberikan pada JST.


Pada saat proses pelatihan itulah, terjadi penyesuaian bobot sehingga
setiap pola masukan dapat terpetakan dengan benar ke pola keluaran
yang seharusnya. Sehingga JST dapat mengenali pola masukan untuk
memberikan keluaran seperti pelajaran yang pernah didapatkannya.
Properti penting dalam jaringan syaraf adalah :

Kemampuan jaringan untuk belajar dari lingkungan,


Meningkatkan kinerjanya selama proses pembelajaran. Peningkatan kinerja ini
membutuhkan waktu yang lebih dengan beberapa aturan yang sudah diberikan.

Jaringan syaraf mempelajari lingkungannya selama proses interaktif

dalam penyesuaian yang diterapkan pada bobot synaptic dan level bias.
Idealnya, jaringan menjadi lebih paham (pintar) mengenali
lingkungannya setelah tiap iterasi proses pelatihan/pembelajaran.

Pelatihan Jaringan Syaraf Tiruan Contd


16
Definisi pelatihan/pembelajaran dalam konteks jaringan syaraf menurut Mendel

dan McClaren (1970):

Pelatihan/pembelajaran adalah proses dimana parameter bebas jaringan syaraf diadaptasi


selama proses simulasi oleh lingkungan dimana jaringan ditempatkan. Jenis pelatihan
ditentukan oleh cara dimana perubahan parameter membutuhkan tempat.

Proses pelatihan ini mengimplikasikan urutan kejadian berikut :

Jaringan syaraf distimulus oleh lingkungan


Jaringan syaraf mengalami perubahan pada parameter bebas sebagai hasil dari stimulasi ini
Jaringan syaraf menhasilkan cara baru untuk mengenali lingkungan karena perubahan yang
terjadi dalam struktur internal.

Proses pelatihan ini dilakukan selama waktu tertentu sampai mendapatkan

kondisi konvergen yang diinginkan :

Tidak ada perubahan pada bobot


Pola sudah dapat dikenali dengan benar
Jumlah iterasi pembelajaran sudah tercapai

Beberapa teknik pembelajaran yang dibuat oleh para ahli, misalnya : single layer

perceptron, multi layer perceptron, back-propagation, dsb.

Pelatihan Jaringan Syaraf Tiruan Contd


17
Neuron k ditentukan oleh vektor sinyal x(n)
Argumen n menyatakan waktu diskrit atau lebih tepatnya langkah waktu proses

iterative dalam penyesuaian bobot synaptic neuron k.


Sinyal output neuron k dinyatakan oleh yk(n).
Sinyal output, yang merepresentasikan keluaran jaringan syaraf, dibandingkan
dengan desired response atau output target (target/hasil yang diinginkan) yang
dinyatakan oleh dk(n).
Konsekuensinya, sebuah error signal (sinyal error), dinyatakan oleh ek(n) akan
dihasilkan, sebagai hasil dari formula
Error signal (sinyal
error), dinyatakan oleh
ek(n) , dimana
ek(n) = dk(n) yk(n)

Pelatihan Jaringan Syaraf Tiruan Contd


18

Pada setiap iterasi pelatihan dilakukan

perubahan/penyesuaian bobot agar JST dapat


mengenali pola (lingkungan), menurut aturan delta
(Delta Rule) :

wkj(n) = ek(n) xj(n)


adalah laju pelatihan (learning rate), nilainya 0 < < 1
E adalah error (selisih antara target dengan hasil yang didapat)
x adalah vektor masukan
wkj(n + 1) = wkj(n) + wkj(n)

Pelatihan Jaringan Syaraf Tiruan Contd


19

Algoritma Pembelajaran Perceptron yang diusulkan Rosenblatt (1960)

untuk melakukan klasifikasi:

Langkah 1: Inisialisasi

Langkah 2: Aktivasi

Lakukan aktivasi perceptron dengan menerapkan setiap vektor dengan Y n = sign(vn)

Langkah 3: Training Bobot

Tetapkan inisialisasi untuk threshold (jika menggunakan fungsi aktivasi Threshold)


Tetapkan inisialisasi bobot dengan pembangkitan secara acak. Range nilai umumnya [-0.5,
0.5].
Tetapkan nilai laju pembelajaran

Ubah bobot perceptron wkj(n + 1) = wkj(n) + wkj(n)


Dimana wkj(n) adalah koreksi bobot pada iterasi ke-n
dimana wkj(n) = ek(n) xj(n) Delta Rule

Langkah 4: Iterasi

Naikkan iterasi n satu langkah, kembali ke langkah 2 dan ulangi proses sampai syarat
konvergensi tercapai.

Jenis Pembelajaran
20
Pembeda diantara jenis pembelajaran adalah formula perhitungan wkj(n) = ek(n) xj(n)
d = target y = hasil keluaran fungsi aktivasi v = sebelum aktivasi
Perceptron (terawasi/supervised)

ek(n) = d - y
wkj(n) = ek(n) xj(n)

Hebbian (tidak terawasi/unsupervised)

ek(n) = y
wkj(n) = ek(n) xj(n)

Delta (terawasi/supervised)

Sinyal error = (target hasil)2


ek(n) = (d y) * sign(v)
sign(v) adalah differensial fungsi aktivasi
wkj(n) = ek(n) xj(n)
Untuk fungsi aktivasi sigmoid biner dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) =
y(1-y)
Untuk fungsi aktivasi sigmoid bipolar dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) =
(1-y2)

Jenis Pembelajaran
21

Widrow-Hoff

Menggunakan fungsi aktivasi Linier Fungsi aktivasi tidak


berpengaruh dalam proses pebelajaran
ek(n) = d - v

wkj(n) = ek(n) xj(n)

Back-propagation
Correlation
Winner Take All
Self Organizing Map (SOM)
Dsb.

Bagaimana membuat JST Perceptron yang dapat mengenali operasi


AND, OR, dan XOR ?
22

Perceptron harus dilatih untuk dapat memetakan setiap

pola masukan (mis. 2 masukan operasi AND) ke pola


keluaran yang sesuai.

Misal : pola masukan 1 dan 1 menghasilkan 1, pola masukan 1 dan 0


menghasilkan 0, dsb.

Setelah inisialisasi (membangkitkan bobot, penentuan

fungsi aktivasi, laju pembelajaran), barulah dilakukan


pembelajaran dengan algoritma diatas untuk setiap pola
yang harus dipelajari epoch
Bobot di-update terus pada setiap pelatihan (ketika terjadi
error) sampai konvergen, dimana error sudah tidak terjadi
(dibawah ambang batas)

JST Perceptron untuk kasus AND (Cara 1)


23

Bobot awal :

0.3 dan -0.1


Learning rate
: 0.1
Fungsi
aktivasi :
Threshold
() biner =
0.2

iterasi

masuka
n

keluaran

lr

target

Error

[n1 n2]

[1 1]
[1 0]
[0 1]
[0 0]
[1 1]
[1 0]
[0 1]
[0 0]

Inisialisasi bobot
0
0.1
0
0.1
0
0.1
0
0.1
1
0.1
0
0.1
0
0.1
0
0.1

1
0
0
0
1
0
0
0

1
0
0
0
0
0
0
0

0
0.1
0.1
0
0.2
0.1
0.1
0

perubah bobot
an bobot baru
[w1 w2 [w1 w2
bias]
bias]
[0 0]
[0.1 0.1] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]
[0 0] [0.1 0.1]

JST Perceptron untuk kasus AND (Cara 1)


24
Bobot awal : 0.3 dan -0.1
iterasi

masukan
[n1 n2]

Learning rate : 0.1

Fungsi aktivasi : Threshold () biner = 0.2

keluaran

lr

target

Error

perubahan bobot

bobot baru

[w1 w2 bias]

[w1 w2 bias]

1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1

0
-1
0
0
1
-1
0
0
0
-1
0
0
1
0
0
0
0
-1
0
0
0

[0 0]
[-0.1 0]
[0 0]
[0 0]
[0.1 0.1]
[-0.1 0]
[0 0]
[0 0]
[0 0]
[-0.1 0]
[0 0]
[0 0]
[0.1 0.1]
[0 0]
[0 0]
[0 0]
[0 0]
[-0.1 0]
[0 0]
[0 0]
[0 0]

[0.3 -0.1]
[0.3 -0.1]
[0.2 -0.1]
[0.2 -0.1]
[0.2 -0.1]
[0.3 0]
[0.2 0]
[0.2 0]
[0.2 0]
[0.2 0]
[0.1 0]
[0.1 0]
[0.1 0]
[0.2 0.1]
[0.2 0.1]
[0.2 0.1]
[0.2 0.1]
[0.2 0.1]
[0.1 0.1]
[0.1 0.1]
[0.1 0.1]
[0.1 0.1

Inisialisasi bobot
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1

[1 1]
[1 0]
[0 1]
[0 0]
[1 1]
[1 0]
[0 1]
[0 0]
[1 1]
[1 0]
[0 1]
[0 0]
[1 1]
[1 0]
[0 1]
[0 0]
[1 1]
[1 0]
[0 1]
[0 0]
[1 1]

0.2
0.3
-0.1
0
0.1
0.3
0
0
0.2
0.2
0
0
0.1
0.2
0.1
0
0.3
0.2
0.1
0
0.2

1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1

[1 0]

0.1

0.1

[0 0]

[0.1 0.1]

[0 1]

0.1

0.1

[0 0]

[0.1 0.1]

[0 0]

0.1

[0 0]

[0.1 0.1]

JST Perceptron untuk kasus AND (Cara 2)


25

Bobot awal : 0

dan 0
Bias : 0
Learning rate :
1
Fungsi
aktivasi :
Threshold ()
biner = 0

keluar
an

lr

target

error

[n1 n2 1]

[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]

Inisialisasi bobot
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1

1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0

0
-1
0
0
1
-1
-1
0
1
0
-1
0
1
-1
0
0

masukan
iterasi

0
0
-1
-1
-2
0
0
-2
-3
-1
0
-2
-2
0
-1
-2

perubahan bobot
bobot
baru
[w1 w2 [w1 w2
bias]
bias]
[0 0 0]
[0 0 0]
[0 0 0]
[-1 0 -1] [-1 0 -1]
[0 0 0]
[-1 0 -1]
[0 0 0]
[-1 0 -1]
[1 1 1]
[0 1 0]
[-1 0 -1] [-1 1 -1]
[0 -1 -1] [-1 0 -2]
[0 0 0]
[-1 0 -2]
[1 1 1]
[0 1 -1]
[0 0 0]
[0 1 -1]
[0 -1 -1] [0 0 -2]
[0 0 0]
[0 0 -2]
[1 1 1]
[1 1 -1]
[-1 0 -1] [0 1 -2]
[0 0 0]
[0 1 -2]
[0 0 0]
[0 1 -2]

JST Perceptron untuk kasus AND (Cara 2)


26

Hasil bobot akhir :

1 dan 2
Bias : -3

iterasi

masuka
n

[n1 n2 1]

[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]
[1 1 1]
[1 0 1]
[0 1 1]
[0 0 1]

-1
0
0
-3
-2
-1
0
-3
-1
0
-1
-3
0
-2
-1
-3

kelua
ran

lr

target

error

0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0

1
-1
-1
0
1
0
-1
0
1
-1
0
0
0
0
0
0

perubah
an bobot
[w1 w2
bias]
[1 1 1]
[-1 0 -1]
[0 -1 -1]
[0 0 0]
[1 1 1]
[0 0 0]
[0 -1 -1]
[0 0 0]
[1 1 1]
[-1 0 -1]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]

bobot
baru
[w1 w2
bias]
[1 2 -1]
[0 2 -2]
[0 1 -3]
[0 1 -3]
[1 2 -2]
[1 2 -2]
[1 1 -3]
[1 1 -3]
[2 2 -2]
[1 2 -3]
[1 2 -3]
[1 2 -3]
[1 2 -3]
[1 2 -3]
[1 2 -3]
[1 2 -3]

AND (Pengujian)
27

Pengujian jaringan untuk mengenali pola vektor yang telah

dilatihkan.
Terlihat bahwa nilai keluaran (y) pada pengujian keempat
vektor memberikan hasil yang sama dengan nilai target (d).

Sehingga dapat disimpulkan bahwa jaringan berhasil mempelajari pola


vektor masukan.

Masukan

bobot (w)

keluaran (y)

target (d)

[1 1 1]

[1 2 -3]

[1 0 1]

[1 2 -3]

-2

[0 1 1]

[1 2 -3]

-1

[0 0 1]

[1 2 -3]

-3

AND, OR, XOR


28
Dengan cara yang sama, kita bisa membuat JST untuk melakukan operasi OR.
JST single layer tidak akan bisa menyelesaikan kasus XOR ! Mengapa ?
Penyebab :

Pelatihan perceptron (hampir semua teknik pengenalan pola) sebenarnya adalah fungsi linear.
Fungsi linear hanya bisa memisahkan data dalam kelas yang sifatnya pengelompokannya adalah
linear.

Operasi AND dan OR dapat

dipisahkan dengan sebuah garis


lurus, sedangkan XOR tidak
bisa.
Inilah penyebab kasus XOR
tidak dapat diselesaikan dengan
single layer perceptron.
A XOR B = (A OR B) AND
NOT(A AND B)

Mengapa pelatihan perceptron single layer hanya berlaku untuk


data yang terpisah secara linear ?
29

Persamaan perceptron :
Keluaran perceptron Y=1 hanya jika total bobot masukan lebih besar

atau sama dengan nilai threshold

Misal : untuk persamaan operasi AND menggunakan persamaa x 1w1 + x2w2 =


Menurut hasil cara 1, garis pemisah adalah 0.1x 1 + 0.1x2 = 0.2
Atau x1 + x2 = 2
Maka daerah 0 (nol) dibawah garis, diberikan oleh : x 1 + x2 -2 < 0
Daerah 1 diatas garis diberikan oleh : x 1 + x2 -2 0

Fakta bahwa perceptron hanya dapat mempelajari fungsi linear

merupakan kelemahan, tetapi banyak kelebihan yang sudah


ditawarkan.
Untuk menangani fungsi non-linear, umumnya menggunakan multi
layer perceptron dengan sejumlah pembatasan seperti yang
disampaian Rosenblatt, menggunakan algoritma Back-propagation.

Contoh kasus
30
Temukan nilai bobot dan bias dimana hasil dalam

single-neuron perceptrons dengan batasan keputusan


yang terpilih.
Kemudian lakukan pengujian semua vektor pada
bobot dan bias yang didapatkan untuk memverifikasi.
Asumsikan bahwa fungsi aktivasi yang digunakan
adalah threshold biner (step) dengan nilai threshold 0
(nol).
Tanda titik terang menunjukkan target kelas adalah 1
(terang) dan tanda titik gelap menunjukkan target
kelas adalah 0 (gelap).
Gunakan laju pembelajaran: 0.1

Bobot awal
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0.3 -0.5]
[-0.1 -0.7 -0.2]
[0.4 2 0.9]

Learning rate
0.1
0.2
0.3
0.4
0.5
0.6
0.9
0.9
0.9
0.9

Iterasi
3
3
3
3
3
3
3
5
6
3

Bobot akhir
[-0.125 0.075 0]
[-0.25 0.15 0]
[-0.375 0.225 0]
[-0.5 0.3 0]
[-0.625 0.375 0]
[-0.75 0.45 0]
[-1.125 0.675 0]
[-1.8 0.75 0.4]
[-2.125 0.425 0.7]
[-1.625 1.325 0]

JST Delta
31
Algoritma jaringan Delta (Mc Clelland

dan Rumelhart, 1986) diaplikasikan


dalam paradigma pembelajaran terawasi
(supervised)

Hampir selalu digunakan untuk fungsi aktivasi


berupa fungsi kontinyu.

Jaringan Delta disebut juga sebagai

jaringan pembelajaran perceptron


kontinyu

Dapat diturunkan untuk aplikasi jaringan syaraf


tiruan lapis jamak (seperti jaringan Error
Backpropagation dan varian-variannya).

Tipe pembelajaran feedforward (maju)

dengan paradigma pembelajaran


terawasi (supervised) dengan laju
pembelajaran adalah .
Sinyal error e : nilai perbedaan antara
target dk dengan sinyal keluaran yk
dikalikan dengan nilai differensial dari yk.

JST Delta
32
Inisialisasi bobot wk bisa diberi nilai awal 0 / nilai acak yang kecil antara -0.5

sampai dengan +0.5.


Proses pelatihan sangat tergantung kepada nilai sinyal error e yang
diharapkan terus menurun dan mencapai target maksimal error yang
diinginkan, umumnya kecil sekitar 0.001 atau lebih kecil.
Proses pelatihan akan dihentikan ketika error yang didapatkan pada saat
pelatihan mencapai target atau telah mencapai sejumlah iterasi (epoch) yang
diinginkan

Sinyal error = (target hasil)2


ek(n) = (d y) * sign(v)
sign(v) adalah differensial fungsi aktivasi
wkj(n) = ek(n) xj(n)
Untuk fungsi aktivasi sigmoid biner dengan a=1, differensial sign(v) terhadap w menghasilkan
: sign(v) = y(1-y)
Untuk fungsi aktivasi sigmoid bipolar dengan a=1, differensial sign(v) terhadap w
menghasilkan : sign(v) = (1-y2)

Kasus operasi logika AND dengan JST Delta


33

Sebuah jaringan delta single neuron keluaran untuk mengenali fungsi

logika AND dengan dua neuron masukan, vektor masukannya adalah


sebagai berikut :

x1T = [1 1]
x1T = [1 0]
x1T = [0 1]
x1T = [0 0]

Targetnya adalah dk = [1 0 0 0],


Bobot awal adalah wT = [0 0] dan bias 0.
Fungsi aktivasi yang digunakan adalah sigmoid biner dengan parameter

slope (a) 1.
Target error 0.001.
Lakukan pelatihan jaringan untuk mendapatkan bobot optimal dengan
nilai laju pembelajaran 1 dan 0.8

Kasus operasi logika AND dengan JST Delta


34
Menggunakan nilai laju pembelajaran 1.
Diakhir pelatihan ke-1 bobot yang didapat adalah wT = [-

0.0134 -0.0066 -0.2603].


Sedangkan error yang didapatkan adalah max(0.125
0.158 0.1393 0.1076) = 0.158.

Karena error yang didapatkan masih lebih besar dari target error
(baru > ) maka pelatihan masih dilanjutkan pada iterasi kedua.

Pelatihan akan terus dilanjutkan pada iterasi kedua,

ketiga sampai jumlah iterasi yang ditentukan atau nilai


error yang didapatkan telah mencapai target error yaitu
0.001.
Pelatihan jaringan terus dilakukan sampai error yang
didapatkan mencapai target yaitu 0.001 (vektor
pertama) pada iterasi ke-2035.
Setelah itu barulah jaringan dapat melakukan
pengenalan pola vektor dengan baik dengan
memberikan nilai keluaran yang sesuai (mendekati)
target yang diinginkan

0.25
0.2
0.15
0.1
0.05
0

500

1000

1500

2000

Dengan laju pembelajaran = 1


masukan
ite.

[n1 n2 1]

keluaran
v

y'

target

bobot

[w1 w2 bias]

Inisialisasi bobot

bobot baru

error
baru

[0 0 0]

[1 1 1]

0.5

0.25

[0.125 0.125 0.125]

[0.125 0.125 0.125]

0.125

[1 0 1]

0.25

0.5622

0.2461

[-0.1384 0 -0.1384]

[-0.0134 0.125 -0.0134]

0.158

[0 1 1]

0.1116

0.5279

0.2492

[0 -0.1316 -0.1316]

[-0.0134 -0.0066 -0.1449]

0.1393

[0 0 1]

-0.1449

0.4638

-2802

0.4304

[0 0 -0.1154]
[0.1396 0.1396

[-0.0134 -0.0066 -0.2603]

[1 1 1]

0.2487
0.2452

0.1076
0.1622

[1 0 1]

0.0056

0.5014

0.25

0.1396]
[-0.1254 0 -0.1254]

[0 1 1]

-0.1129

0.4718

0.2492

[0 0 1]

-0.3636

0.4101

0.2419

3.0614

0.9553

0.0019]
[-0.0014 0 -0.0014]

[0.1263 0.1331 -0.1206]


[0.0009 0.1331 -0.246]

0.1257

[0 -01176 -0.1176]

[0.0009 0.0155 -0.3636]

0.1113

[0 0 -0.0992]

[0.0009 0.0155 -04628]

0.0841

[1 1 1]
2034

2035

0.0427

[0.0019 0.0019

[1 0 1]

-3.2411

0.0376

0.0362

[0 1 1]

-3.2408

0.0377

0.0362

[0 0 1]

-9.5505

0.0007

[1 1 1]

3.1017

0.9553

0.0019]
[-0.0014 0 -0.0014]

0.0427

[1 0 1]

-3.2414

0.0376

0.0362

[0 1 1]

-3.2411

0.0376

0.0362

[0 0 1]

-9.5513

0.0000

35

[6.3066 6.3083 -9.5477]

0.001

[6.3052 6.3083 -9.5491]

0.0007

[0 -0.0014 -0.0014]

[6.3052 6.3069 -9.5505]

0.0007

[0 0 -0.0000]
[0.0019 0.0019

[6.3052 6.3069 -9.5505]

0.0000

[6.3071 6.3088 -9.5486]

0.001

[6.3058 6.3088 -9.5499]

0.0007

[0 -0.0014 -0.0014]

[6.3058 6.3075 -9.5513]

0.0007

[0 0 0.0000]

[6.3058 6.3075 -9.5513]

0.0000

Dengan laju pembelajaran = 0.8


masukan
ite.

[n1 n2 1]

keluaran
v

target

y'

bobot

[w1 w2 bias]

Inisialisasi bobot

bobot baru

error
baru

[0 0 0]

[1 1 1]
[1 0 1]
[0 1 1]

0
0.2
0.0911

0.5
0.5498
0.5228

0.25
0.2475
0.2495

0.8
0.8

0.8

1
0
0

[0.1 0.1 0.1]


[-0.1089 0 -0.1089]
[0 -0.1043 -0.1043]

[0.1 0.1 0.1]


[-0.0089 0.1 -0.0089]
[-0.0089 -0.0043 -0.1132]

0.125
0.1512
0.1366

[0 0 1]

-0.1132

0.4717

0.2492

0.8

[-0.0089 -0.0043 -0.2072]

[1 1 1]

-2205

0.4451

0.2470

[0 0 -0.0940]
[0.1096 0.1096

0.1113
0.1539

[1 0 1]

0.0031

0.5008

0.25

0.8

0.1096]
[-0.1002 0 -0.1002]

[0 1 1]

-0.0925

0.4769

0.2495

0.8

[0 0 1]

-0.2929

0.4273

0.2447

0.8

[1 1 1]

3.0614

0.9553

0.0427

[1 0 1]

-3.2411

0.0376

0.0362

0.8

0.0015]
[-0.0011 0 -0.0011]

[0 1 1]

-3.2409

0.0377

0.0362

0.8

[0 0 1]

-9.5491

0.0001

0.0001

0.8

[1 1 1]

3.0617

0.9553

0.0427

0.8

[0.1008 0.1053 -0.0976]


[0.0006 0.1053 -0.1978]

0.1254

[0 -0.0952 -0.0951]

[0.0006 0.0101 -0.2929]

0.1137

[0 0 -0.0836]

[0.0006 0.0101 -0.3766]

0.0913

2548

2549

0.8

0.8

-3.2413

0.0376

0.0362

[0 1 1]

-3.2411

0.0376

0.0362

0.8

[0 0 1]

-9.5498

0.0001

0.0001

0.8

0.001
0.0007

[0 -0.0011 -0.0011]

[6.3047 6.3061 -9.5491]

0.0007

[0 0 -0.0000]
[0.0015 0.0015

[6.3047 6.3061 -9.5491]

0.0000

[1 0 1]

[6.3058 6.3072 -9.5469]


[6.3047 6.3072 -9.5480]

0.0015]
[-0.0011 0 -0.0011]

0.8

36

[0.0015 0.0015

[6.3062 6.3076 -9.5476]

0.001

[6.3051 6.3076 -9.5486]

0.0007

[0 -0.0011 -0.0011]

[6.3051 6.3065 -9.5497]

0.0007

[0 0 -0.0000]

[6.3051 6.3065 -9.5497]

0.0000

Kasus operasi logika AND dengan JST Delta


37
Pelatihan jaringan terus dilakukan

0.2

sampai error yang didapatkan mencapai


0.15
target yaitu 0.001 (vektor pertama) pada
iterasi ke-2549.
0.1
Setelah itu barulah jaringan dapat
melakukan pengenalan pola vektor
dengan baik dengan memberikan nilai 0.05
keluaran yang sesuai (mendekati) target
yang diinginkan.
0
Dengan nilai laju pembelajaran yang
0
lebih kecil ternyata perubahan nilai bobot
dan bias lebih halus tetapi dengan usaha
(iterasi) yang lebih banyak, hal ini lebih
baik untuk menghindari hasil yang
terjebak pada daerah local minima

500

1000

1500

2000

2500

Kasus kelas lebih dari satu


38

Vektor pola yang terbagi

menjadi empat kelompok (kelas)


seperti yang ditunjukkan pada
Gambar yaitu kelas : lingkaran,
bujur sangkar, belah ketupat dan
segi tiga.
Lakukan pembuatan desain
jaringan delta untuk
mendapatkan nilai bobot dan
bias pada jaringan agar dapat
mengenali vektor-vektor pola
untuk diklasifikasikan menjadi
empat kelas seperti pada gambar

Kasus kelas lebih dari satu


39

Hitung jumlah kelas target (n)

n=4

Tentukan jumlah garis

Jika jumlah garis adalah l maka untuk l


garis linear dapat digunakan untuk
maksimal 2l kelas.
Jadi 2l n, tetapi juga diusahakan agar
jumlah garis tidak berlebihan.
Jika l diasumsikan bernilai 2 maka jumlah
kelas target yang dapat digunakan adalah 4.

Maka kasus diatas seharusnya dapat


dipecahkan dengan 2 garis linear.

Jumlah garis ini nantinya akan

menjadi jumlah neuron keluaran


yang harus dibuat pada desain
jaringan syaraf

Kasus kelas lebih dari satu


40
Desain JST
Jika daerah diatas garis linear dikodekan dengan 1 dan

daerah dibawah garis linear dikodekan dengan 0 maka


konversi kelas menjadi :

Lingkaran 11 : artinya kode target untuk kelas lingkaran adalah


jika unit keluaran 1 adalah 1 dan unit keluaran 2 adalah 1.
Belah ketupat 10 : artinya kode target untuk kelas belah ketupat
adalah jika unit keluaran 1 adalah 1 dan unit keluaran 2 adalah 0.
Bujur sangkar 01 : artinya kode target untuk kelas bujur sangkar
adalah jika unit keluaran 1 adalah 0 dan unit keluaran 2 adalah 1.
Segitiga 00 : artinya kode target untuk kelas segitiga adalah jika
unit keluaran 1 adalah 0 dan unit keluaran 2 adalah 0

masukan

target

n1
-0.5

n2
1

bias
1

d1
1

d2

-0.5

1.5

0.5

-0.5

-0.5

0.5

0.5

0.5

0.5

1.5

1.5

0.5

-0.5

JST Perceptron Lapis Jamak


(Multi Layer Perceptron)
41
Perceptron multilayer adalah JST feedforward

dengan satu atau lebih hidden layer (layer


tersembunyi)
Biasanya jaringan terdiri dari input layer neuron
sumber, minimal satu atau lebih hidden layer neuron
komputasi, dan sebuah output layer neuron
komputasi.
Sinyal masukan dirambatkan arah maju (forward)
pada basis layer per layer.
Mengapa kita membutuhkan hidden layer ?

Setiap layer dalam jaringan syaraf multilayer mepunyai fungsi


khusus sendiri-sendiri.
Layer masukan menerima sinyal input dari dunia luar dan
mendistribusikan sinyal ke semua neuron dalam hidden layer
Output layer menerima output sinyal dari (atau stimulus pola),
dari hidden layer dan memunculkan pola keluaran dari seluruh
bagian jaringan.
Neuron dalam hidden layer mendeteksi fitur; bobot neuron
merepresentasikan fitur tersembunyi dalam pola masukan.
Fitur kemudian digunakan oleh output layer dalam menentukan
pola keluaran.

Dengan satu hidden layer, kita

dapat merepresentasikan
sembarang fungsi kontinyu dari
sinyal masukan.
Dengan dua hidden layer, bahkan
fungsi diskontinyu dapat
direpresentasikan.

JST Perceptron Lapis Jamak


(Multi Layer Perceptron) Contd
42
Mengapa layer tengah dalam multilayer network disebut hidden layer ? Apa yang

disembunyikannya ?

Sebuah hidden layer menyembunyikan keluaran yang dibutuhkannya. Neuron dalanmhidden


layer tidak dapat diobservasi melalui perilaku input/output jaringan
Tidak ada cara apapun untuk mengetahui apa output yang dibutuhkan hidden layer.
Dengan kata lain, keluaran yang dibutuhkan hidden layer ditentukan oleh layer itu sendiri.

Bisakan JST memasukkan lebih dari satu hidden layer ?

JST komersial disandingkan dengan 3 atau kadang-kadang 4 layer (termasuk 1 atau 2 hidden layer)
Setiap layer dapat berisi dari 10 sampai 1000 neuron.
Penelitian umumnya 5 atau kadang 6 layer (termasuk 3 atau 4 hidden layer), dan menggunakan
jutaan neuron, tapi praktek umumnya hanya 3 layer, karena setiap penambahan layer akan
meningkatkan komputasi secara eksponensial.

Bagaimana cara pembelajaran JST multi layer ?

Pembelajaran dalam JST multilayer diproses dengan cara yang sama seperti pada perceptron.
Training set pola masukan diberikan pada jaringan. Jaringan menghitung pola keluaran. Jika
ada error (perbedaan pola keluaran aktual dengan yang dibutuhkan), maka bobot akan
disesuaikan untuk mengurangi error.

JST MLP Back-propagation


43
Dalam JST BP, algoritma pembelajaran

mempunyai 2 fase.
Fase 1,

Pelatihan pola masukan diberikan pada jaringan input layer.


Jaringan kemudian merambatkan pola masukan dari layer
ke layer sampai pola keluaran di-generate oleh output layer.

Fase 2,

Jika pola tersebut berbeda dari keluaran yang dibutuhkan,


error dihitung kemudian dirambatkan balik sepanjang
jaringan dari output layer ke input layer.
Bobot diubah ketika error dirambatkan.

Seperti JST yang lain, BP ditentukan oleh

hubungan antara neuron (arsitektur jaringan),


fungsi aktivasi yang digunakan oleh neuron,
algoritma pelatihan (aturan pelatihan) yang
menetapkan prosedur penyesuaian bobot.
Umumnya, jaringan BP adalah JST multilayer
yang mempunyai 3 atau 4 layer, full connected.

Fungsi aktivasi yang digunakan sigmoid

biner:
Atau bipolar:

Bagaimana aturan pembelajaran JST BP


44
Input signals, x1; x2; . . . ; xn, dirambatkan

sepanjang jaringan dari kiri ke kanan, dan sinyal


error, e1; e2; . . . ; el, dari kanan ke kiri.
Untuk merambatkan sinyal error, kita mulai pada
layer output dan kembali ke hidden layer.
Sinyal error pada neuron output k pada iterasi kep didefinisikan oleh:

ek(p) = dk(p) yk(p)


Dimana dk adalah target keluaran yang diinginkan pada
neuron k

Neuron k (neuron output), disuplay dengan

keluarannya sendiri. Maka kita dapat


menggunakan prosedur sederhana untuk
mengupdate bobot wjk. Aturannya sama dengan
perceptron:

wjk(p+1) = wjk + wjk(p)


wjk(p) adalah koreksi bobot
wjk(p) = . ek(p) . (vektor masukan neuron k)
(vektor masukan neuron k bukan dari input awal, tapi
output dari hidden layer.

Bagaimana aturan pembelajaran JST BP Contd


45

(vektor masukan) yang digunakan dari

sinyal keluaran hidden layer zj


digunakan untuk mendapatkan
perubahan bobot (Fu, 1994):

wjk(p) = . k(p) . zj
k(p) adalah error gradien neuron k dilayer
output pada iterasi ke-k

Error gradient ditentukan sebagai

turunan fungsi aktivasi dikalikan


dengan error pada neuron output.
Untuk neuron k pada layer output:

k(p) = fa(v) . ek(p)


Dimana fa(v) = turunan fungsi sigmoid biner
Untuk sigmoid biner: fa(v) = yk(p) . (1 yk(p))
k(p) = yk(p) . (1 yk(p)) . ek(p)
yk(p) = 1/(1+e-v), untuk a=1

Bagaimana aturan pembelajaran JST BP Contd


46

Koreksi bobot pada hidden

layer didapatkan dengan


cara yang sama:
uij(p) = . j(p) . xi(p)
j(p) adalah error gradient pada

neuron j (hidden neuron).l


j(p) = zj(p) . (1 zj(p)) . k ( p ).w jk ( p ) w0k
k 1

Dimana l adalah jumlah neuron

output
Dimana zj = 1/(1+e-v)
n

v j xi ( p ).wij ( p ) w0 j
i 1

Algoritma Training BP
47

Langkah 1: Inisialisasi

Berikan nilai random pada bobot jaringan yang terdistribusi seragam.

Haykin (1999), gunakan range (-2.4/Fi, 2.4/Fi)


Fi adalah jumlah neuron input
Random mulai -0.5 sampai 0.5

Langkah 2: Hitung keluaran (aktivasi)

Mengaktivasi JST back-pro dengan menerapkan input x 1(p), x2(p), , xn(p), dan ouput
n
yang diinginkan d1(p), d2(p), , dn(p)
v j xi ( p ).wij ( p ) w0 j
i 1
Hitung output aktual pada neuron dalam hidden layer
m

vk hidden
z j layer
( p ).w jk ( p) w0 k
zj(p) = sigmoid(vj), n dalah jumlah input masukan neuron pada
k
j 1
Hitung ouput aktual pada neuron dalam output layer

yk(p) = sigmoid(vk), m adalah jumlah input neuron k pada output layer

Langkah 3: Koreksi bobot

Algoritma Training BP Contd


48
Langkah 3: Koreksi bobot

Ubah bobot pada perambatan balik error dalam jaringan


Hitung error gradient pada output layer
k(p) = yk(p) . (1 yk(p)) . ek(p)
Dimana ek(p) = dk(p) yk(p)
Hitung koreksi bobot
wjk(p) = . k(p) . zj
Update bobot pada neuron dalam output layer
wjk(p+1) = wjk + wjk(p)
l layer
Hitung error gradient pada hidden
k ( p ).w jk ( p ) w0k
j(p) = zj(p) . (1 zj(p)) .
k 1
Hitung koreksi bobot
uij(p) = . j(p) . xi(p)
Update bobot pada neuron dalam hidden layer
uij(p+1) = uij + uij(p)

Langkah 4: Iterasi

Lakukan langkah 2 sampai kriteria error sudah tercapai

Kriteria error
menggunakan Sum of
Square Error (SSE)
l

SSE 0.5(d k yk ) 2
k 1

JST BP Mengenali operasi XOR


49

Arsitektur perceptron

multilayer dengan
algoritma backpropagation
Terdiri dari: 2
masukan, 3 neuron
tersembunyi, 1 neuron
keluaran.
Fungsi aktivasi:
sigmoid biner
Laju pelatihan: 0.1

x1

x2

Lihat di excel ....

JST BP Mengenali operasi XOR Contd


50

Setelah 152 iterasi


x1
1
1
0
0

x2
1
0
1
0

dk
0
1
1
0

yk
0.016363
0.980001
0.994611
0.016285

dk - yk
SE
-0.01636 0.000134
0.019999
0.0002
0.005389 1.45E-05
-0.01629 0.000133
SSE
Target
error

0.000481
0.001

Akselerasi proses pelatihan pada multilayer neural network


51

Mempercepat proses pembelajaran dengan memberikan setting

parameter tambahan.
Menggunakan fungsi aktivasi sigmoid bipolar

Dimana a dan b konstanta

Nilai yang cocok untuk a=1.716, b=0.667 (Guyon, 1991).

Menambahkan momentum pada saat melakukan koreksi bobot.

wjk(p) = . wjk(p-1) . . k(p) . zj


Konstanta momemtum bernilai 0 1, nilai yang umum 0.95
Momentum berguna untuk menstabilkan dan mempercepat proses training.

Setting laju pembelajaran (learning rate)

Semakin kecil nilai , maka perubahan bobot akan kecil dan pergerakan kurva SSE
semakin halus mengakibatkan proses pelatihan menjadi semakin lama.
Jika nilai semakin besar maka proses pelatihan berjalan lebih cepat, perubahan bobot
juga besar tetapi menyebabkan ketidakstabilan pada perubahan SSE (naik turun terus).

ANY QUESTIONS ?
52

Anda mungkin juga menyukai