Chương 1: Tổng quan Chương này tập trung giới thiệu khái quát về đề tài, mục tiêu, phương pháp, phạm vi, bố cục chung của đề tài nghiên cứu. - Chương 2: Cơ sở lý thuyết Chương này cung cấp những kiến thức về ảnh y tê, mạng nơ-ron, quá trình hình thành và phát triển của mạng nơ-ron tích chập, những nghiên cứu về kiến trúc Transformer trong xử lý ngôn ngữ tự nhiên, nguyên lý của kiến trúc Vision Transformer 8 Luan van và kỹ thuật Grad-CAM trong diễn giải mô hình. - Chương 3: Phương pháp đề xuất Chương này đề xuất phương pháp tổ chức dữ liệu cho quá trình huấn luyện, xây dựng các thí nghiệm để đánh giá mô hình, cung cấp các mô hình sử dụng và nêu ra các phương thức đánh giá thí nghiệm. - Chương 4: Kết quả - nhận xét - đánh giá Chương này trình bày kết quả các thí nghiệm đồng thời trực quan khả năng diễn giải mô hình cùng với những nhận xét đánh giá.
- Chương 5: Kết luận và kiến nghị Chương này đưa ra kết luận tổng kết cho đề tài nghiên cứu và đưa ra một số đề xuất mang tính xây dựng. 9 Luan van Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu ảnh X-quang 2.1 Ảnh số Trong xử lý ảnh, mỗi ảnh được xem là một ma trận các điểm ảnh gọi là pixel. Mỗi pixel diễn tả màu sắc nhất định tại một tọa độ duy nhất trong ảnh. Bằng các phương pháp đo lường thống kê ta có thể biến đổi ảnh thành ảnh khác tương tự ảnh gốc.
Có hai dạng ảnh quan trọng trong các ứng dụng xử lý ảnh là ảnh màu và ảnh xám [12]. Một ảnh màu (ví dụ minh họa như hình 2.1) thường được tạo thành từ nhiều pixel mà trong đó mỗi pixel được biểu diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ (Red), xanh lá (Green) và xanh dương (Blue) tại một vị trí cụ thể. Các kênh màu Red, Green và Blue là những màu cơ bản mà từ đó có thể tạo ra các màu khác nhau bằng phương pháp pha trộn. Với việc chuẩn hóa 256 mức cho từng kênh màu chính, từ đó có thể thấy một pixel màu có thể biểu điễn được một trong 256 * 256 * 256 =16777216 màu khác nhau.1: Ví dụ về ảnh màu RGB.
Một ảnh xám (ví dụ minh họa như hình 2.2) được xây dựng từ nhiều pixel mà tại đó biểu diễn một giá trị nhất định tương ứng với một mức xám. Những mức xám này trải dài trong một khoảng từ đen sang trắng thông thường là 256 mức xám khác nhau theo tiêu chuẩn. Ngoài ra còn có ảnh nhị phân sử dụng một bit để biểu diễn pixel. Một pixel chỉ có hai trạng thái 0 và 1 ứng với đen và trắng.
Do đặc tính này nên ảnh nhị phân ít dược ứng dụng. 10 Luan van Hình 2.2: Ví dụ về ảnh xám.2 Ảnh X-quang Hình ả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 [13].
Ảnh chụp X-quang ra đời sớm nhất và đóng vai trò quang trọng trong chuẩn đoán hình ảnh y tế. Kỹ thuật này sử dụng khả năng xuyên thấu của tia X và mức độ hập thụ của các mô để thu được hình chiếu của các cơ quan trong cơ thể. Ảnh X-quang được sử dụng để xác định loại và mức độ gãy xương cũng như để phát hiện những thay đổi bệnh lý ở phổi. Ảnh X-quang (như hình 2.3) thường được lưu trữ dưới định dạng DICOM [14].
DICOM (Digital Imaging and Communications in Medicine) là tiêu chuẩn để truyền thông và quản lý thông tin hình ảnh y tế và dữ liệu liên quan. DICOM được sử dụng phổ biến nhất để lưu trữ và truyền hình ảnh y tế cho phép tích hợp các thiết bị hình ảnh y tế như máy quét, máy chủ, máy trạm, máy in, phần cứng mạng, hệ thống lưu trữ và truyền hình ảnh (PACS) từ nhiều nhà sản xuất. DICOM nhóm thông tin thành các tập dữ liệu. Ví dụ: một tệp ảnh X-quang phổi có thể chứa ID bệnh nhân trong tệp, do đó, hình ảnh không bao giờ có thể bị tách rời khỏi thông tin này do nhầm lẫn.
Đối tượng dữ liệu DICOM bao gồm một số thuộc tính, bao gồm các mục như tên, ID,. và cũng có một thuộc tính đặc biệt chứa dữ liệu pixel hình ảnh. Để thuận tiện cho quá trình huấn luyện mô hình ta thường chuyển định dạng ảnh y tế về các định dạng ảnh thông thường, quá 11 Luan van trình này được thực hiện trong bước chuẩn bị bộ dữ liệu.3: Ảnh chụp X-quang vùng ngực.2 Giới thiệu phần mềm 2.1 Ngôn ngữ lập trình Python 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.0 được phát hành vào tháng 10 năm 2000, với nhiều tính năng mới.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.
Các bản phát hành của Python 3 bao gồm tiện ích, tự động hó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 đủ [15]. Python là ngôn ngữ có nhiều tính năng được sử dụng phổ biến rộng rãi trong nhiều lĩnh vực đặc biệt là trong AI và học máy.
Những Lý do giúp Python được sử dụng phổ biến nhất trong các dự án Học máy và dự án AI bao gồm: • Tính đơn giản và nhất quán. • Cho phép truy cập vào các thư viện và framework tuyệt vời cho AI và học máy. • Tính linh hoạt. • Độc lập nền tảng.
12 Luan van • Và cộng đồng rộng lớn. Python có một kho công nghệ phong phú bao gồm rất nhiều thư viện cho trí tuệ nhân tạo và học máy. Dưới đây là một số thư viện, framework phổ biến: Keras, TensorFlow, Scikit-learn cho học máy, NumPy cho phân tích dữ liệu và tính toán khoa học hiệu năng cao, SciPy cho advanced computing, Pandas để phân tích dữ liệu mục đích chung, Seaborn cho trực quan hóa dữ liệu, … Python có một cộng đồng vô cung lớn có thể hỗ trợ và truy cập kho tài liệu vô cùng dễ dàng.2 Thư viện Pytorch PyTorch là một framework học máy mã nguồn mở dựa trên thư viện Torch được sử dụng cho các ứng dụng như thị giác máy tính và xử lý ngôn ngữ tự nhiên, chủ yếu được phát triển bởi Meta AI. Mặc dù giao diện Python được trau chuốt hơn và là trọng tâm phát triển chính, PyTorch cũng có giao diện C ++ [16].Pytorch tập trung vào 2 khả năng chính: • Một sự thay thế cho bộ thư viện numpy để tận dụng sức mạnh tính toán của GPU.
• Một platform Deep learning phục vụ trong nghiên cứu, mang lại sự linh hoạt và tốc độ.4: Workflow một quá trình huấn luyện mô hình trên Pytorch. Một trong những cốt lõi của Pytorch là tensor. Tensor là một mảng đa chiều tương 13 Luan van 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.4, Pytorch có thể cung cấp các hỗ trợ cho một quá trình huấn luyện mô hình với các bước: - Bước 1: Tổ chức dữ liệu và tải dữ liệu vào mô hình huấn luyện. Pytorch cung cấp mô-đun “torch.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. Đặ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. - Bước 4: Chạy đánh giá mô hình. - Bước 5, 6: Sau khi kết quả mô hình đạt như mong muốn có thể lưu trữ để triển khai ứng dụng.
Pytorch cung cấp mô-đun “torch.hub” hỗ trợ lưu trữ công khai mô hình trên github để phục vụ nghiên cứu. Mô-đun “torch.onnx” hoặc “torch.jit” cung cấp khả năng chuyển đổi mô hình sang các định dạng khác để dàng triển khai ứng dụng.3 Giới thiệu mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo [17] dựa trên một tập hợp các đơn vị hoặc nút được kết nối được gọi là tế bào thần kinh nhân tạo, mô hình hóa tương tự các tế bào thần kinh trong não sinh học. Mỗi kết nối giống như khớp thần kinh trong não sinh học có thể truyền tín hiệu đến các tế bào thần kinh khác. Một tế bào nơ-ron nhân tạo nhận tín hiệu sau đó xử lý chúng và có thể phát tín hiệu cho các nơ-ron thần kinh kết nối với nó.
"Tín hiệu" tại một kết nối là một số thực và đầu ra của mỗi nơ-ron được tính bằng một số hàm phi tuyến tính của tổng các đầu vào của nó. Các kết nối được gọi là các cạnh. Các tế bào thần kinh và các cạnh thường có trọng số điều chỉnh khi quá trình học tập diễn ra. Trọng số làm tăng hoặc giảm cường độ của tín hiệu tại một kết nối.
Nơ-ron thần kinh 14 Luan van 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.