Tải bản đầy đủ (.docx) (24 trang)

Đồ án Thị giác máy tính

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 (994.11 KB, 24 trang )

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-----o0o-----

Đồ Án: Thị Giác Máy Tính

Nhận diện khn mặt
Giảng viên hướng dẫn: Thái Thị Nguyệt

Hà Nội, ngày 18/10/2022


Mục Lục
Mở đầu......................................................................................................................1
Chương I: Lý thuyết................................................................................................2
1.

Các phép đo hiệu năng..........................................................................................................2
a. Accuracy...........................................................................................................................2
b.

Confusion Matrix..........................................................................................................2

c. ROC curve - AUC.............................................................................................................3
d.
2.

F1 – score......................................................................................................................4
LeNet5..................................................................................................................................5

a. Mạng thần kinh tích chập..................................................................................................5


b.

Lịch sử của LeNet5.......................................................................................................5

c. LeNet5 là gì ?....................................................................................................................6
d.

Tính năng của LeNet5...................................................................................................6

e. Kiến trúc LeNet5...............................................................................................................6
3.

Các hàm kích hoạt thường dùng.........................................................................................12
a. Thế nào là hàm kích hoạt................................................................................................12
b.

Vì sao chúng ta cần sử dụng hàm kích hoạt................................................................13

c. Linear Function...............................................................................................................13
d.

ReLU (Rectified Linear unit)......................................................................................13

e. Sigmoid...........................................................................................................................14
f.

Hyperbolic Tangent Activation Function(Tanh).............................................................15

g.


Softmax Activation Function......................................................................................15

Chương II: Thực nghiệm và Đánh giá................................................................16
1.

Bộ data sử dụng..................................................................................................................16

2.

Xử lý và phân tích data.......................................................................................................16

3.

Xây dựng model..................................................................................................................18

4.

Kết quả, đánh giá và cải tiến...............................................................................................19

Tài liệu tham khảo.................................................................................................22


Mở đầu
Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là với những chiếc
điện thoại thông minh (smartphone) ngày càng hiện đại và được sử dụng phổ biến trong
đời sống con người đã làm cho lượng thơng tin thu được bằng hình ảnh ngày càng tăng.
Theo đó, lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng rộng rãi trong đời
sống xã hội hiện đại. Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà
với cơng nghệ xử lý ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận dạng chữ
viết, nhận dạng dấu vân tay, nhận dạng khn mặt…

Một trong những bài tốn được nhiều người quan tâm nhất của lĩnh vực xử lý ảnh hiện
nay đó là nhận dạng khn mặt (Face Recognition). Như chúng ta đã biết, khn mặt
đóng vai trị quan trọng trong quá trình giao tiếp giữa người với người, nó mang một
lượng thơng tin giàu có, chẳng hạn như từ khn mặt chúng ta có thể xác định giới tính,
tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt là xác định mối quan hệ với đối tượng (có
quen biết hay khơng). Do đó, bài tốn nhận dạng khn mặt đóng vai trị quan trọng
trong nhiều lĩnh vực đời sống hằng ngày của con người như các hệ thống giám sát, quản
lý vào ra, tìm kiếm thơng tin một người nổi tiếng,…đặc biệt là an ninh, bảo mật. Có rất
nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều
những phương pháp này đang vấp phải những thử thách về độ sáng, hướng nghiêng, kích
thước ảnh, hay ảnh hưởng của tham số mơi trường.
Bài tốn Nhận diện khn mặt (Face Recognition) bao gồm nhiều bài toán khác nhau
như: phát hiện mặt người (face detection), đánh dấu (facial landmarking), trích chọn (rút)
đặc trưng (feature extration), gán nhãn, phân lớp (classification). Trong thực tế, nhận
dạng khuôn mặt người (Face Recognition) là một hướng nghiên cứu được nhiều nhà khoa
học quan tâm, nghiên cứu để ứng dụng trong thực tiễn. Ở các trường đại học hàng đầu về
Công Nghệ Thông Tin như Massachusetts Institute of Technology (MIT), Carnegie
Mellon University (CMU), Standford, Berkeley và các công ty lớn như Microsoft, Apple,
Google, Facebook đều có các trung tâm về sinh trắc học (Biometrics Center) và nghiên
cứu về nhận dạng khn mặt người và nó đã trở thành một trong những lĩnh vực nghiên
cứu chính cho đến nay. Gần đây, công ty Hitachi Kokusai Electric của Nhật mới cho ra
đời một camera giám sát, có thể chụp ảnh và tìm ra 36 triệu khn mặt khác có nét tương
tự trong cơ sở dữ liệu chỉ trong vòng một giây.

