Tải bản đầy đủ (.pdf) (65 trang)

Nhận dạng ảnh mặt người sử dụng mạng Nơron

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 65 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
____________________

LUẬN VĂN THẠC SĨ KHOA HỌC

NHẬN DẠNG ẢNH MẶT NGƯỜI SỬ DỤNG MẠNG NƠRON

NGÀNH: CÔNG NGHỆ THÔNG TIN

VÕ PHÚC NGUYÊN

Người hướng dẫn khoa học: PGS. TS. NGUYỄN THANH THỦY

HÀ NỘI - 2009


Mục lục
Lời cam đoan ..................................................................................................... 1
Danh mục các từ viết tắt .................................................................................... 2
Danh mục các bảng ........................................................................................... 3
Danh mục các hình vẽ, đồ thị ............................................................................ 4
Lời cảm ơn ........................................................................................................ 5
Chương 1: Mở đầu ............................................................................................ 6
1.1 Giới thiệu chung ...................................................................................... 6
1.2 Bố cục luận văn ....................................................................................... 8
Chương 2: Trích chọn đặc trưng ..................................................................... 10
2.1 Phương pháp phân tích thành phần chính ............................................. 10
2.1.1 Cơ sở toán học ................................................................................. 11
2.1.2 Phương pháp PCA ........................................................................... 20
2.2 Phương pháp phân tách tuyến tính ........................................................ 27


2.3 Phương pháp xử lý hình thái.................................................................. 30
2.3.1 Biến đổi trúng-trượt (hit-or-miss) ................................................... 32
2.3.2 Phép dãn ảnh và co ảnh tổng quát ................................................... 35
2.3.3 Dãn và co ảnh đa mức xám ............................................................. 42
Chương 3: Mạng nơron ................................................................................... 44
3.1 Giới thiệu mạng nơron ........................................................................... 44
3.1.1 Nơron – đơn vị xử lý cơ bản ........................................................... 44
3.1.2. Liên kết giữa các nơron .................................................................. 45
3.1.3. Hàm kích hoạt và các quy tắc xác định tín hiệu ra ........................ 46
3.1.4 Quy tắc delta.................................................................................... 47
3.2 Thuật toán học lan truyền ngược ........................................................... 49
Chương 4: Thiết kế và đánh giá ...................................................................... 54
4.1 Thiết kế hệ thống ................................................................................... 54
4.1.1 Cơ sở dữ liệu ảnh ............................................................................ 54
4.1.2 Môi trường cài đặt ........................................................................... 55
4.1.3 Cài đặt.............................................................................................. 55
4.2 Kiểm thử và đánh giá............................................................................. 58
Kết luận ........................................................................................................... 60
Tài liệu tham khảo ........................................................................................... 62


1

Lời cam đoan
Tôi xin cam đoan luận văn “Nhận dạng ảnh mặt người sử dụng mạng
nơron” này là cơng trình nghiên cứu của riêng tôi. Các số liệu sử dụng trong
luận văn là trung thực. Các kết quả nghiên cứu được trình bày trong luận văn
chưa từng được cơng bố tại bất kỳ cơng trình nào khác.
Võ Phúc Ngun


Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


2

Danh mục các từ viết tắt
LDA (Linear Discriminant Analysis): Phương pháp phân tách tuyến tính
LMS (Least Mean Square): Phương pháp bình phương trung bình tối
thiểu
ORL (Olivetti Research Laboratory, Surrey University): Cơ sở dữ liệu
ảnh dùng trong luận văn
PCA (Principal Components Analysis): Phương pháp phân tích thành
phần chính

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


3

Danh mục các bảng
Bảng 2.1. Tính tốn độ lệch chuẩn.................................................................. 13
Bảng 2.2. Tập dữ liệu hai chiều và tính tốn hiệp phương sai........................ 15
Bảng 4.1. Các module chính của chương trình ............................................... 55

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


4

Danh mục các hình vẽ, đồ thị

