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

Đồ án tốt nghiệp ngành kỹ thuật y sinh ứng dụng mô hình vision transformer trong phân loại dữ liệu bệnh phổi

106 101 2

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng Mô Hình Vision Transformer Trong Phân Loại Dữ Liệu Bệnh Phổi
Tác giả Ngô Quang Khải, Huỳnh Văn Pháp
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ thuật y sinh
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 106
Dung lượng 9,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HCM, ngày tháng 06 năm 2022 LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP Họ tên sinh viên 1: Ngô Quang Khải Họ tên sinh viên 2: Huỳnh Văn Pháp Tên đề tài: Ứng dụng mô hình Vision Transfor

Trang 1

Tp.Hồ Chí Minh, tháng 6/2022

HUỲNH VĂN PHÁP

S K L 0 0 8 9 0 6

GVHD: TS NGUYỄN MẠNH HÙNG SVTH: NGÔ QUANG KHẢI

ỨNG DỤNG MÔ HÌNH VISION TRANSFORMER TRONG

PHÂN LOẠI DỮ LIỆU BỆNH PHỔI

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

TRANSFORMER TRONG PHÂN

LOẠI DỮ LIỆU BỆNH PHỔI

GVHD: TS Nguyễn Mạnh Hùng SVTH1: Ngô Quang Khải

MSSV1: 18129026 SVTH2: Huỳnh Văn Pháp MSSV2: 18129041

Trang 3

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

GVHD: TS Nguyễn Mạnh Hùng SVTH1: Ngô Quang Khải

MSSV1: 18129026 SVTH2: Huỳnh Văn Pháp MSSV2: 18129041

TP Hồ Chí Minh – 06/2022

Trang 4

TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH

KHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP

Họ tên sinh viên: Ngô Quang Khải MSSV: 18129026

Chuyên ngành: Kỹ thuật Y Sinh Mã ngành: 7520212D

I TÊN ĐỀ TÀI: ỨNG DỤNG MÔ HÌNH VISION TRANSFORMER TRONG

II NHIỆM VỤ

1 Các số liệu ban đầu:

-Tập dữ liệu X-quang ngực:ChestXpert, Chest14và VinDr-CXR

-Các mô hình Vision Transformer:ViT-B16, ViT-L16, ViT-S16, R50+ViT-B16

-Cácbiến thể mô hình ResNet: ResNet18, ResNet34, ResNet50

-Các cơ chếdiễn giải mô hình: Grad-CAM, Attention Map

-Ngôn ngữlập trình: Python, HTML, CSS

-Thưviện hỗtrợxây dựng web API: Flask python

-Cơ sởdữliệu: SQLite, tương tác thông qua công cụ SQLAlchemy

-Công nghệđóng gói và triển khaiứng dụng: Docker

2 Nội dung thực hiện:

-Tìm hiểu lý thuyết về các mô hình phân loại

- Nghiên cứu các tập dữ liệu Chest14, ChestExpert,VinDR-CXR và tạo tập dữ liệu

phù hợp với đềtài

-Tiến hành các thí nghiệm huấn luyện mô hình ViT

-Đánh giá kết quả các thí nghiệmbằngphương pháp định tính và định lượng

-Xây dựng web API cho ứng dụng mô hình phân loại bệnh phổi

Trang 5

- Chạy thử nghiệm, kiểm tra và hiệu chỉnh hệ thống

- Đóng gói và triển khai ứng dụng với Docker

- Viết báo cáo thực hiện

- Bảo vệ luận văn

III NGÀY GIAO NHIỆM VỤ: 25/02/2022

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 21/06/2022

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Ts Nguyễn Mạnh Hùng

Trang 6

TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH

KHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

NAM Độc lập - Tự do - Hạnh phúc

Tp HCM, ngày tháng 06 năm 2022

LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP

Họ tên sinh viên 1: Ngô Quang Khải

Họ tên sinh viên 2: Huỳnh Văn Pháp

Tên đề tài: Ứng dụng mô hình Vision Transformer trong phân loại dữ liệu bệnh phổi

Tuần/ngày Nội dung Xác nhận

GVHD

Tuần 1

(28/02 – 06/03)

Gặp GVHD để nghe phổ biến yêu cầu làm đồ

án, tiến hành chọn đề tài và viết đề cương tóm tắt yêu cầu đề tài đã chọn

Trang 7

bệnh nhân