1


Chương I: Lý thuyết
1. Các phép đo hiệu năng
Khi xây dựng 1 mơ hình học máy, chúng ta cần một phép đánh giá để xem mơ hình sử

dụng có hiệu quả không và để so sánh khả năng của các mơ hình.
Có rất nhiều cách đánh giá 1 mơ hình. Tùy vào những bài toán khác nhau mà chúng ta sử
dụng các phương pháp khác nhau. Các phương pháp thường được sử dụng là:
-

Accuracy score
Confusion matrix
ROC curve – AUC
F1 – score
Precision and Recall

a. Accuracy
Là một trong những chỉ số đơn giản nhất để triển khai và nó có thể được xác định là số
lượng dự đoán đúng trên tổng số lượng dự đoán.
Accuracy=

Number of Correct Predictions
Total number of predictions

Mặc dù nó đơn giản để sử dụng và thực hiện, nó chỉ thích hợp cho những trường hợp mỗi
lớp có số lượng mẫu bằng nhau.
Sẽ là tốt khi sử dụng Accuracy khi các lớp biến mục tiêu trong dữ liệu gần như cân bằng
và ngược lại, không sử dụng khi biến mục tiêu chủ yếu thuộc về 1 lớp.

b. Confusion Matrix
Confusion là một phương pháp đánh giá kết quả của những bài toán phân loại với việc
xem xét cả những chỉ số về độ chính xác và độ bao quát của các dự đoán cho từng lớp.
Một confusion matrix gồm 4 chỉ số sau đối với mỗi lớp phân loại:

Về cơ bản, ma trận nhầm lẫn gồm 4 chỉ số để dễ hiểu ta dùng ví dụ dự đốn ung thư để

giải thích các chỉ số này:
2


-

TP(True Positive): Số lượng dự đốn chính xác. Là khi mơ hình dự đốn đúng một
người bị ung thư.
TN (True Negative): Số lương dự đốn chính xác một cách gián tiếp. Là khi mơ hình
dự đốn đúng một người khơng bị ung thư, tức là việc không chọn trường hợp bị ung
thư là chính xác.
FP(False Positive): Số lượng các dự đốn sai lệch. Là khi mơ hình dự đốn một người
bị ung thư và người đó hồn tồn khỏe mạnh.
FN(False Negative): Số lượng các dự đoán sai lệch một cách gián tiếp. Là khi mơ
hình dự đốn một người khơng bị ung thư nhưng người đó bị ung thư, tức là việc
không chọn trường hợp bị ung thư là sai.

Từ 4 chỉ số, có thể sử dụng 2 tham số sau đây để đánh giá mức độ tin cậy của mơ hình:
-

Precision: Trong tất cả các dự đốn Positive được đưa ra, bao nhiêu dự đốn là chính
xác chỉ số này được tính theo cơng thức:

Precision=
-

TP
TP+ FP

Recall: Trong tất cả các trường hợp Positive, bao nhiêu trường hợp đã được dự đốn

chính xác chỉ số này được tính theo cơng thức:
TP
Recall=
TP+ FN

Confusion Matrix là biểu diễn dạng bảng của các kết quả dự đoán của bất kỳ bộ phân loại
nhị phân nào, được sử dụng để mô tả hiệu suất của mơ hình phân loại trên 1 tập dữ liệu
thử nghiệm khi các giá trị thực được biết đến.

c. ROC curve - AUC
Đường cong ROC (receiver operating characteristic curve) là 1 biểu đồ cho thấy hiệu
suất của mơ hình phân loại ở tất cả các ngưỡng phân loại.
Đường cong này hiển thị hai tham số:
-

Tỷ lệ dương tính thực.
Tỷ lệ dương tính giả.

True Positive Rate (TPR) – Tỷ lệ dương tính thực
TPR=

TP
TP+ FN
False Positive Rate (FPR) – Tỷ lệ dương tính giả

FPR=

FP
FP+TN
Đường cong ROC vẽ đồ thị TPR so với FPR ở các ngưỡng phân loại khác nhau. Việc

