BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGUYỄN NGỌC HƯNG ỨNG DỤNG MẠNG MOBILENET PHÁT HIỆN HỌC SINH KHÔNG ĐEO KHẨU TRANG KHI ĐẾN TRƯỜNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Bình Định – Năm 2022 B[.]
Trang 1NGUYỄN NGỌC HƯNG
ỨNG DỤNG MẠNG MOBILENET PHÁT HIỆN HỌC SINH KHÔNG ĐEO KHẨU TRANG
KHI ĐẾN TRƯỜNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Bình Định – Năm 2022
Trang 2NGUYỄN NGỌC HƯNG
ỨNG DỤNG MẠNG MOBILENET PHÁT HIỆN HỌC SINH KHÔNG ĐEO KHẨU TRANG
Trang 3sự hướng dẫn khoa học của TS Lê Xuân Vinh; Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu, hình ảnh trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình Trường Đại học Quy Nhơn không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
Bình Định, ngày 25 tháng 09 năm 2022
Tác giả luận văn
Nguyễn Ngọc Hưng
Trang 4tin Trường Đại học Quy Nhơn đã tận tình dạy dỗ, truyền đạt cho em nhiều kiến thức quý báu
Em xin tỏ lòng biết ơn sâu sắc đến thầy TS Lê Xuân Vinh, người đã tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để đề tài có thể được thực hiện và hoàn thành Xin chân thành cảm ơn các bạn trong lớp Cao học Khoa học máy tính K23, các bạn Khoa Công Nghệ Thông Tin, Trường Đại học Quy Nhơn đã giúp đỡ, động viên tôi rất nhiều trong quá trình thực hiện đề tài
Em xin chân thành cảm ơn!
Bình Định, ngày 25 tháng 09 năm 2022
Tác giả luận văn
Nguyễn Ngọc Hưng
Trang 5MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Tổng quan về tình hình nghiên cứu đề tài 3
3 Mục đích và nhiệm vụ nghiên cứu 4
4 Đối tượng và phạm vi nghiên cứu 4
5 Phương pháp nghiên cứu 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ KỸ THUẬT CHO DEEP LEARNING 5
1.1 Tổng quan về học máy 5
1.1.1 Một số khái niệm chung 5
1.1.2 Các thuật toán học máy 5
1.2 Mạng nơ-ron (Neural Network) 7
1.2.1 Tổng quan về mạng nơ-ron 7
1.2.2 Các thành phần cơ bản của mạng nơ-ron nhân tạo 8
1.2.3 Kiến trúc mạng ANN 13
1.2.4 Hoạt động của mạng ANN 14
1.3 Mạng nơ-ron tích chập (CNN) 14
1.4 Cấu trúc của mạng CNN 16
1.4.1 Lớp tích chập (Convolution layer) 17
1.4.2 Lớp Pooling 18
1.4.3 Lớp hiệu chỉnh 20
1.4.4 Lớp chuẩn hóa 20
1.4.5 Lớp kết nối đầy đủ (Fully connected – FC) 21
1.4.6 Lớp đầu ra 21
1.5 Tổng kết chương 1 22
CHƯƠNG 2: MÔ HÌNH MOBILENET 23
Trang 62.3 Tích chập sâu phân tách (Depthwise Separable Convolution – DSC) 25
2.3.1 Tích chập sâu 28
2.3.2 Tích chập điểm 28
2.3.3 Hệ số nhân chiều rộng (Width Multiplier) 30
2.3.4 Hệ số phân giải (Resolution Multiplier) 30
2.3.5 MobileNetV2 31
2.3.6 MobileNetV3 33
2.4 Tổng kết chương 2 35
CHƯƠNG 3: ỨNG DỤNG PHÁT HIỆN HỌC SINH KHÔNG ĐEO KHẨU TRANG 36
3.1 Giới thiệu bài toán 36
3.2 Lựa chọn mô hình MobileNet 37
3.3 Dữ liệu huấn luyện 37
3.4 Xây dựng mạng cho mô hình 39
3.5 Huấn luyện mô hình 42
3.6 Đánh giá mô hình 44
3.7 Xây dựng back-end ứng dụng (camera thu hình, phát hiện, phát âm thanh cảnh báo) 46
3.8 Tổng kết chương 3 47
KẾT LUẬN 48
TÀI LIỆU THAM KHẢO 49
PHỤ LỤC 51
Trang 7ANN Artificial Neural Network Conv Convolution
ReLU Rectifier Layer Units SVM Support Vetor Machines
BN Batch Normalization DSC Depthwise Separable Convolution CPU Central Processing Unit
LR Label Binarizer
Trang 8Bảng 2.1 Mô hình kiến trúc mạng MobileNet 24
Bảng 2.2 Các lớp Layer của mạng MobileNetV2 33
Bảng 2.3 Các lớp Layer của mạng MobileNetV3 large 34
Bảng 2.4 Các lớp Layer của mạng MobileNetV3 small 34
Bảng 3.1 Các Lớp layer của mô hình 40
Bảng 3.2 Hiệu suất của Accuracy và Loss qua 20 lần lặp 44
Bảng 3.3 Hiệu suất thử nghiệm 45
Trang 9Hình 1.1 Mô hình mạng nơ-ron 7
Hình 1.2 Đơn vị xử lý (Processing Unit) 8
Hình 1.3 Hàm đồng nhất (Identity function) 10
Hình 1.4 Hàm bước nhị phân (Binary step function) 11
Hình 1.5 Hàm Sigmoid 11
Hình 1.6 Hàm sigmoid lưỡng cực 12
Hình 1.7 Đồ thị hàm ReLU 12
Hình 1.8 Một số hàm truyền phổ biến 12
Hình 1.9 Kiến trúc 3 phần của mạng ANN 13
Hình 1.10 Mạng nơ-ron nhiều lớp 13
Hình 1.11 Tế bào mạng nơ-ron nhân tạo 14
Hình 1.12 Cấu trúc cơ bản của mạng Nơ-ron Tích chập (Lecun, 1989) 15
Hình 1.13 Kiến trúc mạng tích chập tiêu biểu 16
Hình 1.14 Minh họa việc áp dụng phép tính Conv 17
Hình 1.15 Minh họa hoạt động của lớp pooling 19
Hình 1.16 Minh hoạ hoạt động của hàm hiệu chỉnh 20
Hình 2.1 Kiến trúc của mạng MobileNet 24
Hình 2.2 Kiến trúc mô hình MobileNet 25
Hình 2.3 Cách thức làm việc của Convolution 26
Hình 2.4 Tích chập thông thường của một kernel 26
Trang 10Hình 2.7 Tích chập sâu 28
Hình 2.8 Tích chập điểm 28
Hình 2.9 Ví dụ cấu trúc mạng MobileNet với ảnh đầu vào 224 x 224 x 3 29
Hình 2.10 Residual learning: a building block 31
Hình 2.11 Tổng quan về Kiến trúc MobileNetV2 32
Hình 2.12 Đồ thị hàm ReLu6 32
Hình 3.1 Sơ đồ thuật toán phát hiện khẩu trang 37
Hình 3.2 (a) Hình ảnh mặt có đeo khẩu trang 38
Hình 3.2 (b) Hình ảnh mặt không đeo khẩu trang 38
Hình 3.3 Sơ đồ quá trình tiền xử lý dữ liệu 39
Hình 3.4 Sơ đồ phát hiện khẩu trang trên ảnh 40
Hình 3.5 Hệ thống kiến trúc của mô hình 40
Hình 3.6 Sơ đồ huấn luyện mô hình 42
Hình 3.7 Sử dụng mô hình 43
Hình 3.8 Đồ thị độ chính xác và giá trị lỗi 44
Hình 3.9 Hình ảnh thực hiện mô hình 46
Hình 3.10 Sơ đồ tổng quát phát hiện không đeo khẩu trang và phát âm thanh cảnh báo 46
Hình 3.11 Sơ đồ phát hiện không đeo khẩu trang và phát âm thanh cảnh báo sau khi cải tiến 47
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Ngày 11 tháng 3 năm 2020, Tổ chức Y tế Thế giới (WHO) ra tuyên bố gọi
“COVID-19” là “Đại dịch toàn cầu” Phát biểu tại Hội nghị thượng đỉnh Y tế Thế giới ngày 24 tháng 10 năm 2021 ở Berlin, Tổng giám đốc Tổ chức Y tế thế giới (WHO) Tedros khẳng định “đại dịch còn lâu mới kết thúc” khi mỗi tuần vẫn có khoảng 50.000 người chết vì COVID-19 Hiện nay, tình hình dịch bệnh trên thế giới và ở nước ta còn diễn biến phức tạp Mặc dù, theo Bộ Y tế, từ tháng 3 đến tháng 6 năm 2022, số ca nhiễm và tử vong đã “giảm ổn định”, thời gian gần đây cả nước ghi nhận 1000 ca/ngày Tỷ lệ tử vong giảm còn 0,06% tổng số ca nhiễm Tuy nhiên, việc virus liên tục biến đổi, khó xác định tính chất nguy hiểm của virus, mức độ tăng nặng và khả năng gây tử vong cao Nhiều biến thể mới xuất hiện làm giảm hiệu quả của vaccine, khiến ca nhiễm có thể tăng nhanh, triệu chứng mắc phải nghiêm trọng hơn
Để giảm nguy cơ nhiễm COVID-19, bên cạnh những khuyến nghị của Bộ
y tế, việc đeo khẩu trang nơi đông người là một giải pháp hiệu quả, nhất là trong các trường học Tuy nhiên, để giám sát học sinh thực hiện đúng quy định về đeo khẩu trang khi tham gia học tập bằng hình thức kiểm tra trực tiếp gặp nhiều khó khăn Nhằm hỗ trợ và nâng cao công tác giám sát và nhắc nhở học sinh, tôi xây dựng chương trình nhằm phát hiện học sinh không đeo khẩu trang một cách
tự động
Từ năm 2006, Deep Learning (học sâu) nổi lên như một lĩnh vực mới của học máy Ngày nay, sự thay đổi lớn nhất trong học sâu là độ sâu của mạng lưới thần kinh đã phát triển từ một vài lớp đến hàng trăm lớp, khả năng nhận dạng các mẫu lớn hơn, với nguồn thông tin lớn hơn giúp tăng khả năng tiếp nhận các đối tượng trở nên rộng hơn, chi tiết hơn Sự phát triển nhanh chóng của học sâu, đặc biệt là sự phát triển của mạng nơ-ron tích chập (CNN), tạo nên sự chủ
Trang 12động trong các ứng dụng liên quan đến thị giác máy Mạng nơ-ron tích chập có thể được ứng dụng để xây dựng hệ thống giám sát việc đeo khẩu trang trong phòng chống dịch COVID-19
Mạng nơ-ron tích chập là một mô hình Deep Learning có thể lấy hình ảnh đầu vào, gán các trọng số cho các đặc trưng khác nhau trong hình ảnh và có thể phân biệt được từng đặc trưng này với nhau Mạng nơ-ron tích chập có khả năng tự học để chọn ra các đặc trưng tốt nhất
Từ năm 1998, kiến trúc LeNet là mạng đầu tiên áp dụng tích chập 2 chiều; Năm 2012, kiến trúc AlexNet là mạng áp dụng CNN đầu tiên chiến thắng trong cuộc thi ImageNet; Năm 2014, kiến trúc VGG-16 hình thành một xu hướng cải thiện độ chính xác của các mạng học sâu nhờ việc tăng độ sâu của chúng; Năm
2014, kiến trúc GoogleNet - InceptionV1 kết hợp nhiều bộ lọc có kích thước khác biệt vào cùng một khối Định hình kiến trúc khối cho các kiến trúc mạng CNN chuẩn sau này; Năm 2015, kiến trúc ResNet-50 sử dụng kết nối tắt để ánh xạ các đầu vào từ những layer trước đó tới những layer sau Là kiến trúc mạng rất sâu nhưng có số tham số nhỏ hơn nhờ kế thừa những kỹ thuật từ GoogleNet; Năm 2016, kiến trúc DenseNet là bước phát triển tiếp theo của ResNet khi kế thừa kiến trúc khối và phát triển kết nối tắt theo một mạng dày đặc Gần đây những kiến trúc mạng như MobileNet, SqueezeNet, NasNet và kiến trúc EfficientNet dựa trên việc tìm kiếm tối ưu trên không gian các tham
số Depth, Width và Channel đã được Google phát triển và tạo ra những phương pháp, kỹ thuật tốt nhất mang lại hiệu quả cao nhất từ trước đến nay trên bộ dữ liệu ImageNet được sử dụng rộng rãi
MobileNet là một kiến trúc CNN có mô hình với kích thước nhỏ, sử dụng một loại lớp tích chập mới, được gọi là tích chập có thể phân tách theo chiều sâu Do kích thước nhỏ của mô hình, các mô hình này được coi là rất hữu ích
để thực hiện trên các thiết bị di động và thiết bị nhúng
Trang 13Trong phạm vi nghiên cứu của đề tài, tôi sẽ sử dụng mạng MobileNet để xây dựng mô hình phát hiện học sinh không đeo khẩu trang, đưa ra cảnh báo, nhắc nhở học sinh thực hiện đúng quy định đeo khẩu trang khi đến trường Với
những phân tích trên tôi chọn đề tài “Ứng dụng mạng MobileNet phát hiện
học sinh không đeo khẩu trang khi đến trường”
2 Tổng quan về tình hình nghiên cứu đề tài
Các nghiên cứu liên quan về học sâu trong việc phát hiện người đeo khẩu trang đã được công bố rất nhiều trong thời gian gần đây Nghiên cứu về việc phát hiện người không đeo khẩu trang nhằm hạn chế đại dịch Covid-19 có thể
kể đến như sau:
Nhóm tác giả Mohammad Marufur Rahman và Md Motaleb Hossen Manik [1] đã đề cập một hệ thống phát hiện người không đeo khẩu trang một cách tự động và thông báo cho cơ quan có thẩm quyền tương ứng trong mạng thành phố thông minh Hệ thống sử dụng camera CCTV của thành phố để trích xuất hình ảnh khuôn mặt và những hình ảnh này được sử dụng để xác định khẩu trang trên khuôn mặt
Samuel Ady Sanjaya, Suryo Adi Rakhmawan [2] Các tác giả đã nghiên cứu về phát hiện khẩu trang trong bài báo này Các nhà chức trách có thể sử dụng dữ liệu để lập kế hoạch giảm thiểu COVID-19, phòng ngừa, đánh giá và ứng phó với COVID-19 Nhận dạng khẩu trang được thực hiện trong công việc này bằng cách sử dụng hệ thống Học máy có tên MobileNetV2 Thuật toán phân loại hình ảnh MobileNetV2 dựa trên mạng CNN (Convolution Neural Networks) và được sử dụng để phân loại hình ảnh Trong nghiên cứu này, mô hình được triển khai phát hiện người có đeo khẩu trang hay không với độ chính xác 96,85%
Trang 14Anushka G Sandesara, Dhyey D Joshi, Shashank D Joshi [3] Các tác giả đã đề xuất một mô hình 2D-Convolution xếp chồng lên nhau để phát hiện khẩu trang có hiệu quả cao Họ đã sử dụng Gradient Descent để đào tạo và Binary Cross-Entropy như một hàm mất mát để tạo ra kỹ thuật được đề xuất,
đó là một chồng các lớp 2D-Convolutions với hàm kích hoạt ReLU và Max Pooling Mô hình chính xác kiểm tra 95% và độ chính xác đào tạo 97%
3 Mục đích và nhiệm vụ nghiên cứu
- Nghiên cứu cơ sở lý thuyết về học sâu, mạng nơ-ron tích chập (CNN), các mô hình phát triển từ CNN, đặc biệt là MobileNet trong kỹ thuật xây dựng
mô hình phân lớp
- Cài đặt chương trình ứng dụng phát hiện học sinh không đeo khẩu trang
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Học máy; học sâu (Deep learning)
- Phạm vi nghiên cứu: Thực nghiệm về ứng dụng mạng MobileNet trong việc phát hiện học sinh không đeo khẩu trang
5 Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu
- Phương pháp phân tích, tổng hợp
- Phương pháp thực nghiệm
Trang 15CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ KỸ THUẬT CHO
DEEP LEARNING
Kỹ thuật Học sâu (Deep Learning) là một lĩnh vực của Học máy (Machine Learning), Học sâu tập trung giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo (Artificial Neural Network - ANN) nhằm nâng cấp các công nghệ như nhận dạng giọng nói, thị giác máy tính và xử lý ngôn ngữ
tự nhiên Trong chương này, chúng tôi sẽ trình bày khái quát về Học máy, các thuật toán học máy, mạng nơ-ron nhân tạo Chúng tôi trình bày chi tiết về mô hình mạng nơ-ron tích chập (CNN - Convolution Neural Networks) cũng như cách hoạt động, cấu trúc mô hình CNN
1.1 Tổng quan về học máy
1.1.1 Một số khái niệm chung
Học máy (Machine Learning) là một phần trong trí tuệ nhân tạo bao gồm các thuật toán máy tính được sử dụng để tự học từ dữ liệu để giải quyết những vấn đề và xử lý các thông tin cụ thể nào đó Mặc dù học máy là một lĩnh vực trong khoa học máy tính, nó khác với các phương pháp tính toán truyền thống Trong tính toán truyền thống, các thuật toán là tập hợp các hướng dẫn được lập trình rõ ràng được sử dụng bởi các máy tính để tính toán hoặc giải quyết vấn
đề Thay vào đó, thuật toán học máy cho phép máy tính đào tạo dữ liệu đầu vào
và sử dụng phân tích thống kê để đưa ra các giá trị nằm trong một phạm vi cụ thể Do đó, học máy tạo điều kiện cho các máy tính xây dựng mô hình từ dữ liệu mẫu để tự động hóa các quy trình ra quyết định dựa trên dữ liệu đầu vào Ngày nay, học máy được áp dụng rộng rãi ở mọi lĩnh vực như: nhận dạng khuôn mặt (face detection), nhận dạng ký tự quang học (OCR) Các công cụ đề xuất, được hỗ trợ bởi học máy, đề xuất những bộ phim hoặc chương trình truyền hình nào để xem tiếp theo dựa trên sở thích của người dùng Xe tự lái dựa vào học máy để vận hành có thể sớm có mặt trên thị trường
Trang 16Các mô hình học máy yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá mô hình Sự tăng trưởng trong dữ liệu lớn (big data) đã cung cấp dữ liệu cho các thuật toán học máy để cải thiện độ chính xác của mô hình
1.1.2 Các thuật toán học máy
- Học có giám sát (Supervised learning)
Trong học máy có giám sát, máy tính học cách mô hình hóa các mối quan
hệ dựa trên dữ liệu được gán nhãn (Labeled data) Sau khi tìm hiểu cách tốt nhất để mô hình hóa các mối quan hệ cho dữ liệu được gán nhãn, các thuật toán được huấn luyện được sử dụng cho các bộ dữ liệu mới Một số ví dụ sử dụng phổ biến của việc học có giám sát là sử dụng dữ liệu lịch sử để dự đoán các sự kiện có thể xảy ra trong tương lai Xác định tín hiệu hay biến số tốt nhất để dự báo lợi nhuận trong tương lai của cổ phiếu hoặc dự đoán xu hướng thị trường chứng khoán
- Học không giám sát (Unsupervised learning)
Trong học máy không giám sát, máy tính không được cung cấp dữ liệu được gán nhãn mà thay vào đó chỉ được cung cấp dữ liệu mà thuật toán tìm cách mô tả dữ liệu và phát hiện cấu trúc của chúng Ví dụ phân loại các công
ty thành các nhóm công ty tương đồng dựa trên đặc điểm của chúng thay vì sử dụng tiêu chuẩn của các nhóm ngành hoặc các quốc gia
- Học bán giám sát (Semi-Supervised Learning)
Trong học máy bán giám sát, máy tính được cung cấp dữ liệu nhưng dữ liệu mới được gán nhãn một phần Do đó phải sử dụng học không giám sát (để khám phá và tìm hiểu cấu trúc dữ liệu đầu vào) và học có giám sát (để dự đoán cho dữ liệu không được gán nhãn) để giải quyết
- Học củng cố (Reinforcement learning)
Trang 17Học củng cố còn gọi là học tăng cường, thuật toán tự học cách xác định hành động tùy theo các quan sát về thế giới Mỗi hành động đều có tác động tới môi trường, và môi trường cung cấp thông tin phản hồi để hướng dẫn cho thuật toán trong quá trình học Chuyển đổi tương tự học máy có giám sát nhưng không xây dựng hàm một cách rõ ràng Thay vì thế, cố gắng đoán kết quả mới dựa vào các dữ liệu huấn luyện, kết quả huấn luyện, và dữ liệu thử nghiệm có sẵn trong quá trình huấn luyện
1.2 Mạng nơ-ron (Neural Network)
1.2.1 Tổng quan về mạng nơ-ron
Mạng nơ-ron nhân tạo (Artificial Neural Network: ANN) được thiết kế để
mô hình một số tính chất của mạng nơ-ron sinh học Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con người, trong mạng nơ-ron nhân tạo cũng có các thành phần có vai trò tương tự các thành phần trong mạng nơ-ron thần kinh Mạng nơ-ron nhân tạo là một cấu trúc khối gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau trong đó các liên kết giữa các nơ-ron quyết định chức năng của mạng
Nơ-ron là một đơn vị tính toán có nhiều đầu vào và một đầu ra Trong đó, thành phần cơ bản của ANN là nơ-ron nhân tạo có cách thức hoạt động và xử
lý tương tự nơ-ron sinh học ANN được hình thành từ số lượng lớn các nơ-ron được liên kết với nhau theo cấu trúc từng tầng (layer), các nơ-ron kết nối với nhau giữa các tầng thông qua trọng số liên kết (weight)
Trang 181.2.2 Các thành phần cơ bản của mạng nơ-ron nhân tạo
1.2.2.1 Đơn vị xử lý
Còn được gọi là một nơ-ron hay một nút (node), thực hiện công việc đơn giản: nó nhận tín hiệu vào từ các đơn vị phía trước hay một nguồn bên ngoài
và sử dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác
Hình 1.2 Đơn vị xử lý (Processing Unit)
Trong đó: xi : các giá trị đầu vào
wji: các trọng số tương ứng với các đầu vào
θj : độ lệch (bias)
aj : đầu vào mạng (net-input)
zj : đầu ra của nơ-ron
g(x): hàm chuyển (hàm kích hoạt)
Trong một mạng nơ-ron có ba kiểu đơn vị:
- Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài
- Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài
- Các đơn vị ẩn (Hidden units), tín hiệu vào (input) và ra (output) của
nó nằm trong mạng
Trang 19Mỗi đơn vị j có thể có một hoặc nhiều đầu vào x0, x1, x2, …, xn, nhưng chỉ có một đầu ra zj Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó
1.2.2.2 Hàm kết hợp
Mỗi một đơn vị trong một mạng kết hợp với các giá trị đưa vào nó thông qua các liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input Hàm thực hiện nhiệm vụ này gọi là hàm kết hợp (combination function) Trong phần lớn các mạng nơ-ron, mỗi đơn vị cung cấp một bộ công cụ như là đầu vào cho đơn vị mà nó liên kết Tổng đầu vào đơn vị j đơn giản chỉ là tổng có trọng số của các đầu vào từ các đơn vị kết nối cộng thêm ngưỡng hay độ lệch (bias) θj :
Trong trường hợp wji >0, nơ-ron được coi là đang ở trong trạng thái kích hoạt Tương tự, nếu như wji <0, nơ-ron ở trạng thái kiềm chế Các đơn vị với luật lan truyền như trên là các sigma units
Trong một vài trường hợp cũng có thể sử dụng các luật lan truyền phức tạp hơn Một trong số đó là luật sigma-pi, có dạng:
Rất nhiều hàm kết hợp sử dụng một “độ lệch” hay “ngưỡng” để tính net input tới đơn vị Đối với một đơn vị đầu ra tuyến tính, thông thường θj được chọn là hằng số và trong bài toán xấp xỉ đa thức θj = 1
Trang 201.2.2.3 Hàm kích hoạt (activation function)
Phần lớn các đơn vị trong mạng nơ-ron chuyển net input bằng cách sử dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit’s activation) Trừ đơn vị đó thuộc lớp ra, giá trị kích hoạt được đưa vào một hay nhiều đơn vị khác Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định Các hàm kích hoạt hay được sử dụng là:
- Hàm đồng nhất (Linear function, Identity function)
g(x) =x Nếu coi các giá trị đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này Đôi khi một hằng số được nhân với net input để tạo ra một hàm đồng nhất
Hình 1.3 Hàm đồng nhất (Identity function)
- Hàm bước nhị phân (Birary step function, Hard limit function)
Hàm này cũng được biết đến với tên “Hàm ngưỡng” (Threshold function hay Heaviside function) Đầu ra của hàm này được giới hạn vào một trong hai giá trị:
Hàm này được dùng trong các mạng chỉ có một lớp Với θ được chọn bằng
1 hàm bước nhị phân có dạng:
Trang 21Hình 1.4 Hàm bước nhị phân (Binary step function)
- Hàm sigmoid (Sigmoid function (logsig))
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình huấn luyện Hàm sigmoid được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1]
Hình 1.5 Hàm Sigmoid
- Hàm sigmoid lưỡng cực (Tan-Sigmoid)
Hàm này có thuộc tính tương tự hàm sigmoid Nó làm việc tốt đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1]
Trang 22Hình 1.6 Hàm sigmoid lưỡng cực
- Hàm ReLU
Hàm ReLu được dùng khá nhiều trong huấn luyện các mạng nơ-ron ReLu đơn giản lọc các giá trị bé hơn 0 Tức là, nếu đầu vào lớn hơn 0, đầu ra bằng đầu vào Hoạt động của ReLU gần với cách hoạt động của các tế bào thần kinh sinh học của chúng ta
Hình 1.7 Đồ thị hàm ReLU
Hình 1.8 Một số hàm truyền phổ biến
Trang 231.2.3 Kiến trúc ANN
Kiến trúc chung của ANN được mô tả gồm ba kiểu lớp: Lớp đầu vào (Input Layer), lớp ẩn (Hidden Layer) và lớp đầu ra (Ouput Layer)
Hình 1.9 Kiến trúc 3 phần của mạng ANN
Lớp input layer (lớp đầu vào): lớp này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng
Lớp output layer (lớp đầu ra): là lớp bên phải cùng và nó thể hiện cho những đầu ra của mạng
Lớp hidden layer (lớp ẩn): lớp này nằm giữa lớp đầu vào và lớp đầu ra nó thể hiện cho quá trình suy luận logic của mạng
Mỗi một mạng nơ-ron chỉ có duy nhất một lớp đầu vào và một lớp đầu ra nhưng lại có rất nhiều lớp ẩn
Hình 1.10 Mạng nơ-ron nhiều lớp
Trang 241.2.4 Hoạt động của ANN
Hình 1.11 Tế bào mạng nơ-ron nhân tạo [5]
- Các giá trị đầu vào x1, x2, … , xn thường được đưa vào dưới dạng một véc-tơ N chiều
- Tập các liên kết: Có chức năng truyền thông tin trong đó ứng với một liên kết có một trọng số (hay trọng số liên kết là số thực biểu thị mức độ quan trọng của liên kết với đầu ra - weight) W1, W2, … Wn Thông thường, các trọng
số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình đào tạo
- Hàm kết hợp g(combination function): Thường dùng để tính tổng của tích các giá trị đầu vào với trọng số liên kết tương ứng của nó (vì thế một số tài liệu là hàm tổng – summing function)
- Hàm kích hoạt (active function): Hàm này được dùng để giới hạn phạm
vi đầu ra của mỗi nơ-ron Có đầu vào là kết quả của hàm kết hợp và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi nơ-ron được giới hạn trong đoạn [0,1] hoặc [-1, 1] Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán
và kinh nghiệm của người thiết kế mạng
1.3 Mạng nơ-ron tích chập (CNN)
Mạng nơ-ron tích chập (CNNs) (LeCun et al, 1989) là một mô hình học sâu có thể xây dựng được các hệ thống phân loại ảnh với độ chính xác cao Ý
Trang 25tưởng của CNNs được lấy cảm hứng từ khả năng nhận biết thị giác của bộ não người Để có thể nhận biết được các hình ảnh trong vỏ não người có hai loại tế bào là tế bào đơn giản và tế bào phức tạp (Hubel & Wiesel, 1968) Các tế bào đơn giản phản ứng với các mẫu hình dạng cơ bản ở các vùng kích thích thị giác
và các tế bào phức tạp tổng hợp thông tin từ các tế bào đơn giản để xác định các mẫu hình dạng phức tạp hơn Khả năng nhận biết các hình ảnh của não người là một hệ thống xử lý hình ảnh tự nhiên mạnh mẽ và tự nhiên nên CNNs được phát triển dựa trên ba ý tưởng chính: tính kết nối cục bộ (Local connectivity hay compositionality), tính bất biến (Location invariance) và tính bất biến đối với quá trình chuyển đổi cục bộ (Invariance to local transition) (LeCun et al., 2015) CNNs là một dạng mạng nơ-ron chuyên dụng để xử lý các dữ liệu dạng lưới một chiều như dữ liệu âm thanh, dữ liệu MGE hoặc nhiều chiều như dữ liệu hình ảnh, video
Cấu trúc cơ bản của CNNs gồm các lớp tích chập (Convolution layer), lớp phi tuyến (Nonlinear layer) và lớp lọc (Pooling layer) Các lớp tích chập kết hợp với các lớp phi tuyến sử dụng các hàm phi tuyến như ReLU hay tanh để tạo ra thông tin trừu tượng hơn (Abstract/higher-level) cho các lớp tiếp theo
Hình 1.12 Cấu trúc cơ bản của mạng Nơ-ron Tích chập (Lecun, 1989)
Các lớp liên kết trong CNNs được với nhau thông qua cơ chế tích chập Lớp tiếp theo là kết quả tích chập từ lớp trước đó vì vậy CNNs có được các kết nối cục bộ vì mỗi nơ-ron ở lớp tiếp theo sinh ra từ một bộ lọc được áp đặt lên một vùng cục bộ của lớp trước đó Nguyên tắc này được gọi là kết nối cục bộ
Trang 26(Local connectivity) Mỗi lớp như vậy được áp đặt các bộ lọc khác nhau Một
số lớp khác như lớp pooling/subsampling dùng để lọc lại các thông tin hữu ích hơn bằng cách loại bỏ các thông tin nhiễu Trong suốt quá trình huấn luyện, CNNs sẽ tự động học các tham số cho các lớp Lớp cuối cùng được gọi là lớp kết nối đầy đủ (Fully connect layer) dùng để phân lớp
Một số kiến trúc mạng tích chập cụ thể được đề xuất và sử dụng phổ biến như AlexNet, VGGNet thể hiện trong hình sau:
Hình 1.13 Kiến trúc mạng tích chập tiêu biểu [6]
1.4 Cấu trúc của CNN
CNN là một kiểu mạng ANN truyền thẳng, trong đó kiến trúc chính gồm nhiều thành phần được ghép nối với nhau theo cấu trúc nhiều lớp Cấu trúc của mạng tích chập gồm một lớp đầu vào (input layer), một lớp đầu ra (output layer)
và một số lớp giữa gọi là lớp ẩn (hidden layer) Các lớp ẩn gồm các loại như : lớp tích chập (convolutional layer), lớp giảm kích thước (pooling layer), lớp sửa dữ liệu (ReLU layer), lớp kết nối đầy đủ (full connected layer) và lớp chuẩn hoá (normalization layer) Như vậy, xét về kiến trúc chung, mạng tích chập gồm một số lớp tích chập và lớp làm giảm kích thước, chuẩn hoá và có thể gồm lớp kết nối đầy đủ
Trang 271.4.1 Lớp tích chập (Convolution layer)
Lớp tích chập (Conv) là lớp quan trọng nhất trong cấu trúc của CNN Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số Nhờ vào nguyên lý biến đổi thông tin có thể áp dụng kĩ thuật này vào xử lý ảnh và video số Trong lớp tích chập sử dụng một bộ các bộ lọc có kích thước nhỏ hơn với ma trận đầu vào và
áp lên một vùng của ma trận đầu vào và tiến hành tính tích chập giữa bộ filter
và giá trị của ma trận trong vùng cục bộ đó Các filter sẽ dịch chuyển một bước trượt (Stride) chạy dọc theo ma trận đầu vào và quét toàn bộ ma trận Trọng số của filter ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần trong quá trình huấn luyện mô hình
Hình 1.14 mô tả cách thức Conv hoạt động trên một dữ liệu đầu vào được biểu diễn bằng một ma trận hai chiều Ta có thể hình dung phép tính này được thực hiện bằng cách dịch chuyển một cửa sổ mà ta gọi là kernel trên ma trận đầu vào, trong đó kết quả mỗi lần dịch chuyển được tính bằng tổng tích chập (tích của các giá trị giữa 2 ma trận tại vị trí tương ứng) Khi được áp dụng phép tính Conv vào xử lí ảnh người ta thấy rằng Conv sẽ giúp biến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương ứng như bộ phát hiện – detector các đặc trưng về cạnh, hướng, đốm màu …) Ví dụ trong 2D convolution, ban đầu ta dùng kích thước 11 x 11 (mạng AlexNet), 7x7, 5x5 hoặc 3x3 Toán tử convolution được thực hiện bằng cách dịch chuyển mặt nạ trượt toàn bộ lớp trước để tính phép tích chập tạo ra mỗi nút ở lớp sau, được minh hoạ như sau:
Hình 1.14 Minh họa việc áp dụng phép tính Conv
Trang 28Như vậy sử dụng Conv có những ưu điểm sau:
- Giảm số lượng tham số: Ở ANN truyền thống, các nơ-ron ở lớp trước sẽ kết nối tới tất cả các nơ-ron ở lớp sau (full connected) gây nên tình trạng quá nhiều tham số cần học Đây là nguyên nhân chính gây nên tình trạng overfiting cũng như làm tăng thời gian huấn luyện Với việc sử dụng Conv trong đó cho phép chia sẻ trọng số liên kết (shared weights), cũng như thay vì sử dụng full connected sẽ sử dụng local receptive fields giúp giảm tham số
- Các tham số trong quá trình sử dụng Conv hay giá trị của các filter – kernel sẽ được học trong quá trình huấn luyện Như giới thiệu ở phần trên các thông tin này biểu thị thông tin giúp rút trích ra được các đặc trưng như góc, cạnh, đóm màu trong ảnh … như vậy việc sử dụng Conv sẽ giúp xây dựng mô hình tự học ra đặc trưng
Có nhiều kiểu pooling như Sum-Pooling, Max-Pooling (lọc cực đại), average pooling (lọc trung bình), L2-Pooling nhưng Max-Pooling thường được
sử dụng Pooling dùng một cửa sổ lọc có kích thước cụ thể nào đó, có thể 2x2 hoặc 3x3…Về mặt ý nghĩa thì Max-Pooling xác định vị trí cho tín hiệu mạnh nhất khi áp dụng một loại filter hoặc giá trị trung bình các phần tử trong vùng mặt nạ lọc (phương pháp average pooling) hoặc giá trị chuẩn L2-norm Trước
Trang 29đây lớp average pooling thường được dùng tuy nhiên nó không còn được sử dụng nhiều, thay vào đó lớp max pooling được sử dụng nhiều vì cho kết quả tốt hơn Ví dụ minh hoạ được thể hiện ở hình 1.15, trong đó hai kiểu lọc pooling cho ra hai kết quả khác nhau, nó giảm kích thước từ 4x4 thành 2x2
Hình 1.15 Minh họa hoạt động của lớp pooling
Nếu dùng cửa sổ lọc với kích thước 2x2 thì sau khi thực hiện pooling, kết quả thu được với không gian mẫu giảm còn một phần tư số nơ-ron so với đầu của lớp, nghĩa là giảm đi 1/2 mỗi chiều, nhưng chiều sâu của lớp là không đổi Lớp pooling hoạt động độc lập với độ sâu của đầu vào và thay đổi kích thước trong miền không gian hai chiều Với kiểu max pooling, các giá trị lớn nhất trong mỗi vùng sẽ giúp bảo toàn tính phù hợp của mỗi đặc trưng bên trong mỗi vùng Nghĩa là nó không quan tâm quá nhiều về vị trí chính xác nơi đặc trưng phù hợp, miễn là nó phù hợp ở chỗ nào đó trong cửa sổ lọc Do giảm mạnh kích thước biểu diễn, xu hướng sử dụng các bộ lọc nhỏ hơn hoặc loại bỏ hoàn toàn lớp pooling
Công dụng của lớp Pooling dùng để giảm kích thước dữ liệu, các tầng trong CNNs chồng lên nhau có lớp Pooling ở cuối mỗi tầng giúp cho kích thước
dữ liệu được co lại nhưng vẫn giữa được các đặc trưng để lấy mẫu Ngoài ra giảm kích thước dữ liệu sẽ giảm số lượng tham số của mạng làm tăng tính hiệu quả và kiểm soát hiện tượng Overfiting
Trang 301.4.3 Lớp hiệu chỉnh
Lớp hiệu chỉnh (rectifier layer) nhằm hiệu chỉnh giá trị các bước trong mạng Một số phương pháp hiệu chỉnh như hiệu chỉnh đơn vị tuyến tính (ReLU –rectifier units) Lớp hiệu chỉnh có vai trò quan trọng trong quá trình xử lý của mạng nhằm loại bỏ những phần tử âm Lớp này thực hiện thay thế tất cả các phần tử âm bởi giá trị không (0), giúp hệ thống xử lý trong CNN giữ chắc chắn
mô hình bằng cách làm cho các giá trị đã được học hỏi việc bị mắc kẹt gần giá trị 0 hoặc giá trị âm Hàm hiệu chỉnh có thể được thực hiện theo công thức
f(x) = x+ = max(0,x)
Hình 1.16 Minh hoạ hoạt động của hàm hiệu chỉnh
Một số hàm hiệu chỉnh khác cũng được nghiên cứu áp dụng như hàm tăng không tuyến tính như các hàm hyperbolic f(x)=tanh(x), f(x)=|tanh(x)| hoặc hàm signmoid f(x)=(1+e-x)-1
Ngoài ra, hàm hiệu chỉnh với nhiễu phân phối Gaussian (Noisy ReLU) cũng được nghiên cứu và áp dụng thành công trong một số lĩnh vực của thị giác máy Hàm điều chỉnh ReLU được xác định như sau :
F(x) = max(0,x + Y) với Y ~ N(0,σ(x))
1.4.4 Lớp chuẩn hóa
Có nhiều kiểu khác nhau của lớp chuẩn hoá được đề xuất sử dụng trong kiến trúc CNN Đôi khi nó được đưa vào với ý định thực hiện lược đồ ức chế
Trang 31quan sát của bộ não sinh học Trong nơ-ron sinh học, nó được hiểu là khả năng của một nơ-ron thần kinh kích hoạt để làm dịu các láng giềng của nó Về cơ bản ta muốn xác định một đỉnh cực đại cục bộ, nghĩa là nó có xu hướng tạo ra một sự tương phản trong một vùng để làm tăng độ nhạy cảm của nhận thức Đồng thời việc chuẩn hoá để giải quyết vấn đề phân phối các giá trị của nơ-ron quá rộng Lớp chuẩn hóa thường được sử dụng giữa lớp tích chập và lớp ReLU nhằm mục đích tăng tốc độ huấn luyện và làm giảm sự nhạy cảm trong khởi tạo tham số của mạng Tuy nhiên, những lớp chuẩn hóa này đôi khi không được
ưu tiên sử dụng vì trong thực tế mộ số bài toán đóng góp không lớn vào kết quả
chung
1.4.5 Lớp kết nối đầy đủ (Fully connected - FC)
Lớp kết nối đầy đủ là một lớp giống như mạng nơ-ron truyền thống Các giá trị được tính toán từ các lớp trước sẽ được liên kết đầy đủ vào trong nơ-ron của lớp tiếp theo Dữ liệu ở mức này thường thể hiện ở mức cao, có thể tổng hợp ngữ nghĩa để nhận dạng đối tượng với độ chính xác cao Tại lớp kết nối đầy đủ sẽ tiến hành phân lớp dữ liệu bằng cách kích hoạt hàm softmax để tính xác suất ở lớp đầu ra Ở mức này có thể sử dụng mô hình truyền thẳng để thực hiện phân loại trực tiếp dữ liệu Như vậy, lớp kết nối đầy đủ thường đảm nhiệm chức năng như mô hình phân lớp dựa trên kết quả đặc trưng đã được xử lý, trích xuất ở các lớp trước đó
1.4.6 Lớp đầu ra
Lớp này có thể sử dụng mạng kết nối đầy đủ truyền thống để phân loại hoặc dùng các kĩ thuật phân loại truyền thống khác như SVM, boosting, cây quyết định, … Trong mạng tích chập, lớp đầu ra có thể gồm lớp softmax và lớp phân loại (classification layer) Như vậy để giải quyết bài toán phân lớp, một lớp softmax và kế tiếp sau là một lớp phân loại phải được thêm vào sau lớp kết nối đầy đủ để thực hiện phân lớp dữ liệu
Trang 32Trong chương tiếp theo, chúng tôi trình bày chi tiết về mô hình MobileNet một trong những mạng tiêu biểu của CNN