1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

86 188 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 5,15 MB

Nội dung

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 đó,

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Chuyên ngành : Kỹ thuật phần mềm

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

Hà Nội – 2019

Trang 3

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

Trang 4

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!

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

xi

DANH MỤC VIẾT TẮT

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

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

Trang 14

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

Trang 15

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

Trang 16

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ừ

Trang 17

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

Trang 18

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

Trang 19

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]

Trang 20

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ế

Trang 21

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

Trang 22

về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm

Trang 25

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

Trang 26

12

Dễ thấy, ở mạng nơ ron truyền thẳng, các nơ ron trong tầng ẩn đều được kết

nối với các nơ ron trong tầng n Do có nhiều tầng ẩn nên chúng ta có thể thấy rằng mạng

truyền thẳng kéo dài trong không gian, và là không có bất kỳ đường tuần hoàn (cyclic path) nào nằm trong mạng Mạng nơ ron truyền thẳng rất phổ biến hiện nay

Hình 1.14: Mạng nơ ron hồi quy

Một loại khác là mạng nơ ron hồi quy Không giống như mạng nơ ron truyền thẳng, mạng nơ ron hồi quy có ít nhất một đường dẫn tuần hoàn Chúng ta có thể thấy nó

ở hình minh họa phía trên Vì có một đường dẫn tuần hoàn, nên mạng nơ ron hồi quy có thể gây ra vòng lặp vô cực Tuy nhiên, mạng nơ ron tuần hoàn có một ứng dụng quan trọng là chúng có thể nhận diện cho các giai đoạn thời gian khác nhau, như hình minh họa sau:

Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy

Như ví dụ trên, có một nút A kết nối với nút B và một chu kỳ đến chính nút A Mạng nơ ron hồi quy không xử lý đường dẫn tuần hoàn và các kết nối cùng một lúc

Mạng nơ ron hồi quy giả sử rằng đầu ra của nút A trong thời gian n là đầu vào của nút B

và nút A trong thời gian n + 1 Vì vậy, ngoài tính chất kéo dài trong không gian khi kết nối với các tầng nơ ron tiếp theo, mạng nơ ron hồi quy cũng nằm sâu trong thời gian Vì vậy, các mạng nơ ron hồi quy có thể mô hình hóa các hệ thống thay đổi theo bối cảnh Ví dụ: mạng nơ ron hồi quy thường được sử dụng trong xử lý ngôn ngữ theo ngữ cảnh Mạng

Trang 27

13

nơ ron hồi quy có thể xử lý các phụ thuộc xa (long-term dependencies) theo mốc thời gian, ví dụ như mạng bộ nhớ dài-ngắn (Long Short Term Memory networks)

1.2.3 Mạng nơ ron lan truyền ngược

1.2.3.1 Tổng quan về mạng nơ ron lan truyền ngược

Giải thuật lan truyền ngược được mô tả ngắn gọn như sau:

1 Bước 1: Lan truyền Giai đoạn lan truyền có hai bước, lan truyền tiến và lan

truyền ngược Bước lan truyền tiến là nhập dữ liệu huấn luyện vào các mạng nơ ron và tính toán đầu ra Sau đó, dựa vào kết quả đầu ra, so sánh với

dữ liệu huấn luyện Chúng ta có thể sử dụng lan truyền ngược để cập nhật ngược lại trọng số lại cho các nơron trong các tầng trước đó

2 Bước 2: Cập nhật trọng số Mạng cập nhật các giá trị của trọng số của nơ

ron theo lỗi của kết quả đầu ra

3 Bước 3: Lặp hai bước trên Lặp lại bước một và hai cho đến khi sai số tối

thiểu Sau đó kết thúc khóa huấn luyện

1.2.3.2 Cách thức lan truyền ngược

1 Sử dụng để biểu diễn đầu vào cho nút của lớp

2 Sử dụng cho trọng số từ nút của lớp đến nút của lớp

