1. Trang chủ
  2. » Luận Văn - Báo Cáo

khoá luận ứng dụng mô hình vision transformer trong phân loại dữ liệu bệnh phổi

104 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Khóa Luận Tốt Nghiệp
Năm xuất bản 2022
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 104
Dung lượng 2,83 MB

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 Transforme

Trang 1

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

TP H á Chí Minh – 06/2022

Trang 2

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 SVTH 2: Huỳnh Văn Pháp MSSV2: 18129041

TP H á Chí Minh – 06/2022

Trang 3

i

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

PHÂN LO¾I DĊ LIàU BàNH PHâI

II NHIàM VĀ

1 Các sá liáu ban đÅu:

- TÃp dă liáu X-quang ngąc: ChestXpert, Chest14 và VinDr-CXR

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

- Các biÁ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ám bằng ph°¢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 4

ii

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

iii

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

GVHD

TuÅn 1

(28/02 3 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 6

iv

bánh nhân

TuÅn 10

(09/05 3 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 7

v

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 8

vi

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

vii

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 10

viii

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 11

ix

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 12

x

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 13

xi

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

Hình 5.6: Giao dián chán Ánh đÅ thąc hián chāc năng dą đoán cÿa mô hình 67

Trang 14

xii

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 15

xiii

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 16

4 API Application Programming Interface

5 AtteMap Attention Map

7 CNN Convolutional Neural Network

10 DICOM Digital Imaging and Communications in Medicine

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 17

xv

29 ResNet Residual Network

30 REST Representational State Transfer

33 SOAP Simple Object Access Protocol

Trang 18

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¢nmá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 Tuy nhiê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¿ibá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 19

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 1

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 20

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 2

T Áp dċ liáu hình Ánh thông th°ãng T Áp dċ liáu hình Ánh y t¿

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áiquan há tÅm xa trong lĩnh vąc Xā 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Ãulo¿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 AI cÅn khÁ năng quan tâm đÁn są 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ánh

nằm ç các vß trí cách xa nhau

Trang 21

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 3

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 22

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 4

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 3 tr°ãc) và chỉ phân lo¿i tát trên 10 nhãn t°¢ng āng vãi

Trang 23

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 5

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

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 6

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

Trang 25

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 7

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 trong ch¿n đoánhì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 [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 26

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 8

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

Python là ngôn ngă có nhiÃu tính năng đ°ÿc sā dāng phå biÁn ráng rãi trongnhiÃ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:

Trang 27

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 9

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 28

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 10

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 29

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 11

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 30

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 12

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 đ°ÿ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 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 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 Tronghàm Sigmoid, mát są thay đåi nhß trong input dÁn đÁn mát kÁt quÁ output komÃ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 + ÿ2�㕥) và đ¿o hàm ÿ′ = ÿ ∗ (1 2 ÿ)

Trang 31

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 13

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àm nh° đ°ÿc minh háatrong hình 2.8

Trang 32

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 14

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:

Trang 33

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 15

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

÷ t i là nhãn thąc tÁ cÿa class thā i

÷ 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

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āng nhÃn d¿ng cá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 đ°ÿccô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à

Trang 34

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 16

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 35

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 17

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 LeNetvã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 chotí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 36

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 18

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

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 19

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.

Trang 38

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 20

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

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 21

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Ãndiá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ìnhtoà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à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

Trang 40

B Þ MÔN ĐIàN TĈ CÔNG NGHIàP – Y SINH 22

Hình 2.17: C ấu trúc m¿ng GoogLeNet.

2.4.5 M ¿ng ResNet

Tÿ 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 khită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 đà <Vanishinggradient= (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ÁcgiÁ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

Ngày đăng: 22/07/2024, 21:09

w