10486_Nghiên cứu về mạng neural Convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh vực

luận văn tốt nghiệp

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN MẠNH HÙNG

NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,
ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG
TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội – 2019
ĐẠI HỌC QUỘC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN MẠNH HÙNG

NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,
ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG
TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH

Ngành
: Công nghệ thông tin
Chuyên ngành
: Kỹ thuật phần mềm
Mã số
: 8480103.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỖ TRUNG TUẤN

Hà Nội – 2019
i

LỜI CAM ĐOAN
Tôi xin cam đoan: luận văn “Nghiên cứu về mạng neural Convolutional, áp dụng
vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính.” là công trình nghiên
cứu của tôi dưới sự hướng dẫn của giảng viên hướng dẫn, không sao chép lại của người
khác. Các tài liệu được luận văn tham khảo, kế thừa và trích dẫn đều được liệt kê trong
danh mục các tài liệu tham khảo.
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan trên.

Hà Nội, ngày tháng năm 2019
Học viên

Nguyễn Mạnh Hùng

ii

LỜI CẢM ƠN

Em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ, Đại học quốc
gia Hà Nội, đặc biệt các thầy cô bộ môn Kỹ thuật phần mềm, đã tận tình dạy dỗ, giúp đỡ
và tạo mọi điều kiện tốt nhất cho em trong suốt quãng thời gian em theo học tại trường, để
em có thể hoàn thành được đề tài này.
Em tỏ lòng biết ơn sâu sắc với PGS.TS Đỗ Trung Tuấn, người thầy đã tận tình
hướng dẫn khoa học và giúp đỡ, chỉ bảo em trong suốt quá trình nghiên cứu và hoàn
thành luận văn này.
Tôi xin chân thành cảm ơn các bạn học viên cao học khóa 22 tại trường Đại học
Công nghệ, Đại học quốc gia Hà Nội đã giúp đỡ tôi trong quá trình theo học tại trường,
cũng như giúp đỡ tôi thực hiện đề tài này.
Xin trân trọng cảm ơn!

iii

MỤC LỤC
LỜI CAM ĐOAN ……………………………………………………………………………..i
LỜI CẢM ƠN
………………………………………………………………………………… ii
MỤC LỤC ……………………………………………………………………………………. iii
DANH MỤC HÌNH VẼ……………………………………………………………………
vi
DANH MỤC BẢNG BIỂU………………………………………………………………..
x
DANH MỤC VIẾT TẮT
………………………………………………………………….
xi
LỜI MỞ ĐẦU
………………………………………………………………………………….
1
Lý do chọn đề tài
…………………………………………………………………………………
1
Cơ sở khoa học và thực tiễn của đề tài
…………………………………………………….
1
Mục tiêu của luận văn
…………………………………………………………………………..
2
Cấu trúc luận văn
…………………………………………………………………………………
3
CHƯƠNG 1. ……………………………………………………………………………………
4
TỔNG QUAN VỀ MẠNG NƠ RON ………………………………………………….
4
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP
…………………………
4
1.1. Nơ ron nhân tạo ……………………………………………………………………
4
1.1.1 Lịch sử của nơ ron nhân tạo …………………………………………………………..
4
1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học……………………………
5
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo …………………………..
5
1.1.4. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo ……………………..
8
1.2 Mạng nơ ron nhân tạo ………………………………………………………….
11
1.2.1 Giới thiệu mạng nơ ron nhân tạo
…………………………………………………..
11
1.2.2 Một số kiểu mạng nơ ron …………………………………………………………….
11
1.2.3 Mạng nơ ron lan truyền ngược
……………………………………………………..
13
1.3 Mạng nơ ron tích chập …………………………………………………………
18
1.3.1 Khái niệm về mạng nơ ron tích chập
……………………………………………..
18
iv

