• Tidak ada hasil yang ditemukan

Reduksi Dimensi

Dalam dokumen LAPORAN AKHIR PENELITIAN HIBAH BERSAING (Halaman 54-59)

HASIL YANG DICAPAI

5.2 Pembentukan Model Viseme Statis Bahasa Indonesia

5.2.2 Reduksi Dimensi

Metode yang yang digunakan untuk melakukan reduksi dimensi adalah Metode Subspace LDA yang merupakan kombinasi dari dua metode, yaitu metode PCA (Principle Component Analysis) dan LDA (Linear Discriminant Analysis).

43

Metode Principal Component Analysis (PCA) merupakan metode ekstraksi fitur secara statistik. Metode PCA bertujuan untuk mereduksi dimensi dengan melakukan transformasi linier dari suatu ruang berdimensi tinggi ke dalam ruang berdimensi rendah[5]. Metode ini juga bertujuan untuk memproyeksikan data pada arah yang memiliki variasi terbesar, yang ditunjukkan oleh vektor eigen yang bersesuaian dengan nilai eigen terbesar dari matrik kovarian[26]. Kelemahan dari metode PCA adalah kurang optimal dalam pemisahan antar kelas.

Metode Linear Discriminant Analysis bertujuan menemukan suatu proyeksi optimal sehingga dapat memproyeksikan data input pada ruang dengan dimensi yang lebih kecil dimana semua pola (pattern) dapat dipisahkan semaksimal mungkin. Untuk tujuan pemisahan tersebut, LDA akan memaksimalkan penyebaran data-data input diantara kelas-kelas yang berbeda dan meminimalkan penyebaran input pada kelas yang sama. Perbedaan antar kelas direpresentasikan oleh matriks Sb (scatter between class) dan perbedaan dalam kelas direpresentasikan oleh matriks Sw (scatter within class).

Algoritma metode PCA dan LDA adalah sebagai berikut :

Apabila terdapat himpunan sebanyak M data citra dari basis data citra bentuk bibir (Aj), dimana

Aj = [A1,A2,..,AM], (j = 1, 2, ..., M) dengan dimensi citra baris x kolom pixels yang diproyeksikan ke dalam matrik dua dimensi (T) adalah :

(1)

Dimana x adalah nilai tiap pixels matrik citra Aj.

Untuk menghitung rata-rata baris dari matrik T digunakan persamaan :

(2)

Dimana Mi adalah jumlah data baris ke i dan Xjm adalah data-data pada baris ke i .

Langkah berikutnya adalah menghitung matrik ATrain yang berisi nilai selisih dari data citra T dengan nilai rata-rata baris :

(3) Dimana adalah nilai rata-rata baris .

Selanjutnya menghitung nilai matrik kovarian ST (total matrik Scatter ST) yang didefinisikan dengan menggunakan persamaan :

(4) Dari matrik kovarian ST, dihitung eigenvalue(D) dan eigenvektor(V). Eigenvalue merupakan nilai

44

diambil berdasarkan nilai eigen yang lebih besar dari 0. Dalam penelitian ini, nilai eigenvalue (D) dan eigenvector (V) dicari menggunakan fungsi Matlab.

Setelah nilai eigenvector (V) diperoleh, langkah selanjutnya adalah menghitung nilai eigenfaces yang merupakan ciri data citra. Persamaan yang digunakan untuk menghitung nilai eigenfaces adalah :

Eigenfaces = ATrain x V (5)

Setelah nilai eigenfaces diperoleh, Tugas PCA selanjutnya adalah mereduksi ciri yang masih terdapat pada data citra. Hasil dari reduksi adalah pengurangan dimensi data. Jadi, dimensi data yang memiliki ciri yang tidak penting akan dihilangkan dan tidak akan digunakan untuk proses selanjutnya. Berikut ini adalah persamaan yang digunakan untuk menghitung matriks proyeksi PCA.

PCA_Train = Eigenfaces’ x T (6)

Matriks proyeksi PCA_Train merupakan hasil proses PCA yang selanjutnya digunakan untuk proyeksi LDA.

Data sets PCA_train yang diperoleh dari proses PCA akan digunakan untuk proses proyeksi LDA.

Matrik scatter dalam kelas (SW), dan matrik scatter antar kelas (SB) didefinisikan sebagai berikut

:

(7)

(8)

Dimana c adalah jumlah kelas dan Ni adalah jumlah data pada kelas Ai. Sedangkan adalah nilai rata-rata per kelas dan adalah PCA_train yang diambil per kelas.

Sedangkan implementasi algoritma di atas ke dalam pemrograman matlab adalah sebagai berikut :

%PCA Algorithm clear all; clc; close all; %--- Load File

% one column in matrix is one data % each row is represent the feature of data