Tuần 10

(09/05 – 15/05)

Hoàn thiện các chức năng chính của ứng dụng:

chức năng đăng ký bệnh nhân, chức năng dự đoán của mô hình, chức năng gửi email và tin nhắn SMS

Trang 8

LỜI CAM ĐOAN

Đề tài này do nhóm tìm hiểu, thực hiện dựa trên một số tài liệu và kết quả nghiên cứu đã được công bố với sự hướng dẫn của thầy Nguyễn Mạnh Hùng và không sao chép

từ tài liệu hay công trình đã có trước đó

Người thực hiện đề tài

Ngô Quang Khải – Huỳnh Văn Pháp

Trang 9

LỜI CẢM ƠN

Trải qua suốt quá trình nghiên cứu và thực hiện đề tài, từ những buổi đầu chủng

bị kiến thức nền tảng đến khi hoàn thành đề tài, nhóm đã nhận được rất nhiều sự hỗ trợ, hướng dẫn tận tình từ Thầy Nguyễn Mạnh Hùng – Giảng viên bộ môn Điện tử công nghiệp - Y sinh Những góp ý, thảo luận, cùng những kinh nghiệm quý báu mà Thầy chia sẽ đã giúp cho đề tài của nhóm ngày càng hoàn thiện hơn, chúng em cảm thấy rất trân quý Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy

Nhóm xin gửi lời cảm ơn đến các Thầy Cô khoa Điện - Điện tử vì những kiến thức nền móng mà thầy cô đã truyền đạt để chúng em có thể đi đến chặn hành trình hiện tại

Chúng em cảm ơn Nhà trường, khoa và bộ môn đã có những kế hoạch tổ cho sinh viên thực hiện đề tài tốt nghiệp đúng hạn mặc dù những trở ngại trong khoảng thời gian dịch bệnh Đặc biệt cảm ơn Thầy Nguyễn Thanh Hải, Trưởng bộ môn Điện tử công nghiệp - Y sinh, đã luôn đồng hành và tận tâm dẫn dắt chúng em trong ngành học thú vị này

Xin gửi lời cảm đến gia đình, những người thân đã luôn quan tâm, động viên và ủng hộ chúng em trong suốt con đường học tập

Cuối cùng nhóm không quên gửi lời cảm ơn đến các bạn lớp 181290 đã đồng hành, trao đổi kiến thức và giúp đỡ lẫn nhau trong quá trình học

Mặc dù đề tài đã hoàn thành theo những nội dung đề ra, nhưng vì vốn kiến thức còn hạn chế nên đề tài có thể khó tránh khỏi những thiếu sót Nhóm mong nhận được những góp ý từ quý Thầy Cô và người đọc để cải thiện đề tài tốt hơn

Xin chân thành cảm ơn!

Người thực hiện đề tài

Ngô Quang Khải – Huỳnh Văn Pháp

Trang 10

MỤC LỤC

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP i

LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP iii

LỜI CAM ĐOAN v

LỜI CẢM ƠN vi

MỤC LỤC vii

LIỆT KÊ HÌNH VẼ x

LIỆT KÊ BẢNG xiii

DANH MỤC TỪ VIẾT TẮT xiv

TÓM TẮT xvi

Chương 1 TỔNG QUAN 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 MỤC TIÊU 3

1.3 NỘI DUNG NGHIÊN CỨU 4

1.4 GIỚI HẠN 4

1.5 BỐCỤC 5

Chương 2 CƠ SỞ LÝ THUYẾT 6

2.1 GIỚI THIỆUẢNH X-QUANG 6

2.1.1Ảnh số 6

2.1.2Ảnh X-quang 7

2.2 GIỚI THIỆU PHẦN MỀM 8

2.2.1 Ngôn ngữlập trình Python 8

2.2.2 Thư viện Pytorch 9

2.3 GIỚI THIỆU MẠNG NƠ-RON NHÂN TẠO 11

2.3.1 Hàm kích hoạt 12

Trang 11

2.3.2 Gradient descent 13

2.3.3 Hàm tổn thất 14

2.4 CÁC MÔ HÌNH PHÂN LOẠI DỰA TRÊN CNN 15

2.4.1 Mạng LeNet 15

2.4.2 Mạng AlexNet 17

2.4.3 Mạng VGG 19

2.4.4 Mạng GoogLeNet 20

2.4.5 Mạng ResNet 22

