ALGORITMA PERCEPTRON
Apa itu perceptron?
Perceptron adalah salah satu metode Jaringan Syaraf Tiruan (JST) sederhana yang menggunakan algortima training untuk melakukan klasifikasi secaara linier. Percetron digunakan untuk melakukan klasifikasi sederhana dan membagi data untuk menentukan data mana yang masuk dalam klasifikasi dan data mana yang missclasifikasi (diluar klasifikasi). Perceptron dapat digunakan untuk memisahkan data yang dapat dibagi menjadi 2 kelas, misalnya kelas C1 dan kelas C2.
Perceptron dalam Jaringan Syaraf Tiruan memiliki bobot yang bisa iatur dalam suatu ambang batas (threshold). Melalui proses pembelajaran (learning), Algoritma Perceptron akan mengatur parameter-parameter bebasnya.
Dibawah ini merupakan gambaran dari pengklasifikasian dari kelas C1 dan C2 :
Tanda x (biru) dan tanda o (merah) pada gambar diatas dicontohkan adalah 2 buah data yang akan diklasifikasikan. Dimana kedua data tersebut akan dipisahkan dengan suatu garis hyperplane yang membagi data enjadi 2 klasifikasi.
Dimana ( g(x) ) merupakan vektor hyperplane yang memisahkan kelas C1 (data x) dan C2 (data o). Apabila nilai g(x) < 0 (g(x) lebih kecil dari nol) maka data tersebut termasuk dalam kelas C2, sedangkan apabila g(x) > 0 (g(x) lebih besar dari nol) maka data tersebut termasuk kedalam kelas C1.
Algortima Perceptron
Untuk algortima pembelajaran perceptron adalah sebagai berikut :
- Inisialisasi semua inputan, matriks vector, target, dan learning rate.
- lakukan pengecekan untuk semua vector yang missclassification dengan menggunakan rumus berikut :
| rumus vektor missclasifikasi perceptron |
- Missclassification dapat juga dicari dengan rumus aktivasi, seperti berikut :
| rumus aktivasi perceptron |
- Jaringan terdiri dari beberapa unit masukan (ditambah sebuah bias), dan memiliki sebuah unit keluaran. Hanya saja fungsi aktivasi merupakan fungsi biner (bipolar), tetapi memiliki kemungkinan nilai -1, 0 atau 1.
- Dengan ketentuan untuk suatu harga threshold θ yang ditentukan sebagai berikut :
| ketentuan treshold perceptron |
- Jika hasilnya bernilai negatif, maka terjai missclasification dan kalikan hasilnya dengan negati learning rate. Kemudian hasilnya disimpan dalam bentuk matriks untuk sebuah inputan yang missclasification.
- Kemudian lakukan perubahan bobot yang baru dengan menggunakan rumus :
| rumus menemukan bobot baru |
- Kemudian ulangi langkah 2 hingga tidak terdapat lagi vector missclasification.
Beberapa hal yang perlu diperhatikan dalam algortima perceptron :
- Iterasi dilakukan terus menerus sehingga semua pola memiliki keluaran jaringan yang sama dengan targetnya (jaringan sudah memahami pola)
- Pola perubahan bobot hanya dilakukan pada pola yang mengandung kesalahan (output/keluaran jaringan != target). Perubahan yang dilakukan adalah hasil kali unit masukan dengan target. Perubahan bobot hanya terjadi jika masukan != 0).
- kecepatan iterasi ditentukan oleh laju pemahaman (learning rate -alpha) ( 0 <= alpha (a) <= 1 ) yang digunakan. Semakin besar nilai a (alpha) maka semakin sedikit iterasi yang diperlukan untuk pembelajaran. Namun sebaliknya jika nilai a (alpha) terlalu besar maka akan merusak pola yang sudah benar sehingga pembelajaran menjadi lambat
Contoh source code sederhana :
% x = dataset, k = target, w = vektor random, ro = learning rate, t = iterasi
x = [ 0 0 1 ; 0 1 1 ; 1 0 1 ; 1 1 1 ]; %dataset dan bias
%perhitungan vektor missclassification</div>
k = [-1; 1; 1; 1]; %fungsi OR
w = [rand() rand() rand()];
ro = 0.7;
t = 0;
y=4;
while(y>0)
for i=1:4</div>
y=0;
t=t+1; %iterasi
temp = temp + ro*(-k(i))*x(i,:)';</div>
disp(t);
temp = zeros(3,1);
disp(w);
if (((x(i,:)*w')*k(i))<=0)
y = y+1;
end
end
w = w - temp';
end
Komentar
Posting Komentar