ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP PHÂN LỚP DỮ LIỆU HÌNH ẢNH MỘT LỚPỨNG DỤNG TRONG CÁC HỆ THỐNG GIÁM SÁT LỖI Hội đồng:
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP
PHÂN LỚP DỮ LIỆU HÌNH ẢNH MỘT LỚPỨNG DỤNG TRONG CÁC HỆ THỐNG GIÁM SÁT LỖI
Hội đồng: Khoa học máy tính
GVHD: TS Lê Hồng Trang
GVPB: ThS Trần Thị Quế Nguyệt
TP Hồ Chí Minh, Tháng 7/2021
Trang 2ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA: KH & KT Máy tính _ NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP
BỘ MÔN: HTTT Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình
HỌ VÀ TÊN: Trần Hậu Tuấn MSSV: 1713810
HỌ VÀ TÊN: _ MSSV: _
HỌ VÀ TÊN: _ MSSV: _ NGÀNH: Khoa học máy tính _ LỚP:
1 Đầu đề luận án:
Phân lớp dữ liệu hình ảnh một lớp ứng dụng trong các hệ thống giám sát lỗi
_
2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):
- Tìm hiểu tổng quan về bài toán phân lớp một lớp và ứng dụng _
- Tìm hiểu trích xuất đặc trưng sâu dùng mô hình CNN _
- Nghiên cứu mô hình phân lớp một lớp dựa trên phân phối vùng và cải thiện _
- Hiện thực, thực nghiệm và đánh giá các kết quả _ _ _
3 Ngày giao nhiệm vụ luận án: 01/03/2021
4 Ngày hoàn thành nhiệm vụ: 28/06/2021
5 Họ tên giảng viên hướng dẫn: TS Lê Hồng Trang Phần hướng dẫn: Toàn bộ
1) 2) 3) Nội dung và yêu cầu LVTN đã được thông qua Bộ môn
Ngày 15 tháng 08 năm 2021
PGS TS Trần Minh Quang TS Lê Hồng Trang
PHẦN DÀNH CHO KHOA, BỘ MÔN:
Người duyệt (chấm sơ bộ):
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc
-
Ngày tháng 08 năm 2021
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1 Họ và tên SV: Trần Hậu Tuấn
2 Đề tài: Phân lớp dữ liệu hình ảnh một lớp ứng dụng trong trong các hệ thống giám sát lỗi
3 Họ tên người hướng dẫn/phản biện: Lê Hồng Trang
4 Tổng quát về bản thuyết minh:
- Số bản vẽ vẽ tay Số bản vẽ trên máy tính:
6 Những ưu điểm chính của LVTN:
-! Luận văn tìm hiểu mô hình cho việc phân hình ảnh một lớp và ứng dụng trong lĩnh vực giám sát và quản lý chất lượng sản phẩm dựa vào hình ảnh
-! Mục đích chính của hướng này đó là nhằm đối mặt với một thách thức thực tế, đó là các khách hàng khi muốn muốn xây dựng một hệ thống giám sát dựa vào công nghệ AI, nhưng lại không có nhiều hình ảnh sản phẩm lỗi
-! Luận văn đã tìm hiểu và có cải thiện mô hình PadDim cho phải toán phân lớp một lớp Mô hình được huần luyện với tập hình ảnh tốt, dựa trên các vùng Mô hình được huấn luyện nhằm phát hiện các hình ảnh bề mặt sản phẩm có lỗi (tức bất thường)
-! Mô hình được mô tả, hiện thực và thực nghiệm cẩn thận với bộ dữ liệu MVTec-AD với 15 tập hình ảnh cho 15 loại sản phẩm Kết quả thực nghiệm được phân tích và đánh giá, cho thấy thích hợp cho việc phát triển thành mô hình áp dụng cho thực tế
-! Sinh viên thực hiện luận văn một mình sau khi người cùng thực hiện rút khỏi nhóm, do không đủ điều kiện làm luận văn Tuy vậy, sinh viên cũng cho thấy sự cố gắng để hoàn thành đúng yêu cầu của GV hướng dẫn
7 Những thiếu sót chính của LVTN:
-! Luận văn tại thời điểm nạp chưa được chuẩn bị một cách chu đáo, nhưng cũng đã cải thiện phần nào sau đó Cần cải thiện tốt hơn cho bản chính thức
8 Đề nghị: Được bảo vệ R Bổ sung thêm để bảo vệ o Không được bảo vệ o
9 Câu hỏi SV phải trả lời trước Hội đồng:
a
10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 9.0/10
Ký tên (ghi rõ họ tên)
Trang 4VT姶云PI"A萎K"J窺E"DèEJ"MJQC E浦PI"JñC"ZÊ"J浦K"EJ曳"PIJ C"XK烏V"PCO
KHOA KH & KT MÁY TÍNH A瓜e"n壱r"- V詠"fq"- J衣pj"rj¿e
- Ukpj"xk‒p"e„"pijk‒p"e泳w"ik違k"rj r"nk‒p"swcp."8 pj"ik "rj逢挨pi"rj r"vk院r"e壱p."x "uq"u pj"8瓜"ej pj"
z e"ik英c"e e"rj逢挨pi"rj r vt‒p"v壱r"f英"nk羽w"OXVGE-
- D q"e q"e p"pjk隠w"vjk院w"z„v"vtqpi"e ej"vt·pj"d {"x "d嘘"e映e"
- Ej逢c"8 pj"ik "jc{"mk吋o"ej泳pi"8逢嬰e"m院v"sw違"pj壱p"f衣pi"d医v"vj逢運pi"x噂k"xk羽e"j·pj"違pj"pjk宇w"fq" pj"
sáng, i„e"ej映r x "o w"u逸e"vjc{"8鰻k
:0"A隠"pij鵜<"A逢嬰e"d違q"x羽"» D鰻"uwpi"vj‒o"8吋"d違q"x羽"» Mj»pi"8逢嬰e"d違q"x羽"»
Trang 5Lời cam đoan
Chúng tôi xin cam đoan luận văn tốt nghiệp này là kết quả nghiên cứu củachúng tôi dưới sự hướng dẫn của TS Lê Hồng Trang Các số liệu và tài liệu trongluận văn là trung thực, không sao chép từ bất kỳ công trình nghiên cứu nào Tất
cả các tham khảo và kế thừa đều được trích dẫn và tham chiếu đầy đủ
Nếu phát hiện có bất kỳ sự gian lận nào trong luận văn, chúng tôi xin hoàn toànchịu trách nhiệm Trường Đại học Bách khoa Đại học Quốc gia thành phố Hồ ChíMinh không liên quan đến những vi phạm nội dung bản quyền do chúng tôi gây ra(nếu có) trong quá trình thực hiện
Trang 6Lời ngỏ
Lời đầu tiên, chúng tôi xin gửi lời cảm ơn sâu sắc đến TS Lê Hồng Trang (KhoaKhoa học và Kỹ thuật máy tính, Trường Đại học Bách Khoa) đã định hướng, hướngdẫn, cung cấp các kiến thức thiết thực giúp sinh viên có thể hoàn thành luận văn tốtnghiệp
Đồng thời, chúng tôi cũng gửi lời cảm ơn các quý thầy, cô khoa Khoa học và Kỹthuật máy tính, Trường Đại học Bách Khoa đã cung cấp các kiến thức quý báu lànền tảng cần thiết để sinh viên có thể học tập và nghiên cứu Chúng tôi gửi lời cảm
ơn tới Trường Đại học Bách Khoa tạo điều kiện thuận lợi và hỗ trợ sinh viên thựchiện luận văn
Cuối cùng, chúng xin bày tỏ lòng biết ơn đến gia đình, các bạn bè cùng khoa
đã hỗ trợ chúng tôi trong suốt quá trình học tập, nghiên cứu khi đang theo học tạiTrường Đại học Bách Khoa thành phố Hồ Chí Minh
Trang 7Tóm tắt nội dungNgày nay, trí tuệ nhân tạo đã và đang đóng vai trò quan trọng trong cuộc sống củacon người Do đó, việc nghiên cứu và phát triển trí tuệ nhân tạo là rất cần thiết.
Trong vài năm trở lại đây, việc sử dụng máy móc giám sát chất lượng càng phổ biến.Một bài toán thu hút được nhiều sự quan tâm là phân lớp một lớp (một biến thể của bàitoán phân lớp cổ điển) Bài toán này giải quyết việc sử dụng dữ liệu một lớp để máy cóthể học và giám sát được chất lượng sản phẩm được tốt hơn Ứng dụng của bài toán nàyrất phổ biến, đặc biệt là trong công nghiệp, y tế
Luận văn này tập trung nghiên cứu phương pháp phân lớp một lớp, ứng dụng chophát hiện bất thường trong sản phẩm công nghiệp, từ đó xây dựng hệ thống giám sátchất lượng trong các nhà máy
Trang 8Mục lục
1.1 Bài toán phân lớp một lớp và một số ứng dụng 6
1.2 Một số hướng tiếp cận phổ biến 8
1.3 Các thách thức với các mô hình hiện nay 10
2 Học sâu 12 2.1 Tổng quan về học sâu 12
2.2 Trích xuất đặc trưng sử dụng CNN 14
2.3 Phát hiện bất thường 20
3 Phân lớp một lớp dùng mô hình phân phối vùng 22 3.1 Hướng tiếp cận đề xuất 22
3.2 Huấn luyện 24
3.3 Kiểm thử 25
3.4 Tối ưu thời gian và bộ nhớ 25
4 Hiện thực và ứng dụng 27 4.1 Mô tả dữ liệu và thiết lập thực nghiệm 27
4.2 Tiêu chuẩn đánh giá 28
4.3 Kết quả thực nghiệm 29
4.4 Tổng kết kết quả thực nghiệm 36
Trang 9Mục lục
5.1 Kết luận 385.2 Định hướng phát triển 38
Trang 10Danh sách hình vẽ
1.1 Một số các phương pháp và hướng tiếp cận sử dụng 10
2.1 Cấu trúc sinh học của một nơ-ron 13
2.2 Cấu trúc mạng nơ-ron nhân tạo cơ bản 13
2.3 Bộ lọc cạnh 15
2.4 Ảnh gốc và ảnh được áp dụng phép tích chập với bộ lọc cạnh 15
2.5 Kích thước ảnh giảm từ 5x5 về 3x3 sau khi áp dụng bộ lọc 3x3 16
2.6 Kích thước ảnh giữ nguyên 5x5 sau khi thêm vùng đệm kích thước 1 16
2.7 Ảnh minh họa tầng gộp 17
2.8 Residual block 18
2.9 Kiến trúc mạng ResNet18 19
2.10 Kiến trúc mạng VGG16 19
4.1 Các vật thể và kiểu cấu trúc trong tập dữ liệu MVTecAD 28
4.2 Các tỉ lệ dùng trong các độ đo 29
4.3 Kiến trúc mô hình ResNet18 30
4.4 Ảnh dự đoán Leather, Wood, Capsule 31
4.5 Ảnh dự đoán Bottle, Cable, Screw 31
4.6 Ảnh dự đoán Pill, Transistor, HazelNut 32
4.7 Ảnh dự đoán Toothbrush, Grid, Carpet 32
4.8 Ảnh dự đoán Tile, MetalNut, Zipper 33
4.9 AUROC trên tất cả các tập dữ liệu sử dụng mô hình ResNet18 34
4.10 AUROC trên tất cả các tập dữ liệu sử dụng mô hình VGG16 34
4.11 Kết quả thực nghiệm trên tập dữ liệu SMVTecAD 35
Trang 11Danh sách bảng
4.1 Kết quả thực nghiệm trên SMVTecAD với ResNet18 354.2 Kết quả thực nghiệm trên SMVTecAD với ResNet18 36
Trang 12Thuật ngữ và từ viết tắt
Trang 13Chương 1
Giới thiệu
Chương này trình bày tổng quát về luận văn gồm: Giới thiệu bài toán phân lớp mộtlớp; Một số hướng tiếp cận; Các thách thức với mô hình hiện nay
1.1 Bài toán phân lớp một lớp và một số ứng dụng
1.1.1 Bài toán phân lớp
Trong thị giác máy tính, bài toán phân lớp ảnh là một trong những bài toán cơ bảnnhưng quan trọng bậc nhất bởi tính ứng dụng thực tiễn của nó như nhận dạng khuônmặt, chuẩn đoán ảnh y khoa Mục đích của phân lớp ảnh là sử dụng các công cụ để phânnhóm các mẫu dựa trên các tính chất đặc trưng
Phân lớp ảnh là quá trình phân lớp dữ liệu dạng ảnh nhờ một mô hình phân lớp(classifier model) Mô hình này được xây dựng (huấn luyện) dựa trên một tập dữ liệu đãđược thu thập trước đó bao gồm các ảnh và các nhãn Quá trình phân lớp là quá trìnhgán nhãn cho đối tượng dữ liệu ảnh
Bài toán phân lớp dữ liệu ảnh có một vài bài toán con sau đây:
• Phân lớp đa trị
• Phân lớp đa lớp (multi-class)
Đối với bài toán phân lớp đa lớp, dữ liệu dùng để huấn luyện mô hình bao gồm cácảnh của các lớp đối tượng khác nhau Mô hình sẽ cố gắng phân lớp chính xác các ảnhcần kiểm tra vào chính xác các lớp Nếu số lớp dữ liệu bằng 2, bài toán còn được gọi là
Trang 14Chương 1 Giới thiệu
phân lớp nhị phân Tuy nhiên hiện nay, việc luôn có nhiều lớp dữ liệu không phải luônđược đáp ứng Ví dụ như bài toán xác thực khuôn mặt, dữ liệu người dùng không phảiluôn được cung cấp vì các quyền riêng tư Hay trong bài toán phát hiện lỗi trong các sảnphẩm tiêu dùng, các sản phẩm lỗi chưa từng xảy ra có xuất hiện Với những hạn chế nhưvậy, bài toán phân lớp một lớp được ra đời
1.1.2 Bài toán phân lớp một lớp (One-Class Classification)Phân lớp một lớp là trường hợp đặc biệt của bài toán phân lớp đa lớp, khi mà dữ liệuđược thu thập cho quá trình huấn luyện chỉ thuộc về duy nhất một lớp (lớp dương) Mụctiêu của bài toán phân lớp một lớp là học được một biểu diễn hay một bộ phân lớp cókhả năng phát hiện được các mẫu thuộc lớp dương trong quá trình suy luận (inference).Bài toán này thu hút được rất nhiều sự quan tâm từ các cộng đồng thị giác máy tính,học máy
Một số ứng dụng của bài toán này bao gồm:
• Nghiên cứu y sinh: Trong nghiên cứu y sinh, dữ liệu từ các lớp khác nhau có thể khóhoặc không thể thu thập được Dữ liệu thu thập được thường chỉ thuộc về một lớp(lớp bình thường) Áp dụng bài toán phân lớp một lớp giải quyết trong nghiên cứu ysinh có thể mang lại hiệu quả tốt
• Phát hiện bất thường trong công nghiệp: Trong công nghiệp, các sản phẩm trong dâychuyền sản xuất có thể bị lỗi bất cứ lúc nào Với dây chuyền sản xuất lớn, các lỗigặp phải có thể thuộc bất kì lớp nào Nhận diễn lỗi sản phẩm sẽ gặp khó khăn khi
áp dụng các kỹ thuật phân lớp đa lớp Tuy nhiên, các kỹ thuật phân lớp một lớp cóthể giúp giải quyết trở ngại này, khi chỉ sử dụng các dữ liệu về các sản phẩm tốt
Có rất nhiều bài toán nghiên cứu trong thị giác máy tính và học máy liên quan đếnbài toán phân lớp một lớp Dưới đây là các điểm giống và khác nhau giữa các bài toán[1]
• Phát hiện mới lạ một lớp (One-class novelty detection)
Mục tiêu của bài toán phát hiện mới lạ giống với bài toán phân lớp một lớp Một bộphát hiện sẽ được huấn luyện để phát hiện đối tượng từ lớp đã được quan sát (lớpdương) Bộ phát hiện đã được huấn luyện có thể biến đổi thành bộ phân lớp bằngcách lựa chọn một ngưỡng hợp lý
Trang 15Chương 1 Giới thiệu
• Phát hiện ngoại lai (Outlier detection - unsupervised anomaly detection)Trong bài toán phát hiện ngoại lai, tập dữ liệu huấn luyện bao gồm cả dữ liệu bìnhthường và dữ liệu bất bình thường có gán nhãn Mục tiêu của bài toán là chia tách
bộ dữ liệu dựa vào các kỹ thuật học không giám sát Do đó, bài toán phân lớp mộtlớp được xem như học có giám sát trong khi phát hiện ngoại lai là học không có giámsát
• Nhận dạng trong tập mở (Open-set recognition)
Nhận dạng tập mở là một mở rộng cho bài toán phân lớp đa lớp Khi có một ảnh cầnkiểm tra, bài toán này có khả năng trả lời liệu ảnh này có thuộc một trong các lớp
đã được học hay không Phân lớp một lớp là trường hợp đặc biệt của bài toán này,với số lớp quan sát trong tập huấn luyện là C = 1
1.2 Một số hướng tiếp cận phổ biến
Các phương pháp hiện nay giải quyết bài toán phân lớp một lớp đều sử dụng hướngtiếp cận vào ít nhất một trong 3 loại sau:
• Dữ liệu (Data) Huấn luyện chỉ sử dụng dữ liệu thuộc lớp dương; Huấn luyện sửdụng dữ liệu thuộc lớp dương và các tập dữ liệu ngoài (Out Of Distribution data -OOD)
• Đặc trưng (Features) Sử dụng các đặc trưng được tạo thủ cộng; Sử dụng đặc trưngtheo hướng thống kê; Sử dụng đặc trưng dựa vào học sâu
• Giải thuật phân lớp (Classification algorithm) Giải thuật phân lớp dùng thốngkê; Giải thuật phân lớp dựa trên đại diện (representation-based); Giải thuật phân lớpdựa trên học sâu
1.2.1 Hướng tiếp cận dựa vào dữ liệu
Do hạn chế về dữ liệu huấn luyện, ngoài việc sử dụng các mẫu được cung cấp từ lớpdương, người ta có thể sử dụng thêm các tập dữ liệu tham chiếu, được sử dụng rộng rãinhư ImageNet[2], CIFAR100[3], hoặc các dữ liệu cụ thể hơn, cùng thuộc một lĩnh vực.Một số phương pháp đi theo hướng tiếp cận dựa vào dữ liệu cũng đã mang lại được cáckết quả khá tốt
Trang 16Chương 1 Giới thiệu1.2.2 Hướng tiếp cận dựa vào đặc trưng
Trong phân lớp nhiều lớp, các đặc trưng phù hợp được lựa chọn tốt sẽ mang lại kếtquả phân lớp tốt Tương tự với phân lớp nhiều lớp, hiệu quả phân lớp một lớp cũng sẽtốt nếu như đặc trưng được lựa chọn có thể phân tách lớp dương ra khỏi các lớp ngoạilai Tuy nhiên, khá khó để có thể chọn được đặc trưng phù hợp để tách rời các lớp ra, khi
mà không có dữ liệu từ các lớp ngoại lai Tuy nhiên, hai thuộc tính sau sẽ đánh giá liệuđặc trưng được chọn có đủ tốt hay không [4]
• Tính nhỏ gọn (Compactness): Tính nhỏ gọn thể hiện sự tương tự giữa các ảnh trongcùng một lớp Đảm bảo tính nhỏ gọn sẽ khiến cho các đặc trưng được trích xuất sẽnằm gần nhau trên không gian đặc trưng
• Tính mô tả (Descriptiveness): Tính mô tả thể hiện sự khác nhau giữa các ảnh thuộccác lớp khác nhau Đảm bảo tính mô tả khiến cho các đặc trưng trích xuất từ cácảnh thuốc các lớp khác nhau sẽ nằm xa nhau trên không gian đặc trưng
Các phương pháp gần đây đều sử dụng các đặc trưng dựa vào học sâu, vì sự pháttriển của các mô hình đã được huấn luyện trước (pretrained model) nên đã mang lại kếtquả tốt
1.2.3 Hướng tiếp cận dựa vào giải thuật phân lớp
Dựa vào giải thuật phân lớp cho bài toán phân lớp một lớp, có thể chia các giải thuậtnày ra làm 3 dạng chính như sau:
1 Giải thuật phân lớp dùng thống kê: Giải thuật phân lớp dùng thống kê tìm một siêucầu có thể chưa các mẫu huấn luyện [5], hoặc tìm một siêu phẳng có thể phân tách
dữ liệu chỉ sử dụng các mẫu huấn luyện thuộc một lớp, bằng cách sử dụng siêu phẳngtương ứng với lớp âm (negative) được đặt làm gốc tọa độ [6], sử dụng thêm số liệuđạo hàm bậc 2 để học được siêu phẳng này
2 Giải thuật phân lớp dựa trên đại diện [7]: Giải thuật phân lớp dựa trên đại diện sửdụng một bộ mã hóa thông tin của ảnh vào một vector đặc trưng Sau khi có vectorđặc trưng, có thể có 2 cách giải quyết như sau
(a) Sử dụng vector đặc trưng này để tái tạo lại ảnh Độ lỗi tái tạo sẽ được dùng cho
bộ phân lớp
Trang 17Chương 1 Giới thiệu
(b) Sử dụng vector đặc trưng này để đo khoảng cách so với vector đặc trưng đại diệncho tập dữ liệu của lớp dương Khoảng cách này được dùng trong bộ phân lớp
3 Giải thuật phân lớp dựa trên học sâu [8] [9]: Đối với các giải thuật dựa trên học sâu,các hướng tiếp cận hiện nay thường sử dụng các phương pháp sau
• Phương pháp phân biệt (Discriminative methods) Phương pháp này sử dụng cáchàm mất mát (loss functions) phù hợp hoặc sử dụng các kỹ thuật chính quy hóa
để khiến cho mạng nơ-ron tương thích với bài toán phân lớp một lớp [9]
• Mô hình sinh (Generative model) Đây là phương pháp phổ biến nhất để giải bàitoàn phân lớp một lớp Phương pháp này có thể là kết hợp của nhiều phươngpháp phổ biến như là: denoising auto-encoders; generative adversarial networks;adversarial auto-encoders [8];
Hình 1.1: Một số các phương pháp và hướng tiếp cận sử dụng
1.3 Các thách thức với các mô hình hiện nay
Với các mô hình hiện nay, có một vài thách thức vẫn chưa được giải quyết
• Tập dữ liệu đơn giản: Các phương pháp vẫn chỉ đang thử nghiệm trên các tập dữliệu đơn giản (MNIST, COIL100), chưa chắc đã mang lại kết quả tốt trên bộ dữ liệuphức tạp
Trang 18Chương 1 Giới thiệu
• Học nửa giám sát cho phân lớp một lớp: Đôi khi dữ liệu ngoại lai được gán nhãn vẫnxuất hiện, các phương pháp chưa sử dụng được các dữ liệu này
• Phương pháp phân lớp một lớp có thể giải thích được: Dù mang lại kết quả tốt, tuynhiên các mạng nơ-ron chưa thể hiện được vì sao chúng mang lại kết quả phân lớptốt như vậy Việc đề xuất ra phương pháp có thể giải thích được sẽ mang lại sự chắcchắn khi áp dụng phương pháp đó lên các tập dữ liệu khác nhau
• Hiệu năng và hiệu suất: Chi phí về bộ nhớ và thời gian trong quá trình suy luận đangcòn cao
• Tập dữ liệu huấn luyện nhỏ: Do một số quyền riêng tư, tập dữ liệu huấn luyện chỉgồm số lượng nhỏ các mẫu dương Huấn luyện trên tập dữ liệu nhỏ, một lớp có thểkhông mang lại kết quả tốt
Trang 19Chương 2
Học sâu
Luận văn này có sử dụng kiến thức về học sâu Chương này sẽ giải thích các kỹ thuậttrong học sâu có sử dụng trong luận văn, gồm: Tổng quan; Trích xuất đặc trưng; Đặctrưng trong bài toán phát hiện bất thường
2.1 Tổng quan về học sâu
Học sâu (Deep Learning) là một kĩ thuật của máy học (Machine Learning) dựa trênmột tập hợp các thuật toán với mục tiêu mô hình dữ liệu trừu tượng thông qua nhiềulớp xử lý phức tạp (nhiều lớp biến đổi phi tuyến tính) Một trong những phương pháphọc sâu thành công nhất là mạng nơ-ron nhân tạo (Artificial Neural Network) hay cụ thểhơn là mạng nơ-ron sâu (Deep Neural Network) được đề xuất bởi 2 người đoạt giải NobelDavid H Hubel và Torsten Wiesel
Trang 20Chương 2 Học sâu2.1.1 Mạng nơ-ron nhân tạo
Hình 2.1: Cấu trúc sinh học của một nơ-ronLấy cảm hứng từ bộ não con người, mạng nơ-ron được học bởi kinh nghiệm qua quátrình huấn luyện, lưu giữ tri thức để sử dụng trong việc dự đoán dữ liệu chưa biết (unseendata)
Các mạng nơ-ron nhân tạo cơ bản thường gồm 3 thành phần: lớp đầu vào (inputlayer), các lớp ẩn (hidden layer) và lớp đầu ra (output layer) Mỗi lớp có nhiều nút là cácnơ-ron chứa những biến độc lập và liên kết với các nơ-ron trong các lớp khác
Hình 2.2: Cấu trúc mạng nơ-ron nhân tạo cơ bản
• Lớp đầu vào (input layer): là lớp đầu tiên của mạng Lớp này có nhiệm vụ tiếp nhậncác đặc trưng dữ liệu đầu vào, từ đó lan truyền các đặc trưng này tới các lớp tiếptheo
• Lớp ẩn (hidden layer): là các lớp nằm giữa lớp đầu vào và lớp đầu ra, có nhiệm vụhọc các biến độc lập sao cho sau khi lan truyền thông tin đầu vào, lớp đầu ra sẽ cho
ra kết quả mong đợi
Trang 21Chương 2 Học sâu
• Lớp đầu ra (output layer): là lớp cuối cùng của mạng, có nhiệm vụ trả về kết quả,
từ đó tính toán các giá trị để tiếp tục cập nhật các giá trị biến độc lập của các núttrong lớp ẩn
Mạng nơ-ron nhân tạo là mô hình toán học được xây dựng dựa trên hoạt động củacác nơ-ron sinh học, bao gồm các nút nơ-ron (node) nối với nhau và xử lý thông tin bằngcách truyền các kết nối và tính giá trị tại các nút Khi áp dụng mạng nơ-ron thuần túy,đầy đủ kết nối, số lượng trọng số cần lưu để mô tả lại mạng nơ-ron là rất lớn, đặc biệtnếu mạng nơ-ron có nhiều lớp Do đó, chi phí lưu trữ và chi phí thời gian khi sử dụngmạng nơ-ron đầy đủ kết nối là rất lớn Vì vậy, trong các phương pháp học sâu hiện nay,mạng nơ-ron tích chập (Convolutional Neural Network) đã được sử dụng thay thế cho cácmạng nơ-ron cũ Kết quả tốt của các phương pháp đã chứng minh hiệu quả của mạngnơ-ron tích chập
2.2 Trích xuất đặc trưng sử dụng CNN
Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một trong những
mô hình học sâu phổ biến nhất và có ảnh hưởng nhiều nhất đến cộng đồng thị giác máytính Mạng nơ-ron tích chập được sử dụng trong nhiều bài toán thị giác máy tính nhưphân loại ảnh, nhận diện đối tượng, phân đoạn ảnh, phân tích video, ảnh MRI hay cácbài toán khác về xử lý ngôn ngữ tự nhiên như nhận diện giọng nói, sinh ra giọng nói, Các thành phần cơ bản của mạng nơ-ron tích chập bao gồm:
Trang 22Chương 2 Học sâu
Trong lĩnh vực xử lý ảnh, phép tích chập được sử dụng rộng rãi trong các bộ lọc ảnh,các phép đạo hàm ảnh Phép tích chập thường được dùng trên không gian hai chiều rờirạc Công thức tính tích chập trên ảnh f và bộ lọc k (kích thước m × n) tại điểm ảnh vịtrí (x, y) với giả sử chỉ số trên bộ lọc được đánh số hàng từ −m/2 -> m/2 và chỉ số cột
tự từ trái qua phải, từ trên xuống dưới Mỗi lần áp bộ lọc và một vùng ảnh, phép tíchchập giữa vùng ảnh và bộ lọc được thực hiện Thông thường, sau khi thực hiện phép tíchchập trên toàn ảnh, kích thước ảnh sẽ bị giảm nhỏ lại
Để xác định cách bộ lọc trượt qua các vùng ảnh, ta thêm tham số bước trượt (stride).Bước trượt là khoảng cách giữa 2 vị trí mà bộ lọc lần lượt áp lên 2 vùng ảnh Như hình
Trang 23Chương 2 Học sâu
Hình 2.5: Kích thước ảnh giảm từ 5x5 về 3x3 sau khi áp dụng bộ lọc 3x3
trên, bước trượt stride = 1 Bước trượt càng lớn sẽ khiến ảnh đầu ra của phép tích chậpcàng bé Do đó, nếu muốn kích thước ảnh giữ nguyên, ta cần thêm vùng đệm (padding).Vùng đệm là vùng thêm vào bao quanh ảnh gốc, thường được lấy giá trị bằng 0 Dựavào kích thước bộ lọc, giá trị bước trượt, cần chỉnh sửa vùng đệm hợp lý để giữ nguyênkích thước ảnh
Hình 2.6: Kích thước ảnh giữ nguyên 5x5 sau khi thêm vùng đệm kích thước 1
Trang 24Chương 2 Học sâu2.2.2 Tầng gộp (Pooling)
Tầng gộp có chức năng làm giảm kích thước của đầu vào mà nó nhận Tùy vào mụcđích, tầng gộp sẽ dùng các hàm gộp khác nhau, gồm hàm min pooling (lấy giá trị nhỏnhất làm đại diện), max pooling (lấy giá trị lớn nhất làm đại diện), average pooling (lấygiá trị trung bình làm đại diện), Thông thường, để tăng cường thông tin cho đầu vàocủa tầng tiếp theo, người ta thường sử dụng max pooling
Hình 2.7: Ảnh minh họa tầng gộp
2.2.3 Tầng kết nối đầy đủ (Fully Connected)
Tầng kết nối đầy đủ được sử dụng để đưa ra quyết về phân lớp hình ảnh Tầng kết nốiđầy đủ sử dụng đầu ra của tầng tích chập, tầng gộp để chuyển thành một vector có độdài C, với C tương ứng với số lớp trong bài toán phân lớp Để sử dụng đầu ra của tầngtrước nó, tầng kết nối đầy đủ thường phải sử dụng một hàm để làm phẳng (flatten) đầuvào từ dừng ma trận thành một vector Thông thường, ở cuối các mạng nơ-ron tích chập
sẽ có nhiều hơn một tầng kết nối đầy đủ kết nối với nhau Để đưa ra quyết định phânlớp, người ta sử dụng hàm Softmax để trả về xác suất ảnh đầu vào thuộc lớp nào trong
C lớp