2.4.6 Giới thiệu kỹ thuật Grad-CAM 24

2.5 MÔ HÌNH PHÂN LOẠI DỰA TRÊN TRANSFORMER 26

2.5.1 Kiến trúc Transformer trong xử lý ngôn ngữ tự nhiên 26

2.5.2 Mô hình Vision Transformer 29

2.5.3 Giới thiệu kỹ thuật Attention Map 34

2.6 GIỚI THIỆU VỀ API 35

2.6.1 Khái quát về API 35

2.6.2 Thư viện Flask 36

2.6.3 Cơ sở dữ liệu SQLite và công cụ tương tác SQLAlchemy 37

2.7 GIỚI THIỆU VỀ DOCKER 38

Chương 3 THÍ NGHIỆM HUẤN LUYỆN VÀ DÁNH GIÁ MÔ HÌNH 40

3.1 TỔNG QUAN VỀ PHƯƠNG PHÁP 40

3.2 TỔ CHỨC DỮ LIỆU 43

3.3 MÔ HÌNH SỬ DỤNG 45

3.4 PHƯƠNG PHÁP ĐÁNH GIÁ 48

Chương 4 THI CÔNG HỆ THỐNG 51

4.1 TỔNG QUAN VỀ HỆ THỐNG 51

4.2 XÂY DỰNG WEB API 52

Trang 12

4.3 TRIỂN KHAI ỨNG DỤNG VỚI DOCKER 57

Chương 5 KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ 60

5.1 KẾT QUẢ 60

5.1.1 Kết quả đánh giá định lượng của mô hình 60

5.1.2 Khả năng diễn giải mô hình 63

5.1.3 Kết quả triển khai ứng dụng 64

5.2 NHẬN XÉT ĐÁNH GIÁ 71

Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73

6.1 KẾT LUẬN 73

6.2 HƯỚNG PHÁT TRIỂN 73

TÀI LIỆU THAM KHẢO 75

PHỤ LỤC 78

Trang 13

LIỆT KÊ HÌNH VẼ

Hình 1.1: Sự xuất hiện đồng thời nhiều loại bệnh trong tập dữ liệu VinDr-CXR [9] 2

Hình 2.1: Ví dụ về ảnh màu RGB 6

Hình 2.2: Ví dụ về ảnh xám 7

Hình 2.3: Ảnh chụp X-quang vùng ngực 8

Hình 2.4: Mô tả các bước của một quá trình huấn luyện mô hình trên Pytorch 10

Hình 2.5: Mạng nơ-ron nhân tạo 11

Hình 2.6: Đồ thị hàm Sigmoid 12

Hình 2.7: Đồ thị hàm ReLU 12

Hình 2.8: Vai trò của việc chọn learning rate 13

Hình 2.9: Đồ thị Hàm log(x) 14

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 15

Hình 2.11: Chi tiết các thành phần tham số của mô hình LeNet 16

Hình 2.12: Mô tả kiến trúc mạng AlexNet 17

Hình 2.13: Chi tiết các thành phần tham số của mô hình AlexNet 18

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 19

Hình 2.15: Mô tả kiến trúc mô hình VGG-16 20

Hình 2.16: Cấu trúc khối Inception 21

Hình 2.17: Cấu trúc mạng GoogLeNet 22

Hình 2.18: Kết nối tắt được sử dụng trong ResNet 23

Hình 2.19: Mô tả kiến trúc ResNet (ResNet-18) 24

Hình 2.20: Tổng quan về hoạt động của Grad-CAM 25

Hình 2.21: Kiến rúc Transformer [11] 27

Hình 2.22: Mô tả cách tính ma trận attention 28

Hình 2.23: Mô tả Multi - Head Attention 29

Hình 2.24: Mô tả kiến trúc của mô hình ViT [12] 30

Hình 2.25: Hình ảnh được chia nhỏ thành các patch nhỏ có kích thước cố định 31

Hình 2.26: 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.27: Mô tả cơ chế Attention trong Vision Transformer 32

Trang 14

Hình 2.28: Định nghĩa về khối Multi-self attention trong Vision Transformer 33

Hình 2.29: Attention map của [CLS] giữa các lớp khác nhau 34

Hình 2.30: Mô tả về cách hoạt của giao thức API 35

Hình 2.31: Hoạt động của API REST 36

Hình 2.32: Logo của framework Flask Python 36

Hình 2.33: Phương thức thao tác với database bằng kỹ thuật ORM 38

Hình 2.34: Các thành phần cơ bản của Docker 39

Hình 3.1: Tổng quan về phương pháp 43

Hình 3.2: Biểu đồ phân phối dữ liệu lựa chọn từ tập dữ liệu VinDr-CXR 44

Hình 3.3: Cấu trúc tổ chức tập dữ liệu thí nghiệm 45

Hình 3.4: Kiến trúc mạng của Resnet-18 46

Hình 3.5: Kiến trúc mạng của Resnet-34 47

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) 48

Hình 3.7: Kiến trúc mạng của Resnet-50 48

Hình 3.8: Grad-CAM và attention map trên tập dữ liệu ong và kiến 49

Hình 4.1: Mô tả cách hoạt động của model API 51

Hình 4.2: Tổng quan về hệ thống 52

Hình 4.3: Sơ đồ tổng quan về các chức năng của ứng dụng web 53

Hình 4.4: Cấu trúc và các thành phần của dự án trên phần mềm Pycharm 54

Hình 4.5: Minh họa các hàm tiện ích được định nghĩa trong file utils 54

Hình 4.6: Tạo Database 55

Hình 4.7: Thiết lập gmail và SMS, trong đó account_sid và auth_token sẽ được cung cấp bởi dịch vụ Twilio 56

Hình 4.8: Tạo các giao diện trang web bằng HTML, CSS 56

Hình 4.9: Nội dung Dockerfile 58

Hình 4.10: Giao diện repositories của DockerHub 58

Hình 5.1: Diễn giải mô hình với nhiều vùng tổn thương 63

Hình 5.2: Diễn giải mô hình với vùng tổn thương đơn lẻ 64

Hình 5.3: Giao diện trang chủ (Home) của ứng dụng web trên trình duyệt máy tính 65 Hình 5.4: Giao diện đăng ký thông tin bệnh nhân 65

Hình 5.5: Giao diện dữ liệu bệnh nhân 66

Trang 15

Hình 5.7: Giao diện kết quả hiển thị Attention map 67

Hình 5.8: Giao diện hiển thị dự đoán của mô hình và kết luận của bác sĩ 68

Hình 5.9: Giao diện xem lại ảnh và thông tin bệnh nhân 68

Hình 5.10: Giao diện gửi thông báo chẩn đoán cho bệnh nhân 69

Hình 5.11: Kết quả thông báo qua Email (trái) và tin nhắn SMS (phải) 69

Hình 5.12: Docker Images ứng dụng 70

Hình 5.13: Image đã được đưa lên Dockerhub thành công 70

Hình 5.14: Quá trình Pull Image về một máy tính khác cần triển khai ứng dụng 70

Hình 5.15: Docker Image được Pull thành công về máy tính từ Docker Hub 71

Hình 5.16: Kết quả khởi chạy thành công ứng dụng khi triển khai trên một máy tính khác 71

Trang 16

LIỆT KÊ BẢNG

Bảng 1.1: So sánh 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 3.1: Tập dữ liệu CheXpert bao gồm 14 loại bệnh được gắn nhãn [7] 40

Bảng 3.2: Bảng thông kê tập dữ liệu VinDr-CXR [9] 42

Bảng 3.3: Class bệnh lựa chọn trong tập VinDr_CXR 44

Bảng 3.4: Các cấu trúc backbone ViT 46

Bảng 5.1: Ảnh hưởng của kích thước hình ảnh 60

Bảng 5.2: So sánh backbone 61

Bảng 5.3: Kết quả có và không có tập dữ liệu pre-trained 62

Bảng 5.4: Kết quả trên tập dữ liệu backbone CNN 63

Trang 17

4 API Application Programming Interface

5 AtteMap Attention Map

7 CNN Convolutional Neural Network

8 CSS Cascading Style Sheets

10 DICOM Digital Imaging and Communications in Medicine

11 GAP Global Average Pooling

13 Grad-CAM Gradient-weighted Class Activation Mapping

14 HTML Hypertext Markup Language

15 HTTP HyperText Transfer Protocol

22 MNIST Modified National Institute of Standards and Technology

23 MSA Multi-Head Self-attention

24 NIH National Institutes of Health

25 NLP Natural Language Processing

26 ORM Object Relational Mapping

27 PACS Picture Archiving and Communication Systems

28 ReLU Rectified Linear Unit