giảm ngưỡng phân loại sẽ phân loại nhiều mục hơn là dương, do đó tăng cả số dương tính
giả và dương tính thực. Hình bên dưới cho thấy đường cong ROC điển hình.

3


Hình 1: Tỷ lệ TP so với FP ở các ngưỡng phân loại khác nhau.

Để tính tốn các điểm trong đường cong ROC, chúng ta có thể đánh giá mơ hình hồi quy
logistic nhiều lần với các ngưỡng phân loại khác nhau, nhưng cách này sẽ khơng hiệu
quả. Có một thuật tốn dựa trên sắp xếp hiệu quả có thể cung cấp thông tin này, được gọi
là AUC.
AUC là viết tắt của "Area under ROC Curve." Điều này có nghĩa là AUC đo toàn bộ khu
vực hai chiều bên dưới tồn bộ đường cong ROC.

Hình 2: AUC

AUC cung cấp một phép đo tổng hợp về hiệu suất trên tất cả các ngưỡng phân loại có thể
có. Một cách diễn giải AUC là xác suất mơ hình xếp hạng một ví dụ dương tính ngẫu
nhiên cao hơn ví dụ phủ định ngẫu nhiên.

d. F1 – score
Như vậy chúng ta đã có 2 khái niệm Precision và Recall và mong muốn 2 đại lượng này
càng cao càng tốt. Tuy nhiên trong thực tế nếu ta điều chỉnh model để tăng Recall quá
4


mức có thể dẫn đến Precision giảm và ngược lại, cố điều chỉnh model để tăng Precision
có thể làm giảm Recall. Nhiệm vụ của chúng ta là phải cân bằng 2 đại lượng này.
Vậy thì bài tốn mới được đặt ra là: giả sử chúng ta đang xây dựng một tập các model (để

sau đó chọn ra model tốt nhất). Và chúng ta như “đứng giữa 2 con đường” khi lựa chọn
các model sao cho cân bằng giữa Precision và Recall. Nhưng thật may có thêm một tham
số nữa dung hịa giữa 2 cái và ta có thể căn vào đó để lựa chọn, đó là F-1 Score:
F 1=2

Precision∗Recall
Precision+ Recall
Đó, giờ chúng ta cứ căn vào F1 mà chọn model, F1 càng cao thì càng tốt. Khi lý tưởng
nhất thì F1 = 1 (khi Recall = Precision=1). F1-score có giá trị nằm trong nửa khoảng
(0,1]. F1 càng cao, bộ phân lớp càng tốt. Khi cả recall và precision đều bằng 1 (tốt nhất
có thể), F1=1. Khi cả recall và precision đều thấp, ví dụ bằng 0.1, F1=0.1.

2. LeNet5
a. Mạng thần kinh tích chập.
Mạng thần kinh chuyển đổi (ConvNet/CNN) là một thuật tốn Deep Learning được cho
là hấp thụ hình ảnh đầu vào, gán tầm quan trọng (trọng số và độ lệch có thể học được)
cho các khía cạnh/đối tượng khác nhau trong hình ảnh và có thể phân biệt giữa chúng.
Quá trình tiền xử lý cần thiết trong ConvNet thấp hơn nhiều so với các thuật toán phân
loại khác. trong khi ở các chiến lược nguyên thủy, các bộ lọc được thiết kế thủ cơng, với
đủ đào tạo, ConvNets có khả năng nghiên cứu và tìm hiểu các bộ lọc/đặc điểm này.
Thiết kế của ConvNet tương tự như mẫu thuộc tính của Tế bào thần kinh trong Bộ não
con người và được thúc đẩy bởi tổ chức của Visual Cortex. Các tế bào thần kinh riêng lẻ
chỉ phản ứng với các kích thích trong một vùng hạn chế của chế độ xem trực quan được
gọi là Trường tiếp nhận. một nhóm các trường như vậy chồng lên nhau để ẩn toàn bộ khu
vực trực quan.

b. Lịch sử của LeNet5.
LeNet-5 là một trong những mạng thần kinh tích chập sớm nhất đã thúc đẩy sự kiện học
sâu. Sau vô số năm phân tích và nhiều lần lặp lại hấp dẫn, kết quả cuối cùng được đặt tên
là LeNet-5 vào năm 1988.

