15
EL4233 DASAR SISTEM DAN KENDALI CERDAS PEMANFAATAN JARINGAN SYARAF TIRUAN DENGAN METODA BACKPROPAGATION UNTUK MEMPREDIKSI KEMENANGAN PADA PERMAINAN ONLINE BACCARAT Oleh : Erich Pratama Saputra (13210140) SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2015

El4233 Dasar Sistem Dan Kendali Cerdas

Embed Size (px)

DESCRIPTION

DSKC ITB

Citation preview

Page 1: El4233 Dasar Sistem Dan Kendali Cerdas

EL4233 DASAR SISTEM DAN KENDALI CERDAS

PEMANFAATAN JARINGAN SYARAF TIRUAN DENGAN METODA BACKPROPAGATION UNTUK MEMPREDIKSI KEMENANGAN PADA PERMAINAN ONLINE BACCARAT

Oleh :

Erich Pratama Saputra (13210140)

SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKAINSTITUT TEKNOLOGI BANDUNG

2015

Page 2: El4233 Dasar Sistem Dan Kendali Cerdas

Disclaimer :Data sepenuhnya diambil tanpa rekayasa

dari situs gamble online m88en.com. Situs

tersebut dapat diakses sepenuhnya oleh

publik secara bebas. Hasil gambling

ditampilkan secara live dan tidak terbatas

pada orang yang ikut permainan saja tetapi

bagi siapa saja yang mengakses situs

tersebut. Penulis tidak ada sangkut pautnya

dengan situs tersebut di atas dan hanya

mengakses untuk memperoleh data.

Abstrak

Saat ini telah banyak bermunculan situs

gambling online yang menawarkan

berbagai permainan yang dapat diakses

secara publik. Pemain dapat

mendepositokan uangnya dan menukarnya

dengan chip yang digunakan untuk

bermain. Pada beberapa permainan seperti

baccarat , tingkat kemenangan

dipengaruhi oleh kemampuan untuk

memprediksi kartu dan pola yang ada.

Pada laporan ini akan digunakan algortima

backpropagation untuk memprediksi

kemenangan pada permainan judi dengan

mengamati pola dan menghitung peluang

berdasarkan hasil sebelumnya.

Pendahuluan

Permainan baccarat merupakan salah satu

permainan sederhana pada kasino yang

melibatkan dua pihak. Satu pihak

bertindak sebagai banker (bandar) dan

pihak lain disebut player (pemain).

Sebelum permainan dimulai, setiap player

akan memasang chip taruhan pada satu

atau lebih dari 3 posisi berikut :

Banker Win : sisi banker memliki

kartu yang lebih besar.

Player win : sisi player memiliki

kartu yang lebih besar.

Tie(seri) : banker dan player

memiliki kartu yang besarnya

sama.

Selanjutnya, banker akan membagikan 2

buah kartu dari deck masing-masing

kepada banker dan player. Pemenang

adalah sisi yang memiliki kartu paling

besar.

Page 3: El4233 Dasar Sistem Dan Kendali Cerdas

Landasan Teori

Jaringan Syaraf Tiruan

Jaringan syaraf tiruan (JST) sesuai

namanya merupakan sistem yang

menyerupai sistem syaraf. Dalam sistem

JST ini ada beberapa hal yang perlu

diperhatikan, yaitu :

1. Adanya input

2. Adanya target untuk input tertentu

yang sudah diketahui

3. Adanya sistem jaringan syaraf

tiruan sebagai blackbox

Berdasarkan target tersebut, sistem JST

dapat melakukan proses pembelajaran

dengan membandingkan outputnya dengan

target serta melakukan koreksi.

Berikut ini merupakan gambar JST dimana

terdapat sejumlah input, layer dan output.

Metode Backpropagation

Metode backpropagation merupakan

sebuah metode sistematik pada jaringan

syaraf tiruan (JST) dengan menggunakan

algoritma pembelajaran yang terawasi dan