Hình 1.1. Mơ hình hệ thống nhận dạng mặt người ........................................... 6
Hình 2.1. Ví dụ minh họa PCA ....................................................................... 11
Hình 2.2. Ví dụ vector thường và vetor riêng ................................................. 18
Hình 2.3. Ví dụ về sự ổn định của vector riêng đối với việc lấy tỉ lệ ............. 19
Hình 2.4. Dữ liệu và đồ thị biểu diễn dữ liệu.................................................. 21
Hình 2.5. Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng ........... 23
Hình 2.6. Ảnh gốc trong cơ sở dữ liệu ORL ................................................... 26
Hình 2.7. Ảnh sau khi biến đổi theo PCA ....................................................... 26
Hình 2.8. Ví dụ minh họa LDA....................................................................... 27
Hình 2.9. Ảnh sau khi biến đổi theo LDA ...................................................... 30
Hình 2.10. Sự liên thơng ................................................................................. 31
Hình 2.11. Phép dãn ảnh nhị phân .................................................................. 34
Hình 2.12. Phép co ảnh nhị phân .................................................................... 35
Hình 2.13. Các tốn tử đại số ảnh trên các mảng nhị phân............................. 36
Hình 2.14. Lật và dịch một mảng nhị phân..................................................... 37
Hình 2.15. Phép dãn ảnh tổng quát dựa theo phép cộng Minkowski ............. 39
Hình 2.16. So sánh các kết quả của hai phép co ảnh ...................................... 41
Hình 2.17. Phép dãn ảnh và co ảnh tổng quát với phần tử cấu trúc 5×5 ........ 42
Hình 2.18. Ảnh sau khi xử lý hình thái ........................................................... 43
Hình 3.1. Các thành phần cơ bản của mạng nơron nhân tạo .......................... 45
Hình 3.2. Một số dạng hàm kích hoạt của nơron ............................................ 46
Hình 3.3. Mạng nơron l lớp ............................................................................. 49
Hình 4.1. Ảnh gốc trong bộ ảnh ORL ............................................................. 54
Hình 4.2. Ảnh gốc được bổ sung ảnh gương .................................................. 56
Hình 4.3. Giao diện chính của chương trình ................................................... 57

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


5


Lời cảm ơn
Tôi xin cảm ơn Viện Đào tạo Sau đại học, trường Đại học Bách khoa Hà
Nội đã tạo điều kiện cho tơi hồn thành luận văn này.
Tơi xin chân thành cảm ơn sự giúp đỡ của PGS. TS. Nguyễn Thanh Thủy,
Viện Công nghệ thông tin và Truyền thông, trường Đại học Bách khoa Hà
Nội.
Tôi xin cảm ơn sự động viên và giúp đỡ của tất cả những người thân trong
gia đình, của các bạn bè, đồng nghiệp trong quá trình thực hiện luận văn này.
Võ Phúc Nguyên

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


6

Chương 1: Mở đầu
1.1 Giới thiệu chung
Hiện nay, cùng với sự phát triển như vũ bão của công nghệ thông tin nói
chung và sự phát triển trong lĩnh vực thị giác máy nói riêng, các hệ thống phát
hiện và nhận dạng mặt người đang ngày càng có nhiều ứng dụng trong thực tế
như vấn đề an ninh, nhận dạng người dùng trong các hệ thống bảo mật, nhận
dạng người trên các bằng lái xe, hộ chiếu, nhận dạng người trong các hệ thống
tương tác người-máy, trong lĩnh vực giải trí…
Đặc biệt sau thảm họa ngày 11/9, các chính phủ trên toàn thế giới đã bắt
đầu chú ý hơn tới các mức an ninh ở sân bay và biên giới. Ngân sách hằng
năm của các nước đã tăng lên nhiều cho các kỹ thuật hiện đại để xác định,
nhận dạng và lần theo các đối tượng nghi vấn. Nhu cầu tăng lên trong các ứng
dụng này đã giúp các nhà khoa học có thêm quỹ để phát triển các dự án
nghiên cứu. Mặc dù việc nhận dạng mặt người không thể chính xác được như

các phương pháp nhận dạng khác như nhận dạng vân tay, nhưng nó vẫn nhận
được sự quan tâm lớn của các nhà nghiên cứu trong lĩnh vực thị giác máy. Lý
do chủ yếu là trên thực tế, mặt người vẫn là cách truyền thống để con người
nhận ra nhau.
Một hệ thống nhận dạng mặt người điển hình bao gồm các thành phần
chính như hình 1.1.
Ảnh mặt
người

Trích chọn
đặc trưng

Nhận dạng
mặt người

Người
nhận dạng

Hình 1.1. Mơ hình hệ thống nhận dạng mặt người

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


7

Có hai hướng tiếp cận chính làm hạt nhân của các kỹ thuật phân tích đặc
trưng mặt người: hướng tiếp cận hình học và hướng tiếp cận hình ảnh.
• Hướng tiếp cận hình học sử dụng việc ánh xạ khơng gian các đặc
trưng mặt người. Mặt người được phân loại theo khoảng cách hình
học, theo đường bao và theo các góc giữa các điểm.