1.3.2 Mô hình mạng nơ ron tích chập ……………………………………………………
19
1.3.2 Xây dựng mạng nơ ron tích chập ………………………………………………….
20
1.4 Kết luận ………………………………………………………………………………
27
CHƯƠNG 2. ………………………………………………………………………………….
28
BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ RON TÍCH CHẬP …….
28
2.1 Khái niệm về nhận dạng
……………………………………………………….
28
2.1.1 Nhận dạng đối tượng ………………………………………………………………….
28
2.1.2 Nhận dạng khuôn mặt …………………………………………………………………
29
2.2. Lịch sử và phát triển
……………………………………………………………
30
2.3. Cách thức hoạt động
……………………………………………………………
30
2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera …..
32
2.4.1 Nhận diện khuôn mặt
………………………………………………………………….
32
2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt
………………………………..
33
2.4.3 Liên kết khuôn mặt …………………………………………………………………….
34
2.5 Kết quả các thuật toán sử dụng mạng nơ ron nhân tạo …………..
35
2.5.1 Mô hình DeepID 2 (NIPS 2014) …………………………………………………..
35
2.5.2 Mô hình DeepID3 (arXiv 2015)
……………………………………………………
38
2.5.3 Mô hình DeepFace (Facebook, CVPR 2014) ………………………………….
39
2.5.4 Mô hình FaceNet (Google 2015)…………………………………………………..
39
2.5.5 Mô hình Baidu (2015)…………………………………………………………………
41
2.6 Kết luận ………………………………………………………………………………
42
CHƯƠNG 3. ………………………………………………………………………………….
44
SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP
……………………………………….
44
TRONG NHẬN DẠNG ĐỐI TƯỢNG ……………………………………………..
44
3.1 Sơ lược về áp dụng mạng nơ ron tích chập vào các giải pháp
thông minh trong thực tế
………………………………………………………..
44
v

3.2 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện
người vào/ra và đánh giá thực nghiệm, so sánh với phương pháp
HOG …………………………………………………………………………………….
44
3.2.1 Giới thiệu hệ thống nhận diện và đếm lượt người vào/ra sử dụng mạng
nơ ron tích chập
……………………………………………………………………………
44
3.2.2 Giới thiệu kiến trúc của máy chủ xử lý nhận diện và đếm lượng người .
45
3.2.3 Giới thiệu sơ lược về phương pháp mô tả đặc trưng HOG sẽ được dùng
để so sánh
……………………………………………………………………………………
47
3.2.4 So sánh khả năng nhận diện của hệ thống nhận diện người vào/ra sử
dụng mạng nơ ron tích chập với phương pháp HOG đã có
…………………..
50
3.2.5 Mô tả cơ chế chạy nhận diện người trong lõi máy chủ tính toán
…………
52
3.2.6 Mô tả quá trình sử dụng hệ thống ở giao diện người dùng để hiển thị kết
quả …………………………………………………………………………………………….
53
3.3 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện
khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp
HOG …………………………………………………………………………………….
55
3.3.1 Xây dựng hệ thống nhận diện khuôn mặt ……………………………………….
55
3.3.2 Giới thiệu cơ chế của máy chủ xử lý nhận diện
……………………………….
56
3.3.3 Giới thiệu sơ lược về phương pháp phát hiện khuôn mặt sử dụng HOG sẽ
được dùng để so sánh ……………………………………………………………………
58
3.3.4 So sánh hệ thống nhận diện khuôn mặt với phương pháp HOG đã có …
59
3.3.4 So sánh khả năng nhận diện khuôn mặt giữa HOG và CNN
………………
62
3.2.5 Kết quả hệ thống web nhận diện khuôn mặt
……………………………………
64
3.3 Kết luận ………………………………………………………………………………
67
KẾT LUẬN
……………………………………………………………………………………
68
Kết quả đã thực hiện được của luận văn…………………………………………………
68
Phương hướng phát triển luận văn ………………………………………………………..
69
TÀI LIỆU THAM KHẢO
……………………………………………………………….
70

vi

DANH MỤC HÌNH VẼ
Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10]………….
4
Hình 1.2: Hình ảnh một nơ ron sinh học [14] …………………………………………………………..
5
Hình 1.3: Công thức của một nơ ron nhân tạo [41]……………………………………………………
5
Hình 1.4: Hình ảnh một nơ ron nhân tạo …………………………………………………………………
6
Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế ………………………………..
6
Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có
thiên lệch …………………………………………………………………………………………………………..
7
Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau
……………………
7
Hình 1.8: Đồ thị hàm Sigmoid ………………………………………………………………………………
8
Hình 1.9: Đồ thị hàm TanH ………………………………………………………………………………….
9
Hình 1.10: Đồ thị hàm tuyến tính
…………………………………………………………………………..
9
Hình 1.11: Đồ thị hàm RELU ……………………………………………………………………………..
10
Hình 1.12: Đồ thị hàm ELU
………………………………………………………………………………..
10
Hình 1.13: Mạng nơ ron truyền thẳng …………………………………………………………………..
11
Hình 1.14: Mạng nơ ron hồi quy ………………………………………………………………………….
12
Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy
………………………………………
12
Hình 1.16: Các tầng (layer) trong CNN là 3 chiều…………………………………………………..
18
Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20] ……………….
19
Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19] …………………………………
19
Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ ……………………………………..
20
Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron …………
20
Hình 1.21: Ví dụ về lớp tích chập ………………………………………………………………………..
21
Hình 1.22: So sánh giữa ReLU và Sigmoid.
…………………………………………………………..
23
Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp ……………………………………………………
24
Hình 1.24: Một ví dụ của lớp được kết nối đầy đủ ………………………………………………….
25
Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải)
……
25
vii

