jaringan syaraf tiruan (artificial neural networks)

40
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE) MATERI 2 Jaringan Syaraf Tiruan (Artificial Neural Networks) Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2011

Upload: kylee-wallace

Post on 04-Jan-2016

91 views

Category:

Documents


0 download

DESCRIPTION

Jaringan Syaraf Tiruan (Artificial Neural Networks). KECERDASAN BUATAN (Artificial Intelligence) Materi 2. Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2011. Otak Manusia. Manusia bisa belajar dari pengalaman . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

KECERDASAN BUATAN(ARTIFICIAL INTELLIGENCE)

MATERI 2

Jaringan Syaraf Tiruan (Artificial Neural Networks)

Eko PrasetyoTeknik Informatika

Univ. Pembangunan Nasional Veteran Jawa Timur2011

Page 2: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

2

Otak Manusia

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.

Page 3: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

3

Jaringan Syaraf Tiruan

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.

Page 4: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

4

Pemodelan Neuron

Neuron adalah unit pemrosesan informasi yang merupakan dasar operasi jaringan syaraf.

Tiga elemen dasar : Sejumlah (himpunan) synapses atau connecting

links, 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

Sebuah Adder Untuk penjumlahan sinyal input, Dimuati oleh hasil synapses dari neuron

Sebuah fungsi aktivasi (activation function) Untuk pembatasan amplitude dari output neuron. Fungsi aktivasi ini disebut juga dengan squashing

function yang melakukan pembatasan range amplitude yang diijinkan dari sinyal output pada beberapa batas nilai

Normalisasi range amplitude dari output neuron ditulis menjadi interval unit [0,1] atau [-1,1]Unsur eksternal BIAS

•Bias bk mempunyai pengaruh dalam meningkatkan atau menurunkan input net dari fungsi 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

Page 5: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

5

Pemodelan Neuron

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

Jaringan Syaraf Biologis

Jaringan Syaraf Tiruan

Soma NeuronDendrit InputAxon OutputSynapse Bobot

Analogi

Page 6: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

6

Bias

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.

Page 7: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

7

Fungsi Aktivasi

Mendefinisikan output neuron dalam daerah induced local field v

Ada tiga jenis fungsi aktivasi dasar : Fungsi Identitas (Identity Function)/Linear

Fungsi Piece-wise (Piece-wise Linear Function)

Fungsi Threshold (Threshold Function) Threshold Biner Threshold Bipolar

Fungsi Sigmoid (Sigmoid Function) Sigmoid Biner Sigmoid Bipolar

Fungsi identitas

-2 -1 0 1 2-0.2

0

0.2

0.4

0.6

0.8

1 (v)

v

Fungsi Piece-wise

-2 -1 0 1 2-2

-1

0

1

2

(v)

v

Page 8: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

8

Fungsi Aktivasi

Fungsi Threshold Biner (step)

Fungsi Threshold Bipolar (sign)

Fungsi Sigmoid Biner

Fungsi Sigmoid Bipolar

Threshold Biner

Threshold Bipolar-10 -5 0 5 100

0.2

0.4

0.6

0.8

1

1.2

(v)

v

a=0.5

a=3

a=5

a=1

-10 -5 0 5 10

-1

-0.5

0

0.5

1 (v)

v

a=0.5

a=1

a=3

a=5

Sigmoid Biner Sigmoid Bipolar

Page 9: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

9

Model JST McCulloch-Pitts

Operasi OR FA adalah threshold Threshold = 2

x1 x2 y

1 1 1

1 0 0

0 1 0

0 0 0

x1 x2 y

1 1 1

1 0 1

0 1 1

0 0 0

Operasi AND FA adalah threshold Threshold = 2

Page 10: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

10

Operasi AND

Fungsi Aktivasi Threshold biner

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

Hasil Y sama dengan target JST dapat mengenali pola dengan benar

Vektor[x1 x2]

Bobot[w1 w2]

v=x1*w1 +

x2*w2

Y=Sign(v)

Target

[1 1] [1 1] 1*1 + 1*1 = 2 1 1[1 0] [1 1] 1*1 + 0*1 = 1 0 0[0 1] [1 1] 0*1 + 1*1 = 1 0 0[0 0] [1 1] 0*1 + 0*1 = 0 0 0

Page 11: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

11

Operasi OR

Fungsi Aktivasi Threshold biner

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