biasanya digunakan oleh perceptron

dengan banyak layar lapisan untuk

mengubah bobot-bobot yang ada pada

lapisan tersembunyinya (hidden layer).

Backpropagation ini merupakan pelatihan

jenis terkendali dimana digunakan pola

penyesuaian bobot untuk mencapai nilai

kesalahan yang minimum antara keluaran

hasil prediksi dengan keluaran nyata.

Secara umum, algoritma pembelajaran

backpropagasi terdiri atas 2 tahapan, yaitu

propagasi dan update bobot.

Pada laporan ini metode pelatihan

backpropagation terdiri dari 3 fase, yaitu :

1. Fase maju, yaitu pola masukan

dihitung maju mulai dari layar

masukan hingga layar keluaran

menggunakan fungsi aktivasi yang

ditentukan.

2. Fase mundur, yaitu selisih antara

keluaran jaringan dengan target

yang diinginkan merupakan nilai

error. Kemudian error tersebut di

propagasikan mundur dimulai dari

garis yang berhubungan langsung

dengan unit-unit di layar keluaran.

3. Modifikasi bobot untuk

memperbaiki dan menurunkan

kesalahan yang terjadi.

Untuk hal tersebutlah dibuat inisialisasi

nilai-nilai. Berikut ini adalah penentuan

inisialisasi nilai yang ditentukan.

Page 4: El4233 Dasar Sistem Dan Kendali Cerdas

Inisialisasi bobot dengan

mengambil nilai random bobot

awal yang cukup kecil.

Menetapkan nilai maksimum

epoch, target error serta learning

rate (α).

Inisialisasi nilai epoch = 0.

Ketika kondisi (epoch <

maksimum epoch) dan (MSE <

target error), maka dilakukan hal

berikut :

o Epoch = epoch + 1

o Tiap-tiap pasangan elemen yang

dilakukan pembelajaran,

dikerjakan feedforward dan

backpropagation.

o Hitung MSE

o Pengujian sistem

Feedforward

Merupakan pola masukan dihitung maju

mulai dari layar masukan hingga layar

keluaran menggunakan fungsi aktivasi

yang ditentukan. Berikut ini merupakan

langkah-langkah feedforward.

Tiap unit input (Xi, i = 1, 2, 3, …,

n) menerima sinyal xi dan

meneruskan sinyal tersebut ke

semua unit pada lapisan yang ada

diatasnya (hidden layer).

Tiap unit pada hidden layer (Zj, j =

1, 2, 3, …, p) menjumlahkan

sinyal-sinyal input terbobot :

z¿ j=b 1 j+∑i=1

n

x i v j

dimana :

n : jumlah unit tersembunyi

i,j : 0, 1, 2, …, n

b1 : bias input ke hidden

x : bobot input

v : bobot input ke hidden

z_in: jumlah sinyal hidden, dengan

menggunakan fungsi aktivasi untuk

menghitung sinyal outputnya.

Tiap unit output (Yk, k = 1, 2, 3,

…, m) menjumlahkan sinyal-sinyal

input terbobot.

y¿k=b2k+∑i=1

p

z i w jk

dimana :

p : jumlah unit keluaran

i,j, k : 0, 1, 2, …, p

b2 : bias hidden ke output

w : bobot hidden ke output

y_in : jumlah sinyal output,

dengan menggunakan fungsi

aktivasi untuk menghitung sinyal

outputnya.

Backpropagation

Tiap unit output (Yk, k = 1, 2, 3,

…, m) menerima target pola yang

berhubungan dengan pola yang

berhubungan dengan pola input

pembelajaran dengan menghitung

errornya :

δ k=(t k− yk ) f ' ( y¿ ink)

Page 5: El4233 Dasar Sistem Dan Kendali Cerdas

dimana :

δ merupakan nilai error dan t

adalah target.

Menghitung koreksi bobot yang

nantinya digunakan untuk

mengubah nilai wjk.

Δw jk=α δ k z j

dimana :