Hình 1.26: Cấu trúc của AlexNet …………………………………………………………………………
26
Hình 1.27: Cấu trúc của VGGNet ………………………………………………………………………..
27
Hình 2.1: Sự khác biệt giữa nhận dạng đối tượng và phát hiện đối tượng
……………………
29
Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32,
conv42 và conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt…………………………
29
Hình 2.3: Tổng quan về phương pháp nhận dạng khuôn mặt người
……………………………
31
Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh …………………………………………………………
31
Hình 2.5: Các giai đoạn dò tìm và hiệu chỉnh
…………………………………………………………
32
Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu ……………..
33
Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mô tả cục bộ cho nhiệm vụ
phát hiện các điểm mốc trên khuôn mặt ………………………………………………………………..
33
Hình 2.8: Ví dụ về các điểm mốc trên khuôn mặt……………………………………………………
34
Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS
CS2, là bộ dữ liệu mở rộng của IJB-A ………………………………………………………………….
35
Hình 2.10: Kiến trúc mạng của mô hình DeepID 2 …………………………………………………
36
Hình 2.11: 25 phần khuôn mặt tốt nhất được chọn để trích xuất đặc điểm
…………………..
36
Hình 2.12: Kiến trúc mạng của mô hình DeepID3 ………………………………………………….
38
Hình 2.13: Kiến trúc của DeepFace ……………………………………………………………………..
39
Hình 2.14: Hình ảnh: Mô hình lấy cảm hứng từ Zeiler & Fergus ………………………………
40
Hình 2. 15 Mô hình GoogleNet
……………………………………………………………………………
40
Hình 2.16: Tổng quan về cấu trúc CNN trên nhiều phần khuôn mặt của Baidu ……………
41
Hình 2.17: Thống kê các mô hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất
bản
………………………………………………………………………………………………………………….
42
Hình 3.1: Hình ảnh thiết kế của hệ thống nhận diện đối tượng ………………………………….
45
Hình 3.2: Phương pháp mạng YOLO sử dụng để nhận diện đối tượng.
………………………
46
Hình 3.3: Mô hình mạng yolo ……………………………………………………………………………..
47
Hình 3.4: Tiền xử lý để xác định khung hình …………………………………………………………
48
Hình 3.5: Độ dốc sau khi tính toán
……………………………………………………………………….
48
viii

Hình 3.6: Kết quả sau khi tính toán véc tơ đặc trưng cho từng ô ……………………………….
49
Hình 3.7: Biểu diễn các véc tơ chỉ hướng theo HOG thu được sau khi tính toán ………….
50
Hình 3.8: Hình ảnh nhận diện bằng phương pháp HOG …………………………………………..
50
Hình 3.9: Hình ảnh nhận diện bằng phương pháp CNN …………………………………………..
51
Hình 3.10: Hệ thống sử dụng ffmpeg để trích xuất các khung hình trong video …………..
52
Hình 3.11: Các khung hình lần lượt được hệ thống trích xuất và đưa vào lõi để xử lý. ….
52
Hình 3.12: Dữ liệu số người vào/ra được nhập vào cơ sở dữ liệu, và video báo cáo được
hệ thống tự động xuất ra để làm đối chiếu.
…………………………………………………………….
53
Hình 3.13: Hình ảnh đăng nhập vào hệ thống…………………………………………………………
53
Hình 3.14: Kết quả dữ liệu đã được thêm vào cơ sở dữ liệu và hiển trị trên web. …………
54
Hình 3.15: Một ví dụ tương tự dữ liệu được xuất báo cáo nhận diện trong hệ thống.
…….
54
Hình 3.16: Kiến trúc hệ thống nhận diện khuôn mặt, tích hợp cùng hệ thống mua hàng
..
55
Hình 3.17: Khuôn mặt được trích xuất từ bức ảnh
…………………………………………………..
56
Hình 3.18: Hình ảnh 68 điểm mốc trên khuôn mặt được sử dụng trên bộ thư viện dlib …
57
Hình 3.19: Hình ảnh trích xuất đặc trưng khuôn mặt
……………………………………………….
57
Hình 3.20: Khuôn mặt được sử dụng để nhận dạng
…………………………………………………
58
Hình 3.21: Khuôn mặt được trích xuất ………………………………………………………………….
58
Hình 3.22: Hình ảnh được xử lý sau khi qua bộ lọc Gabor ……………………………………….
58
Hình 3.23: Các đặc trưng được trích xuất bằng HOG
………………………………………………
59
Hình 3.24: Phát hiện khuôn mặt sử dụng HOG ………………………………………………………
59
Hình 3.25: Phát hiện khuôn mặt sử dụng CNN ………………………………………………………
60
Hình 3.26: Phát hiện khuôn mặt sử dụng HOG với góc nghiêng lớn ………………………….
60
Hình 3.27: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn ………………………….
61
Hình 3.28: Kết quả nhận diện khuôn mặt với HOG
…………………………………………………
62
Hình 3.29: Phát hiện khuôn mặt sử dụng CNN ………………………………………………………
62
Hình 3. 30: Nhận diện khuôn mặt sử dụng HOG với góc nghiêng lớn
………………………..
63
Hình 3.31: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn ………………………….
63
ix

Hình 3.32: Giao diện hệ thống trên web (hai hình trên) và giao diện hệ thống trên mobile
(hai hình dưới) ………………………………………………………………………………………………….
65
Hình 3.33: Huấn luyện thêm khuôn mặt mới
………………………………………………………….
65
Hình 3.34: Kết quả nhận diện sau khi huấn luyện …………………………………………………..
66
Hình 3.35: Nhận diện user có ID 00280 với góc nghiêng khoảng 80 độ và user có ID
00388 với góc nghiêng 30 độ trên mặt phẳng Oxz ………………………………………………….
67

x

DANH MỤC BẢNG BIỂU
Bảng 2.1: Thống kê xác minh độ chính xác của khuôn mặt bằng DeepID2 khi tăng dần số
lượng của các phần khuôn mặt
…………………………………………………………………………….
36
Bảng 2.2: So sánh độ chính xác của mô hình DeepID2 với các kết quả mô hình trước đó
trên bộ thư viện LFW…………………………………………………………………………………………
37
Bảng 2.3: Kết quả so sánh của mô hình DeepID3 với các mô hình trước trên bộ thư viện
LFW ……………………………………………………………………………………………………………….
38
Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu
LFW ……………………………………………………………………………………………………………….
39
Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet …………………………..
41
Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo
……………………..
41
Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau …………………………………………………….
42
Bảng 3.1 Kết quả so sánh nhận diện người giữa phương pháp mạng nơ ron tích chập và
phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống
……………….
51
Bảng 3.2: Kết quả so sánh phát hiện khuôn mặt giữa phương pháp mạng nơ ron tích chập
và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống …………..
61
Bảng 3.3: Kết quả so sánh nhận diện khuôn mặt giữa phương pháp mạng nơ ron tích chập
và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống …………..
64
Bảng 3.4: Cơ sở dữ liệu thời gian phát hiện khuôn mặt của hệ thống …………………………
67

xi

DANH MỤC VIẾT TẮT
Từ viết tắt
Ý nghĩa
AI
Artificial Intelligence – Trí tuệ nhân tạo
ANN
Artificial Neural Network – Mạng thần kinh nhân tạo
CNN
Convolutional Neural Network – Mạng thần kinh tích chập
ReLU
Rectified Linear Unit – Điều chỉnh đơn vị tuyến tính
CSDL
Cơ sở dữ liệu
GPU
Graphics Processing Unit – Vi xử lý đồ họa
CPU
Central Processing Unit – Bộ xử lý trung tâm
CUDA
Compute Unified Device Architecture – kiến trúc tính toán song song
do hãng NVIDIA phát triển.
IOT
Internet of Things – vạn vật kết nối
ASCI Red
Accelerated Strategic Computing Initiative Red – một siêu máy tính
của Intel
W
Watt – một đơn vị đo lường của điện lực
kW
KiloWatt – một đơn vị đo lường của điện lực
SVM
Support Vector Machine – một thuật toán phân lớp
DP2MFD
Deep Pyramid Deformable Parts Model for Face Detection
IJB-A
IARPA Janus Benchmark-A – một thử thách mở cho nhận diện khuôn
mặt
KLT
Kanade–Lucas–Tomasi – một giải thuật thị giác máy tính
LFW
Labeled Faces in the Wild – một bộ thư viện khuôn mặt
xii

API
Application Programming Interface – giao diện lập trình
YOLO
You only look once – một hệ thống mạng nơ ron nhân tạo phát hiện
đối tượng thời gian thực
HOG
Histogram of Oriented Gradients – biểu đồ độ dốc định hướng
PCA
Principal Component Analysis – Phân tích thành phần chính
1

LỜI MỞ ĐẦU
Lý do chọn đề tài
Trong giai đoạn gần đây, cụm từ cách mạng công nghiệp lần thứ tư được nhắc đến
rất nhiều trên truyền thông. Khái niệm cách mạng công nghiệp 4.0 được đưa ra dựa trên
xu thế bùng nổ của nhiều công nghệ mới như: công nghệ truyền dẫn tốc độ cao, CPU rất
mạnh, GPU hàng ngàn nhân, công nghệ chế tạo bộ nhớ đạt nhiều đột phá. Song song với
đó, công nghệ dần làm các thiết bị nhỏ lại, nhưng sức mạnh tăng lên đáng kể. Công nghệ
mạch nhúng cũng bùng nổ không kém với nhiều mạch nhúng nhỏ, sử dụng lượng điện
khiêm tốn, nhưng khả năng tính toán lên tới hàng ngàn tỉ phép tính trên giây, tương
đương sức mạnh của 1 siêu máy tính cách đây khoảng 20 năm. Ví dụ như board mạch
Nvidia’s Jetson TX1 được ra mắt năm 2015, có thể nằm vừa trong lòng bàn tay và chỉ sử
dụng 10 oát điện, đã có sức mạnh tính toán tới 1 ngàn tỉ phép tính trên giây, điều mà cách
đó tròn 20 năm, vào năm 1996, siêu máy tính ASCI Red của Intel, phải sử dụng tới 6000
vi xử lý Pentium Pros, vận hành với 1000 kW mới có thể đạt được sức mạnh tính toán
trên.
Máy tính hiện nay có sức mạnh tính toán lớn nhưng giá thành lại ở mức phổ thông,
dẫn tới người làm nghiên cứu rất dễ dàng để có thể tự kiểm nghiệm được các lý thuyết về
trí tuệ nhân tạo từ nhiều năm trước. Cùng với mã nguồn mở, hiện làn sóng trí tuệ nhân tạo
đang bùng nổ mạnh mẽ trong thời gian gần đây, và đem lại rất nhiều ứng dụng trong đời
sống
Chính vì lý do trên, việc tìm hiểu và nghiên cứu thị giác máy tính rất có ý nghĩa và
thiết thực. Hiện nay trên thế giới, nhiều nước đã và đang ứng dụng thị giác máy tính vào
đời sống hàng ngày, ví dụ như SkyNet của Trung Quốc, các hệ thống kiểm duyệt nội
dung tự động, …
Cơ sở khoa học và thực tiễn của đề tài
Ngày nay, trong kỷ nguyên số, máy tính là một phần không thể thiếu trong nghiên
cứu khoa học cũng như trong đời sống hàng ngày. Tuy nhiên, do hệ thống máy tính dựa
trên lý thuyết cổ điển (tập hợp, logic nhị phân), nên dù có khả năng tính toán lớn và độ
chính xác cao, thì máy tính cũng chỉ có thể làm việc theo một chương trình gồm các thuật
toán được viết sẵn do lập trình viên chứ chưa thể tự lập luận hay sáng tạo.
Học máy (Machine learning) là một phương pháp phân tích dữ liệu có thể tự động
hóa phân tích dữ liệu và tìm ra các trích xuất đặc trưng của bộ dữ liệu. Học máy sử dụng
các thuật toán trừu tượng để tự học từ dữ liệu, cho phép máy tính tìm thấy những thông
2

tin có giá trị ẩn ở rất sâu mà không thể lập trình được bằng cách thông thường. Khi tiếp
xúc với dữ liệu mới, học máy có thể thích ứng rất nhanh và độc lập.
Học sâu (Deep Learning) là một ngành đặc biệt của học máy. Học sâu sử dụng
mạng nơ ron nhân tạo (Artificial Neural Networks) để giải quyết các bài toán mà tính toán
cứng chưa thể xử lý được như dữ liệu trừu tượng, dữ liệu mờ, dữ liệu không rõ ràng,…
Với tính chất như vậy, học sâu thường được ứng dụng trong nhận diện hình ảnh, nhận
diện giọng nói, xử lý ngôn ngữ tự nhiên hoặc dự đoán, dự báo.
Mạng nơ ron nhân tạo (Artificial Neural Networks) là một mô hình xử lý thông tin,
cấu thành từ các lớp nơ ron, được ra đời trên cơ sở mô phỏng hoạt động não bộ của sinh
vật. Mạng nơ ron nhân tạo gắn kết nhiều nơ ron theo một mô hình nhất định, được trải
qua huấn luyện để rút ra được kinh nghiệm, và sử dụng các kinh nghiệm đã có để xử lý
các thông tin mới. Mạng nơ ron nhân tạo thường áp dụng vào giải các bài toán nhận dạng
mẫu, hoặc dự đoán.
Mạng nơ ron Tích chập (Convolutional Neural Network) là một trong những mô
hình học sâu hiện đại nhất hiện nay. Mạng nơ ron Tích chập hiện nay thường được sử
dụng nhiều trong các hệ thống thông minh do ưu điểm của mạng là có độ chính xác cao,
tuy nhiên tốc độ tính toán lại rất nhanh. Vì lý do đó, mạng nơ ron tích chập rất mạnh trong
xử lý hình ảnh, và được ứng dụng rất nhiều trong ngành thị giác máy tính trong các bài
toán liên quan đến nhận dạng đối tượng.
Ngày nay, với sự phát triển của công nghệ bán dẫn, máy tính ngày càng nhỏ đi,
năng lượng tiêu thụ ngày càng thấp xuống, trong khi sức mạnh lại ngày càng tăng lên. Với
những ưu điểm như vậy, chúng ta có thể thấy rất nhiều thiết bị thông minh đã và đang
hiện diện mọi nơi trong đời sống, với camera nhiều điểm ảnh, bộ nhớ trong lớn và vi xử
lý mạnh như: điện thoại thông minh, máy ảnh kỹ thuật số, camera hành trình,… Ngoài ra,
với sự bùng nổ của xu hướng mạng vạn vật IOT, người ta có thể sẽ còn thấy rất nhiều
thiết bị thông minh mới xuất hiện: xe ô tô tự lái, thiết bị bay không người lái tự giao
hàng,… Có thể thấy, việc sử dụng trí thông minh nhân tạo để khai thác dữ liệu hình ảnh
trong các thiết bị thông minh trong tương lai đã và đang trở thành xu hướng. Từ nhận
định trên và sự gợi ý của giảng viên hướng dẫn, tôi quyết định chọn nội dung “Nghiên
cứu về mạng Neural Convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh
vực thị giác máy tính” để làm đề tài nghiên cứu thực hiện luận văn thạc sỹ của mình.
Mục tiêu của luận văn
Luận văn của tôi tập trung vào nghiên cứu, tìm hiểu về mạng nơ ron tích chập. Sau
đó so sánh các phương pháp học sâu ở mức độ tổng quan trên phương diện học thuật, từ
3

đó thấy được tiềm năng cũng như hạn chế của AI với cái nhìn khách quan nhất. Ở phần
ứng dụng, tôi sử dụng mạng nơ ron tích chập để áp dụng vào hai bài toán thực tế: bài toán
nhận dạng người và bài toán nhận diện khuôn mặt trong lĩnh vực thị giác máy tính.
Cấu trúc luận văn
Luận văn được tổ chức gồm ba chương gồm:
 Chương 1: Trình bày tổng quan về nơ ron, các thành phần và cơ chế hoạt
động của nơ ron. Từ đó, trình bày về một số kiểu mạng nơ ron và cơ chế lan
truyền ngược. Cuối cùng là giới thiệu về cấu tạo và cách hoạt động của
mạng nơ ron tích chập;
 Chương 2: Trình bày tổng quan về bài toán nhận dạng bằng mạng nơ ron
tích chập, cách thức hoạt động của việc nhận dạng đối tượng và nhận dạng
khuôn mặt của mạng nơ ron tích chập. Ngoài ra, chương hai giới thiệu về
các mô hình sử dụng nơ ron tích chập nổi tiếng đang được áp dụng hiện nay
và kết quả của từng mô hình;
 Chương 3: Áp dụng mạng nơ ron tích chập vào trong thực tế. Ở chương