3 Sử dụng được biểu diễn cho độ lệch của nút của lớp

4 Sử dụng đại diện cho đầu ra của nút của lớp

5 Sử dụng đại diện cho đầu ra mong muốn, dựa trên tập huấn luyện được sử dụng

6 Sử dụng là hàm kích hoạt, sử dụng Sigmoid cho hàm kích hoạt

Để có được lỗi tối thiểu, hàm chi phí được tính toán với công thức như sau:

Trang 28

đó, phương trình mới thu được là:

Trong đó x k L sự kết hợp tuyến tính của tất cả các đầu vào của nút j trong tầng L với các trọng số Hàm sigmoid là đạo hàm có dạng sau:

Trang 29

để biểu diễn nút của tầng Do vậy, phương trình mới thu được là:

Ta xem xét các nút của tầng ẩn Ở lớp ngay trước lớp đầu ra Áp dụng đạo hàm riêng một phần trên trọng số cho hàm chi phí Các trọng số cho các nút của tầng ẩn này:

Trang 30

Dòng thứ 2 của (14) dựa vào đầu vào của là sự kết hợp tuyến tính giữa các đầu

ra của nút của lớp trước với trọng số Vì đạo hàm không liên quan đến nút của lớp L

Do đó, ta đơn giản hóa đạo hàm dựa trên quy tắc chuỗi:

Chuyển thành Do đó phương trình trở thành:

Ta xét 2 trường hợp:

Trang 31

17

Đối với tầng đầu ra nút k: , trong đó:

Đối với tầng ẩn nút j: , trong đó:

Áp dụng quy trình tương tự Ví dụ, Tính đạo hàm riêng cho độ lệch của nút k trong lớp cuối cùng và thu được:

Bước 2: Đối với mỗi nút đầu ra, ta thực hiện phép tính:

Bước 3: Đối với mỗi nút ở tầng ẩn, ta thực hiện phép tính:

Trang 32

1.3 Mạng nơ ron tích chập

1.3.1 Khái niệm về mạng nơ ron tích chập

Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt Mạng nơ ron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay Hầu hết các hệ thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý nhanh và độ chính xác cao Trong mạng nơ ron truyền thống, các tầng được coi là một chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: chiều cao, chiều rộng và chiều sâu (Hình 1.11) Mạng nơ ron tích chập có hai khái niệm quan trọng: kết nối cục bộ và chia sẻ tham số Những khái niệm này góp phần giảm số lượng trọng số cần được huấn luyện, do đó tăng nhanh được tốc độ tính toán

Hình 1.16: Các tầng (layer) trong CNN là 3 chiều

Trang 33

19

Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20]

1.3.2 Mô hình mạng nơ ron tích chập

Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập:

1 Tầng tích chập;

2 Tầng gộp (pooling layer);

3 Tầng được kết nối đầy đủ (fully-connected)

Tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thực

hiện tích chập nhiều lần trên tầng trước Tầng gộp có thể làm giảm kích thước mẫu trên

từng khối 2x2 của tầng trước đó Ở các mạng nơ ron tích chập, kiến trúc mạng thường

chồng ba tầng này để xây dựng kiến trúc đầy đủ Ví dụ minh họa về một kiến trúc mạng

nơ ron tích chập đầy đủ:

Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19]

Trang 34

Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ

Hình trên cho thấy nếu áp dụng mạng nơ ron được kết nối đầy đủ, toàn bộ kiến trúc mạng sẽ cần tính toán hơn 3 triệu nơ ron Số lượng lớn các nơ ron làm cho toàn bộ quá trình học rất chậm và dẫn đến quá tải so với khả năng tính toán của máy tính hiện tại

Qua một vài nghiên cứu về xử lý ảnh, các nhà nghiên cứu nhận thấy rằng các tính năng trong một hình ảnh thường là cục bộ, và các nhà nghiên cứu chú ý đến các tính năng cấp thấp đầu tiên khi xử lý ảnh Vì vậy, kiến trúc mạng có thể chuyển mạng được kết nối đầy đủ sang mạng được kết nối cục bộ, nhằm làm giảm độ phức tạp của tính toán Đây là một trong những ý tưởng chính trong CNN Chúng ta có thể thấy rõ hơn qua hình sau:

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

tầng ẩn

Giống như xử lý hình ảnh thông thường, chúng ta có thể kết nối cục bộ một khối vuông ma trận với nơ ron Kích thước khối thông thường là 3x3, 5x5, hoặc 7x7 Ý nghĩa vật lý của khối giống như một cửa sổ trượt (cửa sổ trượt là một trong những phương pháp

Trang 35

21

xử lý ảnh) Bằng cách đó, số lượng tham số có thể giảm xuống rất nhỏ nhưng không gây

ra giảm hoặc mất thông tin, vì hình ảnh thông thường thường có tính lặp trong không gian Để trích xuất nhiều thông tin hơn, các mạng nơ ron kết nối khối cùng với một nơ ron khác Độ sâu trong các tầng là số lần chúng ta kết nối một khu vực với các nơ ron khác nhau Ví dụ, mạng kết nối cùng một khu vực với 5 nơ ron khác nhau Vì vậy, độ sâu là năm trong tầng mới Chúng ta có thể thấy rõ hơn qua hình sau:

Hình 1.21: Ví dụ về lớp tích chập

Trong thực tế, có thể kết nối tất cả thông tin độ sâu (ví dụ: kênh 3 RGB) với nơ ron tiếp theo vì kết nối là cục bộ trong không gian và có chiều sâu đầy đủ Tuy nhiên ở ví dụ này chỉ kết nối thông tin cục bộ về chiều cao và chiều rộng Vì vậy, có thể có

các tham số trong hình trên cho nơ ron sau lớp màu xanh nếu chúng ta sử dụng cửa sổ

Biến thứ nhất và thứ hai là chiều cao và chiều rộng của kích thước cửa sổ và biến thứ ba là độ sâu của lớp

Ví dụ này di chuyển cửa sổ bên trong hình ảnh và làm cho tầng tiếp theo cũng có chiều cao và chiều rộng, và là một hai chiều Ví dụ: nếu chúng ta di chuyển cửa sổ 1 pixel mỗi lần, gọi là bước nhảy là 1, trong một hình ảnh và kích thước cửa sổ là

sẽ có các nơ ron ở tầng tiếp theo Có thể thấy rằng, kích

thước đã giảm từ 32 xuống 28 Vì vậy, để bảo toàn kích thước, chúng ta thêm phần trống vào đường viền Quay lại ví dụ trên, nếu chúng ta đệm với 2 pixel, có

các nơ ron ở lớp tiếp theo để giữ kích thước chiều cao và chiều

rộng Như ví dụ trên, nếu chúng ta sử dụng kích thước cửa sổ w, chúng ta sẽ có 1 vùng được tích chập với kích cỡ của cửa sổ mới là pixel Thông tin đường viền sẽ không ảnh hưởng nhiều vì những giá trị đó chỉ được sử dụng một lần

Trang 36

22

Phần kế tiếp sẽ chi tiết hơn về bước nhảy của cửa sổ trượt, tức khoảng cách thay đổi của cửa sổ mỗi lần Ví dụ: giả sử bước nhảy là 2 và cửa sổ trượt bao phủ vùng

Sau đó, cửa sổ thứ hai bao phủ vùng và cửa sổ thứ 3 bao phủ vùng

Ví dụ, nếu chúng ta sử dụng bước nhảy 1 và kích thước cửa sổ trong hình ảnh và không sử dụng bù viền (pad-zero), thì chúng ta sẽ có

các nơ ron ở lớp tiếp theo Nếu chúng ta thay đổi bước nhảy 1 thành bước nhảy 2 và những tham số khác vẫn giữ nguyên, thì chúng ta sẽ có có

những nơ ron ở lớp tiếp theo Chúng ta có thể kết luận rằng nếu chúng

ta sử dụng bước nhảy s, kích thước cửa sổ trong ảnh , thì sẽ có

các nơ ron ở lớp tiếp theo Khi chúng ta sử dụng bước nhảy 3 và những tham số khác vẫn giữ nguyên thì chúng ta sẽ nhận được Vì kết quả không phải là số nguyên, nên bước nhảy 3 không thể dùng vì chúng ta không thể có được một khối hoàn chỉnh trong một mạng nơ ron

1.3.2.2 Chia sẻ tham số

Trong ví dụ minh họa của mục 1.3.2.1, ta sẽ có số lượng là nơ ron

ở tầng tiếp theo có bước nhảy 1, kích thước cửa sổ 5 x 5 và không có đệm, với độ sâu là 5

Mỗi nơ ron sẽ có tham số Vì vậy, trong tầng tiếp theo sẽ có

tham số Ở đây, chúng ta có thể chia sẻ các tham số theo từng độ sâu, do đó nơ ron ở mỗi tầng ẩn sẽ sử dụng tham số giống nhau là

, và tổng tham số sử dụng cho mỗi tầng là Điều này làm số lượng tham số giảm một cách đáng kể Tương tự, các nơ ron ở mỗi độ sâu trong tầng tiếp theo sẽ áp dụng tích chập cho tầng trước đó Và quá trình học tập giống như học lõi (core) tích chập Đây là lý do mà các mạng nơ ron này được gọi là mạng nơ ron tích chập

1.3.2.3 Hàm kích hoạt

Trong mô hình nơ ron truyền thống, các mạng thường sử dụng hàm sigmoid cho hàm kích hoạt Tuy nhiên Krizhevsky [21] đã thử với hàm kích hoạt RELU Sau khi so

Trang 37

23

sánh hiệu quả của hàm kích hoạt RELU và hàm kích hoạt sigmoid trong CNNs Họ thấy rằng mô hình với RELU cần ít thời gian lặp hơn trong khi đạt tỷ lệ lỗi khi huấn luyện tương đương Chúng ta có thể thấy kết quả trong hình sau:

Hình 1.22: So sánh giữa ReLU và Sigmoid

Như hình trên, đường liền nét là mô hình sử dụng RELU và đường đứt nét là sử dụng hàm Sigmoid Có thể dễ dàng thấy rằng, RELU cần ít vòng lặp hơn để đạt tỉ lệ lỗi chấp nhận được Do đó, ngày nay đa số các mô hình CNN gần đây sử dụng RELU để làm hàm kích hoạt

1.3.2.4 Tầng gộp

Tầng gộp sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ lại các đặc điểm, tính chất nổi bật nhất của ảnh Điều này cho phép giảm mức độ tính toán khi hình ảnh có kích thước quá lớn, đồng thời không làm mất đi các đặc điểm quan trọng của ảnh

Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số lượng tham số trong mang nơ ron vẫn là quá lớn So với một tập dữ liệu tương đối nhỏ, nó

có thể gây ra tình trạng quá khớp (overfitting) Vì vậy, mạng nơ ron nhân tạo thường chèn các tầng gộp vào mạng Tầng gộp xử lý để giảm dần số lượng tham số nhằm cải thiện thời gian tính toán trong mạng nơ ron Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng cách sử dụng hàm max Tầng gộp hoạt động độc lập trên mỗi tầng trước đó Ngoài ra, có

Trang 38

24

thể đặt lượng pixel khi chúng ta di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng tích chập Ví dụ, trong hình sau:

Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp

Ở ví dụ trên, kích thước cửa sổ trượt là và bước nhảy mỗi lần trượt là 2 Tại mỗi cửa sổ, hàm max sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo Có hai loại tầng gộp: Nếu kích thước cửa sổ trượt bằng bước nhảy, đó là gộp chung (traditional pooling) Nếu kích thước cửa sổ trượt lớn hơn bước nhảy, đó là gộp nhóm (overlapping pooling) Trong thực tế, các mạng nơ ron thường sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp chung và sử dụng kích thước cửa sổ cùng kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất các đặc tính của dữ liệu

Ngoài việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác Ví dụ người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính toán giá trị cho tầng tiếp theo, được gọi là gộp trung bình

1.3.2.5 Tầng được kết nối đầy đủ

Tầng thứ ba là tầng được kết nối đầy đủ Tầng này giống như mạng nơ ron truyền thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối cùng là đầu ra Để có thể đưa hình ảnh từ những tầng trước vào, ta phải dàn phẳng dữ liệu

ra thành một véc tơ nhiều chiều Cuối cùng là sử dụng hàm softmax để thực hiện phân loại đối tượng

Trang 39

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)

Một trong những phương pháp đó là là giảm trọng số trong lúc huấn luyện Dropout là một trong những kỹ thuật nổi tiếng và khá phổ biển để khắc phục vấn đề này Dropout đặt đầu ra của mỗi nơ ron ẩn thành 0 với xác suất 0,5 Vì vậy, các nơ ron này sẽ không đóng góp vào lan truyền tiến, do đó và sẽ không tham gia vào lan truyền ngược Thông thường, đối với các đầu vào khác nhau, mạng nơ ron xử lý dropout theo một cấu trúc khác nhau

Một cách khác để cải thiện việc việc quá khớp là tăng lượng dữ liệu Chúng ta có thể phản chiếu hình ảnh, lộn ngược hình ảnh, lấy mẫu hình ảnh, v.v Những cách này sẽ tăng số lượng dữ liệu huấn luyện Vì vậy, nó có khả năng ngăn chặn quá khớp Với ví dụ thực tế, trong một vài dự án, các bức ảnh được sử dụng để huấn luyện đã được xử lý thêm

Trang 40

AlexNet

Hình 1.26: Cấu trúc của AlexNet

Alex đã phát triển mạng này vào năm 2012 Cho tới thời điểm hiện tại, AlexNet vẫn còn đang được sử dụng phổ biến và rộng rãi Mạng AlexNet có năm lớp chập và ba lớp kết nối đầy đủ Cấu trúc trong AlexNet được chia thành hai khối Nguyên nhân vì tác giả đã sử dụng hai GPU để huấn luyện dữ liệu song song Mạng này được sử dụng trong phân loại đối tượng quy mô lớn Lớp đầu ra có một nghìn nơ ron Đó là bởi vì kiến trúc ban đầu được thiết kế để phân loại một nghìn nhãn Thông thường, những người áp dụng kiến trúc mạng nơ ron AlexNet sẽ thay thế lớp cuối cùng, phụ thuộc vào mục đích của họ Tác giả của mạng này đã làm nhiều thử nghiệm để có thể ra được mô hình này có kết quả tốt nhất Vì vậy, hiệu suất của cấu trúc này rất ổn định và mạng này được sử dụng rộng rãi trong nhiều ứng dụng

VGGNet

VGGNet [10] được phát triển vào năm 2014 và đã giành chiến thắng trong cuộc thi ILSVRC-2014 Mạng này mạnh hơn mạng AlexNet nhưng rất sâu Mạng này có 16 đến

19 tầng (Hình 1.21) Mạng này đã được thiết kế với 5 cấu trúc Sau một số thí nghiệm, D

và E là cấu trúc tốt nhất Hiệu suất của E tốt hơn một chút so với B Nhưng các tham số trong E lớn hơn D Vì vậy, người sử dụng có thể chọn một trong số cấu trúc mạng dựa trên những gì họ cần Đặc điểm của VGGNet là việc áp dụng nhiều lớp chập với kích

Ngày đăng: 16/02/2020, 14:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w