• Hướng tiếp cận hình ảnh bao gồm việc xây dựng các mẫu từ những
đặc trưng mặt người. Mẫu của các đặc trưng nổi bật, hoặc thậm chí
là tồn khn mặt được thiết lập, việc nhận dạng được thực hiện
bằng cách duyệt các khn mặt rồi tìm mặt nào khớp nhất với mẫu.
Hiện nay các hệ thống nhận dạng mặt người vẫn đang tiếp tục được phát
triển. Dưới đây là một số phương pháp trích chọn đặc trưng:
- Mặt riêng (Eigenface)
- Mơ hình Markov ẩn
- Phân tích thành phần chính (PCA)
Thuật tốn Eigenface rất phổ biến và được sử dụng rộng rãi do sự đơn
giản và hiệu quả tính tốn. Thuật tốn sử dụng cách tiếp cận lý thuyết thơng
tin trong việc mã hóa các ảnh mặt người và xác định các vector riêng tương
ứng với giá trị riêng lớn nhất của ma trận hiệp phương sai của ảnh. Sau đó,
đối với mỗi nhóm ảnh của một người, ta tính vector trung bình, một ngưỡng
sẽ được chọn để xác định khoảng cách chấp nhận được cực đại từ một ảnh
đến nhóm ảnh giúp nhận dạng những ảnh mới.
Mơ hình Markov ẩn phân loại một đặc trưng mặt người bằng tính chất của
chuỗi Markov. Một dãy ngẫu nhiên các biến lấy trên các giá trị điểm ảnh
tương ứng tạo nên chuỗi Markov, nếu xác suất để hệ thống đạt trạng thái xn+1
tại thời điểm n+1 chỉ phụ thuộc vào xác suất để hệ thống đạt trạng thái xn tại

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


8

thời điểm n. Trong một chuỗi Markov, việc chuyển hệ thống từ trạng thái này
sang trạng thái khác tương ứng với một xác suất nào đó, nhưng kết quả của
một ký hiệu ra lại xác định được trước. Như vậy, kết quả là một phân bố xác
suất của tất cả các ký hiệu ra tại mỗi trạng thái và kết quả này được dùng để

so sánh giữa hai khuôn mặt.
Trong phương pháp phân tích thành phần chính (PCA − cịn gọi là biến
đổi Karhunen-Loeve), tập dữ liệu được biểu diễn lại với số đặc trưng ít hơn
đồng thời giữ được hầu hết các thông tin quan trọng nhất của dữ liệu. PCA
thường được sử dụng cùng phương pháp mặt riêng. Tập con các vector riêng
được dùng làm các vector cơ sở của một khơng gian con, trong đó ta có thể so
sánh với các ảnh trong cơ sở dữ liệu để nhận dạng các ảnh mới. Các vector cơ
sở này cịn được gọi là các thành phần chính của cơ sở dữ liệu ảnh.
Mạng nơron được sử dụng rộng rãi trong các hệ thống nhận dạng mặt
người. Kỹ thuật mạng nơron mô phỏng hoạt động của các nơron trong bộ não
người. Mạng nơron có khả năng điều chỉnh các trọng số dựa trên các mẫu học
trong quá trình huấn luyện. Kết quả là mạng đạt được hiệu quả cao trong việc
phân loại các lớp, dựa trên dữ liệu mẫu khả tách tuyến tính hoặc phi tuyến.

1.2 Bố cục luận văn
Mặc dù các hệ thống nhận dạng mặt người hiện tại đã đạt được hiệu quả
khá cao, tuy nhiên chúng vẫn còn hạn chế là chỉ tập trung vào một hay một
vài phương pháp trích chọn đặc trưng. Có hệ thống chỉ thực hiện nhận dạng
dựa trên các đặc điểm về hình học của mặt người hoặc có hệ thống chỉ dựa
trên các đặc điểm thống kê.
Trong luận văn này, việc trích chọn đặc trưng sẽ được thực hiện dựa trên
những đặc điểm thống kê của khuôn mặt (cụ thể là phương pháp phân tích

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


9

thành phần chính – PCA và phương pháp phân tách tuyến tính – LDA) và
những đặc điểm về hình thái của khn mặt. Chương 2 trình bày về các

phương pháp trích chọn đặc trưng. Chương 3 trình bày về mạng noron với
thuật toán học lan truyền ngược lỗi, được dùng để phân loại ảnh. Chương 4
trình bày cụ thể việc thiết kế hệ thống và đánh giá hiệu quả thực hiện. Cuối
cùng là phần kết luận.

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


10

Chương 2: Trích chọn đặc trưng
Chương này sẽ trình bày về các phương pháp trích chọn đặc trưng được
sử dụng trong luận văn. Mục đích thứ nhất của việc trích chọn đặc trưng là
giảm số chiều của dữ liệu. Dữ liệu ảnh mặt người có số điểm ảnh lớn (cỡ vài
nghìn đến vài chục nghìn điểm ảnh), do đó cần có một phép biến đổi để giảm
lượng thơng tin sử dụng để biểu diễn, đồng thời không làm mất quá nhiều
thơng tin quan trọng. Mục đích thứ hai của việc trích chọn đặc trưng là giúp
phân biệt tốt hơn đối với các mẫu dữ liệu. Các ảnh mặt người sẽ được biểu
diễn trong một khơng gian mới sao cho có thể làm nổi bật được sự khác biệt
giữa các ảnh với nhau. Các phần sau sẽ trình bày về phương pháp phân tích
thành phần chính, phương pháp phân tách tuyến tính và phương pháp xử lý
hình thái ảnh mặt người.

