Kamis, 12 September 2019

KONSEP DASAR JST 7: PNN vs CPNN


Yeay! akhirnya sampailah kita sampai bahasan ini, tentang salah satu jenis jaringan saraf tiruan (JST) yaitu Probability Neural Network (PNN) dan Competitive Probability Neural Network (CPNN). Mari bahas satu persatu mulai dari PNN, ya! PNN merupakan jenis algoritma JST yang digunakan secara luas untuk pengenalan pola (pattern recognition) dan masalah klasifikasi. PNN didesain untuk menyelesaikan masalah klasifikasi menggunakan pendekatan memori statistik. Dalam algoritma PNN, Parzen window digunakan untuk prakiraan nonparametric (nonparametric approximation) nilai PDF dari setiap kelas populasi dan aturan Bayes kemudian digunakan untuk mengalokasikan kelas dengan probabilitas posterior tertinggi sebagai data input baru sehingga peluang untuk melakukan kesalahan klasifikasi (misclassification) dapat diminimalisasi (Zeinali dan Story, 2017).
Penggunaan PNN secara luas awalnya dimulai dengan penggunaan fungsi kernel (Gaussian kernel) untuk analisis diskriminan dan pengenalan pola. Sejak saat itu, penelitian terkait dilakukan untuk meningkatkan performa dari PNN. CPNN merupakan salah satu pengembangan PNN dengan dengan menambahkan fitur kompetitif baru (gamma, γ) sehingga “hanya” data yang “paling kritis” terhadap proses klasifikasilah yang akan digunakan dalam perhitungan.

 
Sebuah himpunan data latih (training dataset) S= {Xci,j} untuk masalah klasifikasi mengandung input Xci,j (data ke-j pada kelas Ci). Jika S juga meliputi data input untuk kelas NC, maka S dapat dibagi menjadi subhimpunan NC, misal Ci, yang mengandung data masukan kelas (misal, Ci = {Xci,1, Xci,2, …., Xci,|Ci|}). Dalam teknik klasifikasi pembelajaran supervisi, vektor input baru Xnew harus diklasifikasikan dalam salah satu kelas NC yang memiliki probabilitas posterior tertinggi. Ketika tidak ada informasi sebelumnya yang diketahui tentang kelas-kelas tersebut, teori Bayes berikut digunakan untuk menentukan/mengklasifikasikan vektor input baru kedalam kelas dengan probabilitas posterior tertinggi menggunakan argmax (argument maxima), P(Xnew | Ci) adalah probabilitas bersyarat kelas Ci (class-conditional probability of Ci):


 
Parzen (1962) dan Cacoullos (1966) menunjukkan bahwa penaksiran dengan menggunakan PDF dapat dilakukan dengan merata-ratakan multivariate normal Gaussian Kernel yang merupakan produk dari masing-masing univariate kernel dengan pusat (mu, mean) pada masing-masing sampel yang diketahui (baca: Konsep Dasar JST 6 untuk lebih detail). Berdasarkan teknik ini, probabilitas kelas bersyarat dari kelas Ci adalah sama dengan:

Sementara itu, nilai gaussian kernel ωi,j dihitung menggunakan rumus berikut:
dimana:
Xnew       : nilai input baru
Ci            : cardinality dari himpunan bagian Ci
ωi,j          : Gaussian kernel dari Xci,j (multivariate normal, nonsingular)
d             : dimensi data, misal data memiliki 3 variabel prediktor maka d=3
σ           : parameter sebaran (spread parameter) yang diatur konstan dan ditentukan berdasarkan eksperimen dengan nilai antara 0 dan 1.
||Xnew – Xci,j||     : Jarak Euclidian, perhitungan nilai ini sangat penting dalam pembobotan parzen

Dalam persamaan 3, spread parameter (σ) adalah parameter yang dapat disesuaikan (adjustable parameter) ditentukan berdasarkan eksperimen (trial and error) dan untuk vektor input yang telah dinormalisasi maka parameter σ bernilai 0 hingga 1. Ingat! Terdapat 2 syarat pre-processing sebelum melakukan perhitungan dengan menggunakan Parzen window, yaitu:
1.      Data input yang digunakan sudah dinormalisasi atau distandardisasi
2.      Nilai σ diatur konstan
Arsitektur PNN sendiri terdiri dari 4 lapisan/layer, yaitu input layer, pattern layer, summation layer, dan output layer. Algoritma ini mengandung 3 langkah penting, yaitu perhitungan kernel (PDF), perhitungan probabilitas kelas bersyarat, dan memilih nilai probabilitas kelas bersyarat maksimum. Untuk lebih jelasnya, coba perhatikan gambar alur berikut ini:

Seperti yang telah diketahui, semua kelas kernel dalam PNN digunakan dalam estimasi nilai PDF setiap kelas dan parameter sebaran (σ) dapat dioptimalkan. Dalam beberapa kasus dimana input-output sangat kompleks, klaster kelas dari data dapat terletak jauh satu sama lain dan klaster data dari kelas yang berbeda dapat terletak dekat (bercampur). Jarak tersebut bisa jadi menjadi penyebab berkurangnya nilai probabilitas posterior dari kelas yang benar dan memicu misklasifikasi. Bedanya, CPNN memiliki parameter tambahan yaitu gamma (γ) yang menyebabkan hanya nilai kernel optimum saja yang diperhitungkan dalam klasifikasi. Untuk setiap nilai input data kernel baru dalam setiap kelas dihitung dan diurutkan (di-rank) dari yang terbesar ke terkecil. Pemeringkatan ini terdiri dari kompetisi antar kernel agar dapat memiliki kesempatan untuk dilibatkan dalam perhitungan nilai probabilitas kelas bersyarat.

 
Berbeda dengan PNN, CPNN memiliki 1 layer tambahan, yaitu competition layer, yang terletak antara layer perhitungan Gaussian kernel dan layer perhitungan probabilitas kelas bersyarat (langkah 1 dan 2 dalam gambar 2). Pada competition layer, terdapat 2 langkah tambahan, yaitu nilai kelas kernel diurutkan atau diperingkat dari yang terbesar ke yang terkecil. Semua nilai kernel berkompetisi untuk diikutkan dalam perhitungan probabilitas kelas bersayarat, namun hanya sebagian yang digunakan dimana nilainya ditentukan oleh parameter gamma (γ). Jumlah kernel yang terpilih dalam kelas-i ditentukan sebagai jumlah pemenang (number of winner, NWi). Rasio γ didefinisikan sebagai rasio dari NWi terhadap total nilai kernel pada setiap kelas-i :

Rasio γi bukanlah variabel yang kontinyu dan mungkin memiliki nilai terbatas (finite number of values). Berdasarkan penjelasan di atas, maka perhitungan probabilitas kelas bersyarat pada CPNN dihitung berdasarkan:

Dengan kata lain, PNN tradisional dapat dikatakan merupakan bentuk spesifik CPNN dengan nilai γ=1 untuk semua kelas kernel. Bagaimana sudah dapat tentang PNN dan CPNN? Next post I will discuss about the script, ya! Salam ^^


0 komentar:

Posting Komentar