α merupakan learning rate

Kemudian nilai bias baru dapat

digunakan untuk memperbaiki nilai b2k :

Δb 2k=α δ k

Tiap unit hidden (Zj, j = 1, 2, 3, …,

p) menjumlahkan delta inputnya

dari unit yang berada pada lapisan

atasnya.

δ ¿ j=∑k=1

p

δ k w jk

Tiap unit output (Yk, k = 1, 2, 3,

…, m) memperbaiki bias dan

bobotnya (j = 1, 2, 3, …, p).

w jk ( baru )=w jk ( lama )+Δw jk

b 2k (baru )=b 2k ( lama )+ Δb2k

MSE (Mean Square Error)

MSE=∑k=1

m

(tk− yk)2

dimana MSE merupakan mean square

error (nilai rata-rata error).

Hasil Percobaan

Pada metoda prediksi ini, digunakan 2

buah input sebagai tolok ukur prediksi.

Input tersebut merupakan kondisi dari 3

posisi bermain (lihat pendahuluan) dan

pola dari hasil sebelumnya. Dari output

tersebut akan diprediksi sisi banker (1)

atau player(0) yang akan keluar.

Datasheet yang digunakan diperoleh dari

liver streaming M88 Baccarat

Kondisi Bobot

Banker Win 0.6

Player Win 0.7

Tie 0.1

Datasheet kondisi bermain

Pola Sebelumnya Bobot

Banker menang

sebelumnya0

Banker 2 kali 0.6

Page 6: El4233 Dasar Sistem Dan Kendali Cerdas

menang berturut-

turut

Banker 3 kali

menang berturut-

turut

1

Player menang

sebelumnya1

Player 2 kali

menang berturut-

turut

0.6

Player 3 kali

menang berturut-

turut

0

Datasheet pola kartu sebelumnya

Inisialisasi sistem dilakukan sebagai

berikut :

Jumlah hidden layer : 10

Learning rate (α) : 0.5

Jumlah maksimal epoch :

1000

Maksimum MSE : 10^-5

Berdasarkan hasil percobaan pada piranti

lunak MATLAB diperoleh grafik MSE

terhadap rentang pewaktu(epoch).

Perbandingan MSE terhadap epoch

Berdasarkan kurva error tersebut

diketahui bahwa algoritma yang dirancang

belum sepenuhnya mencapai akurasi 100%

(error sama dengan nol). Ada beberapa

faktor yang berpengaruh antara lain masih

banyak kemungkinan kombinasi pola yang

tidak dilibatkan.

Walaupun demikian secara umum

sistem memiliki tingkat akurasi 70,6 %

dengan jumlah data test yang benar adalah

12 dari 17 sampel.

Kesimpulan :Berdasarkan hasil pengujian di atas dapat

disimpulkan bahwa algortima yang

dirancang dapat memprediksi kartu

pemenang dari permainan baccarat.

Kombinasi input serta pengamatan pola

merupakan faktor penting dalam sistem

ini. Walaupun demikian sistem yang

dirancang mampu memberikan ketelitian

hingga 70,6%.

Page 7: El4233 Dasar Sistem Dan Kendali Cerdas

Source Code

%Nama : Erich Pratama Saputra%NIM : 13210140%file : sistem prediksi bakarat clcclearP= [0.7 0; 0.6 0; 0.6 0.6; 0.7 0; 0.6 0; 0.6 0.6; 0.7 1; 0.6 0; 0.6 0.6; 0.6 1; 0.6 1; 0.7 1; 0.7 0.6; 0.6 0; 0.6 0.6; 0.6 1; 0.6 1; 0.7 1; 0.7 0.6; 0.6 0; 0.7 1; 0.7 0.6; 0.6 0; 0.7 1; 0.7 0.6; 0.7 0; 0.7 0; 0.7 0; 0.6 0; 0.7 1; 0.7 0.6; 0.6 0; 0.1 0; 0.7 1; 0.7 0.6; 0.7 1; 0.6 0; 0.6 0.6; 0.7 1; 0.7 0.6; 0.7 0; 0.7 0; 0.7 0; 0.7 0; 0.7 0; 0.6 0; 0.7 1; 0.7 0.6; 0.6 0;];