2.1 Phương pháp phân tích thành phần chính
Phương pháp phân tích thành phần chính (PCA – Principal Components
Analysis) là một kỹ thuật thống kê hữu ích trong các ứng dụng nhận dạng mặt
người và nén ảnh, đồng thời đây cũng là một kỹ thuật phổ biến cho việc tìm
kiếm các mẫu trong khơng gian dữ liệu có số chiều lớn.
Mục đích của phương pháp phân tích này có thể diễn đạt ngắn gọn như
sau: Ảnh gốc có kích thước 112×92 (10304 điểm ảnh). Những ảnh này cần

được rút gọn sao cho lượng thơng tin dùng để biểu diễn ảnh đó giảm đi, đồng
thời không làm mất những đặc điểm quan trọng nhất của khn mặt. Kết quả
của việc phân tích này sẽ đạt được như hình 2.1.

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


11

Hình 2.1. Ví dụ minh họa PCA
Ảnh gốc cần 10304 giá trị để biểu diễn trong khi ảnh biến đổi chỉ cần 49
giá trị.
2.1.1 Cơ sở toán học
a. Lý thuyết thống kê
Các nhà thống kê thường quan tâm đến việc lấy mẫu trên một tập dữ liệu.
Ví dụ về cuộc bầu cử, tập dữ liệu là toàn bộ dân số trong một đất nước, trong
khi đó mẫu là một tập con của dân số nhà thống kê muốn đánh giá. Một vấn
đề lớn của thống kê học là thông qua phương pháp đánh giá một mẫu của dân
số, kết quả thống kê cho phép đánh giá được xu hướng chính của tồn bộ dân
số.
Xét một tập ví dụ X = [1 2 4 6 12 15 25 45 68 67 65 98]. Chỉ số dưới của
ký hiệu X được dùng để trỏ tới một số cụ thể trong tập. Ví dụ X3 trỏ tới số thứ
ba trong X với giá trị là 4. Lưu ý rằng X1 là số đầu tiên trong X. Ngồi ra ký
hiệu n cịn được sử dụng để chỉ tổng số các phần tử trong tập X.
Giá trị trung bình của mẫu là:
𝑋𝑋� =

∑𝑛𝑛𝑖𝑖=1 𝑋𝑋𝑖𝑖
𝑛𝑛


(2.1)

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


12

Giá trị trung bình khơng thể hiện được nhiều về dữ liệu ngoại trừ điểm
trung bình. Ví dụ, hai tập sau có cùng một giá trị trung bình là 10, nhưng
chúng hoàn toàn khác nhau:
[0 8 12 20] và [8 9 11 12]
Sự khác nhau đó là sự trải rộng của dữ liệu. Độ lệch chuẩn của tập dữ
liệu sẽ đánh giá được sự trải rộng của dữ liệu. Độ lệch chuẩn là khoảng cách
trung bình từ điểm trung bình của dữ liệu đến các điểm. Cơng thức tính như
sau:
∑𝑛𝑛𝑖𝑖=1(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)2
𝑠𝑠 = �
(𝑛𝑛 − 1)

(2.2)

Câu hỏi đặt ra: “Vì sao lại sử dụng giá trị (n−1) mà không phải là n?”
Nguyên nhân là, nếu mẫu của tập dữ liệu được lấy là tập con của thế giới thực
thì phải sử dụng (n−1) vì giá trị nhận được gần với độ lệch chuẩn hơn so với
sử dụng n. Tuy nhiên, nếu tính độ lệch chuẩn cho tồn bộ dân số, giá trị cần
dùng là n chứ không phải (n−1).
Với hai tập dữ liệu trên, việc tính độ lệch chuẩn được thực hiện như bảng
2.1. Tập thứ nhất có độ lệch chuẩn lớn hơn do dữ liệu trải ra xa hơn so với
điểm trung bình. Một ví dụ khác, tập [10 10 10 10] cũng có điểm trung bình là
10, nhưng độ lệch chuẩn lại bằng 0, bởi vì tất cả các số là giống nhau. Không

số nào chệch ra khỏi điểm trung bình.
Phương sai là một hàm đo khác về sự trải rộng của dữ liệu trong một tập.
Thực tế nó gần như giống hồn tồn với độ lệch chuẩn:
∑𝑛𝑛𝑖𝑖=1(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)2
𝑠𝑠 =
(𝑛𝑛 − 1)
2

(2.3)

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


13