Trang 18

29 ResNet Residual Network

30 REST Representational State Transfer

31 RPC Remote Procedure Call

32 SMS Short Message Service

33 SOAP Simple Object Access Protocol

34 SQL Structured Query Language

35 SVM Support Vector Machine

Trang 19

TÓM TẮT

Trong lĩnh vực thịgiác máy tính, các kiến trúcdựa trên Transformer gần đây đã

cạnh tranh với các kiến trúc truyền thống dựa trên CNN trong nhiều tác vụ Sự thànhcông của cáckiến trúcdựa trên Transformerlà nhờvàocácpre-trained model được huấnluyện trên cáctậpdữliệu khổng lồ Tuy nhiên, yêu cầu này có thểkhông được đápứngtrong cácứng dụng hìnhảnh y tế.Bởisovớitậpdữliệu ImageNet 21K,tậpdữliệu hìnhảnh y tếrất hạn chế Do đó,trong đềtài này, nhómkhám phá hiệu suất củamô hìnhViT(Vision Transformer)trong việc phân loại hình ảnh y tế bằng cách sử dụng hai tập dữliệu lớn vềảnh y tếlà ChestXpert và Chest14đểtinh chỉnh trên một mô hình pre-trainedImageNet nhằmtạora một mô hìnhpre-trainedViT mới Sau đótiếp tụctinh chỉnhmôhìnhtrên tâp dữ liệu VinDR-XCR Bên cạnh đó, nhóm cũng tiến hành các thí nghiệmđánh giáảnh hưởng của các yếu tố như kích thước ảnh, loại backbone, nhằm chọn ranhững tham sốphù hợp cho quá trình huấn luyện mô hình phân loại Các kỹthuật diễngiải mô hình cũng được sửdụng đểđánh giá khảnăng của ViT so với các mô hình dựa trênCNN trong việc giảiquyết sự cùng xuất hiện của nhiều bệnh trong một hìnhảnh Kết quảtừcác thí nghiệm toàn diện cho thấy rằng phương pháp đề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ủaphân loại Tuynhiên, 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ế

Nhóm cũng tiến hành xây dựngứng dụng web đơn giản cho mô hình phân loại

bệnh phổi đã huấn luyện Ứng dụng bao gồm các chức năng như đăng ký và lưu trữthông tin bệnh nhân, đưa ra các dự đoán bệnh cho ảnh đầu vào, gửi thông tin kết quảchẩn đoán của bác sĩ cho bệnh nhân qua email hoặc sốđiện thoại đã đăng ký.Ứng dụng

có giao diện đơn giản và dễsử dụng,ứng dụng chỉcó vai trò đưa ra dựđoán đểhỗ trợbác sĩ và hoàn toàn không có khảnăng thay thếbác sĩ đểđưa ra kết luận

Trang 20

Chương 1 TỔNG QUAN

1.1 ĐẶT VẤN ĐỀ

Phân loại bệnh vùng phổi dựa trên ảnh chụp y tế để khám chữa bệnh là một công việc đặc thù và thiết yếu của bác sĩ trong lĩnh vực phân tích và chẩn đoán hình ảnh y khoa Trong những năm gần đây, khi lĩnh vực trí tuệ nhân tạo đã có những bước tiến rất mạnh mẽ và được ứng dụng có hiệu quả vào nhiều lĩnh vực trong đời sống thì việc ứng dụng các mô hình học sâu vào giải quyết các bài toán phân loại ảnh y tế cũng trở thành một hướng nghiên cứu quan trọng [1] Nếu một mô hình AI có khả năng thực hiện tốt công việc phân loại trên hình ảnh y tế thì kết quả mang lại sẽ rất có ý nghĩa, chẳng hạn như hỗ trợ các bác sĩ trong việc chẩn đoán để tiết kiệm thời gian, tránh bỏ sót bệnh cũng như hỗ trợ cho các nghiên cứu sâu hơn

Theo như tìm hiểu của nhóm, hiện nay đã có nhiều đề tài nghiên cứu áp dụng học sâu để phân loại bệnh trên hình ảnh y tế và đạt được một số kết quả nhất định, một trong

số đó là Đồ Án Tốt Nghiệp của nhóm Ngô Thị Anh Thư và Phạm Thiên Vương với đề tài “Ứng dụng xử lý ảnh và AI để nhận biết bệnh viêm phổi ở trẻ em” [2] Tiếp theo là