Năm 1989, Yann LeCun và cộng sự. tại Bell Labs ban đầu đã áp dụng quy tắc lan truyền
ngược cho tất cả các ứng dụng hợp lý và tin rằng tính linh hoạt được cung cấp trong q
trình tổng qt hóa mạng có thể được tăng lên đáng kể bằng cách cung cấp các ràng buộc
từ miền tác vụ.
Trong cùng năm đó, LeCun đã giải thích một điểm bất thường nhỏ trong nhận dạng chữ
số viết tay trong một bài báo khác và chứng minh rằng bằng cách giả sử rằng vấn đề có
thể phân tách tuyến tính, các mạng một lớp có xu hướng thể hiện các kỹ năng khái quát
hóa kém.
Sau khi loại bỏ sự bất thường bằng cách sử dụng bộ phát hiện tính năng bất biến trên
mạng nhiều lớp, khơng tự nhiên, mơ hình có thể hoạt động rất tốt. Ông tin rằng những kết
quả này đã xác minh rằng việc giảm thiểu số lượng tham số miễn phí trong mạng thần
kinh có thể tăng cường khả năng tổng quát hóa giống nhau.
5


c. LeNet5 là gì ?
Năm 1989, Yann LeCun trình bày một mạng thần kinh tích chập có tên là LeNet. Nói
chung, LeNet đề cập đến LeNet-5 và là một mạng thần kinh tích chập đơn giản.
Mạng nơ-ron tích chập là một dạng mạng nơ-ron chuyển tiếp nguồn cấp dữ liệu có các
nơ-ron nhân tạo sẽ trả lại một vị trí của các ô bao quanh trong phạm vi bao phủ khác nhau
và hoạt động tốt trong xử lý hình ảnh quy mơ lớn.
LeNet-5 có sự xuất hiện của CNN và xác định các yếu tố cơ bản của CNN. Tuy nhiên, nó
hồn tồn khơng phù hợp vào thời điểm đó do thiếu thiết bị phần cứng, đặc biệt là GPU
và thuật tốn khác nhau.

d. Tính năng của LeNet5.
-

Mỗi lớp tích chập bao gồm ba phần: chức năng kích hoạt tích chập, tổng hợp và phi
tuyến tính.

Sử dụng tích chập để trích xuất các đặc trưng khơng gian (Convolution ban đầu được
gọi là các trường tiếp nhận)
Subsampling lớp tổng hợp trung bình hàm kích hoạt tanh
Sử dụng MLP làm bộ phân loại cuối cùng
Kết nối thưa thớt giữa các lớp để giảm độ phức tạp của tính tốn

e. Kiến trúc LeNet5.
LeNet5 là một mạng nhỏ, nó chứa các mơ-đun cơ bản của deep learning: convolutional
layer, pooling layer, and full link layer. Nó là cơ sở của các mơ hình học sâu khác. Ở đây
chúng tơi phân tích sâu về LeNet5. Đồng thời, thơng qua phân tích ví dụ, hiểu sâu hơn về
lớp tích chập và lớp tổng hợp.

LeNet-5 Tổng cộng bảy lớp, không bao gồm đầu vào, mỗi lớp chứa một tham số có thể
huấn luyện; mỗi lớp có nhiều FeatureMap, một đặc điểm của mỗi FeatureMap đầu vào
được trích xuất bằng bộ lọc tích chập và sau đó mỗi FeatureMap có nhiều nơ-ron.

6


Input Layer
Lớp đầu tiên là lớp đầu vào. Nó thường khơng được coi là một lớp của mạng vì khơng có
gì được học trên lớp đó. Lớp đầu vào hỗ trợ 32x32 và đây là các kích thước của hình ảnh
sẽ được chuyển sang lớp tiếp theo.
C1 layer-convolutional layer
Input picture: 32 * 32
Convolution kernel size: 5 * 5
Convolution kernel types: 6
Output featuremap size: 28 * 28 (32-5 + 1) = 28
Number of neurons: 28 * 28 * 6
Trainable parameters: (5 * 5 + 1) * 6 (5 * 5 = 25 tham số đơn vị và một tham số

thiên vị cho mỗi bộ lọc, tổng cộng 6 bộ lọc)
o Number of connections: (5 * 5 + 1) * 6 * 28 * 28 = 122304
o
o
o
o
o
o

Chi tiết:
-

-

-

Thao tác tích chập đầu tiên được thực hiện trên ảnh đầu vào (sử dụng 6
convolution kernels kích thước 5 * 5) để thu được 6 C1 f eature maps (6 eature
maps kích thước 28 * 28, 32-5 + 1 = 28).
Chúng ta hãy xem có bao nhiêu tham số là cần thiết. Kích thước của convolution
kernel là 5 * 5 và có tổng cộng 6 * (5 * 5 + 1) = 156 tham số, trong đó +1 cho biết
rằng kernel có độ lệch.
Đối với C1 convolutional layer, mỗi pixel trong C1 được kết nối với 5 * 5 pixel
và 1 độ lệch trong ảnh đầu vào, do đó, có tổng cộng 156 * 28 * 28 = 122304 kết
nối. Có 122.304 kết nối, nhưng chúng ta chỉ cần tìm hiểu 156 tham số, chủ yếu
thông qua chia sẻ trọng số.

S2 layer-pooling layer (downsampling layer)
o Input: 28 * 28
o Sampling area: 2 * 2

7


o Sampling method: 4 đầu vào được thêm vào, nhân với tham số có thể

huấn luyện, cộng với phần bù có thể huấn luyện. Kết quả qua sigmoid
o
o
o
o
o
o

Sampling type: 6
Output featureMap size: 14 * 14 (28/2)
Number of neurons: 14 * 14 * 6
Trainable parameters: 2 * 6 (trọng số của tổng + phần bù)
Number of connections: (2 * 2 + 1) * 6 * 14 * 14
Kích thước của mỗi feature map trong S2 bằng 1/4 kích thước của feature map
trong C1.

Chi tiết:
-

-

Pooling được thực hiện ngay sau first convolution. Pooling được thực hiện bằng
cách sử dụng các kernels 2 * 2 và S2, thu được 6 feature maps có kích thước 14 *
14 (28/2 = 14)
Pooling layer của S2 là tổng các pixel trong vùng 2 * 2 trong C1 nhân với hệ số

trọng số cộng với độ lệch, sau đó kết quả được ánh xạ lại.
Vì vậy, mỗi pooling core có hai tham số đào tạo, do đó có 2x6 = 12 tham số đào
tạo, nhưng có 5x14x14x6 = 5880 kết nối.

C3 layer-convolutional layer
Input: tất cả 6 hoặc một số kết hợp feature maps trong S2
Convolution kernel size: 5 * 5
Convolution kernel type: 16
Output featureMap size: 10 * 10 (14-5 + 1) = 10
Mỗi feature maps trong C3 được kết nối với tất cả 6 hoặc một số feature maps
trong S2, cho biết rằng feature maps của lớp này là sự kết hợp khác nhau của các
feature maps được trích xuất từ lớp trước.
o The trainable parameters are: 6 * (3 * 5 * 5 + 1) + 6 * (4 * 5 * 5 + 1) + 3 * (4 *
5 * 5 + 1) + 1 * (6 * 5 * 5 +1) = 1516
o Number of connections: 10 * 10 * 1516 = 151600
o
o
o
o
o

Chi tiết:
-

-

-

Sau first pooling, second convolution, đầu ra của t second convolution là C3, 16
feature maps 10x10 và kích thước của convolution kernel là 5 * 5. Chúng ta biết

rằng S2 có 6 feature maps 14 * 14, làm cách nào để có được 16 feature maps từ 6
feature maps?
6 feature maps đầu tiên của C3 (tương ứng với cột thứ 6 của hộp màu đỏ đầu tiên
trong hình trên) được kết nối với 3 feature maps được kết nối với lớp S2 (hộp màu
đỏ đầu tiên trong hình trên) và 6 feature maps tiếp theo feature maps được kết nối
với lớp S2 4 feature maps được kết nối (hộp màu đỏ thứ hai trong hình trên), 3
feature maps tiếp theo được kết nối với 4 feature maps không được kết nối ở lớp
S2 và feature maps cuối cùng là được kết nối với tất cả các feature maps ở lớp S2.
Kích thước kernel tích chập vẫn là 5 * 5, vì vậy có 6 * (3 * 5 * 5 + 1) + 6 * (4 * 5
* 5 + 1) + 3 * (4 * 5 * 5 + 1) +1 *(6*5*5+1) = 1516 tham số. Kích thước ảnh là
10*10 nên có 151600 kết nối.
8


Cấu trúc tích chập của C3 và 3 đồ thị đầu tiên trong S2 được hiển thị bên dưới