này, tác giả báo cáo về kết quả đạt được khi áp dụng mạng nơ ron tích chập
để xây dựng hai hệ thống: hệ thống nhận dạng người và hệ thống nhận diện
khuôn mặt. Ngoài ra, tác giả có thực hiện so sánh với phương pháp cũ để có
thể thấy ưu điểm và hạn chế của mạng nơ ron tích chập.
Cuối cùng là phần kết luận cho phép tóm tắt kết quả đã đạt được và nêu ra những
tồn tại, dựa vào đó để đưa ra những mục tiêu và phương hướng phát triển cho hệ thống
sau này.

4

CHƯƠNG 1.
TỔNG QUAN VỀ MẠNG NƠ RON
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP
1.1. Nơ ron nhân tạo
1.1.1 Lịch sử của nơ ron nhân tạo
Vào năm 1943, nhà thần kinh học Warren McCulloch đã cùng nhà toán học
Walter Pitts đã viết một cuốn sách về cách mạng thần kinh hoạt động. Và họ đã thực hiện
mô phỏng một mạng thần kinh đơn giản trên một mạch điện. [9] Vào năm 1949, Donald Hebb đã viết cuốn sách Organization of Behavior. Điểm
nhấn chính là mạng thần kinh nào được sử dụng nhiều sẽ được tăng cường.
Vào năm 1959, David Hubel và Torsten Wiesel đã xuất bản cuốn sách Receptive
fields of single neurons in the cat’s striate cortex, miêu tả về phản ứng của các tế bào thần
kinh thị giác trên loài mèo, cũng như cách loài mèo ghi nhớ và nhận diện hình dạng trên
kiến trúc vỏ não của nó.

Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10] Vào năm 1989, Yann LeCun đã áp dụng thuật toán học cho mạng nơ ron theo kiểu
lan truyền ngược vào kiến trúc mạng nơ ron tích chập của Fukushima. Sau đó vài năm,
LeCun đã công bố LeNet-5 [13]. Có thể nói, LeNet-5 là một trong những mạng nơ ron
tích chập sơ khai nhất, tuy nhiên các dấu ấn của nó vẫn tồn tại tới ngày nay, có thể thấy
thông qua một số thành phần thiết yếu mà các mạng nơ ron tích chập của ngày nay vẫn
đang sử dụng
5

1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học

Hình 1.2: Hình ảnh một nơ ron sinh học [14] Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, trong đó:
 Thân nơ ron: là nơi xử lý các tín hiệu được đưa vào;
 Tua gai thần kinh: là nơi nhận các xung điện vào trong nơ ron;
 Sợi trục thần kinh: là nơi đưa tín hiệu ra ngoài sau khi được xử lý bởi nơ
ron;
 Khớp thần kinh: vị trí nằm giữa tua gai thần kinh và sợi trục thần kinh, đây
là điểm liên kết đầu ra của nơ ron này với đầu vào của nơ ron khác.
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo
Dựa vào cấu tạo của một nơ ron sinh học, các nhà khoa học nghiên cứu và lập trình
đã đưa ra kiến trúc của một nơ ron nhân tạo:

Hình 1.3: Công thức của một nơ ron nhân tạo [41] 6

Mạng nơ ron nhân tạo có thể mô tả đơn giản lại như sau:

Hình 1.4: Hình ảnh một nơ ron nhân tạo
Trong đó:
 Danh sách các đầu vào: Là các thuộc tính đầu vào của một nơ ron. Số
lượng thuộc tính đầu vào thường nhiều hơn một, do dữ liệu thô đầu vào
thường là một vector nhiều chiều, hoặc nhiều nơ ron tầng trước kết nối tới
một nơ ron tầng sau.
 Trọng số liên kết: Các liên kết được thể hiện độ mạnh yếu qua một giá trị
được gọi là trọng số liên kết. Kết hơp với các đầu truyền, tín hiệu đến các
nơ ron nhân tạo khác sẽ được tính bằng
;

Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế
7

 Hàm tổng: Tổng các tích của các đầu vào với trọng số liên kết mô phỏng
các khớp kết nối. Sau đó đi qua hàm tính tổng để tính ra giá trị trước khi
đưa vào hàm truyền;
 Thiên lệch (b): Độ lệch được đưa vào sau khi khi tính toán xong hàm tổng,
