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 1TR¯â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 2BÞ 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 3i
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 4ii
- 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 5iii
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 6iv
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 7v
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 9vii
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 10viii
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 11ix
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 12x
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 13xi
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 14xii
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 15xiii
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 164 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 17xv
29 ResNet Residual Network
30 REST Representational State Transfer
33 SOAP Simple Object Access Protocol
Trang 18KÁ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 19B Þ 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 20B Þ 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 21B Þ 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 22B Þ 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 23B Þ 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 24B Þ 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 25B Þ 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 26B Þ 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 27B Þ 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 28B Þ 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 29B Þ 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 30B Þ 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 31B Þ 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 32B Þ 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 33B Þ 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 34B Þ 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 35B Þ 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 36B Þ 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 37B Þ 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 38B Þ 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 39B Þ 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 40B Þ 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