S4 layer-pooling layer (downsampling layer)
o Input: 10 * 10
o Sampling area: 2 * 2
o Sampling method: 4 đầu vào được thêm vào, nhân với tham số có thể huấn
luyện, cộng với phần bù có thể huấn luyện. Kết quả qua sigmoid
o Sampling type: 16
o Output featureMap size: 5 * 5 (10/2)
o Number of neurons: 5 5 16 = 400
o Trainable parameters: 2 * 16 = 32 (t rọng số của tổng + phần bù)
o Number of connections: 16 (2 2 + 1) 5 5 = 2000
o Kích thước của mỗi feature map trong S4 bằng 1/4 kích thước của bản đồ đặc
trưng trong C3
Chi tiết:
-


S4 là pooling layer,, kích thước cửa sổ vẫn là 2 * 2, tổng cộng có 16 feature maps,
và 16 map 10x10 của lớp C3 được gộp theo đơn vị 2x2 để thu được 16 feature
9


maps, 5x5. Lớp này có tổng cộng 32 tham số đào tạo 2x16, 5x5x5x16 = 2000 kết
nối.
C5 layer-convolution layer
o
o
o
o
o

Input: tất cả 16 feature maps của lớp S4
Convolution kernel size: 5 * 5
Convolution kernel type: 120
Output featureMap size: 1 * 1 (5-5 + 1)
Trainable parameters / connection: 120 * (16 * 5 * 5 + 1) = 48120

Chi tiết:
-

Lớp C5 là một lớp tích chập. Vì kích thước của 16 hình ảnh của lớp S4 là 5x5,
giống như kích thước của convolution kernel , nên kích thước của hình ảnh được
tạo thành sau khi tích chập là 1x1. Điều này dẫn đến 120 kết quả tích chập. Mỗi
cái được kết nối với 16 maps ở cấp độ trước. Vì vậy, có (5x5x16 + 1) x120 =
48120 tham số và cũng có 48120 kết nối. Cấu trúc mạng của lớp C5 như sau:


F6 layer-fully connected layer
o Input: c5 vec-tơ 120 chiều
o Calculation method: tính tốn tích vơ hướng giữa vectơ đầu vào và vectơ trọng
số, cộng với phần bù và kết quả được xuất ra thông qua hàm sigmoid.
o Trainable parameters: 84 * (120 + 1) = 10164
Chi tiết:
-

Layer 6 là một lớp được kết nối đầy đủ. Lớp F6 có 84 node, tương ứng với bitmap
7x12, -1 nghĩa là trắng, 1 nghĩa là đen, do đó, màu đen và trắng của bitmap của
mỗi biểu tượng tương ứng với một mã. Các tham số huấn luyện và số lượng kết

10


nối cho lớp này là (120 + 1) x 84 = 10164. Sơ đồ bảng mã ASCII như sau:

Phương thức kết nối của layer 6 như sau:

Output layer-fully connected layer¶
Lớp đầu ra cũng là một fully connected layer, có tổng cộng 10 nút, tương ứng đại diện
cho các số từ 0 đến 9 và nếu giá trị của nút i là 0, kết quả nhận dạng mạng là số i. Kết nối
mạng chức năng cơ sở hướng tâm (RBF) được sử dụng. Giả sử x là đầu vào của lớp trước
và y là đầu ra của RBF, phép tính đầu ra của RBF là:
y i=∑ ( x j−wij )2
j

Giá trị của công thức trên w_ij được xác định bởi mã hóa bitmap của i, trong đó i nằm
trong khoảng từ 0 đến 9 và j nằm trong khoảng từ 0 đến 7 * 12-1. Giá trị của đầu ra RBF
càng gần 0 thì càng gần i, tức là càng gần với con số mã hóa ASCII của i, điều đó có

nghĩa là kết quả nhận dạng được nhập bởi mạng hiện tại là ký tự i. Lớp này có 84x10 =
840 tham số và kết nối.
11


3. Các hàm kích hoạt thường dùng
Trong mạng neural nói chung, các hàm kích hoạt là thành phần quan trọng nhất của việc
học sâu, chúng được sử dụng cơ bản để xác định đầu ra của mơ hình học sâu, độ chính
xác và hiệu suất của mơ hình đào tạo có thể thiết kế hoặc phân chia một quy mơ mạng
neural lớn. Các hàm kích hoạt đã để lại tác động đáng kể để khả năng của các mạng để
hội tụ và hội tụ nhanh hơn.