Đồ Án Tốt Nghiệp của nhóm Võ Kiều Phương và Nguyễn Nhật Uyên với đề tài “Ứng dụng Deep Learning và Radiomics trong quá trình chẩn đoán ung thư phổi” [3] Hai đề tài trên đã xây dựng thành công mô hình chẩn đoán bệnh ở vùng phổi dựa trên mạng nơ-ron tích chập kết hợp với kiến trúc U-Net cho việc phân đoạn

Không giống với các ứng dụng trong những lĩnh vực thông thường, các mô hình

AI trong y tế đòi hỏi độ phức tạp tính toán cao hơn do các đặc trưng về độ phân giải của hình ảnh y tế cũng như các hạn chế về kích thước tập dữ liệu Để các mô hình học sâu

có thể phát huy thế mạnh, cần chuẩn bị dữ liệ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ề số lượng mẫu và số nhãn

Trang 21

Tập dữ liệu hình ảnh thông thường Tập dữ liệu hình ảnh y tế Tập dữ liệu Số nhãn/ Số ảnh Tập dữ liệu Số nhãn/ Số ảnh

Hình 1.1: Sự xuất hiện đồng thời nhiều loại bệnh trong tập dữ liệu VinDr-CXR [9].

Gần đây, các cơ chếAttentionđược áp dụng rất thành công đểnắm bắt các mối

quan hệtầm xatronglĩnh vựcXửlý ngôn ngữtựnhiên Cơ chếnày cũng được mởrộng

Bảng 1.1: So sánh tập dữ liệu hình ảnh thông thường và tập dữ liệu hình ảnh y tế.

Ngoài ra,một thách thức lớn của ảnh y tếlà trong một hình ảnh có thểcó nhiều

loại bệnh cùng xuất hiện (hình 1.1), một căn bệnh có thểlà nguyên nhân tìm ẩn gây racác tổn thương khác Các phương pháp truyền thống dựa trên kiến trúc CNN[10]được

sử dụng cho bài toán phân loại ảnh y tế chủ yếu phân loại ảnh theo từng loại bệnh vàchưa hướng vào giải quyết sự cùng xuất hiện của nhiều loại bệnh Đểgiải quyết tháchthức này mô hình AIcầnkhảnăngquan tâm đếnsựphụthuộc phạm vi dài (long rangedependency) bằng cách phát hiện các mối quan hệ trên diện rộng giữa các vùng bệnhnằmởcácvịtrícách xa nhau

Trang 22

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 những kết quả đầy hứa hẹn Với các đặc điểm mạnh mẽ dựa trên kiến trúc Transformer

[11], ViT (Vision Transformer) được giới thiệu trong bài báo “An image is worth 16x16

words: Transformers for image recognition at scale” [12] là một kỹ thuật mới có khả

năng giải quyết thách thức trên Thêm vào đó, các nghiên cứu cũng đã chỉ ra rằng, một kiến trúc ViT phải được huấn luyện trên một tập dữ liệu lớn, sau đó mô hình này sẽ được tinh chỉnh trên một tập dữ liệu mục tiêu nhỏ hơn Trong điều kiện này, phương pháp Vision Transformer sẽ tốt hơn các phương pháp truyền thống dựa trên CNN

Bên cạnh chức năng phân loại, một trong những yêu cầu quan trọng khi ứng dụng

mô hình AI vào thực tiễn, đặc biệt trong lĩnh vực y tế, là khả năng diễn giải cơ chế ra quyết định của mô hình Đây là một kỹ thuật quan trọng để đánh giá mức độ tin cậy đối với kết quả mà mô hình đưa ra Thông thường kỹ thuật Grad-CAM [13] sẽ được sử dụng

để diễn giải quy trình ra quyết định của các mô hình dựa trên CNN ViT cũng có kỹ thuật diễn giải cơ chế ra quyết định riêng, đó là kỹ thuật Attention Map

Với những thông tin tìm hiểu trên cùng với kiến được trang bị, nhóm kiến nghị

thực hiện đề tài “Ứng dụng mô hình Vision Transformer trong phân loại dữ liệu bệnh

phổi” 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 đó,

mô hình đích được tinh chỉnh lại trên tập dữ liệu mục tiêu “VinDr-CXR” [9] có kích thước nhỏ hơn để cải thiện hiệu suất của ViT trong việc phân loại ảnh y tế Đồng thời nhóm 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ế thông qua cơ chế diễn giải mô hình của ViT Cuối cùng, nhóm xây dựng một ứng dụng web thông qua giao thức API để ứng dụng mô hình phân loại bệnh phổi hỗ trợ bác sĩ phân tích và chẩn đoán bệnh

1.2 MỤC TIÊU

Mục tiêu nhóm đề ra trong đề tài này là cải thiện hiệu suất phân loại của mô hình Vision Transformer trên tập dữ liệu ảnh X-quang ngực VinDr-CXR và diễn giải các cơ chế ra quyết định của mô hình Hơn nữa nhóm sẽ dùng công cụ Flask để xây dựng một ứng dụng web sử dụng mô hình phân loại đã huấn luyện nhằm hỗ trợ bác sĩ trong việc chẩn đoán Ứng sẽ được đóng gói và triển khai dễ dàng trên các máy tính khác nhau bằng công nghệ Docker

Trang 23

1.3 NỘI DUNG NGHIÊN CỨU

Trong quá trình thực hiện đề tài, nhóm tập trung giải quyết và hoàn thành những nội dung chính sau:

Nội dung 1: Tìm hiểu lý thuyết về các mô hình phân loại

Nội dung 2: Nghiên cứu các tập dữ liệu Chest14, ChestExpert, VinDR-CXR và

tạo tập dữ liệu phù hợp với đề tài

Nội dung 3: Tiến hành các thí nghiệm huấn luyện mô hình ViT

Nội dung 4: Đánh giá kết quả các thí nghiệm dựa trên các phương pháp đánh giá

định tính và định lượng

Nội dung 5: Xây dựng web API cho ứng dụng mô hình phân loại bênh phổi

Nội dung 6: Chạy thử nghiệm, kiểm tra và hiệu chỉnh hệ thống

Nội dung 7: Đóng gói và triển khai ứng dụng với Docker

Nội dung 8: Viết báo cáo thực hiện

Nội dung 9: Bảo vệ luận văn

ViT- Mô hình chỉ được huấn luyện để phân loại trên ảnh X-quang phổi, tư thế chụp

PA (ảnh chụp thẳng sau – trước) và chỉ phân loại tốt trên 10 nhãn tương ứng với

Trang 24

1.5 BỐ CỤC

Bố cục của đề tài bao gồm 6 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, nội dung, giới hạn

và bố cục chung của đề tài

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ế, các nền tảng về phần mềm hỗ trợ, mạng nơ-ron, quá trình phát triển của mạng nơ-ron tích chập qua các giai đoạn, những nghiên cứu về kiến trúc Transformer, nguyên lý của kiến trúc Vision Transformer trong phân loại ảnh, các kỹ thuật diễn giải mô hình, giới thiệu về API và Docker

Chương 3: Thí nghiệm huấn luyện và đánh giá mô hình phân loại

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 để huấn luyện và đá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: Triển khai ứng dụng

Chương này mô tả cách xây dựng ứng dụng web API dùng Flask, các bươc đóng gói và triển khai ứng dụng bằng Docker

Chương 5: Kết quả - nhận xét - đánh giá

Chương này trình bày các kết quả đạt được từ các thí nghiệm, khả năng diễn giải của mô hình và kết quả của ứng dụng đã triển khai Đồng thời đưa ra các nhận xét, đánh

giá đối với các kết quả này

Chương 6: Kết luận và hướng phát triển

Chương này đưa ra kết luận tổng kết cho đề tài và đưa ra một số đề xuất mang tính xây dựng

Trang 25

Chươ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 [14]

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

Trang 26

Chụpảnh y tếlà kỹthuật và quy trình chụpảnh bên trong cơ thểđểphân tích

lâm sàng và can thiệp y tế, cũng như thểhiện trực quan chức năng của một số cơ quan hoặc mô Hìnhảnh y tếtìm cách diễn giải các cấu trúc bên trong bịche giấu bởi da và xương, cũng như đểchẩn đoán và điều trịbệnh Hìnhảnh y tếcũng thiết lập một cơ sở

dữliệu vềgiải phẫu và sinh lý học bình thường đểcó thểxác định các bất thường[15] Ảnh chụp X-quang ra đời sớm nhất và đóng vai trò quang trọng trongchẩ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ủacá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ình2.3) thường được lưu trữdưới định dạng DICOM [16]

DICOM (Digital Imaging and Communications in Medicine) là tiêu chuẩn để truyềnthô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ềnhì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

Trang 27

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á trình này được thực hiện trong bước chuẩn bị bộ dữ liệu

Hình 2.3: Ảnh chụp X-quang vùng ngực.

Python là một ngôn ngữkhá cũ được tạo ra bởi Guido Van Rossum Thiết kếbắt

đầu vào cuối những năm 1980 và được phát hành lần đầu tiên vào tháng 2 năm 1991.Python 2.0 được phát hành vào tháng 10 năm 2000, với nhiều tính năng mới Python3.0, được phát hành vào tháng 12 năm 2008, với nhiều tính năng chính của nó được hỗtrợcho Python 2.6.x và 2.7.x Các bản phát hành của Python 3 bao gồm tiện ích, tựđộnghóa việc dịch mã Python 2 sang Python 3 Python là một ngôn ngữlập trình đa mô hình.Lập trình hướng đối tượng và lập trình có cấu trúc được hỗtrợ đầy đủ[17]

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ụngphổbiếnnhất trong các dựán Học máy và dựán AI bao gồm:

Trang 28

 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

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 ++ [18] 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 độ

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

tự 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

Trang 29

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

Hình 2.4: Mô tả các bước của một quá trình huấn luyện mô hình trên Pytorch.

Trang 30

2.3 GIỚI THIỆU MẠNG NƠ-RON NHÂN TẠO

Mạng nơ-ron nhân tạo [19] 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 (hình 2.5) 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 có 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 của hàm này

Hình 2.5: Mạng nơ-ron nhân tạo.

Trang 31

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ểudiễn toán học là một đường thẳng tức là output sẽkhông đượcgiớ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 dụng 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 Sigmoidlà 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 32

2.3.2 Gradient descent

Thuật toán Gradient descent [20] là thuật toán tìm giá trị nhỏ nhất của hàm thông qua tính đạo hàm Gradient descent và các biến thể của nó là một kỹ thuật dược sử dụng rộng rãi để tối ưa hóa hàm tổn thất của mạng rơ-ron nhân tạo Giả sử ta có hàm tổn thất

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ương pháp Gradient 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ể

𝑊 = 𝑊 − 𝑎𝑙𝑝ℎ𝑎⁡𝜕𝐿

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 nhauchứ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ườnghợ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ậpnhậ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ệntượng overshoot và không bao giờđạt được giá trịnhỏnhất của hàmnhư được minh họatrong hình2.8

Trang 33

2.3.3 Hàm tổn thất

Trong các hàm tổn thất (loss function), Cross-entropy loss [21] 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 2.2, trong đó p (x )là phân phối xác xuất,

X là biến ngẫu nhiên:

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ủaloss càngnhỏ càng tốt Một mô hình hoàn hảo có cross-entropy loss bằng 0

Trang 34

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 2.3:

n là số classes phân loại

2.4 CÁC MÔ HÌNH PHÂN LOẠI DỰA TRÊN CNN 2.4.1 Mạng LeNet

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.

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ụngnhận dạngcác chữsốviết tayđược công bốnăm 1998 và đượcgọi là LeNet-5[22].Đây cũng là kiến trúc áp dụng mạng nơ-ron tích chập 2 chiều được

Trang 35

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

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, vậy nên

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 đủ

Hình 2.11: Chi tiết các thành phần tham số của mô hình LeNet.

Trang 36

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 [23]

Cấ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.12: Mô tả kiến trúc mạng 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

 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 độ nhanhhơn, dễ dàng và vẫnđảm bảo được tính phi tuyến (non-

Trang 37

 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

Hình 2.13: Chi tiết các thành phần tham số của mô hình AlexNet.

Trang 38

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” [24] 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.

Kiế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ộtphiên bản của VGG là VGG-19 tăng cường thêm 3 layersvề độ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ướchìnhảnh đầu vàolà224 × 224

Trang 39

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 [25] ra đời năm 2014 là sự kết hợp những ưu điểm 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íchthướ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ả

Trang 40

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ốiinception có tác dụng làmgiảm kích thước chiều Phần đầu tiên của GoogleNet giống AlexNet và LeNet, có cáckhố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ụcgiúp tránh phải sửdụng nhiều tầng kết nối đầy đủliên tiếpởcuối

Ngày đăng: 11/05/2023, 09:34

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w