Page 8: El4233 Dasar Sistem Dan Kendali Cerdas

T = [1;1;0;1;1;0;1;1;1;1;0;0;1;1;1;1;0;0;1;0;0;1;0;0;0;0;0;1;0;0;1;0;0;0;0;1;1;0;0;0;0;0;0;0;1;0;0;1;1]; Pola = length(P(:,1));DimPola = length(P(1,:));Oneuron = length(T(1,:)); Hneuron = 10;LR =0.5;Epoch = 1000;MaxMSE=10^-5; W1 = []; for ii=1:Hneuron, W1=[W1;(rand(1,DimPola)*2-1)];endW1=W1'; W2=[];for jj=1:Oneuron, W2=[W2;(rand(1,Hneuron)*2-1)];endW2=W2'; MSEepoch = MaxMSE+1MSE=[];ee=1; while (ee<=Epoch)&(MSEepoch > MaxMSE) MSEepoch =0; for pp = 1:Pola, CP=P(pp,:); CT=T(pp,:); %perhitungan maju untuk mendapatkan output, error dan MSE A1=[]; for ii=1:Hneuron, v=CP*W1(:,ii); A1=[A1 1/(1+exp(-v))]; end A2=[]; for jj=1:Oneuron, v=A1*W2(:,jj); A2=[A2 1/(1+exp(-v))]; end Error = CT-A2; for kk =1:length(Error), MSEepoch= MSEepoch+Error(kk)^2; end %perhitungan mundur untuk mengupdate W1 dan W2 for kk=1:Oneuron, D2(kk)=A1(kk)*(1-A2(kk))*Error(kk); end

Page 9: El4233 Dasar Sistem Dan Kendali Cerdas

dW2=[]; for jj=1:Hneuron, for kk=1:Oneuron, delta2(kk)=LR*D2(kk)*A1(jj); end dW2=[dW2;delta2]; end for jj=1:Hneuron, D1(jj)=A1*(1-A1)'*D2*W2(jj,:)'; end dW1=[]; for ii= 1:DimPola, for jj=1:Hneuron, delta1(jj)=LR*D1(jj)*CP(ii); end dW1=[dW1; delta1]; end W1 = W1+dW1; W2 = W2+dW2; end MSE=[MSE (MSEepoch/Pola)]; ee=ee+1;endplot(MSE);xlabel('Epoch')ylabel('MSE')save TResult.mat W1 W2 MSE Hneuron Oneuron LR

Page 10: El4233 Dasar Sistem Dan Kendali Cerdas

%Nama : Erich Pratama Saputra%NIM : 13210140%file : Test Bakarat clcclearload TResult.mat TestSet=[0.7 1; 0.6 0; 0.7 1; 0.7 0.6; 0.6 0; 0.7 1; 0.7 0.6; 0.7 0; 0.7 0; 0.7 0; 0.6 0; 0.7 1; 0.7 0.6; 0.6 0; 0.7 1; 0.7 0.6; 0.7 0; ];TestKelas = [1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1]; Pola =length(TestSet(:,1));JumBenar = 0;for pp =1:Pola, CP=TestSet(pp,:); A1=[]; for ii=1:Hneuron, v=CP*W1(:,ii); A1=[A1 1/(1+exp(-v))]; end A2=[]; for jj=1:Oneuron, v=A1*W2(:,jj); A2=[A2 1/(1+exp(-v))]; end %pemetaan A2 menjadi kelas keputusan for jj=1:Oneuron, if A2(jj)<0.5 Kelas = 0; else Kelas = 1; end end if Kelas==TestKelas(pp) JumBenar = JumBenar+1; endenddisplay('Akurasi JST = ', num2str(JumBenar/Pola));