Anda di halaman 1dari 4

Pengenalan Pola Huruf A, B, dan H dengan Perceptron

Wim Permana
03/165273/PA/09313
Jurusan Ilmu Komputer
Universitas Gadjah Mada
wimkhan@yahoo.com

1. Pendahuluan
Perceptron merupakan salah satu metode pembelajaran terawasi (supervise
learning method) dalam jaringan saraf tiruan (JST). Umumnya, perceptron
digunakan untuk mengklasifikasikan suatu pola tertentu.
Pada dasarnya, perceptron yang memiliki satu lapisan akan memiliki bobot
yang bisa diatur plus sebuah nilai ambang (threshold). Algoritma yang digunakan
oleh aturan perceptron ini akan mengatur parameter-parameter bebasnya melalui
proses pembelajaran.
Nilai threshold () pada fungsi aktivasi adalah non negatif. Fungsi aktivasi
dibuat dengan tujuan untuk memisahkan antara daerah positif dengan daerah
negatif.
Garis pemisah antara daerah positif dengan daerah nol memiliki
pertidaksamaan sebagai berikut:
w1x1 + w2x2 + b >

Sedangkan garis pemisah antara daerah negatif dengan daerah nol memiliki
pertidaksamaan sebagai berikut:
w1x1 + w2x2 + b <

Jika kita menggunakan pasangan vektor input dan vektor output sebagai
pasangan vektor yang akan dilatih maka kita akan memiliki algoritma seperti yang
akan disajikan di bagian pembahasan.

2. Pembahasan
Algoritma perceptron:
0. Inisialisasi semua bobot dan bias.
(Agar perhitungan menjadi sederhana, set bobot dan bias sama dengan nol)
Set learning rate () dengan 0 < 1;
(Agar sederhana, set = 1)
1. Selama kondisi berhenti bernilai false, lakukan langkah-langkah berikut:
i. Untuk setiap pasangan pembelajaran s-t, Kerjakan:
a) set input dengan nilai yang sama dengan vektor input.
Xi = Si;
b) Hitung respon untuk unit output:

c) Perbaiki bobot dan bias jika terjadi error:


Jika y t maka:
wi(baru) = wi(lama) + * t * Xi
b(baru) = b(lama) +

* t

Jika tidak, maka


wi(baru) = wi(lama)
b(baru) = b(lama)
ii. Tes kondisi berhenti. Jika tidak terjadi perubahan bobot pada (i) maka
kondisi berhenti akan bernilai true. Namun jika masih terjadi perubahan
maka kondisi berhenti akan bernilai false.

Implementasi Perceptron dalam Java


public class Perceptron {
public static void main(String[] args) {
// Matriks Awal untuk pembelajaran
int [][] W = {{0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,
0,0,1,0,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,0,0,0,1,0,1,1,
0,0,0,1,1,1,1,0,0,0,1,1},{1,0,1,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0
,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,
0,0,0,1,1,0,1,1,1,1,0},{1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1
,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,
0,1,1,1,1,0,0,0,1,1}};
// Matriks Input
int [][] input = {{1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,
0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0
,0,0,0,1,1,1,1,1,1,1,1}};
System.out.println("Matriks Input:\n");
int [][] z = new int [9][7];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 7; j++)
{
z[i][j] = input[0][(i*7)+j];
System.out.print(z[i][j] + "
}
System.out.println();
}

");

int A = 0;
int B = 0;
int C = 0;
for (int
{
A = A
B = B
C = C
}
double
double
double

m=0; m<63; m++)


+ ((input[0][m]-W[0][m])*(input[0][m]-W[0][m]));
+ ((input[0][m]-W[1][m])*(input[0][m]-W[1][m]));
+ ((input[0][m]-W[2][m])*(input[0][m]-W[2][m]));
bobotA = Math.sqrt(A);
bobotB = Math.sqrt(B);
bobotC = Math.sqrt(C);

double temp1 = Math.min(bobotA, bobotB);


double temp2 = Math.min(bobotB, bobotC);
double jarakTerkecil = Math.min(temp1, temp2);
System.out.println("\nOutput: ");

if (jarakTerkecil == bobotA)
{
System.out.println ("\nInput termasuk huruf A");
}
else {if (jarakTerkecil == bobotB)
{
System.out.println ("\nInput termasuk huruf B");
}
else {
System.out.println ("\nInput termasuk huruf H");}
}
}

Setelah dieksekusi (running), hasil yang didapatkan adalah sebagai berikut:


Matriks Input:
1
1
1
1
1
1
1
1
1

1
0
0
1
0
0
0
0
1

1
0
0
1
0
0
0
0
1

1
0
0
1
0
0
0
0
1

1
0
0
1
0
0
0
0
1

1
0
0
1
0
0
0
0
1

1
1
1
1
1
1
1
1
1

Output:
Input termasuk huruf B