Bài toán phân cụm khuôn mặt là một bài toán con của phân cụm, tập trung vào đối tượng là ảnh có khuôn mặt người Ảnh có khuôn mặt trong bài toán này là ảnh chỉ có một khuôn mặt.. Bài toán
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
PHẠM ĐỖ HOÀNG MY - 19521863 NGUYEN MINH PHU - 19520218
KHOA LUAN TOT NGHIEP
PHAN CUM ANH KHUON MAT SU’ DUNG
PHƯƠNG PHÁP MẠNG NO RON ĐỒ THỊ CO
PHÂN CẤP
CỬ NHÂN NGÀNH KHOA HỌC MÁY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
TIẾN SĨ MAI TIẾN DŨNG
TP HỒ CHÍ MINH, 2023
Trang 3ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHI TIẾT
TEN DE TAI: PHAN CUM ANH KHUÔN MAT SỬ DỤNG MẠNG NƠ RON ĐỒ THỊ CÓ PHAN CAP
Cán bộ hướng dẫn: TS Mai Tiến Dũng
Thời gian thực hiện:Từ ngày 5/9/2022 đến ngày 12/01/2023
Sinh viên thực hiện:
Nguyễn Minh Phú - 19520218
Phạm Đỗ Hoàng My - 19521863
Nội dung đề tài:(Mô tả chỉ tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện,
kết quả mong đợi của đề tài)
A M6 ta bai toan
Trong thế giới ngày nay, máy anh có ở khắp mọi noi, từ may quay giám sát, đến
các máy ảnh trên điện thoại, laptop Đặc biệt trong máy quay giám sát, đây là biện
pháp an ninh được sử dụng thường xuyên bởi các cơ quan an ninh, doanh nghiệp.
Nhưng với hàng nghìn khung hình trong một đoạn phim, hàng nghìn bức ảnh với rất nhiều khuôn mặt khác nhau, việc xác định hình ảnh khuôn mặt đối tượng thủ công
trong một lượng lớn dữ liệu như thế sẽ tốn rất nhiều thời gian, hao phí tài nguyên
Trang 4Phân cụm là một bài toán thuộc nhóm học không giám sát tức là dữ liệu đầu
vào sẽ không có nhãn, các đối tượng tương tự nhau sẽ thuộc cùng một cụm và khác cụm nếu chúng khác nhau Bài toán phân cụm khuôn mặt là một bài toán con của
phân cụm, tập trung vào đối tượng là ảnh có khuôn mặt người (Ảnh có khuôn mặt
trong bài toán này là ảnh chỉ có một khuôn mặt).
Phân cụm các hình ảnh khuôn mặt dựa trên danh tính có hai ứng dụng quan
trọng Một, gom nhóm một tập các hình ảnh khuôn mặt khi không có nhãn bên ngoài
nào được liên kết với hình ảnh đó để sau này dễ truy xuất Hai, gán nhãn những ảnh
chưa biết vào các cụm đã có.
Tuy nhiên, trong thực tế, có những khuôn mặt chưa được xuất hiện trong tập
dữ liệu học, nếu sử dụng mô hình được huấn luyên trên tập dữ liệu huấn luyện thì kết quả phân cụm sẽ không chính xác Chính vì vậy, chúng ta cần những phương pháp
mà có thể phân cụm được dữ liệu chưa từng xuất hiện trong dữ liệu học Đó cũng là
mục đích của khóa luận này.
Bài toán có thể được mô tả như sau:
Input:
—T: Các vector đặc trưng của tập ảnh khuôn mặt đã được phân vào k cụm.
~ E: Các vector đặc trưng của tập ảnh khuôn mặt cần được gom cụm.
Output: Các vector đặc trưng trong tập E được gom thành n cụm.
B Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Ảnh có khuôn mặt người và mạng nơ ron đồ thị.
Phạm vi nghiên cứu:
¢ _ Nghiên cứu giới hạn trên tập dữ liệu khuôn mặt.
« _ Trích xuất đặc trưng khuôn mặt với các mô hình học sâu.
¢ Gom cụm các khuôn mặt với mạng nơ ron đồ thị phân cấp.
C Mục tiêu
Trang 5Việc gom cụm các khuôn mặt của từng người có thể giúp xác định được số
lượng người xuất hiện trong camera, truy vết và tìm kiếm thông tin từng đối
tượng nhanh chóng và dễ dàng hơn.
Ngoài các ứng dụng, chúng tôi sẽ hiểu về phương pháp gom cụm khuôn mặt
bằng mạng nơ-ron đồ thị phân cấp, mạng đồ thị tích chập.
Nội dung
Nội dung 1: Khảo sát các hướng tiếp cận liên quan
Tìm hiểu về các phương pháp gom cụm khác thuộc các nhóm có giám sát, không giám sát và bán giám sát để có thể hiểu được phương pháp mình đã
chọn có khác biệt gì so với các phương pháp khác.
Nội dung 2: Hiểu sâu vào phương pháp đã chọn Đọc kỹ bài báo và đưa ra các giả thuyết, ghi chú lại những vấn đề chưa hiểu trong bài báo để tìm hiểu Đọc code của bài báo để biết được liệu code và bài
báo có đồng nhất với nhau hay không cũng như hiểu các vấn đề còn thắc trong
ghi chú trên.
Train và test code của bài báo bằng dữ liệu train và test được đề cập trong bài
báo Bên cạnh đó, train và test code trên các tập dữ liệu khác theo như yêu cầu
về dữ liệu train và test trong bài báo (đặc biệt là các tập dữ liệu đề cập trong
các bài báo đã khảo sát trong bước 1).
Thay đổi một vài siêu tham số của mô hình để xem xét ảnh hưởng của nó.
Dựa vào kết quả để tìm ra ưu điểm, hạn chế của bài báo trên các bộ dữ liệu khác (so sánh với các phương pháp khác) Từ đó, rút ra được mình cần phải
làm gì.
Nội dung 3: Báo cáo Khóa luận tốt nghiệp Kết quả mong đợi: Đạt được độ chính xác cao trong việc phân cụm khuôn mặt
ngoài các bộ dữ liệu test được dùng trong bài báo.
Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng sinh
viên tham gia)
Trang 6STT Công việc Thời gian | Phân công
2 Tìm kiếm và nghiên cứu các công trình liên quan Phạm Đỗ
trước đây Hoàng My
5 Tiến hành cài đặt các mô hình học sâu trích xuất Nguyễn
đặc trưng khuôn mặt Minh Phú
6 Tiến hành cài đặt các mô hình học máy Phạm Đỗ
Trang 7§ Tiến thành thực nghiệm trên các bộ dữ liệu tim Phạm Đỗ
được với các mô hình trích xuất đặc điểm, các Hoàng My
phương pháp học máy, và mô hình HILANDER Nguyễn
1 Đánh giá, tìm ra các điểm thiếu sót, nhược điểm của Phạm Đỗ
mô hình bài toán Hoàng My
Nguyễn
Minh Phú
2 Tông hợp các kết quả thực nghiệm, ưu điểm, nhược Phạm Đỗ
điêm và hoàn thành khóa luận tôt nghiệp Hoàng My
Trang 9DANH SÁCH HỘI ĐỒNG
BẢO VỆ KHÓA LUẬN
Hội đồng bảo vệ khóa luận tốt nghiệp được thành lập theo Quyết định
số 155/QĐ-ĐHCNTT ngày 01/03/2023 bởi Hiệu trưởng Trường Dai học
Công Nghệ Thông tin.
© Chủ tịch: PGS TS Lê Hoang Thái
s Thư ký: ThS Đỗ Văn Tiến
® Ủy viên: TS Nguyễn Vinh Tiệp
Trang 10LỜI CẢM ƠN
Bài luận này sẽ không thể hoàn thành nếu như không có sự khuyến khích
cũng như hỗ trợ của nhiều người Chúng tôi muốn gửi lời cảm ơn chânthành và sâu sắc nhất đến họ
Đầu tiên, chúng tôi muốn gửi lời biết ơn đến giảng viên hướng dẫn củachúng tôi - thay Mai Tiến Dũng Thay đã cho chúng tôi biết về hướng tiếp
cận sử dụng mạng nơron đỏ thị để từ đó, chúng tôi có thể đào sâu và tìm
hiểu những kiến thức liên quan từ cơ bản đến nâng cao Đồng thời, ngoài
đưa ra những lời nhận xét với tư cách là người hướng dẫn, thầy còn đóng
vai trò như một thành viên trong Hội đồng để chúng tôi có thể làm quencũng như chuẩn bị tâm thé để bảo vệ khóa luận Thay còn đưa ra những lờigóp ý chuyên môn về khóa luận của chúng tôi, giúp chúng tôi không bị saihướng trong quá trình nghiên cứu Cuồi cùng, không thể không nhắc đến
những hé trợ về mặt vật chất và cả tinh thần của thay để chúng tôi có thể
đi đến cuối cùng của chặng đường mang tên Khóa luận tốt nghiệp này
Thứ hai, chúng tôi xin cảm ơn Hội đồng đã giành thời gian để xem xét
và đánh giá Khóa luận của chúng tôi Những lời nhận xét và đánh giá đó
sẽ giúp luận văn của chúng tôi trở nên hoàn thiện hơn.
Thứ ba, chúng tôi cũng muốn gửi lời cảm ơn đến gia đình của chúng
tôi Họ đã cho chúng tôi rất nhiều động lực, sự ủng hộ và tình yêu thương
vô bờ bến Những điều đó đã giúp chúng tôi có thêm sức mạnh và niềm tin
để vượt qua giai đoạn khó khăn này.
Thứ tư, gửi tới những người bạn của chúng tôi, cảm ơn vì đã giúp chúng
tôi nhìn ra những thiếu sót và hỗ trợ tinh thần cho chúng tôi.
Cuối cùng nhưng cũng không kém phần quan trọng, chúng tôi muốngửi lời cảm ơn đến chính chúng tôi, cảm ơn vì những có gắng, vì đã không
Trang 11bỏ cuộc, vì những hi sinh đã bỏ ra khi thực hiện Khóa luận này Nó sẽ trở thành những kỉ niệm khó phai trong lòng chúng tôi.
Trang 12Mục lục
TÓM TAT KHOA LUẬN
1_ TONG QUAN
⁄ZZ ớ nh
P` \ À
[3 Đồng
gópkhóalận -[I4 Cấu trúc Khóa luận tốt
nghiệp| 2_ CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN CỨU LIEN QUAN 2.1 Các kiến
thứccơsởl -7subsection.23 2.1.2 Mạng nơron đỏ thị|
213 Hàmtốiưu|
2.1.4 radient Descent|
2.1.5 Stochastic Gradient Descenftl
2.16 Mini-batch Gradient Descent]
2.2 Cáchướng tiếp cận
2.2.1 Phâncụm phân vùng
2.2.2 Phan cụm phân cấp ¬ ee ee 2.2.3 Phan cum theo pho Se (224 Phancumduatrénmatdd]
12
19
ƠI ƠI Ơi —¬
NN
Trang 133 HƯỚNG TIẾP CAN TRONG KHÓA LUẬN |
3.1 Tổng quan kiến trúc các mạng nơ-ron dé thị phan cap]
3.2 Quá trình lọccanhớ|
-3.3 Quá trình tổng hợp đặc trưng J|
.4_ Tính toán mat mát ỠẢỤỖÍIỌIi 4 THUC NGHIỆM VÀ ĐÁNH GIÁ 1 Môi trường và ngôn ngữ cài
đặt| -ú2 Phương pháp đánhgá|
4.21 Fowlkes-Mallowsindexl]
4.2.2 BcubedE-scorel
4.2.3 Normalized Mutual Inf rel eee G3 Tập dữ liệu thực nghiệm|
4.3.1 DeepglintTrllionPars
43.2 Tập dữliệuIMDB
4.3.3 Tập dữ liệu Hannah|
[44 Kết quả thực nghiệm| Sf Oe 4.4.1 Kết quả trên tap đữ liệu ctn: |
[4.4.2 Kết quả trên các tập dữ liệu|
5 KÊT LUẬN 5.1 Kétluan|
5.2 Hướng phat triển
Tai liệu tham khảo
13
31
31 35
38
39 40
42
42 43
48 48 50
50
52
52
54
54
54
56
56 57
59
Trang 14Danh sách hình ve
phân ảnh khuôn mặt mà của cùng một người vào cùng một
E1 Trong đỏ thi này, ta có đỉnh A và B được nổi với nhau bởi
một cạnh nối nên A kể với B, tương tự như vậy, B với C cũng
kể nhau Do A và C không có cạnh nối nên A không kẻ C A
hi G = (V,E) có V = {A,B,C} và E = {AB, BC}, AB=
BAvàBC=CB] 9
Đồ thị G = (V,E) có V = {A,B,C} và E = {AB, BA, CB},
2.4 Đồ thị G sau khi loại bỏ đỉnh A và E cùng với các cạnh AB,
AE, EC, ED, EF, ta được đồ thị con GÌ 9
Đồ thị G; là đề thị liên thông vì không thể tìm được các đồ
thị có thể hợp thành dé thị Gị Trong khi đó với dé thị Go, ta
3) tương ứng với ba đỉnh C, B, A (A có vòng nên bậc bằng 3),
ta có 1+ 2+ 3= 6= số cạnh (3) *2] 11
deg*(A) = 2,deg (B) = 2, deg*(B) = 1deg (C) = 0,degt(C)=T oo ee 11
Trang 152.8 Biểu diễn hình học và biếu diễn bang ma trân kẻ của một dé
thivôhướng 2
2.9 Biểu diễn hình học và biếu diễn bang ma trân kẻ của một đồ
thị có hướng| So 3
2 0 Biểu diễn hình hoc và biểu diễn bằng ma trận liên thuộc của
một đô thị vô hướng Le ee 3
2 8 Mô tả các bước tìm cực trị của các thuật toán téiuu] 25
.19 Mô tả các bước tìm cực trị của các thuật toán tôi ưu| 25
[2.20 Mô tả một sơ dé cây được tao ra trong quá trình phân cum
phân cấp.| 00.002 cee Re 27
[2.21 Cho chạy một thuật toán phân cụm phân cấp, ta thay rang
kết quả phân cụm không chính xác vì điểm thuộc cụm màu xanh lá cây do nằm xa hơn các điểm còn lại nên các điểm còn lại thành một cụm còn điểm xanh lá cây đó thành một cụm.
Tuy nhiên ta có thể thấy được chúng ta có thể phân các điểm
này thành 3cụm| ¬ ee 28
[2.22 Các bước của phan cum theo phổ, hình ảnh từ [1|| 28
2.23 Xét 1 bộ dữ liệu có cum dạng hình cau, hình tròn
là vùng có mật độ cao nhất, màu xanh lá là vùng có mật độvừa và vùng xanh dương là vùng có mật độ thấp| 29
Trang 16Ba Trước va sau khi tao đồ thị KNN, với k=4| 32
3.2 Đồ thị sau khi lọc cạnh, ta sé được các thành phan liên thông| 33
B.3 Đặc trưng cua node i ở tang tiếp theo được tổng hợp từ đặc
trưng của các node thuộc thành phần liên thông i, đường,
màu cam biểu diễn cho việc truyền đặc trưng node Vd: node
bên trái cùng ở tang thứ 2 sẽ có đặc trưng tổng hợp từ 3 node
thuộc thành phan liên thông ở bên trái cùng, ta có thể thay 3
nhánh màu cam từ 3 node được hợp nhất lai thành 1| 3⁄4
3.4 Sau một bước cập nhật đặc trưng, các node lân cận nhau đã
có đặc trưng tương đồng nhau hơn| 36
B5 Ước lượng mat độ cua từng vùng trong cụm hình cau Mật
độ tăng dan từ ngoài vào trong theo màu sắc từ xanh lam
đến vàng | Z⁄£@P N À 37
3.6 Qua trình tổng hợp đặc trưng định danh ñ+1|, 39
[45 Dùng độ do BCubed, xét điểm được đánh dấu, sé điểm cùng
nhãn với điểm đó trong cụm là 6, tổng số điểm trong cụm là
8 nên độ chính xác là 8 Ngoai ra, số điểm cùng nhãn đỏ
#6 Hình ảnh của Lady Gaga (bên trái) và Quinn Cummings
(bên phải) trong tập dữ liệu| 51
4.7 Hình ảnh về các người nổi tiếng trên IMDB| 52
4.8 Hình anh ví dụ cho tập dữ liệu Hannah| 53
Trang 17Danh sách bảng
4.1 Bảng thông tin các bộ dữ liệu| 50
[4.2 Bảng kết quả đánh giá các phương pháp trên tập
Test-IMDB-SameDist trên 3 độ đo| - 54
[4.3 Bảng kết quả đánh giá các phương pháp trên tap Hannah va
IMDB trên 3 độ đo] ger ` À 55
4 Bảng thời gian chạy của các phương pháp trên tập Hannah
và lMDBtrin 55
Trang 18Graph Neural Network
K Nearest Neighbor Normalized Mutual Information Convolutional Neural Network Graph Convolutional Network Graph Attention Network
Open Set Recognition Linkage Graph Convolutional Network Stochastic Gradient Descent
18
Trang 19TÓM TẮT KHOÁ LUẬN
Bài toán phân cụm khuôn mặt được đặt ra trong bối cảnh dir liệu khuôn
mặt hiện nay quá lớn, các dữ liệu này được lấy từ nhiều nguồn khác nhau
như máy quay giám sát, chương trình truyền hình, máy chụp hình, nên
phan lớn chúng đều không có nhãn Điều này làm cho việc truy xuất thông
tin người trong ảnh và quản lý ảnh cũng trở nên khó khăn Đã có nhiều
hướng tiếp cận được dé xuất để giải quyết van dé này nhưng các phươngpháp ấy chủ yếu được huan luyện và kiểm thử trên cùng một bộ dữ liệu
mà không kiểm thử trên bộ dữ liệu khác Điều này đặt ra câu hỏi rằng liệu
chúng ta có thể học trên tập này và thử trên tập khác hay không.
Với khóa luận này, chúng tôi ngoài việc kiểm thử các phương pháp phân
cụm đã có trên bô dữ liệu khác với bộ đã huấn luyện, chúng tôi sẽ trình bày
về một hướng tiệp cận có thể giải quyết van dé này Phương pháp nay dựa
trên hai kiến trúc là mạng nơ-ron đỏ thị (GNN) và phân cum phân cấp Các
đồ thị ở tang sau sẽ được tạo thành nhờ vào thành phan liên thông đượctạo thành bởi việc kết hợp node của dé thị tang trước Việc kết hợp này sẽdựa vào chính dữ liệu chứ không phụ thuộc bởi điều kiện xác định trước,
cụ thể là dựa vào khả năng liên kết của từng node và mật độ của chính
node đó Ngoài ra, khác với các phương pháp cũng sử dụng GNN nhưng
dự đoán độ liên kết và mật độ bằng hai mô hình khác nhau, phương phápnày sẽ kết hợp dự đoán cả hai nhằm tăng tốc độ thực thi
Trang 20Chương 1
TỔNG QUAN
Tóm tắt
Trong chương này chúng tôi sẽ giới thiệu về bài toán phân cụm nói
chung và phân cụm khuôn mặt nói riêng cũng như những thách thức của
bài toán mà chúng tôi sẽ phải giải quyết Bên cạnh đó, chúng tôi cũng sẽnói về mục tiêu mà chúng tôi hướng tới khi thực hiện đề tài "Phân cụm ảnhkhuôn mặt sử dụng mạng nơ-ron đô thị phân cấp" Cuối cùng, chúng tôi
sẽ tóm tat câu trúc tổng thể của khóa luận
11 Giới thiệu bài toán
Phân cụm là bài toán xử lý dữ liệu không được gán nhãn Các dữ liệu
này sẽ được phân vào các cụm sao cho những dit liệu tương đồng nhau sẽ
thuộc cùng một cụm, khác nhau thì khác cụm.
Từ tập dữ liệu không có nhãn, để biết được tập dữ liệu này có tươngđồng nhau hay không ta có thể sử dụng các độ đo tương đồng hoặc khoảngcách (Cosine, Euclidean, ) Sau đó, dựa vào ngưỡng và điều kiện để hai dữliệu được coi là tương đồng đã xác định trước để tiến hành phân chia các
dtr liệu vào các cum Sau quá trình phân cụm, dữ liệu trong cùng một cum
sẽ có cùng nhãn [20]
Trang 21Chương 1 TONG QUAN 2
Khóa luận của chúng tôi sẽ chọn tập trung vào nghiện cứu một bài toán
con của phân cụm, đó là phân cụm khuôn mặt Bài toán này tập trung vào
đối tượng là ảnh khuôn mặt của con người (ảnh có chứa khuôn mặt) Kết
quả của phân cụm khuôn mặt là ảnh của cùng một người thì sẽ cùng một
cụm (hình[1.1).
Quá trình phân cụm khuôn mặt sẽ gồm 3 bước:
1 Nhận điện khuôn mặt: Định vị được khuôn mặt trong các bức ảnh.
2 Trích xuất đặc trưng: Đưa khuôn mặt vừa tìm được về dạng các vector
đặc trưng (những vector này sẽ chỉ chứa những đặc trưng quan trọng
nhất của các khuôn mặt này, giúp chúng ta không cần phải xét toàn bộ
khuôn mặt, bước này cũng giúp chúng ta khái quát hóa được khuôn
mặt vì cho dù là ảnh khuôn mặt của cùng một người nhưng nếu xéttoàn bộ khuôn mặt thì vẫn sẽ có vài điềm khác, bước này sẽ giúp chúng
ta giảm bớt rủi ro khác biệt về hai khuôn mặt của cùng một người)
Trang 22Chương 1 TỔNG QUAN 3
3 Phân cụm khuôn mặt: phân các vector đặc trưng đó thành từng cụm, sau
khi có được cụm thì các ảnh có vector đặc trưng thuộc cùng một cum
tập mở (Open Set Recognition - OSR [29] [10]) Các phương pháp phân cum
hiện tại chủ yếu chỉ làm việc trên một tập nhất định nào đó nên sẽ khó có
thể áp dụng một phương pháp đã được học trên tập này cho tập khác Nếu
có tập dữ liệu mới thì phải phân cụm lại từ đầu Mặt khác, mỗi lần phân
cụm, ta lại phải xác định điều kiện phân cụm, tham số tối ưu của bộ dữ
liệu đó Chúng ta sẽ phải tiêu tồn nhiều tài nguyên và công sức cho mỗi lần
như vậy.
Chính vì thế, chúng ta cần một phương pháp không chỉ phân cụm được
dữ liệu thuộc các lớp đã biết trong quá trình huấn luyện mà hơn thế nữa,
từ kết quả phân cum mà học được cách để có thể phân cụm những dirliệu thuộc các lớp khác những lớp đã có trong tập dữ liệu học Đồng thời,
phương pháp này còn có thể học được điều kiện hội tụ từ chính dữ liệu mà không cần người lập trình phải cài đặt.
Mô tả bài toán:
¢ Input:
— T: Các vector đặc trưng của tập ảnh khuôn mặt để huấn luyện đã
được phân vào k cụm.
— E: Các vector đặc trưng của tập ảnh khuô n mặt cần được gom cụm,
số cum và nhãn của từng ảnh chưa được biết
s Output: Các vector đặc trưng trong tập E được gom thành n cụm.
Trang 23Chương 1 TỔNG QUAN 4
Phân cụm khuôn mặt có rất nhiều ứng dụng trong đời sống và đây là
hai ứng dụng tiêu biểu nhất:
s Ung dung 1: Tự động phân các bức ảnh vào các cụm
Trong thực tế, dữ liệu khuôn mặt vô cùng lớn, các dữ liệu này được thu
thập từ các camera giám sát, ảnh chup, Việc có thể gom cụm ảnh của
cùng một người lại có thể giúp chúng ta dễ dàng truy vấn khi muốn
tìm kiếm ảnh một người nào đó (Hnh[L1).
s Ung dụng 2: Gan nhãn các ảnh khuôn mặt vào các cụm đã có
Khi chúng ta có những bức ảnh khuôn mặt mới, thay phải tự tay tìm
ra định danh của những bức ảnh mới này, mô hình phân cụm có thể giúp chúng ta (Hình[1.2).
Trang 24Chương 1 TỔNG QUAN 5
1.2 Mục tiêu khóa luận
* Tìm hiểu và khảo sát các phương pháp có thể giải quyết được thách
thức của bài toán đưa ra.
® Nghiên cứu về các thuật toán phân cụm khuôn mặt đã công bố, đặc
biệt là các thuật toán có sử dụng mạng nơ-ron đồ thị
1.3 Đóng góp khóa luận
® Khảo sát và nghiên cứu một sỐ phương pháp phân cụm đã được công
bồ cho bài toán phân cụm khuôn mặt
¢ Thực nghiệm các nghiên cứu đã khảo sát trên cùng tập dữ liệu để so
sánh hiệu quả giữa các phương pháp.
¢ Thử nghiệm phương pháp chính trên tập dữ liệu mới để kiểm chứng phương pháp đó có thể dùng cho các tập dữ liệu khác nhau được
không.
1.4 Câu trúc Khóa luận tot nghiệp
Nội dung Khóa luận tốt nghiệp được tổ chức như sau:
¢ Chương ii} Giới thiệu về bài toán phân cụm khuôn mặt, đặc biệt là
phân cụm tập mở (học tập này nhưng huấn luyện tập khác), một số
ứng dụng khi giải quyết bài toán này, mục tiêu làm khóa luận, những
gì đã đóng góp và cấu trúc tổng thể của khóa luận
° Chương} Tổng quan về cơ sở lý thuyết để thực hiện bài toán và các
hướng tiếp cận đã tìm hiểu được
s Chương BỊ Trình bày chỉ tiết hướng tiếp cận chính để giải quyết bài
toán phân cụm khuôn mặt.
Trang 25Chương 1 TỔNG QUAN 6
s Chương 4 Trình bày môi trường thực nghiệm, các tập dữ liệu đã được
dùng, phương pháp đánh giá và kết quả thực nghiệm
s Chương)
Sau này.
BỊ Tổng kết nội dung của khóa luận và những hướng phát triển
Trang 26Chương 2
CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN CỨU LIÊN QUAN
Tóm tắt
Trong chương này, chúng tôi sẽ nói về cơ sở lý thuyết của những cầu trúcđược sử dụng trong hướng tiếp cận chính Đồng thời, chúng tôi cũng giớithiệu về những phương pháp phân cụm đã nghiên cứu, và nêu ra những
ưu nhược điểm của các phương pháp này.
2.1 Các kiến thức cơ sở
2.1.1 Lý thuyết đồ thil]
Đồ thị (Graph) là một câu trúc dữ liệu gồm một tập các đỉnh V tice/node) khác rỗng và một tập các cạnh E (edge) nối giữa hai đỉnh, haiđỉnh thuộc hai đầu của cạnh có thể có thứ tự hoặc không có thứ tự
(ver-Một đồ thị G có thể được kí hiệu như sau:
1Các định nghĩa, khái niệm trong phan ly thuyết dé thị được trích dẫn và tham khảo
tr (431) 29
Trang 27Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 8
G=(V,E)
Hai đỉnh „ø; với i = 1,2, |V| và j = 1,2, |V| được nối bởi cạnh emvới m = 1,2, |E| được gọi là hai đỉnh kê nhau Nếu 0¡ = 9; thì cạnh nốigiữa hai đỉnh này sẽ được gọi là một vòng (loop) và đỉnh này khi đó sẽ kể
với chính bản thân đỉnh đó.
Cp
HINH 2.1: Trong đồ thi nay, ta có đỉnh A và B được nồi với nhau
bởi một cạnh nỗi nên A kể với B, tương tự như vậy, B với C cũng
kể nhau Do A và C không có cạnh nổi nên A không ké C A có
thêm một vòng nên A sẽ kể với chính A.
Giữa 2 đỉnh có thể có nhiều cạnh nồi, dé thị chỉ có 1 cạnh nối giữa hai
đỉnh và không có vòng được gọi là don do thi Đồ thị mà có nhiều cạnhcùng nối hai đỉnh được gọi là đa đô thi Đồ thị có chứa vòng được gọi làgiả dé thị]
D6 thị v6 hướng là đồ thị gồm tập đỉnh khác rỗng và tập các cặp cạnhnối giữa hai đỉnh không phân biệt thứ tự Cạnh nối giữa hai đỉnh u và w
có kí hiệu là uw (hoặc wu) (Hình 2.2).
Trang 28Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 9
Đồ thị con G’ của một đồ thị G = (V,E) là dé thị có đỉnh thuộc tap V
và có cạnh thuộc tập E, kí hiệu là G' C G (G cũng là một đồ thị con của
chính bản thân G vì thỏa định nghĩa trên) Ta có thể tạo ra dé thị con của
một đồ thị G bằng cách loại bỏ cạnh hoặc đỉnh của G (Hình}2.4).
(B) G’
HÌNH 2.4: Đồ thi G sau khi loại bỏ đỉnh A và E cùng với các
cạnh AB, AE, EC, ED, EF, ta được dé thị con G’
Trang 29Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CUU LIEN QUAN 10
Hai đồ thi Gị = (VỊ, Ei) và Gy = (V2, Ez) có thể kết hợp với nhau để tạo
thành một đồ thị với tập đỉnh bằng Vị U W2 và tập cạnh bằng E¡ U Ey Nếu
một đồ thị có thể được biểu diễn bằng cách hợp các dé thị lại với nhau thì
đồ thị đó là đô thị không liên thông, ngược lại là đô thị liên thông (Minh
họa ở hình|2.5]
HINH 2.5: Đồ thi G; là dé thị liên thông vì không thé tìm được
các dé thị có thể hợp thành dé thị Gị Trong khi đó với đồ thị
Gp, ta có thể biểu diễn G› bằng hai đỏ thị.
Bậc của đỉnh
* Đối với đồ thị vô hướng: Bậc của một đỉnh v là số cạnh nói đến đỉnh
đó] ký hiệu là deg(v) Tổng bậc của các đỉnh trong đồ thị luôn là sốchan và bằng 2 lần số cạnh vì mỗi cạnh có 2 đầu nên mỗi khi tính bậc
3vì là dé thị vô hướng nên số cạnh nói đến 1 đỉnh cũng chính là số cạnh di ra từ đỉnh
đó
Trang 30Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 11
của đỉnh, cạnh nói 2 đỉnh sẽ được tính 2 lần Mỗi vòng được tính là 2
bậc.
`
HINH 2.6: Đồ thị vô hướng trên có số bậc theo thứ tự tăng dan
là (1, 2, 3) tương ứng với ba đỉnh C, B, A (A có vòng nên bac
bằng 3), ta có 1 + 2 + 3 = 6 = số cạnh (3) x2
* Đối với đô thị có hướng: Bậc của một đỉnh v gồm bậc vio và bậc ra
— Bậc vào: số cạnh có đỉnh đích là v Kí hiệu là deg (ø)
— Bậc ra: số cạnh có đỉnh đầu là v Kí hiệu là đeg† (ø)
Mỗi vòng tại v sẽ góp thêm 1 bậc vào bậc vào và bậc ra của v Tổng bậc
vào sé bằng tổng bậc ra và bằng số cạnh của dé thị
¨
HINH 2.7: Đề thị có hướng trên có số bậc của mỗi đỉnh là:
deg-(A) = 2, deg*(A) = 2, deg~(B) = 2, deg*(B) = 1,
deg (C) =0,deg*(C) = 1
Đồ thị có thể được biểu diễn bằng các cách như sau:
Trang 31Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CUU LIÊN QUAN 12
s Biểu diễn hình học: Một đỉnh là một điểm, một cạnh là một đường(đốivới cạnh mà nói hai đỉnh không theo thứ tự) hoặc một vector (nếu cạnh
nối hai đỉnh theo thứ tu).
* Biểu diễn bằng ma trận: Có nhiều biểu diễn ma trận khác nhau của
một đồ thị, tùy thuộc vào thứ tự của đỉnh và cạnh Có hai loại biểu
diễn ma trận thường gặp:
- Ma trận kể (Adjacency matrix): Ma trận n x n với n là số đỉnh Matrận này dùng để mô tả mối liên hệ giữa các đỉnh Goi ma trận kể
này là A với mỗi phan tử trong ma trận là ajj, ta có:
* aj; = 1 khi giữa ø¡ va ø¡ có cạnh nối đối với đồ thị vô hướng
Còn với dé thị có hướng, thì aj; = 1 khi có cạnh nối từ oj đến ø,.
* aj; = 0 khi giữa ø¡ và v; không có cạnh nối nào cả
Nếu một đỉnh i có vòng thì aj; = 1.
.
HINH 2.8: Biểu diễn hình học và biểu diễn bằng ma trân kể của
một đồ thị vô hướng
© Ma trận liên thuộc (Incidence Matrix): là ma trận có kích thước n x m,
với n là số đỉnh, m là số cạnh Gọi ma trận này là B, ta có:
¬ Với dé thị vô hướng:
* bij = 1 khi e; có dau mút là đỉnh ø¡
+ bij = 0 nêu khác
— Với dé thị có hướng:
Trang 32Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CUU LIÊN QUAN 13
> > > °
HÌNH 2.9: Biểu diễn hình học và biểu diễn bằng ma trân ké của
một đồ thị có hướng
* bj = —1 khi cạnh e; đi ra từ đỉnh ø¡.
* bj; = 1 khi cạnh e; đi vào đỉnh ø¡.
* bj; = nếu khác hai trường hợp trên.
ab b
ioe)
a
BỈ 1 1
clo 1 :
HINH 2.10: Biéu dién hinh hoc va biéu dién bang ma tran lién
thuộc của một dé thị vô hướng
HINH 2.11: Biểu diễn hình học và biểu diễn bằng ma trận liên
thuộc của một đồ thị có hướng
2.12 Mạng nơ-ron đồ thi
Mạng no-ron (Neural Network): Mạng nơ-ron là một kiến trúc bắt chước
cầu tạo mạng lưới thần kinh của con người, được thiết kế để có thể học từ
Trang 33Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIÊN QUAN 14
dữ liệu va tự cải thiện hiệu suất theo thời gian Câu trúc của một mạng ron gồm tầng các nút (tầng input, một hay nhiều tầng ẩn và tầng output),các nút ở từng tầng sẽ kết nói đến các nút ở tang khác với trọng số - đại
nơ-điện cho mức độ quan trọng của thông tin ở nút hiện tại so với nút mà nút
hiện tại kết nối tới (Hình|2.12).
Tầng input Tầng ẩn Tầng output
HINH 2.12: Mạng nơ-ron
Mạng ron đ thị (Graph Neural Network - GNN): Là một mạng
nơ-ron được biếu diễn dưới dang đồ thị Một GNN gồm 3 thành phan là tập
đỉnh (node) V, tập cạnh E và tập đặc trưng đỉnh H Thông tin của một đỉnh
có thể được lan truyền theo cạnh tới đỉnh mà có kết nối với đỉnh hiện tai
Một số kiến trúc mạng nơ-ron dé thị thường gặp:
* Mạng tích chập đề thị (Graph Convolutional Network - GCN): Mạng
tích chập (Convolutional Neural Network - CNN) có thể xử lý dữ liệu
có cầu trúc dạng lưới (Hình|2.13} hoặc Euclidean Tuy nhiên, với dữ
liệu có cầu trúc dé thị thì CNN lại giải quyết không tốt vì khác với câutrúc lưới, một điểm dữ liệu có thể kế nối tới bat kỳ điểm dữ liệu nàokhác và số lượng kết nối không cố định Chính vì vậy, các nhà nghiên
cứu đã tìm cách để kết hợp tích chập vào dé thị và tạo ra GCN (7
Trang 34-Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIÊN QUAN 15
Trang 35Chương 2 CƠ SỞ LÝ THUYET VA CÁC NGHIÊN CUU LIEN QUAN 16
Trong hình E-13| ta có thể thay một mảng 2x2 của dữ liệu lưới được nhân
với một nhân (kernel) 2x2 được biểu diễn dưới dạng bồn đường thẳng, kết
hợp lại thành điểm dữ liệu ở lớp kế tiếp Ở GCN, đầu tiên, ta sẽ biểu diễn
dé thị dưới dạng một ma trận kẻ A rồi nhân ma trận đặc trưng của các node
là H với A, ma trận kể giúp xác định những node lân cận với từng node rồi
từ đó có thể cập nhật các node với thông tin tổng hợp từ các node lân cận
(Hình |2.14).
Mang chú ý dé thị (Graph Attention Network - GAT): Giống với việc cập
nhật đặc trưng trong GCN nhưng ma trận kể trong GAT là ma trận trọng
số, nói cách khác, mỗi lân cận của một đỉnh sẽ có mức độ quan trọng khác
có 1 tầng duy nhất xử lý dữ liệu nên không thể tổng quát hoá dữ liệu dẫn
tới việc không phân cụm được trên bộ dữ liệu có nhãn khác hoàn toàn so
với dữ liệu huấn luyện như yêu cầu bà toán đưa ra Trong khi đó phương
pháp chúng tôi nghiên cứu lại tạo ra tầng các mạng đồ thị, giúp tổng quát hóa dữ liệu, không bị lệ thuộc hoàn toàn vào câu trúc của dữ liệu.
2.1.3 Hàm tối ưu
Các hàm tối ưu là các phương pháp sử dụng trong máy học và khoa học
dữ liệu để tìm ra giá trị tối wu của một hàm số đặc biệt Hàm tối wu được
sử dụng để giải quyết các bài toán như tối ưu hóa mô hình, tối ưu hóa cáctham số và cực đại hóa độ chính xác
Trong các hàm tối ưu, Gradient Descent là một phương pháp rất phổbiến Ngoài Gradient Descent, các phương pháp tối ưu khác bao gồm:
Trang 36Chương 2 CƠ SỞ LY THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 17
Stochastic Gradient Descent (SGD), Momentum, Nesterov Momentum,
Ada-grad, Adam, Mỗi phương pháp có cách thức hoạt động va ưu nhược điểmriêng, và được sử dụng tùy thuộc vào bài toán cụ thể và tính chất của dữ
liệu.
Các hàm tối ưu được sử dụng rộng rãi trong các bài toán khác nhautrong máy học, học sâu, dùng để tối ưu hóa mô hình và phân tích dữ liệu
Các kỹ thuật tối ưu này đã mang lại sự tiến bộ đáng kể trong lĩnh vực
nghiên cứu khoa học máy tính, đóng góp vào sự phát triển của nhiều ứng
dụng thông minh và tự động hóa.
2.1.4 Gradient Descent
Gradient Descent là một trong những phương pháp tối ưu phổ biến
nhất trong lĩnh vực khoa học dữ liệu và máy học Phương pháp này được
sử dụng để tìm giá trị nhỏ nhất của một hàm số J (0) bằng cách liên tục điềuchỉnh các tham số đầu @ vào của thuật toán Gradient Descent sử dụng đạohàm VạJ(6) để tìm ra hướng giảm của hàm số, sau đó cập nhật các tham sốđầu vào dựa trên hướng giảm đó Quá trình này được lặp lại cho đến khidat được giá trị tối ưu của hàm sô
Cụ thể, Gradient Descent hoạt động bằng cách tính toán đạo hàm riêng
của hàm số theo từng tham số đầu vào Ø,0a,0;, Sau đó, thuật toán sử
dụng giá trị đạo hàm nay để xác định hướng giảm của hàm số Với mỗilần lặp, Gradient Descent cập nhật các tham số đầu vào của hàm số bằng
cách đi chuyển theo hướng giảm đó với một khoảng cách được xác định
bởi một tham số gọi là learning rate (7) Learning rate quyét định tốc độ
hội tụ của Gradient Descent Nói cách khác, learning rate xác định độ lớn
mà thuật toán cập nhật từng bước Learning rate nếu quá lớn sẽ dẫn đến
sự dao động hoặc không thể hội tụ, và nếu quá nhỏ thì sẽ cần nhiều lần lặp
để đạt được giá trị tối ưu
ð=0—n-V¿J(8) (2.1)
Trang 37Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 18
Gradient Descent có hai loại chính là Batch Gradient Descent và
Stochas-tic Gradient Descent (SGD) Batch Gradient Descent tính toán đạo hàm của
hàm số dựa trên toàn bộ tập dữ liệu đào tạo Điều này có thể dẫn đến tốc
độ hội tụ chậm và tốn nhiều thời gian tính toán, nhưng đưa ra giá trị tối ưu
chính xác và ổn định [27]
for i in range(epochs) :
params_gradient = compute_gradient (loss_function, data ,params)
parameters = parameters - learning rate * params_gradient
Với số lượng vòng lặp cho trước (epochs), thuật toán Batch GradientDescent lần lượt tính gradient của hàm mắt mát trên toàn bộ dữ liệu Sau
đó cập nhật lại tham số bằng cách lay hiệu giữa tham số hiện tại với tích
của learning rate và gradient đã được tính ở bước trước, tức là cập nhật
tham số theo hướng của gradient với một tốc độ xác định trước.
Batch Gradient Descent đảm bảo cho việc hội tụ tìm cực tiểu toàn cục ở
mặt phẳng không gian lỗi (convex), và tiến tới cực tiểu cục bộ ở mặt phẳng
không gian liên tục (non-convex) Tuy nhiên, với bộ dữ liệu lớn thì việc tính
toán đạo hàm trên toàn bộ dữ liệu là điều không thể Vì thế ta sẽ có thuậttoán tối ưu khác: Stochastic Gradient Descent
Trang 38Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 19
2.1.5 Stochastic Gradient Descent
Stochastic Gradient Descent (SGD) là một biến thé của Gradient
De-scent, được sử dụng rộng rãi trong lĩnh vực may học va khoa học dữ liệu.
06 =0—n- VạJ(6,3x!,)) (2.2)
Khác với Batch Gradient Descent (BGD), thuật toán thực hiện các tính toán
dư thừa ở các bộ dữ liệu lớn, vì Batch Gradient Descent tính toán lại độ
đốc cho các dữ liệu tương tự trước mỗi lần cập nhật tham số Stochastic
Gradient Descent không thực hiện việc tính toàn dư thừa này cách chỉ tính
toán dao hàm của ham số dựa trên một mẫu dit liệu duy nhất trong tậpđào tạo thay vì toàn bộ tập dữ liệu Điều này giúp giảm thiểu thời gian tínhtoán và cho phép việc cập nhật các tham số đầu vào được thực hiện liên
tục và nhanh chóng Ngoài ra, Stochastic Gradient Descent có thể giúp mô hình đang huấn luyện có thể cập nhật thông số khi đang hoạt động thay vì
phải huấn luyện một lần.[27]
for i in range (epochs):
numpy.random.shuffle (dataset)
for example in dataset :
params_gradient = compute_gradient ( loss_function ,
example,params )
parameters = parameters - learning rate * params_gradient
Tuy nhiên, Stochastic Gradient Descent cũng có nhược điểm của chính
bản thân Stochastic Gradient Descent chỉ tính toán đạo hàm của hàm sốdựa trên một mẫu dữ liệu duy nhất trong tập đào tạo Việc chỉ tính toánđạo hàm trên một mẫu dữ liệu có thể dẫn đến các thay đổi đột ngột tronggiá trị của hàm số, làm cho SGD có thể dao động xung quanh giá trị tối ưu
và khó khăn trong việc đạt được giá trị tối ưu chính xác Ngoài ra, trong
sự dao động của việc tính toán cực trị thì có thể cho phép việc tìm cực trị
nhảy sang một cực tiểu mới và có khả năng tốt hơn Mặt khác, điều này làm
Trang 39Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CUU LIEN QUAN 20
phức tập sự hội tụ của hàm số đang xét Tuy vậy, một số nghiên cứu đã cho
thay nếu giảm di tốc độ của learning rate thì Stochastic Gradient Descent
sẽ gan như chắc chắn hội tụ cũng như là tìm ra cực trị cực tiểu cục bộ hoặctoàn cục để trên mặt phẳng không lồi và lỗi tương ứng
-10 L 1 1 L L 1
oO 500 1000 1500 2000 2500 3000 3500
HINH 2.16: Sự dao động trong việc tính toán Gradient Descent
của thuật toán
Để khắc phục nhược điểm này, nhiều biến thể của SGD đã được pháttriển, bao gồm Mini-batch Gradient Descent, Momentum SGD, Nesterov
Accelerated Gradient (NAG), AdaGrad, RMSprop va Adam.
2.1.6 Mini-batch Gradient Descent
Mini-batch Gradient Descent tính toán dao ham trên một lô dữ liệu nhỏ
(thường là 16-256 mẫu dữ liệu) thay vì chỉ một mẫu dữ liệu đơn lẻ so với
Stochastic Gradient Descent Điều này giúp giảm thiểu độ dao động của
Trang 40Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CUU LIEN QUAN 21
Stochastic Gradient Descent và đưa ra giá trị tối ưu ổn định hơn
0=0— 1° Vol (8, xin yittn) (2.3)
for i in range (epochs):
numpy.random.shuffle (dataset)
for example_batch in get_batch(dataset,batch_size=256) :
params_gradient = compute_gradient ( loss_function ,
example_batch,params )
parameters = parameters - learning_rate * params_gradient
O Mini-batch Gradient Descent, ngoài giảm thiểu độ dao động của việc
cập nhật giá trị tham số, còn giúp việc tìm cực trị trở nên ổn định hơn Tóm
lại ở Gradient Descent, có một vài thách thức cần phải lưu ý:
* Chọn tham số Learning Rate sao cho hợp lí là điều khó khăn Nếu tham
số quá nhỏ thì việc hội tụ trở nên quá chậm, quá lớn thì có thể thuậttoán sẽ bỏ qua cực trị cần tìm thấy và dao động xung quanh đó, hàm
số không hội tụ được
* Nếu có thể chọn cập nhật Learning rate theo một chu kỳ nhất định thicần phải có chu kỳ, ngưỡng, tham số thay đổi biết trước để cập nhật.Tuy nhiên tuỳ vào đặt tích của bộ dữ liệu mà tham số này có thể thay
đổi nên phải tỉnh chỉnh một cách hợp lý.
s Một thách thức quan trọng khác trong việc di tìm các giá trị cực trị ở
các hàm loss không lỗi trong các Neural Network là tránh bị mắc kẹttrong vô số cực tiểu cục bộ thay vì tìm được cực tiểu toàn cục Điều nàyđược gọi là mắc kẹt tai các điểm Saddle - yên ngựa.|6