Bảng 2.1. Tính tốn độ lệch chuẩn
Tập 1:

0

�)
(𝑿𝑿𝒊𝒊 − 𝑿𝑿
−10

� )𝟐𝟐
(𝑿𝑿𝒊𝒊 − 𝑿𝑿

8

−2


4

12

2

4

20

10

100

Xi

100

Tổng

208

Chia cho (n-1)

69.333

Khai căn

8.3266


Tập 2:

8

�)
(𝑿𝑿𝒊𝒊 − 𝑿𝑿
−2

� )𝟐𝟐
(𝑿𝑿𝒊𝒊 − 𝑿𝑿

9

−1

1

11

1

1

12

2

4


Xi

4

Tổng

10

Chia cho (n-1)

3.333

Khai căn

1.8257

Như vậy đây chỉ là bình phương của độ lệch chuẩn. s2 là ký hiệu thường
dùng cho phương sai của một mẫu. Cả hai phương pháp này đều đánh giá độ
trải rộng của dữ liệu. Độ lệch chuẩn là phương pháp thơng dụng hơn, bên
cạnh đó phương sai cũng được sử dụng.

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


14

Hai phương pháp trên chỉ sử dụng được cho dữ liệu một chiều. Tuy nhiên,
nhiều tập dữ liệu lại có nhiều hơn một chiều và mục đích của việc phân tích
thống kê các tập dữ liệu này là nhằm tìm hiểu mối quan hệ giữa các chiều. Ví
dụ, xét tập dữ liệu về chiều cao của các sinh viên trong một lớp và điểm số

của họ về một môn học nào đó. Ta có thể tiến hành phân tích thống kê xem
ảnh hưởng của chiều cao sinh viên đến điểm số như thế nào.
Độ lệch chuẩn và phương sai chỉ thực hiện trên một chiều, do đó chúng
cũng chỉ có thể tính tốn được cho mỗi chiều của tập dữ liệu một cách độc lập
với các chiều khác. Tuy nhiên, nếu có một phương pháp đánh giá được sự
biến đổi của các chiều từ giá trị trung bình của mỗi chiều khác, khi đó sẽ rất
hữu ích đối với việc thống kê dữ liệu.
Hiệp phương sai là một phương pháp như vậy. Hiệp phương sai luôn
đánh giá giữa hai chiều. Để tính hiệp phương sai giữa một chiều với chính nó,
có thể sử dụng phương sai. Với một tập dữ liệu ba chiều (x, y, z), ta có thể
đánh giá hiệp phương sai giữa các chiều x và y, giữa y và z, giữa z và x.
Cơng thức tính hiệp phương sai gần giống với cơng thức tính phương sai.
Cơng thức tính phương sai có thể được viết lại như sau:
∑𝑛𝑛𝑖𝑖=1(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)
𝑣𝑣𝑣𝑣𝑣𝑣(𝑋𝑋) =
(𝑛𝑛 − 1)

(2.4)

Tương tự, công thức tính hiệp phương sai được viết như sau:
∑𝑛𝑛𝑖𝑖=1(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)(𝑌𝑌𝑖𝑖 − 𝑌𝑌�)
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑋𝑋, 𝑌𝑌) =
(𝑛𝑛 − 1)

(2.5)

Công thức (2.5) tương tự công thức (2.4), ngoại trừ ở nhân tử thứ hai, giá
trị của X được thay bằng giá trị của Y. Việc này có thể được diễn đạt như sau:

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên



15

“Với mỗi điểm dữ liệu, tính tích của độ sai khác giữa giá trị x và giá trị trung
bình của x, với độ sai khác giữa giá trị y và giá trị trung bình của y. Cộng tất
cả vào rồi chia cho (n−1)”.
Ví dụ với một nhóm sinh viên, xét tổng số giờ họ dành cho môn học A và
điểm số họ đạt được ở mơn đó. Khi đó bài tốn có hai chiều, chiều thứ nhất là
H, số giờ học, chiều thứ hai là M, điểm số. Bảng 2.2 là các số liệu và việc tính
tốn cov(H,M), hiệp phương sai giữa thời gian học và điểm số.
Bảng 2.2. Tập dữ liệu hai chiều và tính tốn hiệp phương sai
Số giờ

Điểm

(H)

(M)

9

39

15

56

25


93

14

61

10

50

18

75

0

32

16

85

5

42

19

70


16

66

20

80

Tổng

167

749

Trung bình

13.92

62.42

Dữ liệu

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


16

H

M


9

39

�)
(𝑯𝑯𝒊𝒊 − 𝑯𝑯

15

56

25

� ) (𝑯𝑯𝒊𝒊 − 𝑯𝑯
� )(𝑴𝑴𝒊𝒊 − 𝑴𝑴
�)
(𝑴𝑴𝒊𝒊 − 𝑴𝑴
−23.42

115.23

1.08

−6.42

−6.93

93


11.08

30.58

338.83

14

61

0.08

−1.42

−0.11

10

50

−3.92

−12.42

48.69

18

75


4.08

12.58

51.33

0

32

−13.92

−30.42

423.45

16

85

2.08

22.58

46.97

5

42


−8.92

−20.42

182.15

19

70

5.08

7.58

38.51

16

66

2.08

3.58

7.45

20

80


6.08

17.58

106.89

−4.92

Tổng

1149.89

Trung bình

104.54

Giá trị chính xác khơng quan trọng bằng dấu của nó (dương hay âm). Nếu
giá trị là dương, nó chỉ ra rằng cả hai chiều cùng nhau tăng, nghĩa là một cách
tổng quát, khi số giờ học tăng lên thì điểm số cũng tăng lên.
Nếu giá trị là âm, khi đó một chiều tăng lên, một chiều giảm đi. Giá trị
hiệp phương sai âm cho thấy rằng chúng đối lập nhau, khi số giờ học tăng lên
thì điểm số giảm đi.
Trường hợp cuối cùng, nếu giá trị hiệp phương sai bằng 0, khi đó hai
chiều độc lập với nhau.

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


17


Kết quả điểm số tăng lên khi số giờ học tăng có thể dễ dàng nhận thấy
bằng đồ thị. Tuy nhiên, việc minh họa trực quan như vậy chỉ có thể thực hiện
được khi dữ liệu có hai hoặc ba chiều. Vì giá trị hiệp phương sai có thể được
tính giữa hai chiều bất kỳ trong một tập dữ liệu, nên kỹ thuật này thường được
sử dụng để tìm mối liên hệ giữa các chiều trong các tập dữ liệu nhiều chiều
mà việc biểu diễn trực quan gặp khó khăn.
Từ cơng thức tính cov(X,Y) trên, bằng cách đổi chỗ hai nhân tử
(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)(𝑌𝑌𝑖𝑖 − 𝑌𝑌�) ta suy ra cov(X,Y) = cov(Y,X).

Hiệp phương sai chỉ đánh giá được quan hệ giữa hai chiều. Nếu dữ liệu có

nhiều hơn hai chiều, có thể có nhiều hơn một giá trị hiệp phương sai được
tính. Ví dụ, từ một tập dữ liệu ba chiều (x, y, z) ta có thể tính cov(x,y), cov(y,z)
𝑛𝑛!

và cov(z,x). Với một tập dữ liệu n chiều, sẽ có (𝑛𝑛−2)!∗2 giá trị hiệp phương sai

khác nhau.

Các giá trị hiệp phương sai giữa tất cả các chiều khác nhau được tính tốn
rồi đưa vào một ma trận. Ma trận hiệp phương sai của một tập dữ liệu n chiều
là:
𝐶𝐶 𝑛𝑛×𝑛𝑛 = �𝑐𝑐𝑖𝑖,𝑗𝑗 = 𝑐𝑐𝑐𝑐𝑐𝑐�𝐷𝐷𝐷𝐷𝐷𝐷𝑖𝑖 , 𝐷𝐷𝐷𝐷𝐷𝐷𝑗𝑗 ��

(2.6)

ở đây Cn×n là ma trận n hàng, n cột và Dimi là chiều thứ i. Tồn bộ cơng thức
trên có nghĩa là với một tập dữ liệu n chiều, ma trận hiệp phương sai của dữ
liệu là ma trận n hàng, n cột (ma trận vuông) với phần tử tại hàng i, cột j là giá
trị hiệp phương sai giữa hai chiều thứ i và thứ j.

Ví dụ: Ma trận hiệp phương sai của một tập dữ liệu ba chiều, với các
chiều là x, y và z là ma trận có 3 hàng, 3 cột với các giá trị như sau:

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


18

𝑐𝑐𝑐𝑐𝑐𝑐 (𝑥𝑥, 𝑥𝑥 )
𝐶𝐶 = �𝑐𝑐𝑐𝑐𝑐𝑐 (𝑦𝑦, 𝑥𝑥)
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑧𝑧, 𝑥𝑥)

𝑐𝑐𝑐𝑐𝑐𝑐 (𝑥𝑥, 𝑦𝑦)
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑦𝑦, 𝑦𝑦)
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑧𝑧, 𝑦𝑦)

𝑐𝑐𝑐𝑐𝑐𝑐 (𝑥𝑥, 𝑧𝑧)
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑦𝑦, 𝑧𝑧)�
𝑐𝑐𝑐𝑐𝑐𝑐 (𝑧𝑧, 𝑧𝑧)

(2.7)

Một số điểm chú ý: Trên đường chéo chính, các giá trị chính là hiệp
phương sai giữa một chiều và chính nó, đó là phương sai của chiều đó. Điểm
thứ hai là, vì cov(a,b) = cov(b,a) nên ma trận hiệp phương sai là ma trận đối
xứng qua đường chéo chính.
b. Đại số ma trận
Phần này trình bày một số kiến thức cơ bản về đại số ma trận được dùng
trong PCA. Đặc biệt trong đó sẽ xét các vector riêng và giá trị riêng của một
ma trận cho trước.

Hai ma trận có thể được nhân với nhau, với điều kiện chúng có kích thước
phù hợp. Vector riêng là một trường hợp đặc biệt của việc này. Xét hai phép
nhân giữa một ma trận và một vector như hình 2.2.
𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑡𝑡ℎườ𝑛𝑛𝑛𝑛
𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑟𝑟𝑟𝑟ê𝑛𝑛𝑛𝑛

2

2
2

2

1
11
3
�� �=� �
3
5
1
12
3
3
3
�� �=� �=4� �
8
1
2
2


Hình 2.2. Ví dụ vector thường và vetor riêng

Trong trường hợp thứ nhất, vector kết quả không phải là một bội số của
vector gốc, trong khi đó ở trường hợp thứ hai, vector kết quả bằng đúng 4 lần
3
vector gốc. Vector � � (trường hợp thứ hai) biểu diễn một mũi tên từ gốc
2
(0,0) đến điểm (3,2). Ma trận bênh cạnh là ma trận vng, có thể coi như một

ma trận biến đổi. Nếu nhân ma trận này vào phía trái của vector, kết quả sẽ là

một vector khác đã được biến đổi từ vị trí gốc của nó. Vector này (và tất cả

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


19

các bội số của nó, vì chiều dài của vector không ảnh hưởng đến kết quả) là
một vector riêng của ma trận biến đổi đó.
Các vector riêng có một số tính chất. Thứ nhất, vector riêng chỉ có thể
được xác định được đối với các ma trận vuông. Không phải mọi ma trận
vng đều có vector riêng. Nếu một ma trận n×n có vector riêng thì số lượng
đó là n.
Thứ hai, khi nhân vector riêng với một số nào đó, vector kết quả vẫn sẽ
bằng đúng số lần như vậy của vector gốc (hình 2.3). Lý do là khi lấy một tỉ lệ
nào đó của vector, chỉ đơn giản độ dài của nó bị thay đổi, khơng ảnh hưởng
đến chiều của vector. Cuối cùng, mọi vector riêng của một ma trận là trực
giao, nghĩa là chúng vng góc với nhau, bất kể dữ liệu có bao nhiêu chiều.
Điều này rất quan trọng bởi vì nó có ý nghĩa lớn khi biểu diễn dữ liệu theo các

vector trực giao này thay vì biểu diễn theo các trục x và y.

2

2

3
6
2� �=� �
2
4
24
3
6
6
�� �=� �=4� �
16
1
4
4

Hình 2.3. Ví dụ về sự ổn định của vector riêng đối với việc lấy tỉ lệ
Giá trị riêng có quan hệ chặt chẽ với vector riêng. Thực tế là trên hình 2.2
đã xuất hiện một giá trị riêng. Trong cả hai ví dụ trên, số lần vector gốc được
tăng lên sau khi nhân với ma trận vuông luôn cố định, số lần này là 4. Vậy 4
là giá trị riêng ứng với vector riêng đó. Khơng cần biết bội số nào của vector
riêng đã được lấy trước khi đem nhân với ma trận vuông, vector kết quả nhận
được ln bằng 4 lần vector gốc (hình 2.3).
Hiện nay có rất nhiều thư viện tốn học hỗ trợ việc tìm các vector riêng và
giá trị riêng của các ma trận, ví dụ gói phần mềm newmat trên trang web


Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


20

hay các bộ công cụ trong thư viện lập trình của
MATLAB.
2.1.2 Phương pháp PCA
Phương pháp phân tích thành phần chính cho phép xác định các mẫu
trong một tập dữ liệu và biểu diễn dữ liệu theo cách có thể làm nổi bật được
sự giống nhau và khác nhau giữa các mẫu. Vì các mẫu có thể rất khó tìm ra
trong dữ liệu nhiều chiều (do không thể biểu diễn trực quan bằng đồ họa), nên
PCA là một công cụ hữu hiệu để phân tích dữ liệu. Phương pháp này bao gồm
một số bước cơ bản sau:
Bước 1: Lấy dữ liệu
Để có thể vẽ đồ thị minh họa trực quan việc phân tích PCA theo từng
bước, dữ liệu trong ví dụ sẽ có hai chiều. Dữ liệu được cho ở hình 2.4.
Bước 2: Hiệu chỉnh theo giá trị trung bình
Để tính PCA thuận lợi, các giá trị trên mỗi chiều của dữ liệu sẽ được trừ
đi giá trị trung bình của chiều đó. Tất cả các giá trị x bị trừ đi 𝑥𝑥̅ (trung bình

giá trị x của tất cả các điểm) và tất cả các giá trị y bị trừ đi 𝑦𝑦� (trung bình giá trị

y của tất cả các điểm). Tập dữ liệu nhận được có giá trị trung bình là 0.
Bước 3: Tính ma trận hiệp phương sai