Hasil Y sama dengan target JST dapat mengenali pola dengan benar

Vektor[x1 x2]

Bobot[w1 w2]

v=x1*w1 +

x2*w2

Y=Sign(v)

Target

[1 1] [2 2] 1*2 + 1*2 = 4 1 1[1 0] [2 2] 1*2 + 0*2 = 2 1 1[0 1] [2 2] 0*2 + 1*2 = 2 1 1[0 0] [2 2] 0*2 + 0*2 = 0 0 0

Page 12: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

12

Operasi AND (dengan Bias)

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]

Bobot[w1 w2 w3]

v=x1*w1 + x2*w2 Y= Sign(v)

Target

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

1 1

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

0 0

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

0 0

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

0 0

Page 13: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

13

Jaringan FeedForward

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 disanaJST Feedfordward Lapis Tunggal (Single-Layer Feedforward

Networks)

Page 14: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

14

Jaringan FeedForward – Cont’d

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 Feedfordward Lapis Jamak (Multi-Layer Feedforward Networks)

JST 10-4-2

Page 15: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

15

Pelatihan Jaringan Syaraf Tiruan

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.

Page 16: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

16

Pelatihan Jaringan Syaraf Tiruan – Cont’d

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.

Page 17: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

17

Pelatihan Jaringan Syaraf Tiruan – Cont’d

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) , dimanaek(n) = dk(n) – yk(n)

Page 18: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

18

Pelatihan Jaringan Syaraf Tiruan – Cont’d

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)

Page 19: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

19

Pelatihan Jaringan Syaraf Tiruan – Cont’d

Algoritma Pembelajaran Perceptron yang diusulkan Rosenblatt (1960) untuk melakukan klasifikasi: Langkah 1: Inisialisasi

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

Langkah 2: Aktivasi Lakukan aktivasi perceptron dengan menerapkan setiap vektor dengan Yn =

sign(vn) Langkah 3: Training Bobot

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.

Page 20: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

20

Jenis Pembelajaran

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)

Page 21: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

21

Jenis Pembelajaran

Widrow-Hoff Menggunakan fungsi aktivasi Linier – Fungsi aktivasi

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

Back-propagationCorrelationWinner Take AllSelf Organizing Map (SOM)Dsb.

Page 22: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

22

Bagaimana membuat JST Perceptron yang dapat mengenali operasi AND, OR, dan XOR ?

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 menhasilkan 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)

Page 23: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

23

JST Perceptron untuk kasus AND (Cara 1)

Bobot awal : 0.3 dan -0.1

Learning rate : 0.1

Fungsi aktivasi : Threshold () biner = 0.2

iterasi

masukan

v

keluaran lr target Errorperubahan bobot

bobot baru

[n1 n2] y d e[Δw1 Δw2

Δbias]

[w1 w2

bias]Inisialisasi bobot [0 0]

1

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

2

[1 1] 0.2 1 0.1 1 0 [0 0] [0.1 0.1][1 0] 0.1 0 0.1 0 0 [0 0] [0.1 0.1][0 1] 0.1 0 0.1 0 0 [0 0] [0.1 0.1][0 0] 0 0 0.1 0 0 [0 0] [0.1 0.1]

Page 24: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

24

JST Perceptron untuk kasus AND (Cara 1)

Bobot awal : 0.3 dan -0.1 Learning rate : 0.1 Fungsi aktivasi : Threshold () biner = 0.2

iterasimasukan

vkeluaran lr target Error perubahan bobot bobot baru

[n1 n2] y d e [Δw1 Δw2 Δbias] [w1 w2 bias]

Inisialisasi bobot [0.3 -0.1]

1

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

2

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

3

[1 1] 0.2 1 0.1 1 0 [0 0] [0.2 0][1 0] 0.2 1 0.1 0 -1 [-0.1 0] [0.1 0][0 1] 0 0 0.1 0 0 [0 0] [0.1 0][0 0] 0 0 0.1 0 0 [0 0] [0.1 0]

4

[1 1] 0.1 0 0.1 1 1 [0.1 0.1] [0.2 0.1][1 0] 0.2 0 0.1 0 0 [0 0] [0.2 0.1][0 1] 0.1 0 0.1 0 0 [0 0] [0.2 0.1][0 0] 0 0 0.1 0 0 [0 0] [0.2 0.1]

5

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

6

