Để giải quyết vấn đề này, phương pháp PCA phân tích thành phần chính đã được sử dụng rộng rãi trong các ngành nghiên cứu khác nhau.Phương pháp PCA là một công cụ hữu ích giúp tìm ra nhữn
Trang 1Môn học:
ĐẠI SỐ TUYẾN TÍNH ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2Báo cáo bài tập lớn
PHƯƠNG PHÁP PCA VÀ ỨNG DỤNG CỦA PCA
TRONG NHẬN DIỆN GƯƠNG MẶT
Nhóm 8-L20:
Giảng viên phụ trách:
Đặng Văn Vinh
05/2023
Trang 3MỤC LỤC
1 Cơ sở lý thuyết của phương pháp phân tích thành phần chính PCA (principle
component analysis). -2
1.1 Lịch sử của phương pháp PCA. -2
1.2 PCA là gì. -3
1.3 Một số lý thuyết của đại số tuyến tính. -3
1.4 Cơ sở lý thuyết của phương pháp PCA. -4
1.5 Các bước phân tích PCA. -6
1.6 Ưu điểm, nhược điểm và ứng dụng của phương pháp PCA. -8
2 Ứng dụng của phương pháp PCA trong nhận diện gương mặt. -9
2.1 Tại sao lại cần đến nhận diện gương mặt? -9
2.2 PCA trong nhận diện gương mặt. -11
2.3 PCA trong Matlab. -12
3 Kết luận. -14
Trang 41 Cơ sở lý thuyết của phương pháp phân tích thành phần chính PCA (principle
component analysis).
Trong thế giới hiện đại, vấn đề đảm bảo an toàn thông tin và tài sản trở nên ngày càng quan trọng và khó khăn hơn bao giờ hết Các vụ xâm nhập và đánh cắp thông tin cá nhân
đã gây ra thiệt hại vô cùng nghiêm trọng, làm mất niềm tin của người dùng vào các hệ thống thông tin Trong lĩnh vực khoa học, kĩ thuật và thống kê, việc phân tích những tập
dữ liệu phức tạp để thu được thông tin quan trọng cũng đặt ra một thách thức lớn Để giải quyết vấn đề này, phương pháp PCA (phân tích thành phần chính) đã được sử dụng rộng rãi trong các ngành nghiên cứu khác nhau
Phương pháp PCA là một công cụ hữu ích giúp tìm ra những đặc trưng quan trọng của tập dữ liệu và giảm số chiều của dữ liệu một cách hiệu quả, từ đó giúp đơn giản hóa và tăng tính toán trên các dữ liệu phức tạp Trong công tác nghiên cứu, chúng ta thường thu thập được các bộ dữ liệu phức tạp có nhiều chiều và giá trị khác nhau Phương pháp PCA cho phép chúng ta tìm ra những liên kết ẩn giữa các chiều dữ liệu, giảm thiểu các sự khác biệt không cần thiết và tập trung vào các đặc trưng quan trọng của dữ liệu Điều này giúp cho việc phân tích và xử lý dữ liệu trở nên dễ dàng hơn và hiệu quả hơn trong các ngành khoa học, kĩ thuật, thống kê, kinh tế và nhiều lĩnh vực khác
1.1 Lịch sử của phương pháp PCA.
PCA được phát minh vào năm 1901 bởi Karl Pearson, sau đó nó được phát triển độc lập và được đặt tên bởi Harold Hotelling vào những năm 1930
Tùy thuộc vào lĩnh vực ứng dụng mà PCA có nhiều tên gọi khác nhau:
1956)
Trang 5 Phân hủy chức năng riêng thực nghiệm (Sirovich, 1987)
1.2 PCA là gì.
Phân tích thành phần chính (PCA - Principal Component Analysis) là một phương pháp giảm chiều dữ liệu trong phân tích đa biến PCA giúp tìm ra các thành phần chính (principal components) của dữ liệu từ các biến ban đầu, các thành phần chính này có thể giải thích được phần lớn sự biến động của dữ liệu Thông qua quá trình này, dữ liệu được biểu diễn dưới dạng các thành phần chính, giúp giảm số chiều dữ liệu, tăng hiệu quả tính toán và giảm độ phức tạp của các mô hình
Cụ thể, PCA sử dụng ma trận hiệp phương sai (covariance matrix) của dữ liệu để tìm ra các thành phần chính, các thành phần này là các vectơ riêng (eigenvectors) của
ma trận hiệp phương sai Các giá trị riêng (eigenvalues) của ma trận hiệp phương sai cũng cho biết độ lớn của các thành phần chính tương ứng Các thành phần chính được sắp xếp theo độ quan trọng giảm dần của độ lớn của giá trị riêng tương ứng
Khi đã tìm được các thành phần chính, dữ liệu ban đầu có thể được chiếu vào không gian mới được xây dựng bởi các thành phần chính để giảm số chiều của dữ liệu Việc này giúp đơn giản hóa việc xử lý dữ liệu và giảm thiểu các vấn đề như overfitting trong các mô hình dự đoán
1.3 Một số lý thuyết của đại số tuyến tính.
Mean (kỳ vọng): Giá trị mong muốn, biểu diễn giá trị trung bình của một biến
´
X = x1+x2+…+ x n
N
Standard deviation (độ lệch chuẩn): Sự chênh lệch về giá trị của từng thời điểm đánh giá so với trung bình
^
X =X − ´X
Variance (Đại lượng đặc trưng cho độ phân tán các dữ liệu so với giá trị trung bình của nó) Từ đó chúng ta dễ dàng hình dung được dữ liệu chúng ta dang xét, phương
Trang 6sai càng nhỏ thì các điểm dữ liệu càng gần với kỳ vọng, tức các điểm dữ liệu càng giống nhau Phương sai càng lớn thì ta nói dữ liệu càng có tính phân tán
σ2=(X − ´X)2
Convariance (Hiệp phương sai) đại lượng đo sự biến thiên cùng nhau của hai biến ngẫu nhiên (phân biệt với phương sai– đo mức độ biến thiên của một biến) Nếu 2 biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao hơn giá trị
kỳ vọng thì biến kia có xu hướng cũng cao hơn giá trị kỳ vọng), thì hiệp phương sai giữa hai biến này có giá trị dương Mặt khác, nếu một biến nằm trên giá trị kỳ vọng còn biến kia có xu hướng nằm dưới giá trị kỳ vọng, thì hiệp phương sai của hai biến này có giá trị âm Nếu hai biến này độc lập với nhau thì giá trị bằng 0
cov ( X , Y )=(X − ´X )(Y − ´Y )
Ma trận hiệp phương sai: Trong thống kê, ta cần một thuật ngữ để thể hiện đầy đủ phương sai và hiệp phương sai của các biến với nhau Từ đó, ta tạo ra ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma trận vuông hạng (m × m), trong
đó các phần tử nằm trên đường chéo (từ trái sang phải, từ trên xuống dưới) lần lượt là phương sai tương ứng của các biến này, trong khi các phần tử còn lại (không nằm trên đường chéo) là các hiệp phương sai của đôi một hai biến ngẫu nhiên khác nhau trong tập hợp
1.4 Cơ sở lý thuyết của phương pháp PCA.
Xét một bộ dữ liệu gồm n điểm dữ liệu, mỗi điểm dữ liệu có m tính trạng Đối với bài toán PCA, biểu diễn mỗi điểm dữ liệu thành một vector m chiều, mỗi chiều sẽ ứng với một tính trạng
⃗X i=[X 1 , i
X 2 , i
⋮
X m , i], với i=1, 2,3, … , n
Xét ma trận:
Trang 7X m× n=[X1,1 X1,2 … X 1, n
X2,1
…
X m ,1
X2,2
…
X m ,2
…
⋱
…
X 2 , n
…
X m × n]
nhất Và để xác định độ phân tán cần dùng đến phương sai Như vậy, chiều quan trọng nhất sẽ được định nghĩa là chiều mà trên đó phương sai của bộ dữ liệu là lớn nhất Công thức phương sai:
Var⃗w i ( X )=σ⃗w2i ( X )=1
n∑
j=1
n
(X i , j − μ i)2
Với i = 1, 2, …, n; μ i= ´X i=x1+x2+…+ x n
N
Ta có định nghĩa sau:
Var⃗w i ( X )=1
n∑
i =1
n
‖proj⃗w i⃗X i‖2
⃗
w1=argmax‖⃗w
i=1
n
(⃗w1∙ ⃗ X i)2
Áp dụng biến đổi x ∙ y=x T ∙ y, ta có:
⃗
w1=argmax‖⃗w1‖=1(w1T^X ^ X T w1)
Sau khi đã có thành phần quan trọng nhất, ta sẽ tiếp tục đi tìm các thành phần còn lại, biến đổi tương tự như đối với chiều thứ nhất:
⃗
w i=argmax ‖⃗w i‖=1
⃗
w i ⃗w j=0,∀ j <i
(w i T^X ^ X T w i)
Giải quyết bài toán tối ưu hóa của hàm thành phần quan trọng nhất bằng phương pháp chuyển hệ cơ sở:
⃗
w1=argmax‖⃗w1‖=1(w1T^X ^ X T w1)
Trang 8Đặt A=^ X ^ X T ∈ℝ m ×m, A là một ma trận đối xứng có m vector riêng ⃗v1, ⃗v2, ⃗v3, … , ⃗v m
ứng với m trị riêng C , λ2, λ3, … , λ m Các điều kiệu:
{ ‖v i‖=1
λ1≥ λ2≥ … ≥ λ m
∑
i=1
m
c 1 , i2 =1
Đồng thời theo định nghĩa trị riêng, vector riêng: A ⃗v i=λ i⃗v i
Ta được:
⃗
w1=argmax‖⃗w
i=1
m
λ i c 1 ,i2
Với λ1=max { λ i} ta có:
∑
i=1
m
λ i c 1 , i2 ≤ λ1∙∑
i=1
m
c 1 , i2
=λ1⟹ max∑
i=1
m
λ i c 1 ,i2
=λ1
Đẳng thức xảy ra khi và chỉ khi c1,1=1 và c 1 ,i=0∀ i ≠1, hay ⃗w1≠ ⃗v1
Giải lần lượt các bài toán này một cách tương tự như chiều thứ nhất, ta tìm ra được
m chiều quan trọng của bộ dữ liệu, tương đương m vector riêng ứng với m trị riêng của ma trận A Ở đây giá trị riêng càng lớn thì chiều của vector riêng đó càng quan trọng
1.5 Các bước phân tích PCA.
Bước 1: Tính giá trị trung bình X´ của X
*Chú thích: Chuẩn hóa dữ liệu, tìm tọa độ mới của dữ liệu
Bước 2: Tính vector
^
X =X − ´X
Tính ma trận hiệp phương sai:
S= 1
N −1 ^X
T^X
Trang 9*Chú thích: Khi biểu diễn ma trận X trong không gian Rm, ta nhận thấy rằng các điểm dữ liệu sẽ phân tán xung quanh điểm giá trị trung bình Để thuận tiện cho việc tính toán, ta tiến hành chuẩn hóa ma trận ban đầu về quanh gốc tọa độ Việc thay đổi này không ảnh hướng đến bản chất của hệ dữ liệu ban đầu Khi này độ phân tán giữ hệ
liệu ban đầu X quanh điểm giá trị trung bình
Bước 3: Tìm trị riêng của S và sắp xếp theo giá trị giảm giần và tìm các vector riêng đơn vị ứng với các trị riêng
*Chú thích: Theo từng điểm dừng của hàm Lagrange, phương sai lớn nhất theo một chiều u1 nào đó là trị tiêng Việc sắp xếp các trị riêng theo giá trị giảm dần giúp
ta hiệu quả trong việc so sánh và chọn ra các vector có phương sai đáng kể (mức độ quan trọng lớn)
Bước 4: Chọn K trị riêng ban đầu và vector riêng đơn vị ứng với các trị riêng này Lập ma trận A có các cột là các vector riêng đã chọn Ma trận A là phép biến đổi cần tìm
*Chú thích: Chọn ra K trị riêng có giá trị đáng kể để tạo ra không gian mới có K chiều thể hiện tố nhất độ phân tán của dữ liệu X trên không gian mới
Bước 5:
Tính ảnh A T^X T của vecto ^X
của ma trận P (P là ma trận trực giao)
Chú thích: Diễn đạt dữ liệu X trên chiều không gian mới, dấu xấp xỉ là do chúng ta
đã lược bớt các chiều có phương sai không đáng kể nên dữ liệu X vẫn được thể hiện tốt nhất nhưng trên chiều dữ liệu nhỏ hơn
Trang 10Hình 1.1: Tóm tắt phương pháp PCA.
1.6 Ưu điểm, nhược điểm và ứng dụng của phương pháp PCA.
Ưu điểm:
gian mới ít chiều hơn, nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương không gian cũ
cũ
phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn
Nhược điểm:
Giả thiết về độ quan trọng của chiều dữ liệu: Mô hình PCA dựa trên giả
thiết rằng chiều quan trọng dữ liệu là chiều có phương sai độ dữ liệu lớn
Trang 11Tuy vậy trong thực tế, không phải lúc nào chiều phân bố dữ liệu lớn nhất cũng mang lại hiệu quả tốt nhất cho việc phân tích dữ liệu
PCA rất nhạy cảm với nhiễu: Vẫn do giả thiết là phương sai của dữ liệu
ảnh hưởng đến việc chọn ra chiều mới Khi nhiễu xuất hiện, do độ lệch của điểm nhiễu này mà chiều có phương sai của dữ liệu lớn cũng bị ảnh hưởng rất đáng kể
Thiếu sót thông tin: Mặc dù phân tích PCA sẽ giữ lại những chiều quan
trọng nhất đối với bộ dữ liệu, tuy vậy nếu xuất hiện sai sót trong việc chọn
số chiều giữ lại thì lượng thông tin mà ta đánh mất sau quá trình phân tích này sẽ rất đáng kể
Ứng dụng:
tế bào thần kinh ứng với các chức năng của não, phân tích sự phối hợp hoạt động của các tế bào thần kinh nhằm phát hiện một số chứng bất thường của các bệnh thần kinh và đo chỉ số IQ
hiện các mô hình lãi suất, phân tích rủi ro của các danh mục đầu tư chứng khoáng, dự báo lợi nhuận đầu tư, thuật toán phân bổ tài sản,…
giản
tính địa chất của một khu vực nhằm dự báo động đất
di truyền quần thể, phân bố dân cư,… và nhiều lĩnh vực khác
Trang 122 Ứng dụng của phương pháp PCA trong nhận diện gương mặt.
2.1 Tại sao lại cần đến nhận diện gương mặt?
Trong thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng toàn cầu, vấn đề đảm bảo an toàn về thông tin cũng như vật chất trở nên ngày càng quan trọng và khó khăn Thỉnh thoảng chúng ta lại nghe nói đến những vụ đánh cắp thẻ tín dụng, đột nhập trái phép vào các hệ thống máy tính hay toà nhà của cơ quan nhà nước, chính phủ Bởi các hệ thống nhận diện cũ không thực hiện quyền truy cập của người
sử dụng dựa vào thông tin “chúng ta là ai” mà chỉ dựa vào “chúng ta có gì (mật khẩu, chìa khóa, thẻ căn cước)” Bởi vậy, giả sử khi ta bị đánh cắp chiếc chìa khóa, rất có khả năng tên trộm có thể dừng chiếc chìa khóa ấy để lách qua sự bảo vệ của các hệ thống an ninh
Sinh trắc ra đời từ đó, những công nghệ hiện đại đã cho phép việc xác thực dựa vào “bản chất” của từng cá nhân Kiểm soát bằng sinh trắc học là những phương pháp
tự động cho phép xác thực hay nhận dạng một cá nhân dựa vào các đặc trưng sinh lý học của người đó như đặc điểm vân tay, gương mặt, gen, hoặc dựa trên những đặc điểm liên quan đến đặc trưng hành vi như dạng chữ viết, cách gõ phím, giọng nói Vì những hệ thống nhận dạng bằng sinh trắc học sử dụng thông tin sinh học của con người nên kết quả chính xác và đặc biệt là rất khó bị giả mạo
Nhận dạng gương mặt là một trong số ít các phương pháp nhận dạng dựa vào đặc trưng sinh lý cho kết quả chính xác cao đồng thời rất thuận tiện khi sử dụng Hơn nữa, trong số các đặc trưng sinh lý học, gương mặt của mỗi người là yếu tố đầu tiên và quan trọng nhất cho việc nhận biết lẫn nhau cũng như biểu đạt cảm xúc Khả năng nhận dạng nói chung và khả năng nhận biết gương mặt người nói riêng của con người thật đáng kinh ngạc Chúng ta có khả năng nhận ra hàng ngàn gương mặt của những người mình đã gặp, đã giao tiếp trong cuộc sống chỉ bằng một cái nhìn thoáng qua, thậm chí sau nhiều năm không gặp cũng như những sự thay đôi trên gương mặt do tuổi tác, cảm xúc, trang phục, màu tóc, Do đó, việc nghiên cứu các đặc tính của gương mặt người đã thu hút rất nhiều nhà triết học, nhà khoa học qua nhiều thế kỷ, chính vì những lý do trên, từ những năm 1970, nhận dạng mặt người đã thu hút sự
Trang 13quan tâm của nhiều nhà nghiên cứu trong các lĩnh vực như bảo mật, tâm lý học, xử lý ảnh và thị giác máy tính Ngày nay các chương trình máy tính về nhận dạng
Một số ứng dụng nhận diện gương mặt:
vào trong các hệ thống kiểm soát sân bay và được sử dụng để tìm kiếm và nhận diện những tên khủng bố hay bọn buôn bán ma tuý
Việc kiểm tra đăng nhập vào các hệ thống máy PC được kết hợp giữa thông tin mật mã và / hoặc nhận dạng mặt người Điều này giúp người làm việc không cảm thấy bị rối bời trong các thủ tục truy cập phức tạp đồng thời vẫn đảm bảo được độ tin cậy đối với thông tin khách hàng và các bí mật trong kinh doanh
truy cập vào các máy rút tiền tự động và các dịch vụ khác của ngân hàng được kiểm soát bởi các thông tin như số tín dụng (PIN), giọng nói, tròng mắt kết hợp với nhận diện gương mặt
2.2 PCA trong nhận diện gương mặt.
Trong bài toán nhận diện gương mặt, chúng ta thường sử dụng một tập dữ liệu lớn chứa các ảnh khuôn mặt của nhiều người khác nhau Với mỗi ảnh trong tập dữ liệu đó, chúng ta cần phải rút trích ra một số đặc trưng (hoặc gọi là vector đặc trưng) để biểu diễn khuôn mặt đó
Tuy nhiên, số chiều của vector đặc trưng thường rất lớn (ví dụ như 128 hoặc 256 chiều), gây khó khăn trong việc xử lý và phân loại dữ liệu Đó là lý do tại sao chúng ta cần sử dụng PCA để giảm số chiều của vector đặc trưng
PCA giúp chúng ta tìm ra các thành phần chính của dữ liệu, đó là các thành phần
có đóng góp lớn nhất vào sự biến động của dữ liệu Thông qua việc lựa chọn một số thành phần chính này, chúng ta có thể giảm số chiều của dữ liệu mà vẫn giữ được thông tin quan trọng
Trang 14Trong nhận diện gương mặt, PCA được sử dụng để giảm số chiều của vector đặc trưng của các ảnh khuôn mặt, từ đó tạo ra một ma trận các vector đặc trưng có số chiều nhỏ hơn Sau đó, chúng ta có thể sử dụng các phương pháp nhận diện khuôn mặt khác như SVM (Support Vector Machine) hoặc Neural Network để phân loại và nhận diện các khuôn mặt trong tập dữ liệu
Tóm lại, PCA có vai trò quan trọng trong nhận diện gương mặt bởi nó giúp giảm
số chiều của vector đặc trưng, giúp dữ liệu dễ dàng xử lý hơn và tăng độ chính xác của các phương pháp nhận diện khuôn mặt Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa những thông tin quan trọng nhất” Tức Feature Extraction chứ không phải Fearure Selection (Giữ k thuộc tính mới chứ không phải nguyên gốc)
Ứng dụng cụ thể:
các khuôn mặt cần tìm và chức năng trích chọn đặc trưng sẽ sử dụng các ảnh được tách ra này
trưng này hình thành các vector đặc trưng, các vector này sẽ được sử dụng
để đối sánh sự giống nhau giữa ảnh mặt cần tìm và ảnh mặt trong CSDL
tương tự giữa ảnh cần tìm và ảnh trong CSDL
Nhược điểm: Trong những trường hợp sau, PCA Eigenfaces có khả năng cho ra kết quả sai lệch: