Luu y: 1/ Ma trận S là ma trận đối xứng thực và các trị riêng của S la cac số thực không âm.. Nếu ta chọn cơ sở trực chuẩn là họ véctơ cột của ma trận P, thì ta xây dựng được một hệ trục
Trang 1Huỳnh Phước Huy
Lại Minh Khoa
Nhom: L08
KHOA QUAN LY CONG NGHIEP BAI BAO CAO BAI TAP LON DAI SO TUYEN TINH
e910 DE TAI 11: PHAN TICH PCA Olle
Giáo viên hướng dẫn: Bùi Anh Tuấn
Trang 2L CƠ SỞLY THUYẾT
PCA chính là phương pháp đi tìm một hệ cơ sở mới sao cho thông tin của đữ liệu chủ yếu
tập trung ở một vài toạ độ, phần còn lại chỉ mang một lượng nhỏ thông tin Và để cho đơn giản trong tính toán, PCA sẽ tìm một hệ trực chuân đê làm cơ sở mới
Hinh 1: Phan tich thành phần chính (PCA) của khoảng cách di truyền theo cặp
Giả sử hệ cơ sở trực chuẩn mới là U và chung ta muốn giữ lại K toạ độ trong hệ cơ sở mới này Không mất tính tông quát, giả sử đó là K thành phân đâu tiên Quan sát Hình 2:
Hình 2: Ý tưởng chính của PCA: Tìm một hệ trực chuẩn mới sao cho trong hé nay, cac thanh phan quan
trong nhat nam trong K thanh phan dau tién
Trang 3Các bước phân tích PCA:
Bước L: Tính giá trị trung bình của của X
Bước 2: Tính véctơ
Tính ma trận hiệp phương sai: S=
Bước 3: Tìm trị riêng của S và sắp xếp theo giá trị giảm dần và tìm các véctơ riêng đơn
VỊ Ứng với các trị riêng
Bước 4: Chọn k trị riêng ban đầu và k véctơ riêng đơn vị ứng với các trị Tiêng này Lập
ma tran A co các cột là các véctơ riêng đã chọn Ma trận A là phép biên đôi cân tìm
Bước 5: Tính ảnh của véctơ
Dữ liệu X ban đầu được xấp xỉ bởi Xe A +
Mỗi cột của A chứa tọa độ của các hàng của ma trận trong cơ sở từ các cột của ma tran P
Luu y:
1/ Ma trận S là ma trận đối xứng thực và các trị riêng của S la cac số thực không âm 2/ Ma trận S luôn chéo hóa trực giao được
3/ Trên đường chéo của 5Š là phương sai của các véctơ
Phân tử là hiệp phương sai của
Tổng các phân tử trên đường chéo của S là phương sai của bảng dữ liệu
Giả sử Trên đường chéo của D là các giá trị riêng của S Tổng các giá trị riêng của S bằng tông các phan tử của S ( bằng vét của S )
4/ Ma trận P là ma trận trực giao Mỗi ma trận trực giao tương ứng với một phép quay
Các cột của ma trận P tạo nên hệ trực chuẩn Nếu ta chọn cơ sở trực chuẩn là họ véctơ cột của ma trận P, thì ta xây dựng được một hệ trục tọa độ mới dựa trên các véctơ này và có một phép quay từ hệ trục tọa độ ban đầu sang hệ trục tọa độ mới
5/ Nếu dữ liệu mẫu (sample data), thì
Nếu dữ liệu dan s6 (population data), thi
Trang 4Il UNG DUNG
2.1 Eigenface
Eigenface là một trong các phương pháp phố biến nhất trong bài toán nhận dạng khuôn mặt Ý tưởng của Eigenface là đi tìm một không gian có số chiều nhỏ hơn để mô tả mỗi khuôn mặt, từ đó sử dụng vector trong không gian thấp này như là feature vector cho việc
thực hiện classification Điều đáng nói là một bức ảnh khuôn mặt có kích thước khoảng
200 x 200 sẽ có số chiều là 40k - là một số cực lớn, trong khi đó, feature vector thường
chỉ có số chiều bằng vài trăm
Eigenfice thực ra chính là PCA Cac Eigenfaces chinh la cac eigenvectors ứng với các trị riêng lớn nhât của ma trận hiệp phuong sai
Trong phần này, chúng ta cùng làm một thí nghiệm nhỏ trên cơ sở dữ liệu Yale face database Các bức ảnh trong thí nghiệm này đã được căn chỉnh cho cùng với kích thước
và khuôn mặt nằm trọn vẹn trong một hình chữ nhật có kích thuée 116 x 98 pixel Co tất
cả 15 người khác nhau, mỗi người có II bức ảnh được chụp ở các điều kiện ánh sáng và cảm xúc khác nhau, bao gém: ‘centerlight’, ‘glasses’, ‘happy’, ‘leftlight’, ‘noglasses’,
‘normal’, ‘rightlight’,’sad’, ‘sleepy’, ‘surprised’, va ‘wink’
Hình 3 dưới đây là ví dụ về các bức ảnh của người có id la 10
222992 eose®
Hình 3: Ví dụ về ảnh của một người trong Yale Face Database
Trang 5Ta co thê thấy rằng số chiều dữ liệu là 116x98=11368 là một số khá lớn Tuy nhiên, vì chí
có tông cộng 15xII=165 bức ảnh nên ta có thể nén các bức ảnh này về dữ liệu mới có chiều nhỏ hơn 165 Trong ví dụ này, tôi chọn K=100
Dưới đây là đoạn code thực hiện PCA cho toàn bộ dữ liệu Chú ý răng tôi sử dụng thư
states = ['centerlight', 'glasses', 'happy', ‘leftlight',
‘noglasses', 'normal', 'rightlight','sad',
‘sleepy’, ‘surprised’, 'wink' ]
Trang 6Trong dong pea = PCA(n components=K), néun components la mét số thực trong
khoảng (0,1) PCA sẽ thực hiện việc tìm K dựa trên biêu thức (6)
Hình 4 dưới đây biểu diễn 18 vector riêng đầu tiên tìm được bằng PCA Các vector tìm
được ở dạng vector cột, ta cân phải reshape chúng đề có thê mình hoạ như các bức ảnh
Trang 7
Có một điều dé nhận ra là các ảnh mình hoạ các vector thu được ít nhiều mang thông tin của mặt người Thực tế, một khuôn mặt gốc sẽ được xấp xỉ như tổng có trọng số của các khuôn mặt này Vì các vector riêng này đóng vai trò như cơ sở của không gian mới với ít chiều hơn, chúng còn được gọi là khuôn mặt riêng, tức eigenƒfaces
Dé xem mức độ hiệu quả của Eigenfaces như thế nào, chúng ta thử minh hoạ các bức ảnh goc va cac bức ảnh được xâp xi bang PCA, ket quả được cho như Hình 5 dưới đây:
99999
32989
Trang 8
nhiều nhưng vân mang những đặc điểm riêng mà mặt người có thê phân biệt được
Như vậy, vector với số chiều K=100 trong không gian moi mang khd day du théng tin cua vector có sô chiều D=11368 trong khong gian ban dau
2.2 Unsupervised Abnormal Detection
Ngoài các ứng dụng về nén và classiñcation, PCA còn được sử dụng trong nhiều lĩnh vực khac nhau Abnormal Detection (dò tìm các hiện tượng không bình thường) là một trong
sô đó Thêm nữa, giả sử chúng ta không biết nhãn của các sự kiện này, tức ta đang làm viéc voi mét bai toan Unsupervised
Ý tưởng cơ bản là các sự kiện “normal' thường nam gan một không gian con nào đó,
trong khi các sự kiện ‘abnormal’ thường khác biệt với các sy kién ‘normal’, tic nam xa không gian con do Hon nira, vi la ‘abnormal’ nén số lượng các sự kiện thuộc loại này là
rất nhé so véi ‘normal’
Như vậy, chúng ta có thể làm PCA trên toàn bộ dữ liệu đề tìm ra các thành phần chính
của đữ liệu, từ đó suy ra không gian con mà các điểm ‘normal’ nam gan Viéc xac dinh
mét diém 1a ‘normal’ hay ‘abnoral’ được xác định bằng cách đo khoảng cách từ điểm đó
tới không gian con tìm được
Hình 6 dưới đây minh hoạ cho việc xác định các sự kiện không bình thường
Trang 9đó, nếu làm PCA trên toàn bộ
dữ liệu, không gian con thu được gần với không gian con
của tập các sự kién ‘normal’
Lúc này, các điểm quá xa không gian con nay, trong trường hợp này là các điểm màu cam, có thể được coi là các sự kiện 'abnormal'
Trang 10Il CODE MATLAB
Input:
% tập đữ liệu vé hoa Iris
% xem vi du tai: wikipedia.org/wiki/Iris_flower_data_set
%
% bang dit ligu nay có kích thước 150 hàng x 5cột
% số đo của 150 béng hoa iris
% cột 1: chiều dài đài hoa
% cột2: chiều rộng đài hoa
% cột 3: chiều dài cánh hoa
Trang 121.8 1.3
Trang 1343
44 4.8 5.0 4.5 3.5 3.8 3.7 3.9
51 4.5 4.5 4.7
44
41 4.0
44 4.6 4.0
41
1.5 1.2 1.3 1.4 1.4 1.7 1.5 1.0
1.0 1.2 1.6 1.5 1.6 1.5 1.3 1.3 1.3 1.2 1.4 1.2 1.0 1.3 1.2 1.3 1.3
1.3
Trang 1421 2.0 2.4 2.3 1.8 2.2 2.3 1.5 2.3 2.0 2.0 1.8
21 1.8 1.8 1.8 Ny
Trang 16% Loai versicolor => type_Hoa=1 (cot thu 5 trong file) => do thi la cham mau
XANH LA;
% Loai virginica => type_Hoa=2 (cot thu 5 trong file) => do thi la cham mau VANG; ,
%
% MO FILE & DOC DU LIEU;
load input.txt; % load file input.txt (file nay co kich thuoc 150hang x 5 cot);
X = input(:, 1:4)’; % khi nhap vao, X 1@ ma tran co co [4,150];
%(tuc la co 150 cot, moi cot co 4 hang, moi cot dai dien cho mot bong hoa);
type Hoa =input(,5); % type_Hoa[1,150]={0;1;2} la ma tran the hien giong hoa;
soCot_X = size(X,2); % size(X) la co cua ma tran X, size(X,1) la so hang, size(X,2) la so cot;
%
for 1=1:4 % cho bien 1 chay tu 1 den 4;
subplot(3,3,(-1)+3*(-1)) % chia khung, vi tri cua do thi;
scatter(X(i,:),X(j,:),4,type_Hoa,'filled’) % scatter(x,y,sz,c): la ham bieu dien su phan tan bang cac vong tron,
%xy: la cac toa do cua vong tron,
% sz: la kích thuoc cua vong tron,
%c: la mau sac cua vong tron,
%'filled’: la dang vong tron, xem them: https://øoo.su/3ojh;
Trang 17xlabel(sprintf('x%g',1)); % dat ten cho truc hoanh;
ylabel(sprintf('x%g',j)); % dat ten cho truc tung;
end
end
%
% THUC HIEN PHAN TICH THANH PHAN CHINH (PCA);
trungbinhcong X = mean(X,2); % mean(X,2): la vector cot chua gia tri trung binh cua moi hang cua X, xem them: https://goo.su/3oj1;
A=X -trungbinhcong_X*ones(1,soCot_X); % A= x(1) - x(tb);
% ones(1,soCot_X): tao ma tran co Lhang x (soCot_X)cot,
ones(i,J=1;
phuongsai = norm(A,'fro')*2; % norm(A,'fro')=sqrt(sum(diag(A'*A))): la do lon cua vector
A, 'fro': la chuan Frobenius;
[U,S,V] = svd(A,'econ’); % phan tich tri ki di, xem them: file "FUNCTION SVD.pnge";
duongcheochinh_S =diag(S); % tao ra vector cot tu duong cheo chính cua ma tran S, xem them: file "FUNCTION DIAG png";
phuongsai = norm(duongcheochinh_S)*2;
%
% BIEU DIEN DU LIEU TREN HE TRUC TOA DO OXY;
C=S8(1:3,1:3)* VC, 1:3); %3 he so dau tien cho moi diem, giong nhu U (:, 1: 3)'* A;
Trang 18q2 = norm(duongcheochinh_S(1:2))*2/phuongsai; % donvi: phan tram
% BIEU DIEN DU LIEU TREN HE TRUC TOA DO OXYZ
Trang 19-
ee Xû 2 * s *
Trang 21
TAI LIEU THAM KHAO
Tiép, V.H (2017) Bai 27: Principal Component Analysis (phan 1/2) Truy cập ngày 4 thang | nam 2020, ti https://machinelearningcoban.com/2017/06/15/pca/#3- principal-component-analysis