load 'xTrain.mat'; %--- file location TrainDb='D:\Researh\MATLAB\pca code\data_train\'; %Identification

m1 = mean(T,2); % create the mean of data in column form

P = size(T,2); %P is identification of total train data /database

PTest=size(TTest,2); %PTest is identification of total test data

pop=15; %pop is identification of population train data in one class

pop2=8; %pop2 is identification of population test data in one class

class=P/pop; %nuber of class in database

dmn=size(T,1); %dmn is dimention or number of featur

redPCA=50; %dmn is dimention or number of featur that will be used (after dimensional reduction using PCA) % redLDA=class;

%--- Centered Image

45 ATrain = T - repmat(m1,1,P); %--- Scatter Matrix % ST = cov(T'); ST=ATrain*ATrain';

% --- Eigenvalue and eigenface calculation //svd(ATrain,'econ');//pcacov(ST);

[V D]=eig(ST);

[A B]=sort(diag(D),'descend'); %sorting eign

V=V(:,B); %sorting eign

Eigenfaces =V(:,1:redPCA); %select features

%extraction train data by projection %--- Image Projection

ProjectedTrain = Eigenfaces' * T;

% labeling train data

group=[]; for i=1:class g=[]; for j=1:pop g=[g i]; end group=[group g]; end

% Test data process

x=[];

TTest=double(TTest); % extracting test data feature

ProjectedTest = Eigenfaces'*TTest; % Test image feature vector

k=1; acc=0;accE=0; min_E=[]; min_E2=[];

save PTrainPCA.mat ProjectedTrain;

Gambar 5.7. Program matlab untuk ekstraksi fitur dan Reduksi dengan PCA

Hasil matriks ProjectedTrain setelah reduksi dimensi dengan metode PCA seperti yang terlihat Gambar 5.8.

46

Implementasi metode LDA dalam pemrograman matlab seperti yang terlihat pada Gambar 5.9. %LDA Algorithm clear all; clc; close all; %--- Load File load 'PTrainPCA.mat'; %--- manage file TrainDb='D:\Researh\MATLAB\pca code\data_train\'; %Identification

m1 = mean(ProjectedTrain,2); % Computing the average face image m = (1/P)*sum(Tj's) (j = 1 : P)

P = size(ProjectedTrain,2); %P: total image

PTest=size(ProjectedTest,2); pop=15; pop2=8; class=P/pop; dmn=size(ProjectedTrain,1); redPCA=50; redLDA=10; %--- Centered Image T=double(ProjectedTrain); ATrain = T - repmat(m1,1,P); %--- Scatter Matrix ST =(ATrain*ATrain'); %--- Eigen [VP DP]=eig(ST); [AP BP]=sort(diag(DP),'descend'); VP3=VP(:,BP); Eigenfaces=VP3(:,1:redPCA);%V; %--- Image Projection

ProjectedTrain = Eigenfaces' * T; %=E'*A(:,1) loop from 1-P

PTrain= ProjectedTrain;

m2=mean(PTrain,2);% mean all

clear ProjectedTrain clear T %--- LDA %--- Scatter Matrix % dmn=size(PTrain,1); PTrain2=[]; mc2=[]; PTrain2x=[];mc2x=[];

for i=1 : class

j=(i-1)*pop+1; %first pop in class i

k=i*pop; %last pop in class i

mc=mean(PTrain(:,j:k),2); %mean class

mc2=[mc2 mc]; PTrain1=PTrain(:,j:k)-repmat(mc,1,pop); PTrain2=[PTrain2 PTrain1]; end SW=PTrain2*PTrain2'; SB1=mc2-repmat(m2,1,class); SB=SB1*SB1'; %--- Eigen [V D] = eig(SB,SW);

47

[A B]=sort(diag(D),'descend'); V2=V(:,B);

EigenfacesL=V2(:,1:redLDA);%51=73.82

%EigenfacesL = V2./repmat(sum(V2.^2).^0.5,dmn,1); % normalize %--- Image Projection

ProjectedTrain = EigenfacesL' * PTrain; %=E'*A(:,1) loop from 1-P %labeling training group=[]; for i=1:class g=[]; for j=1:pop g=[g i]; end group=[group g]; end TTest=double(ProjectedTest);

ProjectedTest = EigenfacesL'*(Eigenfaces'*TTest); % Test image feature vector

k=1; accE=0; min_E2=[];

Gambar 5.9. Program matlab untuk ekstraksi fitur dan Reduksi dengan LDA

Hasil matriks ProjectedTrain setelah reduksi dimensi dengan metode PCA seperti yang terlihat Gambar 5.10.

Gambar 5.10. Isi matriks ProjectedTrain setelah reduksi dimensi dengan LDA

Dalam dokumen LAPORAN AKHIR PENELITIAN HIBAH BERSAING (Halaman 54-59)