[1 1] 0.2 1 0.1 1 0 [0 0] [0.1 0.1[1 0] 0.1 0 0.1 0 [0 0] [0.1 0.1][0 1] 0.1 0 0.1 0 [0 0] [0.1 0.1][0 0] 0 0 0.1 0 [0 0] [0.1 0.1]

Page 25: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

25

JST Perceptron untuk kasus AND (Cara 2)

Bobot awal : 0 dan 0

Bias : 0 Learning rate :

1 Fungsi

aktivasi : Threshold () biner = 0

iterasi

masukan

v

keluaran

lr target errorperubahan

bobotbobot baru

[n1 n2 1] y d E[Δw1 Δw2

Δbias]

[w1 w2

bias]Inisialisasi bobot [0 0 0]

1

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

2

[1 1 1] -2 0 1 1 1 [1 1 1] [0 1 0][1 0 1] 0 1 1 0 -1 [-1 0 -1] [-1 1 -1][0 1 1] 0 1 1 0 -1 [0 -1 -1] [-1 0 -2][0 0 1] -2 0 1 0 0 [0 0 0] [-1 0 -2]

3

[1 1 1] -3 0 1 1 1 [1 1 1] [0 1 -1][1 0 1] -1 0 1 0 0 [0 0 0] [0 1 -1][0 1 1] 0 1 1 0 -1 [0 -1 -1] [0 0 -2][0 0 1] -2 0 1 0 0 [0 0 0] [0 0 -2]

4

[1 1 1] -2 0 1 1 1 [1 1 1] [1 1 -1][1 0 1] 0 1 1 0 -1 [-1 0 -1] [0 1 -2][0 1 1] -1 0 1 0 0 [0 0 0] [0 1 -2][0 0 1] -2 0 1 0 0 [0 0 0] [0 1 -2]

Page 26: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

26

JST Perceptron untuk kasus AND (Cara 2)

Hasil bobot akhir : 1 dan 2

Bias : -3

(0,0)

(0,1)

(1,0)

(1,1)

n1

n2

iterasi

masukan

vkeluaran

lr target errorperubahan bobot

bobot baru

[n1 n2 1] y d E[Δw1 Δw2

Δbias]

[w1 w2

bias]

5

[1 1 1] -1 0 1 1 1 [1 1 1] [1 2 -1][1 0 1] 0 1 1 0 -1 [-1 0 -1] [0 2 -2][0 1 1] 0 1 1 0 -1 [0 -1 -1] [0 1 -3][0 0 1] -3 0 1 0 0 [0 0 0] [0 1 -3]

6

[1 1 1] -2 0 1 1 1 [1 1 1] [1 2 -2][1 0 1] -1 0 1 0 0 [0 0 0] [1 2 -2][0 1 1] 0 1 1 0 -1 [0 -1 -1] [1 1 -3][0 0 1] -3 0 1 0 0 [0 0 0] [1 1 -3]

7

[1 1 1] -1 0 1 1 1 [1 1 1] [2 2 -2][1 0 1] 0 1 1 0 -1 [-1 0 -1] [1 2 -3][0 1 1] -1 0 1 0 0 [0 0 0] [1 2 -3][0 0 1] -3 0 1 0 0 [0 0 0] [1 2 -3]

8

[1 1 1] 0 1 1 1 0 [0 0 0] [1 2 -3][1 0 1] -2 0 1 0 0 [0 0 0] [1 2 -3][0 1 1] -1 0 1 0 0 [0 0 0] [1 2 -3][0 0 1] -3 0 1 0 0 [0 0 0] [1 2 -3]

Page 27: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

27

AND (Pengujian)

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) v keluaran (y) target (d)

[1 1 1] [1 2 -3] 0 1 1

[1 0 1] [1 2 -3] -2 0 0

[0 1 1] [1 2 -3] -1 0 0

[0 0 1] [1 2 -3] -3 0 0

Page 28: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

28

AND, OR, XOR

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)

Page 29: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

29

Mengapa pelatihan perceptron single layer hanya berlaku untuk data yang terpisah secara linear ?

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 x1w1 + x2w2 = Menurut hasil cara 1, garis pemisah adalah 0.1x1 + 0.1x2 = 0.2 Atau x1 + x2 = 2 Maka daerah 0 (nol) dibawah garis, diberikan oleh : x1 + x2 -2 < 0 Daerah 1 diatas garis diberikan oleh : x1 + 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.