tạo ra giá trị cuối cùng trước khi đưa vào hàm truyền. Mục đích của việc
thêm vào thiên lệch nhằm dịch chuyển chức năng của hàm kích hoạt sang
trái hoặc phải, giúp ích khi mạng được huấn luyện. Hình ảnh vị trí thiên
lệch được thêm vào trong mạng nơ ron thực tế.
Hình ảnh huấn luyện khi có và không có thiên lệch:

Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch

Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau
Hàm kích hoạt (Activation functions): Hàm này được sử dụng để tính toán giá trị
của đầu ra dựa vào giá trị của hàm Tổng.
8

1.1.4. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo
1.1.4.1 Hàm Sigmod

 Biểu diễn hàm:

 Đạo hàm của hàm:

Hàm Sigmoid được sử dụng vì ngưỡng của nó nằm trong khoảng (0, 1). Do đó,
hàm này được sử dụng nhiều cho các mô hình dự đoán xác suất đầu ra, tức kết quả chỉ tồn
tại trong khoảng từ 0 đến 1: khi đầu vào là số dương lớn, đầu ra của hàm sigmoid gần
bằng 1. Khi nhỏ hơn 0, đầu ra gần bằng 0. Tuy nhiên, việc tối ưu của hàm này khó
khăn, nguyên nhân vì nếu giá trị đầu vào của hàm là 1 số rất lớn, thì đầu ra của hàm càng
về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm.

Hình 1.8: Đồ thị hàm Sigmoid
1.1.4.2 Hàm TanH
 Biểu diễn hàm:

 Đạo hàm của hàm:

Hàm TanH được sử dụng vì đầu ra của hàm nằm trong khoảng
, thích hợp
với các mô hình đầu ra có ba giá trị: âm, trung tính (0) và dương. Chúng ta có thể thấy rõ
hơn điều này trong hình minh họa.
9

Hình 1.9: Đồ thị hàm TanH
1.1.4.3. Hàm tuyến tính
 Biểu diễn hàm:

 Đạo hàm của hàm:

Hàm tuyến tính áp dụng thao tác nhận dạng trên dữ liệu với dữ liệu đầu ra tỷ lệ
thuận với dữ liệu đầu vào.

Hình 1.10: Đồ thị hàm tuyến tính
1.1.4.4 Hàm RELU
 Biểu diễn hàm:

 Đạo hàm của hàm:

Hàm RELU áp dụng với những trường hợp cần đầu ra nằm trong khoảng (0, +∞).
Hàm RELU có tốc độ tính toán rất nhanh, gán các giá trị âm trở thành 0 ngay lập tức, phù
10

hợp cho việc huấn luyện từ dữ liệu chuẩn. Tuy nhiên, điều này khiến hàm RELU không
ánh xạ các giá trị âm một cách thích hợp.

Hình 1.11: Đồ thị hàm RELU
1.1.4.5 Hàm ELU
 Biểu diễn hàm:

 Đạo hàm của hàm:

Hàm ELU là một biến thể của hàm RELU. Hàm thường được sử dụng khi ngưỡng
đầu ra của nó nằm trong khoảng (-1, +∞). Hàm ELU khắc phục hạn chế ánh xạ các giá trị
âm của hàm RELU.

Hình 1.12: Đồ thị hàm ELU
11

1.2 Mạng nơ ron nhân tạo
1.2.1 Giới thiệu mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giải
thuật lập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộ
các sinh vật sống. Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập
dữ liệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lại
chứa nhiều nơ ron. Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kết
được biểu hiện qua trọng số liên kết.
Lập trình thông thường có thể làm được rất nhiều phần mềm lớn, như tính toán mô
phỏng các vụ nổ hạt nhân trong siêu máy tính ở các phòng thí nghiệm, hoặc tái hiện các tế
bào ở cấp độ phân tử để phân tích các thử nghiệm thuốc. Một siêu máy tính có thể tính
toán được nhiều tỉ phép tính trên giây, tuy nhiên lập trình thông thường lại gặp khó khăn
trong việc nhận ra các mẫu đơn giản, ví dụ như nhận diện mặt người, điều mà một bộ não
sinh học xử lý nhanh và chính xác hơn nhiều.
Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được áp
dụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải
quyết được. Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu
thế trên nhiều lĩnh vực.
1.2.2 Một số kiểu mạng nơ ron
Có hai kiểu mạng nơ ron chính: mạng nơ ron truyền thằng (feedforward neural
network) và mạng nơ ron hồi quy (recurrent neural network).
Mạng truyền thẳng và hồi quy được minh họa như sau:

Hình 1.13: Mạng nơ ron truyền thẳng

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *