BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN ỨNG DỤNG MÔ HÌNH CHUYỂN ĐỔI THỊ GIÁC CHO BÀI TOÁN PHÂN LOẠI VÀ DIỄN
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
S KC 0 0 7 6 7 6
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
ỨNG DỤNG MÔ HÌNH CHUYỂN ĐỔI THỊ GIÁC CHO BÀI TOÁN
PHÂN LOẠI VÀ DIỄN GIẢI ẢNH Y TẾ
SV2022-24
Thuộc nhóm ngành khoa học: Kỹ thuật
SV thực hiện: Ngô Quang Khải Nam, Nữ: Nam
Trang 3MỤC LỤC
MỤC LỤC i
DANH MỤC BẢNG iv
DANH MỤC HÌNH v
DANH MỤC TỪ VIẾT TẮT vii
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI viii
Chương 1: TỔNG QUAN 1
1.1 Tổng quan tình hình nghiên cứu 1
1.2 Lý do chọn đề tài 6
1.3 Mục tiêu 8
1.4 Phương pháp nghiên cứu 8
1.5 Đối tượng và phạm vi đề tài 8
1.6 Bố cục 8
Chương 2: CƠ SỞ LÝ THUYẾT 10
2.1 Giới thiệu ảnh X-quang 10
2.1.1 Ảnh số 10
2.1.2 Ảnh X-quang 11
2.2 Giới thiệu phần mềm 12
2.2.1 Ngôn ngữ lập trình Python 12
2.2.2 Thư viện Pytorch 13
2.3 Giới thiệu mạng nơ-ron nhân tạo 14
2.3.1 Hàm kích hoạt 15
2.3.2 Gradient descent 16
2.3.3 Hàm tổn thất 17
2.4 Phân loại dựa trên CNN 19
2.4.1 Mạng LeNet 19
Trang 42.4.2 Mạng AlexNet 20
2.4.3 Mạng VGG 22
2.4.4 Mạng GoogLeNet 23
2.4.5 Mạng ResNet 25
2.5 Phân loại dựa trên Transformer 27
2.5.1 Kiến trúc Transformer 27
2.5.2 Mô hình Vision Transformer 30
2.6 Giới thiệu Grad-CAM 34
Chương 3: PHƯƠNG PHÁP ĐỀ XUẤT 37
3.1 Tổ chức dữ liệu 37
3.2 Quy trình tổng quan 39
3.4 Các mô hình pre-trained 39
3.4.1 Model ViT L/16, S/16, B/16 39
3.4.2 Model Resnet-18, Resnet-34, Resnet-50 40
3.4.3 R50+B/16 42
3.5 Chỉ số đánh giá 42
Chương 4: KẾT QUẢ - NHÂN XÉT - ĐÁNH GIÁ 45
4.1 Kết quả định lượng 45
4.1.1 Tỷ lệ giữa kích thước ảnh và kích thước patch 45
4.1.2 So sánh backbone ViT 46
4.1.3 Tác dụng của tập dữ liệu được pre-trained 46
4.1.4 So sánh với backbone dựa trên CNN 47
4.2 Khả năng diễn giải mô hình 48
Chương 5: KẾT LUẬN VÀ KIẾN NGHỊ 50
5.1 Kết luận 50
5.2 Kiến nghị 50
Trang 5TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 54
Trang 6DANH MỤC BẢNG Bảng 1.1: So sánh giữa tập dữ liệu hình ảnh thông thường và tập dữ liệu hình ảnh y tế.
2
Bảng 1.2: Các tập dữ liệu cho bài toán phân loại ảnh y tế hiện có 2
Bảng 1.3: Tập dữ liệu CheXpert bao gồm 14 loại bệnh được gắn nhãn [8] 4
Bảng 1.4: Bảng thống kê tập dữ liệu VinDr-CXR [10] 5
Bảng 3.1: Class bệnh lựa chọn trong tập VinDr_CXR 37
Bảng 3.2: Các cấu trúc backbone ViT 40
Bảng 4.1: Ảnh hưởng của kích thước hình ảnh 45
Bảng 4.2: So sánh backbone 46
Bảng 4.3: Kết quả có và không có tập dữ liệu pre-trained 47
Bảng 4.4: Kết quả trên tập dữ liệu backbone CNN 48
Trang 7DANH MỤC HÌNH Hình 1.1: Sự xuất hiện đồng thời của nhiều loại bệnh trong tập dữ liệu VinDr-CXR…7
Hình 2.1: Ví dụ về ảnh màu RGB 10
Hình 2.2: Ví dụ về ảnh xám 11
Hình 2.3: Ảnh chụp X-quang vùng ngực 12
Hình 2.4: Workflow một quá trình huấn luyện mô hình trên Pytorch 13
Hình 2.5: Mạng nơ-ron nhân tạo 15
Hình 2.6: Đồ thị hàm Sigmoid 16
Hình 2.7: Đồ thị hàm ReLU 16
Hình 2.8: Vai trò của việc chọn learning rate 17
Hình 2.9: Đồ thị Hàm log(x) 18
Hình 2.10: Mô tả kiến trúc mạng LeNet-5 được thiết kế để xác định các chữ số viết tay trong tập dữ liệu MNIST 19
Hình 2.11: Chi tiết các thành phần tham số của mô hình LeNet 20
Hình 2.12: Mô tả kiến trúc mạng AlexNet 20
Hình 2.13: Chi tiết các thành phần tham số của mô hình AlexNet 21
Hình 2.14: Ý tưởng xây dựng mạng VGG sử dụng các khối VGG block gồm các tầng tích chập được xếp chồng 22
Hình 2.15: Mô tả kiến trúc mô hình VGG-16 23
Hình 2.16: Cấu trúc khối Inception 24
Hình 2.17: Cấu trúc mạng GoogLeNet 25
Hình 2.18: Kết nối tắt được sử dụng trong ResNet 26
Hình 2.19: Mô tả kiến trúc ResNet (ResNet-18) 27
Hình 2.20: Kiến rúc Transformer [3] 27
Hình 2.21: Mô tả cách tính ma trận attention 29
Hình 2.22: Mô tả Multi - Head Attention 29
Hình 2.23: Mô tả kiến trúc của mô hình ViT [4] 30
Hình 2.24: Hình ảnh được chia nhỏ thành các patch nhỏ có kích thước cố định 31
Hình 2.25: Làm phẳng các patch thành chuỗi các vectors (hình minh họa 9 patch) 31
Hình 2.26: Khái niệm attention trong Vision Transformer 32
Hình 2.27: Khái niệm attention trong Vision Transformer 33
Hình 2.28: Tổng quan về hoạt động của Grad-CAM 35
Trang 8Hình 3.1: Biểu đồ phân phối dữ liệu lựa chọn từ tập dữ liệu VinDr-CXR 38
Hình 3.2: Tổ chức dữ liệu thí nghiệm 38
Hình 3.3: Tổng quan về phương pháp đề nghị 39
Hình 3.4: Kiến trúc mạng của Resnet-18 40
Hình 3.5: Kiến trúc mạng của Resnet-34 41
Hình 3.6: Sự thay đổi của Resnet-50 (phải) so với các phiên bản trước đó (trái) 41
Hình 3.7: Kiến trúc mạng của Resnet-50 42
Hình 3.8: Grad-CAM và attention map trên tập dữ liệu ong và kiến 43
Hình 4.1: Diễn giải mô hình với nhiều vùng tổn thương 48
Hình 4.2: Diễn giải mô hình với vùng tổn thương đơn lẻ 49
Trang 98 DICOM Digital Imaging and Communications in Medicine
18 MNIST Modified National Institute of Standards and Technology
20 NIH National Institutes of Health
22 PACS Picture Archiving and Communication Systems
Trang 10BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: Ứng dụng mô hình chuyển đổi thị giác cho bài toán phân loại và diễn giải
ảnh y tế
- Chủ nhiệm đề tài: Phạm Nguyễn Ngọc Diễm Mã số SV: 18129008
- Lớp: 181290C Khoa: Điện – Điện tử
- Thành viên đề tài:
Stt Họ và tên MSSV Lớp Khoa
1 Phạm Nguyễn Ngọc Diễm 18129008 181290C Điện – Điện tử
- Người hướng dẫn: T.S Nguyễn Mạnh Hùng
2 Mục tiêu đề tài:
- So sánh sự khác biệt giữa việc sử dụng phương pháp truyền thống với phương pháp Vision Transformer trong bài toán phân loại ảnh trên tập dữ liệu ảnh y tế VinDr-CXR
- Sử dụng kỹ thuật Grad-CAM và Attention map để diễn giải các cơ chế ra quyết định của mô hình
Trang 11giải quyết được sự xuất hiện đồng thời của nhiều loại bệnh trên cùng 1 hình ảnh Ngoài
ra, các kỹ thuật như Grad-CAM và Attention map được sử dụng để trực quan hóa quyết định của mô hình
4 Kết quả nghiên cứu:
Các thí nghiệm toàn diện cho thấy rằng phương pháp được đề xuất tốt hơn một chút so với các phương pháp dựa trên tích chập thông thường về độ chính xác của phân loại Hơn nữa, về khả năng diễn giải mô hình, các mô hình dựa trên ViT có thể xử lý sự đồng xuất hiện của nhiều bệnh trong một hình ảnh y tế Các kết quả hiển thị Attention map cho thấy ViT giúp xác định vùng tổn thương tốt hơn so với mô hình dựa trên CNN
về sai số định vị, mô hình đã chỉ ra được vị trí của các vùng tổn thương khác nhau trong ảnh chụp phổi
5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và khả năng áp dụng của đề tài:
Kết quả nghiên cứu của đề tài sẽ là cơ sở đóng góp cho các phân tích, đánh giá
về khả năng ứng dụng của kiến trúc mới, Vision Transformer, so với các kiến trúc dựa trên CNN trong bài toán phân loại ảnh y tế Các kết quả của đề tài tạo tiền đề cho các thảo luận, các nghiên cứu sâu hơn trong lĩnh vực học thuật, nhằm nâng cao độ chính xác của mô hình phân loại
6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu
có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):
Ngày tháng năm
SV chịu trách nhiệm chính thực hiện đề tài
(kí, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề
Trang 12tài (phần này do người hướng dẫn ghi):
Nhóm sinh viên đã khảo sát vấn đề nhiều loại bệnh cùng xuất hiện trong một ảnh x-qaung phổi, và từ đó đưa ra hướng xử lý sử dụng mô hình học sâu ViT Khác với cách tiếp cận thông thường dựa trên mô hình ViT khi tập dữ liệu mới được sử dụng để tinh chỉnh trực tiếp bài toán phân loại ảnh phổi, các sinh viên đã sử dụng một tập dữ liệu phổi khác để tinh chỉnh mô hình trước khi sử dụng bộ dữ liệu mục tiêu để tinh chỉnh mô hình học sâu Nhờ sự đóng góp của các bộ dữ liệu lớn được hỗ trợ bởi các cơ sở nghiên cứu uy tín trên thế giới, kết quả phân loại bệnh phổi đã có sự cải thiện Bên cạnh đó, việc sử dụng mô hình ViT cho phép phát hiện nhiều vùng tổn thương hơn so với việc sử dụng các phương pháp phân loại ảnh truyền thống
Kết quả nghiên cứu đã được nộp vào một hội nghị có chỉ số xuất bản
Ngày tháng năm
Người hướng dẫn
(kí, họ và tên)
Trang 13Chương 1: TỔNG QUAN
1.1 Tổng quan tình hình nghiên cứu
Phân tích ảnh y tế để khám chữa bệnh là một lĩnh vực nghiên cứu quan trọng trong việc cải thiện sức khỏe của con người Ngày nay việc ứng dụng trí tuệ nhân tạo để phân tích ảnh y tế đã trở thành một xu hướng nghiên cứu quan trọng nhằm hỗ trợ cho các bác sĩ [1] Trong số các bài toán phân tích ảnh y tế, bài toán phân loại bệnh dựa vào thông tin ảnh là một trong những bài toán quan trọng nhất Một mô hình phân loại ứng dụng vào thực tiễn, đặc biệt là trong lĩnh vực y tế, không những đòi hỏi về độ chính xác của mô hình mà việc diễn giải kết quả của mô hình cũng là một yêu cầu rất quan trọng
để đánh giá mức độ tin cậy đối với kết quả được đưa ra
Với sự phát triển bùng nổ của trí thông minh nhân tạo trong những năm gần đây Hàng loạt các các ứng dụng trí thông minh nhân tạo đã ra đời và đạt được nhiều thành tựu Đáng chú ý nhất là lĩnh vực thị giác máy tính nổi tiếng với kiến trúc CNN và trong lĩnh vực xử lý ngôn ngữ tự nhiên với kiến trúc Transformer Ở lĩnh vực thị giác máy tính, mô hình ResNet dựa trên CNN đã đạt được hiệu suất đáng kinh ngạc với sai số 3.57% với tập dữ liệu lớn ImagNet khi vừa ra mắt [2] Để ứng dụng mạng này với các bài toán phân loại ảnh là sử dụng các mô hình mẫu Resnet vốn được huấn luyện trước trên các tập dữ liệu lớn như ImageNet để khởi tạo các trọng số Sau đó các trọng số này
sẽ được tinh chỉnh để phù hợp với bộ dữ liệu mới Ở cách tiếp cận khác, kiến trúc Transformer [3] đã rất thành công trong lĩnh vực xử lý ngôn ngữ tự nhiên, tuy nhiên sự đóng góp của kiến trúc Transformer vào lĩnh vực thị giác máy tính còn ít Chính vì vậy, các kiến trúc dựa trên Transformer đã được giới thiệu trong xử lý ảnh nhằm khai thác tiềm năng của kiến trúc này đối với bày toán phân loại ảnh Trong bài báo cáo nghiên
cứu “An image is worth 16x16 words: Transformers for image recognition at scale” [4]
tác giả đã đề xuất một mô hình phân loại ảnh dựa trên kiến trúc Transformer Kiến trúc đột phá này đã nhanh chóng nổi tiếng trong cộng đồng bởi hiệu suất mà nó mang lại Kiến trúc này lần đầu tiên cạnh tranh với các “backbone” dựa trên CNN về các nhiệm
vụ phân loại hình ảnh Tuy nhiên, các nghiên cứu đã chỉ ra rằng, Vision Transformer (ViT) chỉ có thể vượt lên các kiến trúc dựa trên CNN nếu tập dữ liệu huấn luyện là rất lớn
Tuy nhiên, để các mô hình học sâu có thể phát huy thế mạnh, cần chuẩn bị dữ
Trang 14liệu cẩn thận và đủ nhiều Theo các công bố trong những năm gần đây, một số bộ dữ liệu về hình ảnh y tế đã được xuất bản nhằm đáp ứng cho các mục đích nghiên cứu Tuy nhiên, so với bộ dữ liệu ảnh thông thường, bộ dữ liệu hình ảnh y tế khá nhỏ Bảng 1.1 cho thấy sự so sánh giữa tập dữ liệu hình ảnh thông thường và tập dữ liệu hình ảnh y tế
Có thể thấy rằng tập dữ liệu hình ảnh y tế nhỏ hơn tập dữ liệu hình ảnh thông thường về
Bảng 1.2: Các tập dữ liệu cho bài toán phân loại ảnh y tế hiện có
Tập dữ
liệu
Năm
ra mắt
Số lượng mẫu
Số nhãn bệnh
level labels
Image-Local
Được gắn nhãn bởi các bác sĩ X quang, kích thước tập dữ liệu không phù hợp cho học sâu
Được gắn nhãn bởi các bác sĩ X quang, kích thước tập dữ liệu không phù hợp cho học sâu
Trang 15SH 2014 662 1 Có Không
Được gắn nhãn bởi các bác sĩ X quang, kích thước tập dữ liệu không phù hợp cho học sâu
Được gắn nhãn bởi các bác sĩ X quang, kích thước tập dữ liệu không phù hợp cho học sâu ChestX-
Được gắn nhãn bởi một thuật toán NLP ChestX-
Được gắn nhãn bởi một thuật toán NLP
ChestXpert 2019 224316 14 Có Không Được gắn nhãn bởi một
thuật toán NLP
PadChest 2019 160868 193 Có Không
Được gắn nhãn bởi một thuật toán NLP và bác
sĩ X quang (27%) MIMIC-
Được gắn nhãn bởi một thuật toán NLP VinDr-
Được gắn nhãn bởi các bác sĩ X quang
Các mô hình pre-trained ViT vốn được huấn luyện trên các tập dữ liệu ảnh thông thường, hiện chưa rõ hiệu suất của mô hình ViT với nhiệm vụ phân loại ảnh y tế Như
đã đề cập ở trên, mô hình Vision Transformer vượt trội hơn ResNet là nhờ được huấn luyện trên các tập dữ liệu hình ảnh lớn Vì lý do này đề tài nghiên cứu này sử dụng hai tập dữ liệu lớn về ảnh y tế là ChestXpert và Chest14 để tạo mô hình pre-trained và sau
đó tinh chỉnh trên tâp VinDR-XCR Tổng quan về ba tập dữ liệu ảnh y tế này được trình bày dưới đây
• ChestXpert (Chest Expert) [8] là một tập dữ liệu công khai lớn để giải thích
X-quang phổi, bao gồm 224.316 ảnh X quang phổi của 65.240 bệnh nhân được dán nhãn cho sự hiện diện của 14 loại bệnh quan sát là dương tính, âm tính hoặc không chắc chắn Tập dữ liệu này được sử dụng để tạo mô hình pre-trained cho thí nghiệm
Trang 16Bảng 1.3: Tập dữ liệu CheXpert bao gồm 14 loại bệnh được gắn nhãn [8]
Bệnh lý Dương tính (%) Không chắc (%) Âm tính(%)
Enlarged Cardiom 9020 (4.81) 10148 (5.41) 168473 (89.78) Cardiomegaly 23002 (12.26) 6597 (3.52) 158042 (84.23) Lung Lesion 6856 (3.65) 1071 (0.57) 179714 (95.78) Lung Opacity 92669 (49.39) 4341 (2.31) 90631 (48.3)
Consolidation 12730 (6.78) 23976 (12.78) 150935 (80.44) Pneumonia 4576 (2.44) 15658 (8.34) 167407 (89.22) Atelectasis 29333 (15.63) 29377 (15.66) 128931 (68.71) Pneumothorax 17313 (9.23) 2663 (1.42) 167665 (89.35) Pleural Effusion 75696 (40.34) 9419 (5.02) 102526 (54.64) Pleural Other 2441 (1.3) 1771 (0.94) 183429 (97.76)
Support Devices 105831 (56.4) 898 (0.48) 80912 (43.12)
• ChestX-ray 14 [6] là bộ dữ liệu được trích xuất từ cơ sở dữ liệu PACS lâm
sàng tại Trung tâm Lâm sàng Viện Y tế Quốc gia và bao gồm khoảng 60% tất
cả các lần chụp X-quang ngực trước trong bệnh viện Các nhãn hình ảnh được gán thông qua xử lý ngôn ngữ tự nhiên (NLP) Bộ dữ liệu X quang bao gồm 112.120 hình ảnh X-quang nhìn trực diện của 30.805 bệnh nhân duy nhất với mười bốn nhãn hình ảnh bệnh bao gồm Atelectasis, Consolidation, Infiltration, Pneumothorax, Edema, Emphysema, Fibrosis, Effusion, Pneumonia, Pleural_thickening, Cardiomegaly, Nodule, Mass and Hernia Đây là một phần mở rộng của tập ChestX-ray8 Tập dữ liệu này được sử dụng
để tạo mô hình pre-trained cho các thí nghiệm
• VinDr-CXR [10] là tập dữ liệu quy mô lớn về hình ảnh X-quang phổi với
hơn 100.000 hình ảnh thô ở định dạng DICOM được thu thập từ Bệnh viện
108 và Bệnh viện Đại học Y Hà Nội, hai trong số các bệnh viện lớn nhất Việt Nam Bộ dữ liệu được công bố bao gồm 18.000 bản chụp X-quang phổi ngực thẳng (PA CXR), đã được loại bỏ nhận dạng để bảo vệ quyền riêng tư của
Trang 17bệnh nhân Những hình ảnh này được chú thích bởi một nhóm gồm 17 bác sĩ
X quang có ít nhất 8 năm kinh nghiệm với sự hiện diện của 22 phát hiện quan trọng (local labels) và 6 chẩn đoán (global labels) Mỗi phát hiện được định
vị bằng một bounding box Các local labels và global labels tương ứng với các phần “Findings” và “Impressions” của một báo cáo X quang tiêu chuẩn
Bộ dữ liệu được chia thành hai phần: Tập huấn luyện (training set) gồm 15.000 bản chụp và tập kiểm tra (test set) gồm 3000 bản chụp Mỗi hình ảnh trong tập huấn luyện được dán nhãn độc lập bởi 3 bác sĩ X quang, trong khi chú thích của từng hình ảnh trong tập kiểm tra thậm chí còn được xử lý cẩn thận hơn và thu được từ sự đồng thuận của 5 bác sĩ X quang Quá trình ghi nhãn được thực hiện thông qua khuôn khổ dựa trên web riêng của VinDr Lab, được xây dựng trên hệ thống lưu trữ và truyền thông hình ảnh (PACS)
Bảng 1.4: Bảng thống kê tập dữ liệu VinDr-CXR [10]
Number of human annotators per scan 3 5
Image size (pixel×pixel, median) 2788 × 2446 2748 × 2394
Age (years, median)* 43.77 31.80
Trang 181.2 Lý do chọn đề tài
Phân loại bệnh vùng ngực dựa trên hình ảnh là một ứng dụng quan trọng trong các ứng dụng chăm sóc sức khỏe của trí thông minh nhân tạo Tuy nhiên, khác với nhiệm
vụ phân loại hình ảnh thông thường trong y tế ảnh có thể có nhiều loại bệnh khác nhau
Do đó bộ phân loại có độ chính xác cao cần phải giải quyết các trường hợp cùng xuất hiện nhiều loại bệnh trên một bệnh nhân Như thể hiện trong hình 1.1, một lý do tiềm ẩn
có thể gây ra nhiều bệnh ở phổi Bởi vì các bệnh rất khó nhận biết, một hình ảnh thông thường được gán nhãn cho một bệnh duy nhất Tính chất này khiến quá trình học tập trở nên khó khăn hơn so với các nhiệm vụ thông thường
Trang 19Hình 1.1: Sự xuất hiện đồng thời của nhiều loại bệnh trong tập dữ liệu VinDr-CXR
[10]
Để giải quyết các nhãn đồng thời xuất hiện, thông tin cần quan tâm là sự phụ thuộc phạm vi dài (long tearm dependency) Bằng cách phát hiện các mối quan hệ trên diện rộng, các bệnh từ các vùng khác nhau có thể chia sẻ thông tin và hỗ trợ lẫn nhau Gần đây, các cơ chế attention rất thành công để nắm bắt các mối quan hệ tầm xa trong
Xử lý ngôn ngữ tự nhiên Cơ chế này cũng được mở rộng sang các lĩnh vực thị giác máy tính như phân loại hoặc phát hiện đối tượng và thu được kết quả đầy hứa hẹn Như đã
đề cập, cần có một bộ dữ liệu khổng lồ như Imagenet để đảm bảo sự thành công của các phương pháp dựa trên Transformer Một kiến trúc ViT phải được huấn luyện trên một tập dữ liệu khổng lồ với một máy tính mạnh Sau đó, mô hình này sẽ được tinh chỉnh trên một tập dữ liệu mới nhỏ hơn Trong điều kiện này, các phương pháp dựa trên Transformer tốt hơn các phương pháp cơ sở CNN truyền thống
Chính vì lí do trên, bài nghiên cứu sẽ khám phá hiệu suất của Vision Transformer trong việc phân loại hình ảnh y tế Mô hình ViT sẽ được tinh chỉnh trên các bộ dữ liệu ảnh y tế nổi tiếng Sau đó, nó sẽ được tinh chỉnh lại trên bộ dữ liệu mục tiêu VinDr-CXR Hơn nữa, về khả năng diễn giải mô hình, nghiên cứu cũng kiểm tra khả năng xử
lý sự đồng xuất hiện của nhiều bệnh trong một hình ảnh y tế của mô hình ViT
Trang 201.4 Phương pháp nghiên cứu
• Nghiên cứu lý thuyết dựa trên các bài báo cáo khoa học hiện có
• Tìm hiểu các tập dữ liệu được công bố để chủng bị cho thí nghiệm
• Tổ chức các thí nghiệm để đưa ra kết quả đánh giá
• So sánh rút ra nhận xét giữa các cách tiếp cận khác nhau
1.5 Đối tượng và phạm vi đề tài
❖ Đối tượng:
• Các chương trình máy tính, kiến trúc mạng học sâu
• Các yếu tố ảnh hưởng đến hiệu suất mô hình học sâu
• Các kỹ thuật diễn giải mô hình
❖ Phạm vi:
• Nhóm nghiên cứu sử dụng dữ liệu hình ảnh phổi của viện nghiên cứu dữ liệu lớn VinDr-CXR của tập đoàn VinGroup và hai tập ChestXpert, Chest14
• Sử dụng các mô hình dựa trên backbone Transformer và Resnet, nghiên cứu cách sử dụng kỹ thuật Grad-CAM, Attention map để phân tích kết quả phân loại của mô hình trên tập dữ liệu này
1.6 Bố cục
Bố cục bài báo cáo nghiên cứu khoa học gồm các chương sau:
- Chương 1: Tổng quan
Chương này tập trung giới thiệu khái quát về đề tài, mục tiêu, phương pháp, phạm
vi, bố cục chung của đề tài nghiên cứu
- Chương 2: Cơ sở lý thuyết
Chương này cung cấp những kiến thức về ảnh y tê, mạng nơ-ron, quá trình hình thành và phát triển của mạng nơ-ron tích chập, những nghiên cứu về kiến trúc Transformer trong xử lý ngôn ngữ tự nhiên, nguyên lý của kiến trúc Vision Transformer
Trang 21và kỹ thuật Grad-CAM trong diễn giải mô hình
- Chương 3: Phương pháp đề xuất
Chương này đề xuất phương pháp tổ chức dữ liệu cho quá trình huấn luyện, xây dựng các thí nghiệm để đánh giá mô hình, cung cấp các mô hình sử dụng và nêu ra các
phương thức đánh giá thí nghiệm
- Chương 4: Kết quả - nhận xét - đánh giá
Chương này trình bày kết quả các thí nghiệm đồng thời trực quan khả năng diễn giải mô hình cùng với những nhận xét đánh giá
- Chương 5: Kết luận và kiến nghị
Chương này đưa ra kết luận tổng kết cho đề tài nghiên cứu và đưa ra một số đề xuất mang tính xây dựng
Trang 22Chương 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu ảnh X-quang
2.1.1 Ảnh số
Trong xử lý ảnh, mỗi ảnh được xem là một ma trận các điểm ảnh gọi là pixel Mỗi pixel diễn tả màu sắc nhất định tại một tọa độ duy nhất trong ảnh Bằng các phương pháp đo lường thống kê ta có thể biến đổi ảnh thành ảnh khác tương tự ảnh gốc Có hai dạng ảnh quan trọng trong các ứng dụng xử lý ảnh là ảnh màu và ảnh xám [12]
Một ảnh màu (ví dụ minh họa như hình 2.1) thường được tạo thành từ nhiều pixel
mà trong đó mỗi pixel được biểu diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ (Red), xanh lá (Green) và xanh dương (Blue) tại một vị trí cụ thể Các kênh màu Red, Green và Blue là những màu cơ bản mà từ đó có thể tạo ra các màu khác nhau bằng phương pháp pha trộn Với việc chuẩn hóa 256 mức cho từng kênh màu chính, từ
đó có thể thấy một pixel màu có thể biểu điễn được một trong 256 * 256 * 256
=16777216 màu khác nhau
Hình 2.1: Ví dụ về ảnh màu RGB
Một ảnh xám (ví dụ minh họa như hình 2.2) được xây dựng từ nhiều pixel mà tại
đó biểu diễn một giá trị nhất định tương ứng với một mức xám Những mức xám này trải dài trong một khoảng từ đen sang trắng thông thường là 256 mức xám khác nhau theo tiêu chuẩn
Ngoài ra còn có ảnh nhị phân sử dụng một bit để biểu diễn pixel Một pixel chỉ
có hai trạng thái 0 và 1 ứng với đen và trắng Do đặc tính này nên ảnh nhị phân ít dược ứng dụng
Trang 23về giải phẫu và sinh lý học bình thường để có thể xác định các bất thường [13]
Ảnh chụp X-quang ra đời sớm nhất và đóng vai trò quang trọng trong chuẩn đoán hình ảnh y tế Kỹ thuật này sử dụng khả năng xuyên thấu của tia X và mức độ hập thụ của các mô để thu được hình chiếu của các cơ quan trong cơ thể Ảnh X-quang được sử dụng để xác định loại và mức độ gãy xương cũng như để phát hiện những thay đổi bệnh
lý ở phổi
Ảnh X-quang (như hình 2.3) thường được lưu trữ dưới định dạng DICOM [14] DICOM (Digital Imaging and Communications in Medicine) là tiêu chuẩn để truyền thông và quản lý thông tin hình ảnh y tế và dữ liệu liên quan DICOM được sử dụng phổ biến nhất để lưu trữ và truyền hình ảnh y tế cho phép tích hợp các thiết bị hình ảnh y tế như máy quét, máy chủ, máy trạm, máy in, phần cứng mạng, hệ thống lưu trữ và truyền hình ảnh (PACS) từ nhiều nhà sản xuất DICOM nhóm thông tin thành các tập dữ liệu
Ví dụ: một tệp ảnh X-quang phổi có thể chứa ID bệnh nhân trong tệp, do đó, hình ảnh không bao giờ có thể bị tách rời khỏi thông tin này do nhầm lẫn Đối tượng dữ liệu DICOM bao gồm một số thuộc tính, bao gồm các mục như tên, ID, và cũng có một thuộc tính đặc biệt chứa dữ liệu pixel hình ảnh Để thuận tiện cho quá trình huấn luyện
mô hình ta thường chuyển định dạng ảnh y tế về các định dạng ảnh thông thường, quá
Trang 24trình này được thực hiện trong bước chuẩn bị bộ dữ liệu
Python là ngôn ngữ có nhiều tính năng được sử dụng phổ biến rộng rãi trong nhiều lĩnh vực đặc biệt là trong AI và học máy Những Lý do giúp Python được sử dụng phổ biến nhất trong các dự án Học máy và dự án AI bao gồm:
• Tính đơn giản và nhất quán
• Cho phép truy cập vào các thư viện và framework tuyệt vời cho AI và học máy
• Tính linh hoạt
• Độc lập nền tảng
Trang 25• Và cộng đồng rộng lớn
Python có một kho công nghệ phong phú bao gồm rất nhiều thư viện cho trí tuệ nhân tạo và học máy Dưới đây là một số thư viện, framework phổ biến: Keras, TensorFlow, Scikit-learn cho học máy, NumPy cho phân tích dữ liệu và tính toán khoa học hiệu năng cao, SciPy cho advanced computing, Pandas để phân tích dữ liệu mục đích chung, Seaborn cho trực quan hóa dữ liệu, … Python có một cộng đồng vô cung lớn có thể hỗ trợ và truy cập kho tài liệu vô cùng dễ dàng
2.2.2 Thư viện Pytorch
PyTorch là một framework học máy mã nguồn mở dựa trên thư viện Torch được
sử dụng cho các ứng dụng như thị giác máy tính và xử lý ngôn ngữ tự nhiên, chủ yếu được phát triển bởi Meta AI Mặc dù giao diện Python được trau chuốt hơn và là trọng tâm phát triển chính, PyTorch cũng có giao diện C ++ [16].Pytorch tập trung vào 2 khả năng chính:
• Một sự thay thế cho bộ thư viện numpy để tận dụng sức mạnh tính toán của GPU
• Một platform Deep learning phục vụ trong nghiên cứu, mang lại sự linh hoạt
và tốc độ
Hình 2.4: Workflow một quá trình huấn luyện mô hình trên Pytorch
Một trong những cốt lõi của Pytorch là tensor Tensor là một mảng đa chiều tương
Trang 26tự như mảng numpy nhưng có thể hoạt động trên GPU, điều này giúp tăng đáng kể hiệu suất hệ thống Pytorch cung cấp nhiều mô-đun hỗ trợ cho mô hình học sâu Các mô-đun này được tổ chức theo một workflow giúp cho việc triển khai sử dụng thuận tiện Theo hình 2.4, Pytorch có thể cung cấp các hỗ trợ cho một quá trình huấn luyện mô hình với các bước:
- Bước 1: Tổ chức dữ liệu và tải dữ liệu vào mô hình huấn luyện Pytorch cung cấp mô-đun “torch.utils.data” để hỗ trợ việc này Hai thư viện chính trong mô-đun này
là Dataset và Dataloader Dataset sử dụng kiểu dữ liệu Tensor để tổ chức tùy chỉnh bộ
dữ liệu, Dataloader sử dụng để tải bộ dữ liệu cho quá trình huấn luyện và kiểm tra
- Bước 2: Khởi tạo mô hình Ta có thể sử dụng mô hình có sẵn hoặc có thể tự tạo một mô hình cho ứng dụng của mình Pytorch cung cấp mô-đun “torch.nn” có đầy đủ các lớp để tạo nên mạng nơ-ron như lớp “fully connected”, “convolution”, các hàm kích hoạt và các hàm tổn thất
- Bước 3: Tiến hành huấn luyện mô hình Sau khi đã có tập dữ liệu và mô hình cần có kỹ thuật cập nhật trọng số và bias để tiến hành tiến hành huấn luyện, kỹ thuật này
có trong mô-đun “torch.optim” Đặc biệt Pytorch còn hỗ trợ tính gradient tự động trong quá trình huấn luyện bằng mô-đun “torch.autograd”
- Bước 4: Chạy đánh giá mô hình
- Bước 5, 6: Sau khi kết quả mô hình đạt như mong muốn có thể lưu trữ để triển khai ứng dụng Pytorch cung cấp mô-đun “torch.hub” hỗ trợ lưu trữ công khai mô hình trên github để phục vụ nghiên cứu Mô-đun “torch.onnx” hoặc “torch.jit” cung cấp khả năng chuyển đổi mô hình sang các định dạng khác để dàng triển khai ứng dụng
2.3 Giới thiệu mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo [17] dựa trên một tập hợp các đơn vị hoặc nút được kết nối được gọi là tế bào thần kinh nhân tạo, mô hình hóa tương tự các tế bào thần kinh trong não sinh học Mỗi kết nối giống như khớp thần kinh trong não sinh học có thể truyền tín hiệu đến các tế bào thần kinh khác Một tế bào nơ-ron nhân tạo nhận tín hiệu sau đó xử lý chúng và có thể phát tín hiệu cho các nơ-ron thần kinh kết nối với nó "Tín hiệu" tại một kết nối là một số thực và đầu ra của mỗi nơ-ron được tính bằng một số hàm phi tuyến tính của tổng các đầu vào của nó Các kết nối được gọi là các cạnh Các
tế bào thần kinh và các cạnh thường có trọng số điều chỉnh khi quá trình học tập diễn
ra Trọng số làm tăng hoặc giảm cường độ của tín hiệu tại một kết nối Nơ-ron thần kinh
Trang 27có thể có ngưỡng sao cho tín hiệu chỉ được gửi đi khi tín hiệu tổng hợp vượt qua ngưỡng
đó Thông thường, các tế bào thần kinh được tập hợp thành các lớp Các lớp khác nhau
có thể thực hiện các phép biến đổi khác nhau trên các đầu vào của chúng Tín hiệu đi từ lớp đầu tiên (lớp input), đến lớp cuối cùng (lớp output), có thể sau khi đi qua các lớp nhiều lần gọi là lan truyền thuận Mỗi nơ-ron sẽ nhận tất cả đầu vào từ nơ-ron ở lớp trước đó và sử dụng một hàm kích hoạt để tính toán đầu ra Mỗi mạng nơ-ron sẽ có hàm mất mát để so sánh với kỳ vọng của mạng, để tối ưu hàm giải thuật lan truyền ngược để tính đạo hàm hàm này
Hình 2.5: Mạng nơ-ron nhân tạo
2.3.1 Hàm kích hoạt
Hàm kích hoạt có chức năng đưa ra quyết định cuối cùng của mạng tức output
Có hai loại hàm kích hoạt là hàm phi tuyến tính và hàm phi tuyến Hàm tuyến tính biểu diễn toán học là một đường thẳng tức là output sẽ không được giới hạn trong một phạm
vi cụ thể Hàm phi tuyến có phạm vi giới hạn xác định nên được áp nhiều vào quyết định của mạng nơ-ron Một số hàm phi tuyến phổ biến:
• Hàm Sigmoid là một hàm phi tuyến với đầu vào là các số thực và cho kết quả
nằm trong khoảng [0,1] và được xem là xác xuất trong một số bài toán Trong hàm Sigmoid, một sự thay đổi nhỏ trong input dẫn đến một kết quả output ko mấy thay đổi Vì vậy, nó đem lại một đầu ra "mượt" hơn và liên tục hơn so với input Công thức 𝑦 = 1/(1 + 𝑒−𝑥) và đạo hàm 𝑦′ = 𝑦 ∗ (1 − 𝑦)
Trang 28Hình 2.6: Đồ thị hàm Sigmoid
• Hàm ReLU còn gọi là đơn vị tuyến tính chỉnh lưu có công thức 𝑦 =
max(0, 𝑦) và công thức đạo hàm là 𝑦′ = 1(𝑦 > 0), 0(𝑦 < 0)
của mạng nơ-ron là L(W) Ý tưởng chính của phương pháp này là khởi tạo một giá trị
trọng số 𝑊𝑖𝑛𝑡 ngẫu nhiên, sau đó một quá trình lặp sẽ được tiến hành để tìm các trọng
số W mới sao cho giá trị của hàm tổn thất sẽ ngày càng nhỏ hơn Phương trình thể hiện
quá trình học để giảm giá trị hàm mục tiêu được thể hiện trong phương trình 2.1 Quá trình lặp sẽ được tiến hành cho tới khi hàm mục tiêu hội tụ So với việc giải đạo hàm truyền thống,phươngphápGradient Descent được sử dụng rộng rãi hơn vì việc tính đạo hàm cho hàm mục tiêu sẽ phức tạp trong một số tình huống cụ thể
Trang 29𝑊 = 𝑊 − 𝑎𝑙𝑝ℎ𝑎𝜕𝐿
Hình 2.8: Vai trò của việc chọn learning rate
Trong công thức 2.1 hệ số alpha là tốc độ học (learning rate), thường được chọn
là 0,1 Tuy nhiên hệ số này phải được lựa chọn cẩn thận trong mỗi bộ dữ liệu khác nhau chứ không cứng nhắc Việc chọn hệ số learning rate sẽ dẫn tới một trong số các trường hợp sau đây Nếu learning rate nhỏ, mỗi lần hàm số giảm rất ít nên cần rất nhiều lần cập nhập trọng số để hàm mục tiêu đạt giá trị nhỏ nhất Nếu learning rate hợp lý, sau một số lần lặp vừa phải thì hàm sẽ đạt giá trị đủ nhỏ Nếu learning rate quá lớn, sẽ gây hiện tượng overshoot và không bao giờ đạt được giá trị nhỏ nhất của hàm như được minh họa trong hình 2.8
2.3.3 Hàm tổn thất
Trong các hàm tổn thất (loss function), Cross-entropy loss [19] là một trong những hàm tổn thất quan trọng nhất được sử dụng trong quá trình huấn luyện mạng nơ-ron từ các mạng máy học truyền thống đến các mạng học sâu Trong quá trình huấn luyện các bài toán học có giám sát, mô hình học cách ánh xạ đầu vào với đầu ra xác suất thực tế và điều chỉnh dần các trọng số của mô hình trong suốt giai đoạn huấn luyện để các dự đoán tiến gần hơn đến giá trị mong đợi (ground truth)
Entropy của một biến ngẫu nhiên X là mức độ không chắc chắn vốn có trong kết quả có thể có của các biến Entropy có thể được xác định bằng toán học sử dụng phân phối xác suất được ký hiệu là H với công thức dưới đây, trong đó p (x )là phân phối xác xuất, X là biến ngẫu nhiên:
( ) ( ) log ( )
x
Trang 30Vì logp(x)< 0 với mọi p (x )thuộc (0, 1) nên cần đặt dấu “trừ” trong công thức (2.1)
Hình 2.9: Đồ thị Hàm log(x)
Cross-entropy loss được sử dụng tính toán mức sai khác giữa các phân phối xác xuất giúp tối hóa quá trình huấn luyện mô hình phân loại, đặc biệt là trong các tác vụ phân loại nhiều lớp (multi-classification) Mục đích là giảm thiểu mức tổn thất, tức là
giá trị của loss càng nhỏ càng tốt Một mô hình hoàn hảo có cross-entropy loss bằng 0
Hàm Cross-entropy loss được định nghĩa một cách tổng quát theo công thức toán học như sau:
• p i là phân phối xác xuất của class thứ i
Cross-entropy loss cũng là một phép đo được dùng để đánh giá hiệu suất của một
mô hình phân loại, được tính toán theo sau hàm kích hoạt Softmax ở lớp đầu ra nhận dầu vào là các giá trị đầu ra của hàm Softmax và các nhãn thực tế Mức tổn thất loss có giá trị nằm trong khoảng (0, 1), giá trị này càng tiệm cận 0 thì độ chính xác của mô hình càng cao
Trang 312.4 Phân loại dựa trên CNN
2.4.1 Mạng LeNet
LeNet được xem là mạng nơ-ron cổ điển được giới thiệu bởi Yann LeCun và cộng sự trong ứng dụng nhận dạng các chữ số viết tay được công bố năm 1998 và được gọi là LeNet-5 [20] Đây cũng là kiến trúc áp dụng mạng nơ-ron tích chập 2 chiều được công bố lần đầu tiên Cấu trúc của mạng LetNet khá đơn giản, gồm hai phần chủ yếu là khối các tầng tích chập (Convolutional layers) và khối các tầng kết nối đầy đủ (Fully connected layers) Tuy nhiên mô hình đã có hiệu suất tốt hơn so với các thuật toán machine learning truyền thống khác dùng trong phân loại chữ số viết tay như SVM, KNN
Hình 2.10: Mô tả kiến trúc mạng LeNet-5 được thiết kế để xác định các chữ số viết tay
trong tập dữ liệu MNIST
Các hình ảnh đầu vào có kích thước 32 x 32 x 1 và số layers tương đối ít, do đó
mô hình chỉ có khoảng 60 nghìn tham số Thành phần của khối tích chập được tạo nên
từ việc xếp chồng các khối nhỏ gồm lớp tích chập và lớp gộp trung bình Pooling Layer) theo sau Lớp tích chập giúp phát hiện các đặc trưng không gian trong ảnh như các đường cạnh và các bộ phận của đối tượng Lớp gộp trung bình nhằm mục đích giảm chiều dữ liệu mà không làm thay đổi các đặc trưng quan trọng, còn được gọi
(Average-là Sub-Sampling Layer Tuy nhiên mô hình rất khó hội tụ nên Average-Pooling Layer thường được thay thế bằng Max-Pooling Các mẫu ở đầu ra của khối tích chập sẽ được làm phẳng (flatten) trước khi chuyển sang khối kết nối đầy đủ, để biến đổi đầu vào 4D thành đầu vào 2D tương thích với các tầng kết nối đầy đủ Cuối cùng là các lớp kết nối đầy đủ
Trang 32Hình 2.11: Chi tiết các thành phần tham số của mô hình LeNet
LeNet có nhược điểm là mạng còn khá đơn giản và việc sử dụng hàm sigmoid (hay tanh) ở mỗi convolution layer không thuận lợi cho việc tính toán, mô hình hội tụ chậm
2.4.2 Mạng AlexNet
Được phát triển dựa trên ý tưởng của LeNet, AlexNet là mạng CNN được đặt theo tên của Alex Krizhevsky, tác giả của bài báo đột phá dành chiến thắng cách biệt trong cuộc thi phân loại ImageNet ILSVRC được giới thiệu vào năm 2012 [21]
Hình 2.12: Mô tả kiến trúc mạng AlexNet
Trang 33Cấu trúc của AlexNet tương tự như LeNet, nhưng sử dụng nhiều tầng tích chập hơn với số lượng các tham số lớn hơn (lên tới 60 triệu tham số) để phù hợp với tập dữ liệu ImageNet có kích thước lớn AlexNet đã phá vỡ những hoài nghi rằng các đặc trưng được học từ mô hình sẽ không tốt bằng các đặc trưng được tạo thủ công
Hình 2.13: Chi tiết các thành phần tham số của mô hình AlexNet
Các điểm cải tiến trong kiến trúc AlexNet đã tạo nên những khác biệt đáng kể về hiệu suất so với LeNet:
• AlexNet nhận đầu vào có kích thước lớn hơn, mạng sâu hơn nhiều so với LeNet với tám tầng gồm: năm tầng tích chập, hai tầng ẩn kết nối đầy đủ, và một tầng đầu ra kết nối đầy đủ
• Sử dụng hàm kích hoạt ReLU (Rectified Linear Unit) thay cho sigmoid giúp cho tính toán tốc độ nhanh hơn, dễ dàng và vẫn đảm bảo được tính phi tuyến (non-linear)
Trang 34• Sử dụng các cửa sổ kernel với kích thước giảm dần qua các layers để phù hợp với kích thước của đặc trưng
• Áp dụng local normalization để chuẩn hóa các layer giúp mô hình hội tụ nhanh hơn
• Kiểm soát năng lực của tầng kết nối đầy đủ bằng cách áp dụng dropout layer giúp giảm số lượng liên kết neural và kiểm soát overfitting
• Kích thước đầu ra giảm dần qua các layers nhưng độ sâu tăng dần qua từng kernel
2.4.3 Mạng VGG
VGG (Visual Geometry Group) là mô hình học sâu được đề xuất bởi K
Simonyan and A Zisserman năm 2014 trong bài báo “Very Deep Convolutional
Networks for Large-Scale Image Recognition” [22] Mô hình có hiệu suất vượt trội mô
hình trước đó là AlexNet trên tập dữ liệu ImageNet VGG được phát triển theo hướng tăng độ sâu của mạng CNN nhằm tăng hiệu suất của mô hình Ý tưởng sử dụng các khối (block) lần đầu được sử dụng trong mạng VGG để làm tăng độ sâu của mạng
Hình 2.14: Ý tưởng xây dựng mạng VGG sử dụng các khối VGG block gồm các tầng
tích chập được xếp chồng
Trang 35Kiến trúc VGG có nhiều biến thể khác nhau về độ sâu (số layers) VGG-16 sâu hơn so với AlexNet và số lượng tham số lên tới 138 triệu tham số, ngoài ra còn một phiên bản của VGG là VGG-19 tăng cường thêm 3 layers về độ sâu
VGG vẫn được xây dựng dựa trên các tính năng thiết yếu của CNN nhưng có những điểm cải tiến trong cấu trúc:
• Đầu vào (input): kích thước hình ảnh đầu vào là 224 × 224
• Convolutional Layers: Các lớp tích chập của VGG sử dụng kernel có kích
thước nhỏ 3 × 3 Các bộ lọc tích chập (filters) kích thước 1 × 1 hoạt động như một phép biến đổi tuyến tính của đầu vào Hàm kích hoạt ReLU được kế thừa như ở AlexNet giúp giảm thời gian huấn luyện Bước sải tích chập (stride) được đặt là 1 pixel nhằm giữ nguyên độ phân giải không gian sau khi tính tích chập
• Hidden Layers: Tất cả các lớp ẩn trong mạng đều sử dụng ReLU VGG
thường không sử dụng Chuẩn hóa phản hồi cục bộ (LRN) vì nó làm tăng mức tiêu thụ bộ nhớ và thời gian huấn luyện, ngoài ra nó cũng không cải thiện độ chính xác tổng thể
• Fully-Connected Layers: có 3 lớp kết nối đầy đủ Trong đó, hai lớp đầu tiên
mỗi lớp có 4096 kênh và lớp thứ ba có 1000 kênh, 1 kênh tương ứng với 1 class
Hình 2.15: Mô tả kiến trúc mô hình VGG-16
2.4.4 Mạng GoogLeNet
Mạng GoogLeNet [23] ra đời năm 2014 đề xuất một mô hình kết hợp những điểm
Trang 36mạnh của mô hình Network-in-Network và mô hình chứa các khối lặp lại để giải quyết vấn đề kích thước mô hình Mạng này cho thấy đôi khi kết hợp các bộ lọc có kích thước khác nhau có thể mang lại hiệu quả
Khối tích chập cơ bản của GoogleNet được gọi là Inception Ý tưởng chính của kiến trúc Inception dựa trên việc tìm ra cách một cấu trúc thưa cục bộ tối ưu trong mạng thị giác tích chập có thể được xấp xỉ và được bao phủ bởi các thành phần dày đặc sẵn
có Cấu trúc khối inception bao gồm bốn nhánh song song với nhau Ba nhánh đầu sử dụng các tầng tích chập với kích thước cửa sổ trượt lần lượt là 1×1, 3×3, và 5×5 để trích xuất thông tin từ các vùng không gian có kích thước khác nhau Hai nhánh giữa thực hiện phép tích chập 1×1 trên dữ liệu đầu vào để giảm số kênh đầu vào, từ đó giảm độ phức tạp của mô hình Nhánh thứ tư sử dụng một tầng gộp cực đại kích thước 3×3, theo sau là một tầng tích chập 1×1 để thay đổi số lượng kênh Cả bốn nhánh sử dụng phần đệm phù hợp để đầu vào và đầu ra của khối có cùng chiều cao và chiều rộng Cuối cùng, các đầu ra của mỗi nhánh sẽ được nối lại theo chiều kênh để tạo thành đầu ra của cả khối Các tham số thường được tinh chỉnh của khối Inception là số lượng kênh đầu ra mỗi tầng
Hình 2.16: Cấu trúc khối Inception
Ưu điểm của cấu trúc này là những chi tiết ở các mức độ khác nhau sẽ được nhận diện hiệu quả bằng các bộ lọc khác nhau Đồng thời, ta có thể phân bổ số lượng tham số khác nhau cho những vùng có phạm vi khác nhau
Mô hình GoogLeNet sử dụng tổng cộng 9 khối inception và tầng gộp trung bình toàn cục xếp chồng lên nhau Phép gộp cực đại giữa các khối inception có tác dụng làm giảm kích thước chiều Phần đầu tiên của GoogleNet giống AlexNet và LeNet, có các
Trang 37khối xếp chồng lên nhau kế thừa từ thiết kế của VGG và phép gộp trung bình toàn cục giúp tránh phải sử dụng nhiều tầng kết nối đầy đủ liên tiếp ở cuối
Hình 2.17: Cấu trúc mạng GoogLeNet
2.4.5 Mạng ResNet
Từ các các giai đoạn phát triển của các kiến trúc như AlexNet, VGG và GoogleNet, ta thấy các kiến trúc CNN ngày càng được phát triển sâu hơn Tuy nhiên, việc tăng độ sâu của mạng không phải lúc nào cũng cải thiện được độ chính xác của mô hình vì thực tế người ta quan sát thấy rằng việc huấn luyện mạng nơ-ron trở nên khó khăn hơn khi tăng số lượng lớp thêm vào, trong một số trường hợp độ chính xác cũng giảm theo
Một trong những nguyên nhân cho hiện tượng trên là vấn đề “Vanishing gradient” (triệt tiêu gradient) Gradient được lan truyền ngược trở lại các lớp trướcđể tính toán cho việc cập nhật tham số, các phép tính lặp đi lặp lại có thể làm cho giá trị gradient trở nên vô cùng nhỏ Điều này làm cho hiệu suất của mạng bị bão hòa hoặc giảm hiệu suất nhanh chóng Kiến trúc Resnet ra đời là một giải pháp cho vấn đề này
ResNet (Residual Network) là một mạng nơ-ron được giới thiệu lần đầu tiên bởi
Trang 38Kaiming He, Xiangyu Zhang, Shaoqing Ren và Jian Sun trong bài báo nghiên cứu thị
giác máy tính năm 2015 với tiêu đề “Deep Residual Learning for Image Recognition”
[2] Giải pháp được sử dụng ở ResNet dùng các kết nối tắt (skip connection) đồng nhất
để truyền qua một hay nhiều layers Các kết nối tắt giúp giữ thông tin không bị mất bằng cách kết nối từ layer sớm trước đó tới layer phía sau và bỏ qua một vài layers trung gian
Hình 2.18: Kết nối tắt được sử dụng trong ResNet
ResNet cũng kế thừa và tương tự với các mạng CNN trước đó, gồm các thành phần convolution, pooling, activation và fully-connected layer Mạng ban đầu đơn giản được lấy cảm hứng từ mạng nơ-ron VGG, với bộ lọc tích chập kích thước 3 × 3 Tuy nhiên, so với VGG, ResNet có ít bộ lọc hơn và độ phức tạp thấp hơn Đường kết nối tắt
được thêm vào giúp bổ sung Input x vào đầu ra của layer, điều này được thực hiện bằng
phép “cộng” như hình minh họa ở trên, việc này tránh cho đạo hàm bằng 0 Giả sử ta
có x là đầu vào của khối identity cần ánh xạ đầu thành hàm F(x) Với H(x) là giá trị dự đoán, F(x) là giá trị thật (nhãn), ta cần làm cho H(x) bằng hoặc xấp xỉ F(x), khi đó: H(x)
= ReLU(F(x) + x)
Các đường kết nối tắt chính là điểm mạnh cốt lõi mang lại sự thành công của Resnet, Thứ nhất, chúng làm giảm bớt vấn đề triệt tiêu gradient Thứ hai, chúng cho phép mô hình học một chức năng nhận dạng (identity) Điều này đảm bảo rằng các lớp cao hơn của mô hình không hoạt động kém hơn các lớp thấp hơn Ngoài ra ResNet cũng
sử dụng Batch Normalization giúp chuẩn hóa lớp đầu vào để tăng hiệu suất của mạng
ResNet có rất nhiều biến thể với số lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 Thực tế, những kiến trúc sau này có thể được huấn luyện mạng nơ-ron với độ sâu hàng nghìn lớp ResNet nhanh chóng trở thành kiến trúc phổ biến nhất với nhiều thành công trong các tác vụ thị giác máy tính
Trang 39Hình 2.19: Mô tả kiến trúc ResNet (ResNet-18)
2.5 Phân loại dựa trên Transformer
2.5.1 Kiến trúc Transformer
Transformer là mô hình thành công trong lĩnh vực xử lý ngôn ngữ tự nhiên Mô hình này giải quyết vấn đề quá trình xử lý diễn ra tuần tự làm tiêu tốn nhiều tài nguyên tính toán từ các mô hình trước Nó cung cấp khả năng duy trì cơ chế attention trong khi
xử lý các chuỗi song song tức là xử lý các từ cùng nhau thay vì trên cơ sở từng từ
Hình 2.20: Kiến rúc Transformer [3]
Trang 40Transformer có cấu trúc gồm hai phần là Encoder và Decoder như hình 2.20 Encoder lấy đầu vào từ ngôn ngữ gốc, tạo một embedding cho chúng, mã hóa vị trí, tính toán vị trí mà mỗi từ phải tham gia trong thiết lặp đa ngữ cảnh và sau đó xuất ra một số biểu diễn trung gian Decoder lấy đầu vào từ ngôn ngữ mục tiêu, tạo ra một embedding cho chúng với các vị trí được mã hóa, tính toán nơi mỗi từ phải tham gia và sau đó kết hợp đầu ra của encoder với những gì nó đã tạo ra Kết quả là một dự đoán cho “token” tiếp theo, bằng softmax và cũng như dự đoán lớp argmax (trong đó mỗi “token” hoặc từ
là một lớp) Bên trong cả encoder và decoder đều sử dụng các lớp multi-head attention
và feed forward xếp chồng lên nhau Chính multi-head attention tạo nên sự khác biệt giữa Transformer với các mô hình trước đó Multi-head attention thực chất là nhiều self-attention tập hợp lại để mô hình chú ý nhiều từ khác nhau [3]
⚫ Self-attention
Self-attention cho phép mô hình khi mã hóa một từ có thể sử dụng thông tin của những từ liên quan tới nó Self-attention cũng tương tự như hàm attention Một attention
có thể được mô tả là ánh xạ một query và một tập hợp các key-value tới một kết quả đầu
ra Ở Self-attention các key, query và value được tạo ra từ cùng một mục của chuỗi đầu vào Trong đó, query là vector dùng để chứa thông tin của từ được tìm kiếm, so sánh Key là vector dùng để biểu diễn thông tin các từ được so sánh với từ cần tìm kiếm ở trên Value vector biểu diễn nội dung, ý nghĩa của các từ Kết quả đầu ra được tính dưới dạng tổng trọng số của các value, trong đó trọng số được gán cho mỗi value được tính bằng hàm tương thích của query với key tương ứng Công thức tính Self-attention như sau:
𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝐾, 𝑉) = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (𝑄𝐾𝑇
Đầu tiên, tính ma trận query, key, value bằng cách khởi tạo 3 ma trận trọng số Query, Key, Value Sau đó nhân input với các ma trận trọng số này để tạo thành 3 ma trận tương ứng Tính attention weights bằng cách nhân 2 ma trận key, query vừa được tính ở trên với nhau để so sánh giữa câu query và key nhằm học mối tương quan Sau
đó thì chuẩn hóa về đoạn [0-1] bằng hàm softmax, nếu là 1 có nghĩa là câu query giống với key, 0 có nghĩa là không giống Cuối cùng tính output bằng cách nhân attention weights với ma trận value Điều này có nghĩa là một từ được biểu diễn bằng trung bình