Page 30: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

30

Contoh kasus

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.1Bobot awal Learning rate Iterasi Bobot akhir[0 0 0] 0.1 3 [-0.125 0.075 0][0 0 0] 0.2 3 [-0.25 0.15 0][0 0 0] 0.3 3 [-0.375 0.225 0][0 0 0] 0.4 3 [-0.5 0.3 0][0 0 0] 0.5 3 [-0.625 0.375 0][0 0 0] 0.6 3 [-0.75 0.45 0][0 0 0] 0.9 3 [-1.125 0.675 0][0 0.3 -0.5] 0.9 5 [-1.8 0.75 0.4][-0.1 -0.7 -0.2] 0.9 6 [-2.125 0.425 0.7][0.4 2 0.9] 0.9 3 [-1.625 1.325 0]

Page 31: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

31

JST Delta

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.

å

wk1

wk2

wkm

wkm-1

x1

xm

xm-1

x2

wk0

x0

Vektor input

bias

yk

r=dk-ykr

. . .

. . .

vk

dkx

Dw

’h

Page 32: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

32

JST Delta

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)

Page 33: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

33

Kasus operasi logika AND dengan JST Delta

Sebuah jaringan delta single neuron keluaran untuk mengenali fungsi logika AND dengan dua neuron masukan, vektor masukannya adalah sebagai berikut : x1

T = [1 1] x1

T = [1 0] x1

T = [0 1] x1