a. Thế nào là hàm kích hoạt
Hàm kích hoạt xác định đầu ra của một đầu vào hoặc xử lý các giá trị đầu vào hoặc trong
các thuật ngữ khác nó xác định đầu ra của một nút và đưa đầu ra đó đến đầu vào của nút
khác.
Về cơ bản, việc quyết định kích hoạt hoặc hủy kích hoạt các tế bào thần kinh để có được
đầu ra mong muốn. Nó cũng thực hiện chuyển đổi phi tuyến trên đầu vào để có kết quả
tốt hơn trên mạng thần kinh phức tạp.
Hàm kích hoạt cũng giúp bình thường hóa đầu ra của bất kỳ đầu vào nào nằm trong phạm
vi từ 1 đến -1. Hàm kích hoạt sẽ rất hiệu quả và nó sẽ giảm thời gian tính tốn vì mạng
lưới thần kinh đơi khi được đào tạo trên hàng triệu điểm dữ liệu.
Hàm kích hoạt về cơ bản quyết định trong bất kỳ mạng thần kinh nào được cung cấp
thông tin đầu vào hoặc nhận có liên quan hoặc nó khơng liên quan. Chúng ta hãy lấy một
ví dụ để hiểu tốt hơn một tế bào thần kinh là gì và chức năng kích hoạt giới hạn giá trị
đầu ra đến một số giới hạn.
Một neuron về cơ bản là một mức trung bình có trọng số của đầu vào, sau đó tổng số này
được chuyển qua một hàm kích hoạt để có được đầu ra.

Y =∑ ( weights ×input +bias )

12


Y ở đây có thể là bất cứ giá trị nào của một tế bào thần kinh giữa phạm vi từ âm vơ cực
đến dương vơ cực. Vì vậy, phải ràng buộc được dự đoán mong muốn hoặc kết quả tổng
quát.
Y = Activation function ( ∑ ( weights ×input +bias ) )
Vì vậy, chúng tơi chuyển tế bào thần kinh đó đến hàm kích hoạt chức năng cho các giá trị
đầu ra ràng buộc.

b. Vì sao chúng ta cần sử dụng hàm kích hoạt
Khơng có hàm kích hoạt, trọng số và bias sẽ chỉ có sự biến đổi tuyến tính hoặc mạng lưới
thần kinh chỉ là mơ hình hồi quy tuyến tính, phương trình tuyến tính là đa thức chỉ là một
mức độ đơn giản để giải quyết nhưng hạn chế về khả năng giải quyết các vấn đề phức tạp
hoặc cao hơn đa thức độ.
Nhưng ngược lại với điều đó, việc bổ sung hàm kích hoạt vào mạng thần kinh thực hiện
chuyển đổi phi tuyến tính thành đầu vào và làm cho nó có khả năng giải quyết các vấn đề
phức tạp như dịch ngôn ngữ và phân loại hình ảnh.
Thêm vào đó, các hàm kích hoạt là khác biệt do chúng có thể dễ dàng thực hiện các phép
truyền trở lại, chiến lược tối ưu hóa trong khi thực hiện các phương pháp lan truyền
ngược để đo các chức năng mất độ dốc trong các mạng thần kinh.

c. Linear Function
Nó là một hàm kích hoạt đường thẳng đơn giản trong đó giá trị hàm tỷ lệ thuận với tổng
trọng số của các tế bào thần kinh hoặc đầu vào. Các hàm kích hoạt tuyến tính tốt hơn
trong việc đưa ra một loạt các kích hoạt và giá trị đạo hàm tích cực có thể làm tăng tốc độ
xử lý khi tốc độ đầu vào tăng.
Trong nhị phân, một tế bào thần kinh đang hoạt động hay không. Nếu bạn biết giá trị đạo
hàm giảm dần trong huấn luyện sâu thì bạn sẽ nhận thấy rằng giá trị trong hàm hàm này
là khơng đổi.

Y =mZ
Trong đó đạo hàm đối với Z là không đổi. Ý nghĩa đạo hàm cũng khơng đổi và nó khơng
liên quan đến Z. Trong điều này, nếu những thay đổi được thực hiện trong quá trình lan
truyền ngược sẽ khơng đổi và khơng phụ thuộc vào Z nên điều này sẽ không tốt cho việc
huấn luyện.

d. ReLU (Rectified Linear unit)
Relu được sử dụng rộng rãi nhất hiện tại, giá trị hàm kích hoạt dao động từ 0 đến vô cực,
tất cả các giá trị âm được chuyển đổi thành 0.