Do dữ liệu có hai chiều nên kích thước của ma trận hiệp phương sai là
2×2. Ma trận thu được là:
𝑐𝑐𝑐𝑐𝑐𝑐 = �


0.616555556
0.615444444

0.615444444

0.716555556

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


21

Vì các phần tử nằm ngồi đường chéo chính của ma trận là dương, nên hai
giá trị x và y cùng nhau tăng.

Dữ liệu
gốc

X

Y

X

Y

2.5

2.4


0.69

0.49

0.5

0.7

−1.31 −1.21

2.2

2.9

0.39

0.99

1.9

2.2

Dữ liệu

0.09

0.29

3.1


3.0

sau khi

1.29

1.09

2.3

2.7

chỉnh

0.49

0.79

2

1.6

0.19

−0.31

1

1.1


−0.81 −0.81

1.5

1.6

−0.31 −0.31

1.1

0.9

−0.71 −1.01

Hình 2.4. Dữ liệu và đồ thị biểu diễn dữ liệu

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


22

Bước 4: Tính vector riêng và giá trị riêng của ma trận hiệp phương sai
Vì ma trận hiệp phương sai vng nên có thể tính vector riêng và giá trị
riêng của ma trận này. Chúng cho biết những thông tin hữu ích về dữ liệu. Hai
−0.677873399
−0.735178656
vector riêng là �
� và �
�, với hai giá trị riêng

−0.735178656
0.677873399
tương ứng là 0.0490833989 và 1.28402771.

Điều lưu ý quan trọng rằng các vector riêng ở đây đều là vector đơn vị,
nghĩa là độ dài của chúng bằng 1. Điều này rất quan trọng trong PCA. Hầu hết
các gói phần mềm tốn học, khi tính vector riêng đều trả về kết quả là các
vector đơn vị.
Như trên đồ thị dữ liệu ở hình 2.5, dữ liệu có một mẫu chủ đạo (hướng
theo một đường chéo). Ở phía trên của dữ liệu là hai vector riêng, chúng là
những đường chéo hình chấm chấm. Như đã trình bày ở phần vector riêng,
chúng vng góc với nhau. Nhưng quan trọng hơn, chúng cung cấp thông tin
về các mẫu trong dữ liệu. Một trong hai vector riêng nằm theo hướng phân bố
chính của dữ liệu. Vector riêng đó cho thấy mối quan hệ giữa dữ liệu với
đường thẳng đó. Vector riêng thứ hai cho thấy một mẫu khác, kém quan trọng
hơn, là tất cả các điểm phân bố dọc theo đường chính nhưng cách đường
chính một khoảng nào đó.
Như vậy, bằng việc tính các vector riêng của ma trận hiệp phương sai, ta
có thể trích ra các đặc trưng của dữ liệu. Các bước còn lại sẽ là việc biến đổi
dữ liệu sao cho nó được biểu diễn theo các đặc trưng đó.

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


23

Hình 2.5. Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng
Bước 5: Chọn các thành phần và xác lập vector đặc trưng
Các vector riêng và giá trị riêng tính được ở phần trước với các giá trị
riêng khá khác nhau. Vector riêng ứng với giá trị riêng cao nhất sẽ là thành

phần chính của tập dữ liệu. Trong ví dụ trên, vector riêng với giá trị riêng lớn
hơn là vector trỏ dọc theo dữ liệu. Nó mơ tả mối quan hệ có ý nghĩa nhất giữa
các chiều của dữ liệu.
Một cách tổng quát, sau khi tìm được các vector riêng từ ma trận hiệp
phương sai, bước tiếp theo là sắp xếp chúng theo giá trị riêng, từ cao đến thấp.
Nghĩa là các thành phần được sắp xếp theo thứ tự tầm quan trọng giảm dần.
Khi đó, các thành phần ít có ý nghĩa có thể được bỏ qua nếu cần. Một số
thông tin đã bị lược bỏ, nhưng vì giá trị riêng của chúng nhỏ nên dữ liệu
không bị mất nhiều. Khi bỏ qua một số thành phần, dữ liệu thu được sẽ có số
chiều ít hơn dữ liệu gốc. Nói cách khác, nếu dữ liệu gốc có n chiều, sau khi

Nhận dạng ảnh mặt người sử dụng mạng nơron – Võ Phúc Nguyên


×