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

Đồ án sử DỤNG MACHINE LEARNING TRONG NHẬN DẠNG mặt NGƯỜI và ỨNG DỤNG

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 (2.06 MB, 40 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

SỬ DỤNG MACHINE LEARNING
TRONG NHẬN DẠNG MẶT NGƯỜI VÀ ỨNG DỤNG

Giảng viên hướng dẫn:
Mai Trọng Khang
Sinh viên thực hiện:
18520590 - Trần Hậu Đạt
18520891 - Nguyễn Đức Khang

TP Hồ Chí Minh, Tháng 6 Năm 2021
1


LỜI CẢM ƠN

Lời đầu tiên, em xin bày tỏ lòng biết ơn sâu sắc đến thầy Mai Trọng Khang – Giảng
viên hướng dẫn chúng em thực hiện Đồ án 1, thầy đã cùng đồng hành và tận tình hướng
dẫn cho chúng em qua từng giai đoạn của đồ án. Nhờ có sự giúp đỡ nhiệt tình của thầy mà
chúng em có thể hồn thành được được đồ án này một cách tốt nhất.
Vì kiến thức của chúng em vẫn cịn hạn hẹp nên khơng thể tránh khỏi những thiếu
sót trong quá trình thực hiện đồ án. Tuy nhiên, chúng em đã cố gắng hoàn thành đúng hạn
và hạn chế các lỗi nhiều nhất có thể. Nhóm chúng em ln mong đợi nhận được những ý
kiến đóng góp quý báu từ thầy và qua đó có thể rút kinh nghiệm, tự sửa chữa, hồn thiện
bản thân mình trên tinh thần nghiêm túc, tự giác học hỏi.
Trong quá trình làm đề tài báo cáo, sẽ khơng thể tránh khỏi các thiếu sót, rất mong
nhận được phản hồi từ thầy và các bạn để góp phần làm cho bản báo cáo thêm hồn thiện


hơn.
Chân thành cảm ơn thầy!

2


LỜI NHẬN XÉT CỦA GIẢNG VIÊN

…..…………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………


3


Nội dung
Chương 1

Mở đầu ................................................................................................................................. 6

1.1 Lý do chọn đề tài ............................................................................................................................... 6
1.2 Mục tiêu nghiên cứu ......................................................................................................................... 6
1.3 Phương pháp nghiên cứu ................................................................................................................. 6
1.4 Đối tượng hướng đến ........................................................................................................................ 6
Chương 2

Machine Learning ............................................................................................................... 7

2.1 Tổng quan về Machine Learning ..................................................................................................... 7
2.2 Machine Learning trên thực tế ........................................................................................................ 7
2.2.1 Xử lý ảnh ..................................................................................................................................... 7
2.2.2 Phân tích văn bản....................................................................................................................... 8
2.3 Phân loại thuật tốn Machine Learning ......................................................................................... 8
2.3.1 Học có giám sát........................................................................................................................... 9
2.3.2 Học không giám sát .................................................................................................................. 10
2.4 Các thuật toán Machine learning .................................................................................................. 10
2.4.1 Deep Learning .......................................................................................................................... 11
2.4.2 Dữ liệu huấn luyện(Training data) ......................................................................................... 13
2.4.3 Dữ liệu kiểm thử và các độ đo ................................................................................................. 14
Chương 3


CNN – Convolutional Neural Network ........................................................................... 16

3.1 Giới thiệu ......................................................................................................................................... 16
3.2 Tại sao nên dùng CNN .................................................................................................................... 16
3.3 Cấu trúc mạng CNN ....................................................................................................................... 17
3.3.1 Convolution layer ..................................................................................................................... 18
3.3.2 ReLU layer ................................................................................................................................ 19
3.3.3 Pooling layer ............................................................................................................................. 20
3.3.4 Fully Connected layer (FC) ..................................................................................................... 20
Chương 4

Một số thuật toán Classification ...................................................................................... 22

4.1 SVM – Support Vector Machine ................................................................................................... 22
4.1.1 Cách làm việc............................................................................................................................ 23
4.1.2 Cách chọn mặt phẳng tối ưu ................................................................................................... 24
4.1.3 Margin....................................................................................................................................... 26
4.1.4 Ưu điểm ..................................................................................................................................... 26
4.1.5 Nhược điểm ............................................................................................................................... 27
4


4.1.6 Kết luận ..................................................................................................................................... 27
4.2 KNN – K-Nearest Neightbros ........................................................................................................ 27
4.2.1 Cách làm việc............................................................................................................................ 28
4.2.2 Các bước thược hiện ................................................................................................................ 29
4.2.3 Ưu điểm ..................................................................................................................................... 30
4.2.4 Nhược điểm ............................................................................................................................... 30
Chương 5


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

5.1 Facenet ............................................................................................................................................. 32
5.2 Bài toán nhận dạng mặt người....................................................................................................... 33
Chương 6

Thử nghiệm – kết quả ...................................................................................................... 35

6.1 Dataset.............................................................................................................................................. 35
6.2 Môi trường ....................................................................................................................................... 36
6.3 Kết quả ............................................................................................................................................. 37
6.4 Demo ................................................................................................................................................ 37
Chương 7

Kết luận và hướng phát triển ........................................................................................... 39

7.1 Kết quả đạt được ............................................................................................................................. 39
7.2 Hạn chế ............................................................................................................................................ 39
7.3 Hướng phát triển............................................................................................................................. 39
TÀI LIỆU THAM KHẢO ........................................................................................................................ 40

5


Chương 1 Mở đầu
1.1 Lý do chọn đề tài
Machine Learning là một thuật ngữ thông dụng trong thế giới công nghệ ngày nay.
Đây chính là một bước tiến lớn trong khoa học máy tính và cũng đang là một trong cách
thức hữu hiệu nhất hiện nay để xử lý Big Data trong nền công nghiệp 4.0.
Hiện nay, Machine Learning ngày càng phổ biến khi ứng dụng của nó là quá to lớn

trong cuộc sống hiện tại. Những ứng dụng không thể kể đến như nhận dạng ảnh, dự báo,
trợ lý ảo, phát hiện gian lận, bảo mật, …
Việc nhận dạng khuôn mặt ngày càng phổ biến và ứng dụng thực tế trong cuộc sống
hằng ngày. Nhóm em đã quyết định tìm hiểu và nghiên cứu đề tài nhận diện khn mặt sử
dụng CNN.
1.2 Mục tiêu nghiên cứu
Dựa vào các tài liệu được cung cấp sẵn và đầy đủ. Mục tiêu của đồ án là tìm hiểu
khái quát về khái niệm CNN, qua đó ứng dụng trong việc xây dựng một mạng lưới nhận
dạng khuôn mặt đơn giản.
1.3 Phương pháp nghiên cứu
Để hoàn thành đồ án và bài báo cáo này, nhóm em đã tham khảo các tài liệu hướng
dẫn được trên internet và các trang hướng dẫn. Từ đó tìm hiểu và xây dựng lại một hệ thống
nhận diện khuôn mặt đơn giản sử dụng Facenet.
1.4 Đối tượng hướng đến
Đối tượng mà đồ án này hướng đến là giúp cả nhóm hiểu được kiến thức về machine
learning và xây dựng được khệ thống nhận diện khn mặt nhỏ, từ đó có thể áp dụng cho
các đồ án sau này.

6


Chương 2 Machine Learning
2.1 Tổng quan về Machine Learning
Machine learning là gì? Machine learning là một lĩnh vực con của Trí tuệ nhân
tạo(Artificial Intelligence) sử dụng các thuật tốn cho phép máy tính có thể học từ dữ liệu
để thực hiện các cơng việc thay vì được lập trình một cách rõ ràng.

Hình 2.1.1 Minh hoạ trực quan về cách ML học tập

Khả năng học tập là một yếu tố then chốt của trí thơng minh.

Nếu mang khái niệm này sang machine learning, có vẻ đây là một bước tiến lớn
làm cho máy móc thơng minh hơn. Trên thực tế, hiện nay Machine learning đang là lĩnh
vực cho thấy sự tiến bộ trong tiến trình của Trí tuệ nhân tạo. Nó đang là một chủ đề nóng
và có khả năng làm cho máy móc trở nên thơng minh hơn.
2.2 Machine Learning trên thực tế
Machine learning cũng có những giới hạn của nó. Chúng ta khơng thể nào xây
dựng một cỗ máy thơng minh để học dữ liệu từ cổ chí kim tới hiện tại. Tuy nhiên, đã có
những ứng dụng thực tế mà machine learning làm rất tốt.
2.2.1 Xử lý ảnh
Bài toán xử lý ảnh(Image Processing) giải quyết các vấn đề phân tích thơng tin từ
hình ảnh hay thực hiện một số phép biến đổi. Một số ví dụ là:
7


 Gắn thẻ hình ảnh(Image Tagging), giống như Facebook, một thuật tốn tự
động phát hiện khn mặt của bạn và bạn bè trên những bức ảnh. Về cơ
bản, thuật toán này học từ những bức ảnh mà bạn tự gắn thẻ cho mình trước
đó.
 Nhận dạng ký tự(Optical Character Recognition), là một thuật toán chuyển
dữ liệu trên giấy tờ, văn bản thành dữ liệu số hóa. Thuật tốn phải học cách
nhận biết ảnh chụp của một ký tự là ký tự nào.
 Ơ tơ tự lái(Self-driving cars), một phần cơ chế sử dụng ở đây là xử lý ảnh.
Một thuật toán machine learning giúp phát hiện các mép đường, biển báo
hay các chướng ngại vật bằng cách xem xét từng khung hình video từ
camera.
2.2.2 Phân tích văn bản
Phân tích văn bản(Text analysis) là cơng việc trích xuất hoặc phân lọi thơng tin từ
văn bản. Các văn bản ở đây có thể là các facebook posts, emails, các đoạn chats, tài
liệu,… Một số ví dụ phổ biến là:
 Lọc spam(Spam filtering), là một trong những ứng dụng phân loại văn bản

được biết và sử dụng nhiều nhất. Ở đây, phân loại văn bản là xác định chủ
đề cho một văn bản. Bộ lọc spam sẽ học cách phân loại một email có phải
spam khơng dựa trên nội dung và tiêu đề của email.
 Phân tích ngữ nghĩa(Sentiment Analysis), học cách phân loại một ý kiến
là tích cực, trung tính hay tiêu cực dựa trên nội dung văn bản của người
viết.
 Khai thác thông tin(Information Extraction), từ một văn bản, học cách để
trích xuất các thơng tin hữu ích. Chẳng hạn như trích xuất địa chỉ, tên
người, từ khóa,…
2.3 Phân loại thuật toán Machine Learning
2 thuật toán cơ bản của machine learning: Học có giám sát(Supervised learning)
và Học khơng giám sát(Unsupervised learning). Sự khác nhau lớn nhất giữa 2 thuật toán

8


này là cách mà chúng ta cung cấp tập dữ liệu huấn luyện cho mơ hình; Cách thuật tốn sử
dụng dữ liệu và loại vấn đề mà chúng giải quyết.

Hình 2.3.1 Một số thuật tốn trong ML

2.3.1 Học có giám sát
Trong học có giám sát, thuật tốn machine learning thực hiện quá trình “chuyển
dữ liệu đầu vào thành đầu ra mong muốn”.
Trong ML, đầu vào được gọi là input, đầu ra còn được gọi là label(nhãn). Tập dữ
liệu huấn luyện được gọi là training set; Mỗi mẫu dữ liệu trong tập huấn luyện được gọi
là training example.
Thuật toán machine learning cần học cách để chuyển đổi mỗi input(đầu vào) thành
label(kết quả) tương ứng. Do vậy, mọi mẫu dữ liệu huấn luyện trong tập dữ liệu huấn
luyện cần phải biết trước lable của nó.

9


Tùy thuộc vào loại đầu ra mong muốn, chúng ta tiếp tục chia nhỏ học có giám sát
gồm:
2.4.1.1 Phân loại(Classification)
Khi đầu ra mong muốn của chúng ta là một tập hữu hạn và rời rạc. Khi đó bài tốn
của chúng ta được gọi là bài toán phân loại
2.4.1.2 Hồi quy(Regression)
Khi đầu ra mong muốn là một dải giá trị liên tục. Chẳng hạn như giá trị xác suất,
khi đó bài tốn sẽ thuộc loại hồi quy.
Học có giám sát là thuật toán phổ biến nhất trong các thuật toán machine learning.
Hạn chế khi sử dụng thuật toán này là chúng ta cần cung cấp dữ liệu có gán nhãn. Trong
nhiều trường hợp, để có được dữ liệu gán nhãn này rất tốn rất nhiều chi phí.
2.3.2 Học khơng giám sát
Học không giám sát cũng là một nhánh trong machine learning. Các mẫu dữ liệu
trong học không giám sát chỉ cần input(đầu vào) mà khơng cần label(đầu ra). Nó được sử
dụng nhiều trong việc khám phá cấu trúc và mối quan hệ của dữ liệu. Một thuật tốn điển
hình là bài tốn phân cụm(clustering algorithm); Nó học cách để tìm các mẫu dữ liệu
tương tự nhau và nhóm vào thành các cụm(cluster). Một số thuật toán phân cụm như Kmeans học cách phân cụm chỉ học từ tập dữ liệu đầu vào.
2.4 Các thuật toán Machine learning
Bây giờ chúng ta sẽ đi sâu hơn để hiểu rõ hơn cách machine learning làm việc. Để
thực hiện chuyển đổi từ input thành output mong muốn, chúng ta có thể sử dụng các mơ
hình khác nhau. Machine learning không phải là một loại thuật tốn duy nhất; Có thể bạn
đã nghe tới Support vector machine(SVM), Naive Bayes, Cây quyết định(Decision Trees)
hay Học sâu(Deep learning). Các thuật toán này đều cố gắng giải quyết một bài tốn: Học
cách chuyển đổi mọi input thành output chính xác của mà nó thuộc về.
Những thuật tốn machine learning này sử dụng các mơ hình/ kỹ thuật khác nhau
để thực hiện quá trình học tập và thể hiện kiến thức về những gì nó được học.


10


Nhưng trước khi đi vào từng thuật tốn, có một nguyên tắc chung: Các thuật toán
machine learning c
o M: là chiều rộng.
o N: là chiều cao.
o D: là số chiều của ảnh.
o Sử dụng các cửa sổ trượt để trích xuất đặc trưng của từng vùng ảnh.
o Output là các đặc trưng của điểm ảnh được biểu diễn bằng ma trận.

Hình 3.3.1.1 Minh họa trực quan cho Convolution layer

Hình 3.3.1.2 Các layer

18


Hình 3.3.1.1 Cách hoạt động của Convolution Layer

3.3.2 ReLU layer
 ReLU layer áp dụng các kích hoạt (activation function) max(0,x) lên đầu ra của
Conv Layer, có tác dụng đưa các giá trị âm về thành 0 tránh ảnh hưởng cho việc
tính tốn ở các layer sau đó.
 Layer này khơng thay đổi kích thước của ảnh và khơng có thêm bất kì tham số
nào.

19



 Layer này đảm bảo cho các giá trị là non-linear (khơng tuyến tính) qua từng layer.

Hình 3.3.2.1 Cách hoạt động của ReLU layer

3.3.3 Pooling layer
 Pool Layer thực hiện chức năng làm giảm chiều không gian của đầu và giảm độ
phức tạp tính tốn.
 Max Pooling là được sử dụng nhiều vào phổ biến hơn cả với ý tưởng cũng rất sát
với thực tế con người đó là: Giữ lại chi tiết quan trọng hay giữ lại pixel có giá
trị lớn nhất.
Ví dụ: Maxpooling với bộ lọc 2x2 và stride =2. Bộ lọc sẽ chạy ảnh và với mỗi vùng
ảnh được chọn sẽ chọn ra một giá trị lớn nhất và giữ lại.

Hình 3.3.3.1 Cách hoạt động của Pooling layer

3.3.4 Fully Connected layer (FC)
 Là các lớp kết nối đầy đủ như các mạng NN thông thường.
 Input: Để đưa ảnh từ các layer trước vào mạng này, buộc phải dàn phẳng bức ảnh ra
thành 1 vector thay vì là mảng nhiều chiều như trước.
20


 Tại layer cuối cùng sẽ sử dụng 1 hàm softmax để phân loại đối tượng dựa vào vector
đặc trưng đã được tính tốn của các lớp trước đó.

Hình 3.3.4.1 Cách hoạt động của Fully Connected layer

21



Chương 4 Một số thuật toán Classification
4.1 SVM – Support Vector Machine
SVM (Support Vector Machine) là một thuật toán học máy có giám sát được sử
dụng rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui
(Regression).

Hình 4.1.1 Mơ tả đơn giản hố SVM

SVMS:
o SVM: dùng cho các bài toán phân lớp.
o SVR (support vector regresson): dùng cho bài toán hồi qui.

22


4.1.1 Cách làm việc
Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ
liệu. Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa
một loại giữ liệu.

Hình 4.1.1.1 Minh hoạ trực quan SVM
Siêu phẳng được biểu diễn bằng hàm số
<W.X> là tích vơ ) Hay

(

( W và X là các vector

là ma trận chuyễn vị)


23


Hình 4.1.1.2 Minh hoạ các mặt phẳng

4.1.2 Cách chọn mặt phẳng tối ưu
Giả sử chúng ta phải phân loại tập dữ liệu các lớp dương (màu xanh) nhãn là 1 và
các dữ liệu lớp âm (màu đỏ) nhãn là -1 (tập dữ liệu có thể phân tách tuyến tính).
Siêu phẳng phân tách hai lớp giữ liệu

thỏa mã <W.X> + b =0. Siêu phẳng này

tạo ra hai nữa không gian (half space) dữ liệu:
o Không gian các dữ liệu lớp âm

thỏa mãn

o Không gian dữ liệu lớp dương

thỏa mãn

24


Hình 4.1.2.1 Minh hoạ Margin
Tiếp theo ta chọn hai siêu phẳng lề

đi qua điểm thuộc lớp âm và

đi qua


điểm thuộc lớp dương đều song song với
o

: <W.X> + b =-1: Khoảng cách từ

đến



o

: <W.X> + b = 1: Khoảng cách từ

đến



o m=

+

được gọi là mức lề

Siêu phẳng tối ưu mà chúng ta cần chọn là siêu phẳng phân tách có lề lớn nhất. Lý
thuyết học máy đã chỉ ra rằng một siêu phẳng như vậy sẽ cực tiểu hóa giới hạn lỗi mắc
phải.

25



4.1.3 Margin

Hình 4.1.1.3 Minh hoạ Margin

Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương ứng với
các phân lớp. Trong ví dụ quả táo quả lê đặt trên mặt bán, margin chính là khoảng cách
giữa cây que và hai quả táo và lê gần nó nhất.
Điều quan trọng ở đây đó là phương pháp SVM ln cơ gắng cực đại hóa margin
này, từ đó thu được một siêu phẳng tạo khoảng cách xa nhất so với 2 quả táo và lê. Nhờ
vậy, SVM có thể giảm thiểu việc phân lớp sai (misclassification) đối với điểm dữ liệu
mới đưa vào.
4.1.4 Ưu điểm
Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong số
đó có việc tính tốn hiệu quả trên các tập dữ liệu lớn. Có thể kể thêm một số ưu điểm của
phương pháp này như:
o Xử lý trên không gian số chiều cao: SVM là một công cụ tính tốn hiệu
quả trong khơng gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán
phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn
26


o Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng
trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu
mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra
quyết dịnh
o Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng
Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi
tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn.


4.1.5 Nhược điểm
o Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ
liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá
tồi
o Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố
gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM.
Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong
một nhóm là như thế nào. Tuy nhiên hiệu quả của việc phân lớp có thể
được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu
phẳng phân lớp mà chúng ta đã bàn luận ở trên.
4.1.6 Kết luận
SVM là một phương pháp hiệu quả cho bài toán phân lớp dữ liệu. Nó là một cơng
cụ đắc lực cho các bài toán về xử lý ảnh, phân loại văn bản, phân tích quan điểm. Một yếu
tố làm nên hiệu quả của SVM đó là việc sử dụng Kernel function khiến cho các phương
pháp chuyển không gian trở nên linh hoạt hơn.
4.2 KNN – K-Nearest Neightbros
KNN (K-Nearest Neighbors) là một trong những thuật tốn học có giám sát đơn
giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy. Ý tưởng của thuật tốn
này là nó khơng học một điều gì từ tập dữ liệu học (nên KNN được xếp vào loại lazy
learning), mọi tính tốn được thực hiện khi nó cần dự đốn nhãn của dữ liệu mới.
Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đốn từ các lớp (nhãn) của k
hàng xóm gần nó nhất.
27


4.2.1 Cách làm việc
Giả sử ta có D là tập các dữ liệu đã được phân loại thành 2 nhãn (+) và (-) được
biểu diễn trên trục tọa độ như hình vẽ và một điểm dữ liệu mới A chưa biết nhãn. Vậy
làm cách nào để chúng ta có thể xác định được nhãn của A là (+) hay (-)?
Có thể thấy cách đơn giản nhất là so sánh tất cả các đặc điểm của dữ liệu A với tất cả

tập dữ liệu học đã được gắn nhãn và xem nó giống cái nào nhất, nếu dữ liệu (đặc điểm)
của A giống với dữ liệu của điểm mang nhãn (+) thì điểm A mang nhãn (+), nếu dữ liệu
A giống với dữ liệu nhãn (-) hơn thì nó mang nhãn (-), trơng có vẻ rất đơn giản nhưng đó
là những gì mà KNN làm.
Trong trường hợp của KNN, thực tế nó khơng so sánh dữ liệu mới (khơng được
phân lớp) với tất cả các dữ liệu khác, thực tế nó thực hiện một phép tính tốn học để đo
khoảng cách giữa dữ liệu mới với tất cả các điểm trong tập dữ liệu học D để thực hiện
phân lớp. Phép tính khoảng cách giữa 2 điểm có thể là Euclidian, Manhattan, trọng số,
Minkowski, …

Hình 4.2.1.1 Minh hoạ trực quan KNN

28


4.2.2 Các bước thược hiện
 Ta có D là tập các điểm dữ liệu đã được gắn nhãn và A là dữ liệu chưa được
phân loại.
 Đo khoảng cách (Euclidian, Manhattan, Minkowski, Minkowski hoặc Trọng
số) từ dữ liệu mới A đến tất cả các dữ liệu khác đã được phân loại trong D.
 Chọn K (K là tham số mà bạn định nghĩa) khoảng cách nhỏ nhất.
 Kiểm tra danh sách các lớp có khoảng cách ngắn nhất và đếm số lượng của
mỗi lớp xuất hiện.
 Lấy đúng lớp (lớp xuất hiện nhiều lần nhất).
 Lớp của dữ liệu mới là lớp mà bạn đã nhận được ở bước 5.
Ví dụ:

Hình 4.2.2.1 G nhãn gồm 15 điểm như trên ảnh

29



 Điểm cần dự đốn nhãn A(3,9)
 Ta tính khoảng cách từ điểm A đến các điểm dữ liệu trong D bằng cơng thức
Euclidian.
 Ta chọn K= 5, và tìm ra 5 điểm có khoảng cách gần với điểm A nhất.
 Trong 5 điểm ta thấy có 4 điểm mang nhãn (+) và 1 điểm mang nhãn (-).
 Vậy ta có thể đưa ra kết luận là điểm A cần dự đoán mang nhãn (+).

4.2.2.2 Kết quả
4.2.3 Ưu điểm
 Thuật toán đơn giản, dễ dàng triển khai.
 Độ phức tạp tính tốn nhỏ.
 Xử lý tốt với tập dữ liệu nhiễu
4.2.4 Nhược điểm
 Với K nhỏ dễ gặp nhiễu dẫn tới kết quả đưa ra khơng chính xác

30


 Cần nhiều thời gian để thực hiện do phải tính tốn khoảng cách với tất cả các
đối tượng trong tập dữ liệu.
 Cần chuyển đổi kiểu dữ liệu thành các yếu tố định tính.

31


Chương 5 Nhận dạng mặt người
5.1 Facenet
Facenet chính là một network có tác dụng biểu diễn các bức ảnh trong một không

gian eucledean n chiều (thường là 128) sao cho khoảng cách giữa các véc tơ embedding
càng nhỏ, mức độ tương đồng giữa chúng càng lớn.
Hầu hết các thuật toán nhận diện khn mặt trước facenet đều tìm cách biểu diễn
khuôn mặt bằng một véc tơ embedding thông qua một layer bottle neck có tác dụng giảm
chiều dữ liệu.
Tuy nhiên hạn chế của các thuật tốn này đó là số lượng chiều embedding tương
đối lớn (thường >= 1000) và ảnh hưởng tới tốc độ của thuật toán. Thường chúng ta phải
áp dụng thêm thuật toán PCA để giảm chiều dữ liệu để tăng tốc độ tính tốn.
Hàm loss function chỉ đo lường khoảng cách giữa 2 bức ảnh. Như vậy trong một
đầu vào huấn luyện chỉ học được một trong hai khả năng là sự giống nhau nếu chúng
cùng 1 class hoặc sự khác nhau nếu chúng khác class mà không học được cùng lúc sự
giống nhau và khác nhau trên cùng một lượt huấn luyện.
Facenet đã giải quyết cả 2 vấn đề trên bằng các hiệu chỉnh nhỏ nhưng mang lại
hiệu quả lớn:


Base network áp dụng một mạng convolutional neural network và giảm chiều
dữ liệu xuống chỉ còn 128 chiều. Do đó q trình suy diễn và dự báo nhanh
hơn và đồng thời độ chính xác vẫn được đảm bảo.



Sử dụng loss function là hàm triple loss có khả năng học được đồng thời sự
giống nhau giữa 2 bức ảnh cùng nhóm và phân biệt các bức ảnh khơng cùng
nhóm. Do đó hiệu quả hơn rất nhiều so với các phương pháp trước đây.



Để áp dụng triple loss, chúng ta cần lấy ra 3 bức ảnh trong đó có một bức ảnh
là anchor.Trong 3 ảnh thì ảnh anchor được cố định trước. Chúng ta sẽ lựa chọn

2 ảnh còn lại sao cho một ảnh là negative (của một người khác với anchor) và
một ảnh là positive (cùng một người với anchor). Mục tiêu của hàm loss
function là tối thiểu hóa khoảng cách giữa 2 ảnh khi chúng là negative và tối đa
hóa khoảng cách khi chúng là positive.

32


×