13


e. Sigmoid
Hàm kích hoạt sigmoid được sử dụng chủ yếu vì nó thực hiện nhiệm vụ với hiệu quả lớn,
về cơ bản, nó là một cách tiếp cận xác suất đối với việc ra quyết định và nằm trong
khoảng từ 0 đến 1, vì vậy khi chúng ta phải đưa ra quyết định hoặc dự đoán đầu ra, chúng
ta sử dụng hàm kích hoạt này vì phạm vi là tối thiểu, do đó, dự đốn sẽ chính xác hơn.

f ( x )=

1
( −x )
1+e

14


f. Hyperbolic Tangent Activation Function(Tanh)


Hàm kích hoạt này tốt hơn một chút so với hàm sigmoid, giống như hàm sigmoid, nó
cũng được sử dụng để dự đốn hoặc phân biệt giữa hai lớp nhưng nó chỉ ánh xạ đầu vào
âm thành số lượng âm và chỉ nằm trong khoảng từ -1 đến 1.

g. Softmax Activation Function
SoftMax được sử dụng chủ yếu ở lớp cuối cùng, tức là lớp đầu ra để ra quyết định giống
như hoạt động kích hoạt sigmoid, SoftMax về cơ bản mang lại giá trị cho biến đầu vào
theo trọng số của chúng và tổng của các trọng số này cuối cùng là một.

15


Chương II: Thực nghiệm và Đánh giá
1. Bộ data sử dụng
-

-

Sử dụng CV2 để lấy ảnh của người thật, mỗi khi chuyển động khn mặt chương trình sẽ
chụp ảnh để đảm bảo data không bị trùng lặp. Mỗi khuôn mặt lấy 100 mãu
Bộ data gồm 3 bộ: train, test, và val
+ Train dùng để huấn luyện model
+ Test dùng để kiểm tra model và chọn ra model tốt nhất
+ val để đánh giá xem model tốt hay xấu
Bộ train, test và val có 17 nhãn:
+ chris_evans : 50 ảnh train , 22 ảnh test, 12 ảnh val
+ chris_hemsworth: 53 ảnh, , 12 ảnh test, 12 ảnh val
+ mark_ruffalo: 66 ảnh, 12 ảnh test, 12 ảnh val
+ robert_downey_jr: 51 ảnh, 12 ảnh test, 12 ảnh val
+ scarlett_johansson: 54 ảnh, 12 ảnh test, 12 ảnh val

+ tung_lm: 100 ảnh, 30 ảnh test, 16 ảnh val
+ my_tam: 100 ảnh, 30 ảnh test, 16 ảnh val
+ dt_hiep: 100 ảnh, 30 ảnh test, 16 ảnh val
+ huy_nn: 100 ảnh, 30 ảnh test, 16 ảnh val
+ khanh_td: 100 ảnh, 30 ảnh test, 16 ảnh val
+ phan_manh_quy: 100 ảnh, 30 ảnh test, 16 ảnh val
+ ronaldo: 100 ảnh, 30 ảnh test, 16 ảnh val
+ son_tung: 100 ảnh, 30 ảnh test, 16 ảnh val
+ tai_smile: 100 ảnh, 30 ảnh test, 16 ảnh val
+ tien_nd: 100 ảnh, 30 ảnh test, 16 ảnh val
+ toi_di_code_dao: 100 ảnh, 30 ảnh test, 16 ảnh val
+ vu_duy_dan: 100 ảnh, 30 ảnh test, 16 ảnh val

2. Xử lý và phân tích data
-

Cơng cụ xử dụng: Google Colab
Import thư viện cần thiết:

16


Các nhãn là tên các người trong bộ dataset
-

Đọc dữ liệu

Bộ data load đầy đủ train 274 ảnh, 5 classes, test 70 ảnh 5 classes, val 60 ảnh 5 classes

-


Map các nhãn cụ thể

-

Gán các số cho các tên để hiển thị trực quan các dự đoán
Vẽ biểu đồ thể hiện sự phân bố nhãn

17


-

Các nhãn phân bố khơng đồng đều khoảng nhãn có số luợng ít nhất là 3.5% chris_evans
và robert_downey_jr, nhãn có số lượng nhiều nhất là 6.9% tai_smile, khanh_td...
In thử 25 ảnh trong bộ train

A
18



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×