T = [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

(0,0)

(0,1)

(1,0)

(1,1)

n1

n2

Page 34: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

34

Kasus operasi logika AND dengan JST Delta

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 500 1000 1500 20000

0.05

0.1

0.15

0.2

0.25

Page 35: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

35

ite.masukan

vkeluaran

y' target bobot bobot baru error

[n1 n2 1] y d [w1 w2 bias] ξbaru

Inisialisasi bobot [0 0 0]

1

[1 1 1] 0 0.5 0.25 1 1 [0.125 0.125 0.125] [0.125 0.125 0.125] 0.125

[1 0 1] 0.25 0.5622 0.2461 1 0 [-0.1384 0 -0.1384] [-0.0134 0.125 -0.0134] 0.158

[0 1 1] 0.1116 0.5279 0.2492 1 0 [0 -0.1316 -0.1316] [-0.0134 -0.0066 -0.1449] 0.1393

[0 0 1] -0.1449 0.4638 0.2487 1 0 [0 0 -0.1154] [-0.0134 -0.0066 -0.2603] 0.1076

2

[1 1 1] -2802 0.43040.2452

1 1[0.1396 0.1396

0.1396][0.1263 0.1331 -0.1206]

0.1622

[1 0 1] 0.0056 0.5014 0.25 1 0 [-0.1254 0 -0.1254] [0.0009 0.1331 -0.246] 0.1257

[0 1 1] -0.1129 0.4718 0.2492 1 0 [0 -01176 -0.1176] [0.0009 0.0155 -0.3636] 0.1113

[0 0 1] -0.3636 0.4101 0.2419 1 0 [0 0 -0.0992] [0.0009 0.0155 -04628] 0.0841

2034

[1 1 1] 3.0614 0.95530.0427

1 1[0.0019 0.0019

0.0019][6.3066 6.3083 -9.5477]

0.001

[1 0 1] -3.2411 0.0376 0.0362 1 0 [-0.0014 0 -0.0014] [6.3052 6.3083 -9.5491] 0.0007

[0 1 1] -3.2408 0.0377 0.0362 1 0 [0 -0.0014 -0.0014] [6.3052 6.3069 -9.5505] 0.0007

[0 0 1] -9.5505 0.0007 0 1 0 [0 0 -0.0000] [6.3052 6.3069 -9.5505] 0.0000

2035

[1 1 1] 3.1017 0.95530.0427

1 1[0.0019 0.0019

0.0019][6.3071 6.3088 -9.5486]

0.001

[1 0 1] -3.2414 0.0376 0.0362 1 0 [-0.0014 0 -0.0014] [6.3058 6.3088 -9.5499] 0.0007

[0 1 1] -3.2411 0.0376 0.0362 1 0 [0 -0.0014 -0.0014] [6.3058 6.3075 -9.5513] 0.0007

[0 0 1] -9.5513 0.0000 0 1 0 [0 0 0.0000] [6.3058 6.3075 -9.5513] 0.0000

Dengan laju pembelajaran = 1

Page 36: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

36

Dengan laju pembelajaran = 0.8

ite.masukan

vkeluaran

y' target bobot bobot baru error

[n1 n2 1] y d [w1 w2 bias] ξbaru

Inisialisasi bobot [0 0 0]

1

[1 1 1] 0 0.5 0.25 0.8 1 [0.1 0.1 0.1] [0.1 0.1 0.1] 0.125

[1 0 1] 0.2 0.5498 0.2475 0.8 0 [-0.1089 0 -0.1089] [-0.0089 0.1 -0.0089] 0.1512

[0 1 1] 0.0911 0.5228 0.2495 0.8 0 [0 -0.1043 -0.1043] [-0.0089 -0.0043 -0.1132] 0.1366

[0 0 1] -0.1132 0.4717 0.2492 0.8 0 [0 0 -0.0940] [-0.0089 -0.0043 -0.2072] 0.1113

2

[1 1 1] -2205 0.4451 0.24700.8

1[0.1096 0.1096

0.1096][0.1008 0.1053 -0.0976]

0.1539

[1 0 1] 0.0031 0.5008 0.25 0.8 0 [-0.1002 0 -0.1002] [0.0006 0.1053 -0.1978] 0.1254

[0 1 1] -0.0925 0.4769 0.2495 0.8 0 [0 -0.0952 -0.0951] [0.0006 0.0101 -0.2929] 0.1137

[0 0 1] -0.2929 0.4273 0.2447 0.8 0 [0 0 -0.0836] [0.0006 0.0101 -0.3766] 0.0913

2548

[1 1 1] 3.0614 0.9553 0.04270.8

1[0.0015 0.0015

0.0015][6.3058 6.3072 -9.5469]

0.001

[1 0 1] -3.2411 0.0376 0.0362 0.8 0 [-0.0011 0 -0.0011] [6.3047 6.3072 -9.5480] 0.0007

[0 1 1] -3.2409 0.0377 0.0362 0.8 0 [0 -0.0011 -0.0011] [6.3047 6.3061 -9.5491] 0.0007

[0 0 1] -9.5491 0.0001 0.0001 0.8 0 [0 0 -0.0000] [6.3047 6.3061 -9.5491] 0.0000

2549

[1 1 1] 3.0617 0.9553 0.04270.8

1[0.0015 0.0015

0.0015][6.3062 6.3076 -9.5476]

0.001

[1 0 1] -3.2413 0.0376 0.0362 0.8 0 [-0.0011 0 -0.0011] [6.3051 6.3076 -9.5486] 0.0007

[0 1 1] -3.2411 0.0376 0.0362 0.8 0 [0 -0.0011 -0.0011] [6.3051 6.3065 -9.5497] 0.0007

[0 0 1] -9.5498 0.0001 0.0001 0.8 0 [0 0 -0.0000] [6.3051 6.3065 -9.5497] 0.0000

Page 37: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

37

Kasus operasi logika AND dengan JST Delta

Pelatihan jaringan terus dilakukan sampai error yang didapatkan mencapai target yaitu 0.001 (vektor pertama) pada iterasi ke-2549.

Setelah itu barulah jaringan dapat melakukan pengenalan pola vektor dengan baik dengan memberikan nilai keluaran yang sesuai (mendekati) target yang diinginkan.

Dengan nilai laju pembelajaran yang 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

0 500 1000 1500 2000 25000

0.05

0.1

0.15

0.2

Page 38: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

38

Kasus kelas lebih dari satu

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

Page 39: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

39

Kasus kelas lebih dari satu

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

Page 40: Jaringan Syaraf Tiruan  (Artificial Neural Networks)

40

Kasus kelas lebih dari satu

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

d1

d2

n2

n1w11

w21

w12w22

w101

w201

y1

y2

masukan target

n1 n2 bias d1 d2

-0.5 1 1 1 1

-0.5 1.5 1 1 1

0.5 1 1 1 1

-0.5 0 1 1 0

-0.5 0.5 1 1 0

0 0.5 1 1 0

0.5 0.5 1 0 1

1 1 1 0 1

1.5 1.5 1 0 1

0.5 0 1 0 0

1 0 1 0 0

1 -0.5 1 0 0