Giới thiệu dự án
Bệnh xơ phổi vô căn (Idiopathic Pulmonary Fibrosis - IPF) là một bệnh lý hô hấp mãn tính tiến triển nguy hiểm, đặc trưng bởi sự tổn thương mô kẽ phổi, hình thành các mô sẹo xơ cứng làm suy giảm vĩnh viễn tính đàn hồi và khả năng trao đổi khí của phế nang. Theo thống kê y tế toàn cầu từ các tổ chức hô hấp, bệnh nhân sau khi được chẩn đoán xơ phổi thường có thời gian sống trung bình chỉ từ 3 đến 5 năm, với diễn tiến bệnh cực kỳ phức tạp: từ giai đoạn suy giảm chức năng hô hấp từ từ đến các đợt bùng phát cấp tính đe dọa tính mạng. Trong bối cảnh y học hiện đại chưa có phương pháp điều trị dứt điểm nhằm hồi phục mô xơ, các liệu pháp lâm sàng hiện tại tập trung vào việc làm chậm tốc độ suy thoái của phổi và kiểm soát triệu chứng.
Quét CT Ngực (Tuần 0) Khám Lâm Sàng (Metadata)
[ DICOM Slices: 15% - 80% ] [ Age, Sex, Smoke, Weeks ]
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ EfficientNet-B5 │ │ Quantile / SVR │
│ Feature Extractor│ │ / LSTM Layer │
└─────────┬────────┘ └─────────┬────────┘
│ │
└─────────────────┬───────────────────┘
▼
┌──────────────────────┐
│ Multi-Modal Fusion │
│ & Hybrid Loss: mloss │
└──────────┬───────────┘
▼
┌───────────────────────────────┐
│ Dự đoán FVC (ml) theo tuần │
│ Độ tin cậy Confidence σ (ml) │
└───────────────────────────────┘
Chỉ số Dung tích sống gắng sức (Forced Vital Capacity - FVC), đo bằng lượng không khí tối đa mà bệnh nhân có thể thở ra nhanh và mạnh sau khi hít sâu tối đa (đơn vị: ml), là tiêu chuẩn vàng để theo dõi sự tiến triển của bệnh. Tuy nhiên, việc đo FVC định kỳ bằng phế dung kế đòi hỏi sự gắng sức lớn từ bệnh nhân, gây khó khăn cho người cao tuổi hoặc suy hô hấp nặng. Hơn nữa, lịch tái khám lâm sàng thực tế thường ngắt quãng và không đồng đều giữa các bệnh nhân, đặt ra bài toán cấp thiết: Làm thế nào để từ một lần chụp cắt lớp vi tính lồng ngực (CT Scan) ban đầu kết hợp lịch sử khám lâm sàng thưa thớt, có thể dự đoán chính xác sự suy giảm FVC liên tục trong tương lai?
Khóa luận tốt nghiệp ngành Khoa học Máy tính tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM của nhóm tác giả Trần Kim Sen và Lê Thủy Triều (dưới sự hướng dẫn của TS. Lê Minh Hưng) đã nghiên cứu giải quyết trọn vẹn bài toán này. Các mục tiêu kỹ thuật cụ thể bao gồm:
- Xây dựng Pipeline tiền xử lý dữ liệu y tế đa phương thức: Chuẩn hóa tập ảnh DICOM cắt lớp CT phổi sang đơn vị Hounsfield Units (HU), loại bỏ nhiễu giải phẫu và làm sạch siêu dữ liệu lâm sàng.
- Nghiên cứu và triển khai mạng Deep Learning thị giác: Tích hợp các kiến trúc CNN tiên tiến gồm VGG19, ResNet-50 và EfficientNet-B5 để trích xuất đặc trưng hình thái học tổn thương phổi.
- Phát triển các mô hình hồi quy phân tích chuỗi thời gian: Ứng dụng Stochastic Gradient Descent Regression (SGDR), Ridge Regression, Support Vector Regression (SVR), Long Short-Term Memory (LSTM) và Quantile Regression nhằm nắm bắt xu hướng suy giảm FVC.
- Thiết kế hàm mất mát tối ưu lai (
mloss): Kết hợp Pinball Loss với Modified Laplace Log Likelihood Metric để tối ưu đồng thời giá trị dự đoán trung vị ($\hat{y}$) và độ tin cậy ($\sigma$).
- Thực nghiệm và đối chuẩn trên dữ liệu thực tế: Huấn luyện và đánh giá trên bộ dữ liệu chuẩn OSIC Pulmonary Fibrosis Progression với chiến lược K-Fold Cross-Validation ($k=10$).
Phạm vi nghiên cứu tập trung vào việc dự đoán chỉ số FVC liên tục từ tuần -12 đến tuần 133 kể từ mốc chụp CT scan ban đầu (tuần 0). Giới hạn của nghiên cứu là tập dữ liệu huấn luyện thực tế gồm 176 bệnh nhân với 1.549 dòng dữ liệu bảng và chuỗi quét CT, đặt ra thách thức lớn về xử lý dữ liệu phi cân bằng và chống hiện tượng quá khớp (overfitting).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Các phương pháp đánh giá tiến triển xơ phổi truyền thống và các công trình nghiên cứu ban đầu thường bộc lộ nhiều điểm hạn chế khi ứng dụng vào dữ liệu y tế thực:
| Giải pháp |
Ưu điểm |
Nhược điểm |
Đánh giá tính khả thi |
| Đo phế dung kế định kỳ thủ công |
Trực tiếp phản ánh thể tích khí thở ra thực tế của bệnh nhân |
Bệnh nhân kiệt sức khi thực hiện; không có khả năng dự báo trước xu hướng dài hạn |
Kém khả thi đối với bệnh nhân suy kiệt nặng |
| Hồi quy tuyến tính thuần túy (Linear Regression) |
Tính toán nhẹ, dễ giải thích trọng số |
Bị ảnh hưởng nặng bởi ngoại lai (outliers); giả định tuyến tính đơn giản không khớp thực tế suy giảm |
Đạt baseline thấp, sai số lớn ở các tuần khám xa |
| Mô hình CNN đơn lẻ trên ảnh 2D CT |
Trích xuất được đặc trưng hình ảnh sẹo phổi |
Bỏ qua yếu tố thời gian và đặc điểm nhân khẩu học (tuổi, giới tính, tiền sử hút thuốc) |
Không mô hình hóa được động lực học theo tuần |
| Giải pháp Đa phương thức Lai (Đề xuất) |
Tích hợp ảnh CT 3D lát cắt chọn lọc + Metadata + Hàm mất mát Pinball-Laplace lai |
Đòi hỏi pipeline tiền xử lý phức tạp và cân chỉnh siêu tham số $\alpha$ |
Tối ưu nhất, đạt độ chính xác và độ tin cậy cao |
Yêu cầu hệ thống được lượng hóa qua mô hình ưu tiên MoSCoW:
- Must have: Khả năng xử lý ảnh định dạng DICOM sang thang đo HU; dự đoán đồng thời giá trị $FVC$ và khoảng tin cậy $\sigma$; hỗ trợ dữ liệu bảng thiếu đồng nhất.
- Should have: Tích hợp hàm mất mát tùy biến
mloss; áp dụng thuật toán tối ưu Rectified Adam (RAdam); cơ chế lọc chọn lát cắt hữu ích 15% - 80%.
- Could have: Module trực quan hóa không gian 3D cấu trúc phổi từ chuỗi ảnh cắt lớp phục vụ hỗ trợ chẩn đoán lâm sàng.
- Won't have: Tự động đưa ra phác đồ chỉ định thuốc mà không có sự tham vấn trực tiếp của bác sĩ chuyên khoa.
Thách thức kỹ thuật lớn nhất nằm ở tính không đồng nhất của dữ liệu y tế thực: số lượng lát cắt CT mỗi bệnh nhân dao động lớn trong khoảng $[12, 1018]$, hai mẫu dữ liệu ảnh bị lỗi hỏng định dạng (ID00011637202177653955184 và ID00052637202186188008618), và hiện tượng đa cộng tuyến giữa các trường thuộc tính lâm sàng như Age, SmokingStatus và Percent.
┌───────────────────────────────────────────────────────────┐
│ TIỀN XỬ LÝ DỮ LIỆU ĐA PHƯƠNG THỨC │
└─────────────────────────────┬─────────────────────────────┘
│
┌──────────────────────┴──────────────────────┐
▼ ▼
┌──────────────────────┐ ┌──────────────────────┐
│ Chuỗi DICOM 3D (CT) │ │ Metadata Lâm Sàng │
│ - Chuyển sang HU │ │ - Chuẩn hóa Min-Max │
│ - Lọc lát 15% - 80% │ │ - One-hot Giới tính │
│ - Rescale [-1, 1] │ │ - Encode Hút thuốc │
└──────────┬───────────┘ └──────────┬───────────┘
│ │
▼ ▼
┌──────────────────────┐ ┌──────────────────────┐
│ EfficientNet-B5 (CNN)│ │ Quantile Regression │
│ Feature Extractor │ │ / LSTM Architecture │
└──────────┬───────────┘ └──────────┬───────────┘
│ │
└──────────────────────┬──────────────────────┘
▼
┌───────────────────────────┐
│ Fully-Connected Fusion │
└─────────────┬─────────────┘
▼
┌───────────────────────────┐
│ Output: [FVC_pred, Sigma] │
└───────────────────────────┘
Thiết kế hệ thống
Kiến trúc giải pháp được thiết kế theo cấu trúc mạng lai đa đầu vào (Multi-modal Deep Learning Architecture):
- Khối xử lý hình ảnh (Visual Back-bone): Sử dụng EfficientNet-B5 với phương pháp thu phóng mô hình phức hợp (Compound Model Scaling) theo 3 chiều: độ sâu mạng ($d$), độ rộng kênh ($w$), và độ phân giải ảnh ($r$) thông qua hệ số $\phi$:
$$d = \alpha^\phi, \quad w = \beta^\phi, \quad r = \gamma^\phi \quad (\alpha \cdot \beta^2 \cdot \gamma^2 \approx 2)$$
- Khối xử lý chuỗi và bảng (Tabular/Sequential Processing): Kết hợp Quantile Regression và LSTM nhằm trích xuất quan hệ phi tuyến giữa các mốc tuần khám (
Weeks), tỷ lệ FVC dự kiến chuẩn hóa (Percent), độ tuổi (Age), giới tính (Sex), và tình trạng hút thuốc (SmokingStatus).
- Khối hợp nhất đặc trưng (Feature Fusion Head): Ghép nối vector đặc trưng hình ảnh (Image Feature Vector) và vector đặc trưng lâm sàng (Tabular Embedding Vector) qua các tầng Fully-Connected có áp dụng Batch Normalization và Dropout ($p=0.3$) để tránh quá khớp.
Hệ thống công nghệ và thư viện triển khai:
- Ngôn ngữ: Python 3.8+
- Deep Learning Frameworks: PyTorch 1.7.1, TensorFlow/Keras 2.4.0
- Xử lý ảnh y khoa & Dữ liệu: PyDicom 2.1.2, OpenCV 4.5.1, Albumentations 0.5.2, Scikit-learn 0.24.2, Pandas 1.2.4, NumPy 1.19.5
- Thuật toán tối ưu: Rectified Adam (RAdam), AdamW, SGD with Momentum
Methodology
Phương pháp luận nghiên cứu tuân thủ quy trình lặp khoa học trong thời gian 16 tuần, chia làm 4 giai đoạn chính:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Phase 1: EDA │ │Phase 2: Baseline│ │Phase 3: Deep NN │ │ Phase 4: Eval │
│ (Tuần 1-4) │───>│ (Tuần 5-9) │───>│ (Tuần 10-13) │───>│ (Tuần 14-16) │
│Tiền xử lý DICOM │ │SVR, Ridge, SGD │ │EfficientNet, │ │K-Fold (k=10) CV,│
│Khảo sát tương │ │Xây dựng pipeline│ │Custom mloss, │ │Tối ưu hóa │
│quan lâm sàng │ │đối chuẩn │ │RAdam optimizer │ │Laplace Metric │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
Chiến lược đảm bảo chất lượng (QA) áp dụng kỹ thuật 10-Fold Cross-Validation trên toàn bộ 176 bệnh nhân huấn luyện, đảm bảo không rò rỉ dữ liệu giữa các fold (Subject-level split). Quản trị rủi ro được thiết lập cho việc mất mát đạo hàm thông qua Residual Connections và ổn định trọng số khởi tạo bằng thuật toán RAdam.
Implementation và kết quả
Development process
Quá trình tiền xử lý ảnh DICOM là mắt xích quyết định hiệu năng mô hình. Nhóm tác giả đã triển khai thuật toán chuyển đổi giá trị điểm ảnh thô (Pixel Values) sang thang đo Hounsfield Units (HU) đại diện cho độ cản quang sinh học:
$$\text{HU} = \text{Pixel_Value} \times \text{RescaleSlope} + \text{RescaleIntercept}$$
Dựa trên phân tích phân bố không gian lồng ngực, 15% lát cắt đầu tiên (vùng cổ/đỉnh phổi) và 20% lát cắt cuối cùng (vùng đáy phổi/cơ hoành) chứa nhiều mô mỡ và nội tạng bụng gây nhiễu, do đó chỉ dải lát cắt trong khoảng $[15%, 80%]$ được trích chọn phục vụ huấn luyện.
import numpy as np
import pydicom
import torch
import torch.nn as nn
def load_and_preprocess_dicom_slices(dicom_paths, target_slices=30):
"""
Tiền xử lý chuỗi ảnh DICOM: Chuyển sang HU và chọn lọc dải 15% - 80%
"""
slices = [pydicom.dcmread(p) for p in dicom_paths]
slices.sort(key=lambda x: float(x.ImagePositionPatient[2]))
total_slices = len(slices)
start_idx = int(total_slices * 0.15)
end_idx = int(total_slices * 0.80)
selected_slices = slices[start_idx:end_idx]
# Lấy mẫu đều target_slices từ dải lát cắt hữu ích
indices = np.linspace(0, len(selected_slices) - 1, target_slices).astype(int)
processed_images = []
for idx in indices:
s = selected_slices[idx]
image = s.pixel_array.astype(np.float32)
intercept = getattr(s, 'RescaleIntercept', -1024)
slope = getattr(s, 'RescaleSlope', 1)
hu_image = image * slope + intercept
# Windowing cho mô phổi: [-1000 HU, 400 HU]
hu_image = np.clip(hu_image, -1000, 400)
hu_image = (hu_image - (-1000)) / (400 - (-1000)) * 2.0 - 1.0
processed_images.append(hu_image)
return np.stack(processed_images, axis=0)
Hàm mất mát tùy biến mloss được xây dựng bằng cách kết hợp hàm mất mát phân vị Pinball Loss $P_\tau(u)$ tại các phân vị $\tau \in {0.2, 0.5, 0.8}$ với hàm mục tiêu Laplace Log Likelihood:
$$P_\tau(u) = \begin{cases} \tau u & \text{khi } u \ge 0 \ (\tau - 1)u & \text{khi } u < 0 \end{cases}$$
$$\mathcal{L}{\text{mloss}} = \alpha \cdot \mathcal{L}{\text{Pinball}} + (1 - \alpha) \cdot (-\text{Metric}_{\text{Laplace}})$$
class ModifiedLaplaceLoss(nn.Module):
def __init__(self, alpha=0.8):
super(ModifiedLaplaceLoss, self).__init__()
self.alpha = alpha
def forward(self, y_pred, y_true):
# y_pred chứa 3 đầu ra tương ứng: quantile 0.2, quantile 0.5 (fvc), quantile 0.8
fvc_pred = y_pred[:, 1]
sigma = (y_pred[:, 2] - y_pred[:, 0]) / 2.0
# Metric Laplace Clipping
sigma_clipped = torch.clamp(sigma, min=70.0)
delta = torch.clamp(torch.abs(y_true - fvc_pred), max=1000.0)
laplace_metric = -(np.sqrt(2) * delta) / sigma_clipped - torch.log(np.sqrt(2) * sigma_clipped)
# Pinball Loss cho 3 phân vị
pinball_loss = 0.0
quantiles = [0.2, 0.5, 0.8]
for i, q in enumerate(quantiles):
error = y_true - y_pred[:, i]
pinball_loss += torch.max((q - 1) * error, q * error).mean()
total_loss = self.alpha * pinball_loss - (1.0 - self.alpha) * laplace_metric.mean()
return total_loss
Testing và validation
Hiệu năng của mô hình được đánh giá trên độ đo chính thức của cuộc thi quốc tế Kaggle OSIC:
$$\sigma_{\text{clipped}} = \max(\sigma, 70), \quad \Delta = \min(|FVC_{\text{true}} - FVC_{\text{pred}}|, 1000)$$
$$\text{Metric} = - \frac{\sqrt{2} \cdot \Delta}{\sigma_{\text{clipped}}} - \ln(\sqrt{2} \cdot \sigma_{\text{clipped}})$$
Độ đo này có giá trị âm nằm trong khoảng $(-\infty, -4.5]$; giá trị metric càng cao (tiệm cận về 0) phản ánh mô hình vừa dự đoán chính xác $FVC$, vừa ước lượng độ bất định $\sigma$ tối ưu.
| Mô hình thử nghiệm |
Loại dữ liệu đầu vào |
Kiến trúc chi tiết / Bộ tối ưu |
Modified Laplace Metric |
Sai số trung bình MAE (ml) |
| Baseline 1: SGD Regressor |
Metadata (Bảng) |
SGD thuần túy |
-7.2184 |
289.4 |
| Baseline 2: Ridge Regression |
Metadata (Bảng) |
$L_2$ Regularized Linear ($\lambda=0.1$) |
-6.9850 |
254.2 |
| Baseline 3: SVR ($\epsilon$-tube) |
Metadata (Bảng) |
Kernel RBF, $C=100, \epsilon=0.1$ |
-6.8921 |
241.0 |
| Deep NN 1: VGG19 + Quantile |
2D CT Slices |
Adam Optimizer ($lr=1e-4$) |
-6.8450 |
235.6 |
| Deep NN 2: ResNet-50 + Pinball |
2D CT Slices |
Residual Block + Batch Normalization |
-6.7120 |
218.3 |
| Deep NN 3: Tabular LSTM |
Chuỗi tuần + Metadata |
2-layer LSTM + RAdam |
-6.6432 |
198.5 |
| Mô hình đề xuất (Ensemble Hybrid) |
CT Slices (15%-80%) + Metadata |
EfficientNet-B5 + LSTM + mloss + RAdam |
-6.5210 |
172.8 |
Kết quả đạt được
Hệ thống đạt được sự cải thiện vượt bậc trên toàn bộ các chỉ số kiểm thử:
- Tối ưu hóa Metric Laplace: Cải thiện từ mức baseline $-7.2184$ lên $-6.5210$ (tăng trưởng hiệu quả ước lượng $\sim 9.66%$).
- Giảm thiểu sai số tuyệt đối MAE: Giảm từ $289.4\text{ ml}$ xuống $172.8\text{ ml}$ (cải thiện $40.29%$).
- Khả năng khái quát hóa: Vượt qua hiện tượng over-confidence khi dự đoán độ lệch chuẩn $\sigma$ nhờ cơ chế chặn ngưỡng $\sigma \ge 70\text{ ml}$, hạn chế tối đa rủi ro tiên lượng sai trong điều trị y tế.
Đổi mới và đóng góp
Khóa luận mang lại 4 đóng góp kỹ thuật và phương pháp luận nổi bật:
1. LỌC LÁT CẮT CT [15% - 80%]
Loại bỏ 35% lát cắt gây nhiễu, giảm 30% bộ nhớ GPU mà vẫn giữ trọn vẹn mô phổi.
2. HÀM MẤT MÁT LAI MLOSS
Ghép nối Pinball Loss (3 phân vị) và Laplace Metric, cân bằng giữa sai số và độ tin cậy.
3. MẠNG ĐA PHƯƠNG THỨC LAI
Kết hợp Compound Scaling của EfficientNet-B5 với Recurrent Dynamics của LSTM.
4. TÍCH HỢP BỘ TỐI ƯU RADAM
Tự động điều chỉnh phương sai gradient, ổn định pha khởi động mà không cần warm-up thủ công.
- Kỹ thuật chọn lọc lát cắt giải phẫu học (15% - 80%): Khắc phục triệt để vấn đề số lượng lát cắt CT biến thiên cực lớn giữa các bệnh nhân ($12 \to 1018$). Phương pháp loại bỏ các vùng nhiễu chứa bóng khí nội tạng bụng và cổ, giúp tăng tốc độ trích xuất đặc trưng hình ảnh lên $30%$ và giảm thiểu chi phí bộ nhớ GPU.
- Thiết kế hàm mục tiêu tối ưu
mloss độc bản: Không chỉ tối thiểu hóa khoảng cách điểm dự đoán như các hàm mất mát truyền thống (MSE, MAE), mloss trực tiếp hướng dẫn mạng nơ-ron học phân phối xác suất và độ bất định của dữ liệu, khớp hoàn hảo với tiêu chuẩn đánh giá của các chuyên gia hô hấp.
- Cơ chế dung hợp đa phương thức hiệu năng cao: Chứng minh thực nghiệm rằng việc kết hợp dữ liệu bảng (thông tin lâm sàng) và hình ảnh 3D CT mang lại độ chính xác vượt trội $16.2%$ so với việc chỉ sử dụng một loại dữ liệu đơn lẻ.
- Ứng dụng Rectified Adam (RAdam) cho bài toán dữ liệu y tế quy mô nhỏ: Giải quyết bài toán hội tụ cục bộ không ổn định của Adam truyền thống trong các epoch đầu, giúp mô hình hội tụ nhanh hơn $25%$ số epoch và đạt nghiệm tối ưu toàn cục ổn định.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng lâm sàng
Mô hình có khả năng tích hợp trực tiếp vào hệ thống thông tin bệnh viện (HIS) và hệ thống lưu trữ, truyền hình ảnh y tế (PACS) tại các khoa Hô hấp:
[Bệnh nhân chụp CT phổi] ──> [PACS Server] ──> [Preprocess Worker (HU + Slice)]
│
▼
[Hồ sơ lâm sàng (HIS)] ──> [Inference API] <── [EfficientNet-B5 Embeddings]
│
▼
[Dự báo FVC 133 tuần & Báo cáo PDF]
│
▼
[Bác sĩ chuyên khoa Hô hấp hội chẩn]
- Hỗ trợ bác sĩ tiên lượng sớm: Ngay tại thời điểm tuần thứ 0 khi bệnh nhân chụp CT lồng ngực, hệ thống tự động sinh báo cáo dự báo biểu đồ FVC trong suốt 133 tuần tiếp theo.
- Cá nhân hóa phác đồ điều trị: Giúp bác sĩ đưa ra quyết định kịp thời về việc sử dụng thuốc chống xơ hóa (như Pirfenidone hoặc Nintedanib) hoặc đăng ký vào danh sách chờ ghép phổi cho bệnh nhân có tốc độ suy giảm FVC nhanh.
Chiến lược triển khai và Yêu cầu hạ tầng
Hệ thống được đóng gói dưới dạng Docker Container và cung cấp dịch vụ thông qua RESTful API (FastAPI backend):
- Yêu cầu phần cứng máy chủ (Server Inference Requirements):
- GPU: NVIDIA Tesla T4 16GB hoặc RTX 3090 (Hỗ trợ CUDA 11.1+)
- CPU: 8 Cores (Intel Xeon hoặc AMD EPYC)
- RAM: 32 GB DDR4
- Bộ nhớ lưu trữ: SSD NVMe 500GB (xử lý I/O dữ liệu DICOM tốc độ cao)
- Thông số thông lượng (Throughput Benchmark):
- Thời gian xử lý 1 ca bệnh (chuỗi 100 lát DICOM + Metadata): $\le 1.85\text{ giây}$.
- Hỗ trợ xử lý đồng thời (Concurrency): $25\text{ requests/phút}$ trên 1 GPU Tesla T4.
Hạn chế và hướng phát triển
Dù đạt kết quả vượt bậc, nghiên cứu vẫn ghi nhận một số rào cản kỹ thuật cần giải quyết trong các giai đoạn tiếp theo:
- Hạn chế về quy mô dữ liệu y tế: Bộ dữ liệu huấn luyện mới chỉ dừng lại ở 176 bệnh nhân, gây nguy cơ giảm độ chính xác khi đối mặt với các biến thể giải phẫu hiếm gặp hoặc chất lượng máy chụp CT khác nhau giữa các bệnh viện.
- Siêu tham số $\alpha$ cố định: Tỷ lệ kết hợp giữa Pinball Loss và Laplace Metric hiện được cố định qua thử nghiệm tĩnh ($\alpha = 0.8$), chưa có cơ chế tự thích ứng (Dynamic Adaptive Loss Weighting) theo từng batch dữ liệu.
- Hướng phát triển tương lai:
- Tích hợp mô hình 3D Vision Transformer (ViT): Thay thế hoàn toàn trích xuất lát 2D bằng mạng tích chập 3D hoặc Video/Swin Transformer 3D nhằm bảo toàn liên kết không gian voxel đa chiều.
- Phân đoạn vùng xơ hóa tự động (Automated Lung Lesion Segmentation): Ứng dụng kiến trúc 3D U-Net để bóc tách chính xác thể tích sẹo phổi và mô kẽ bị tổn thương trước khi đưa vào bộ hồi quy.
- Tự giám sát tiền huấn luyện (Self-Supervised Pre-training): Tận dụng các tập dữ liệu CT phổi mở quy mô lớn (như LUNA16, CheXpert) để tiền huấn luyện Feature Extractor.
Đối tượng hưởng lợi
┌───────────────────────────────────────────────────────────────────────────┐
│ ĐỐI TƯỢNG HƯỞNG LỢI TRỰC TIẾP │
├───────────────────┬───────────────────┬───────────────────┬───────────────┤
│ Sinh viên & │ Kỹ sư AI & Data │ Bác sĩ & Cơ sở │ Doanh nghiệp │
│ Nghiên cứu sinh │ Scientists │ Y tế Lâm sàng │ HealthTech │
├───────────────────┼───────────────────┼───────────────────┼───────────────┤
│ Tài liệu mẫu mực │ Mã nguồn chuẩn hóa│ Tiết kiệm 40% │ Giảm 6 tháng │
│ xử lý ảnh DICOM & │ Deep Learning lai │ thời gian hội chẩn│ R&D module AI │
│ Multi-modal fusion│ đa phương thức │ theo dõi bệnh │ chẩn đoán │
└───────────────────┴───────────────────┴───────────────────┴───────────────┘
- Sinh viên và Nhà nghiên cứu: Tiếp cận phương pháp luận hoàn chỉnh về tiền xử lý ảnh y khoa DICOM, chuyển đổi không gian Hounsfield, và cách xây dựng hàm mất mát tùy biến trên PyTorch.
- Kỹ sư AI và Khoa học Dữ liệu: Nắm vững kỹ thuật ghép nối đa phương thức giữa dữ liệu bảng chuỗi thời gian và dữ liệu hình ảnh 3D, ứng dụng hiệu quả thuật toán tối ưu RAdam.
- Cơ sở Y tế và Bác sĩ chuyên khoa: Giảm thiểu $40%$ số lần chỉ định đo phế dung kế xâm lấn gắng sức, nâng cao chất lượng chăm sóc và theo dõi bệnh nhân xơ phổi ngoại trú.
- Doanh nghiệp Công nghệ Y tế: Cung cấp kiến trúc lõi chuẩn mực để tích hợp vào các nền tảng AI hỗ trợ chẩn đoán hình ảnh (CADe/CADx).
Câu hỏi thường gặp
1. Cấu hình phần cứng tối thiểu để huấn luyện và triển khai mô hình là gì?
Để huấn luyện toàn bộ pipeline từ đầu với EfficientNet-B5 và $k=10$ folds, cần tối thiểu 1 GPU có VRAM $\ge 16\text{GB}$ (như NVIDIA V100, RTX 3090, hoặc T4). Đối với môi trường triển khai thực tế (Inference), hệ thống chỉ yêu cầu 1 GPU tầm trung với VRAM $\ge 6\text{GB}$ hoặc CPU đa nhân (Inference time $\approx 4-6\text{s}$ trên CPU Intel Core i7 thế hệ mới).
2. Tại sao mô hình chỉ chọn dải lát cắt CT từ 15% đến 80%?
Quá trình quét CT ngực di chuyển theo trục dọc từ cổ xuống bụng. 15% lát cắt đầu tiên chủ yếu chứa thanh quản, mô cổ và xương đòn; 20% lát cắt cuối cùng chứa cơ hoành, gan và túi khí dạ dày. Việc loại bỏ các lát cắt này giúp loại trừ các vùng nhiễu giải phẫu không chứa nhu mô phổi, đồng thời giảm đáng kể chi phí tính toán mà không làm mất thông tin bệnh lý.
3. Ý nghĩa của giá trị $\sigma$ (Confidence) và việc chặn ngưỡng $\sigma \ge 70$ là gì?
$\sigma$ thể hiện độ bất định của dự đoán. Trong y tế, một mô hình quá tự tin (Over-confident) với sai số nhỏ ảo có thể dẫn đến quyết định điều trị sai lầm. Ngưỡng chặn $\sigma_{\text{clipped}} = \max(\sigma, 70)$ theo tiêu chuẩn Kaggle OSIC đảm bảo mô hình luôn giữ một khoảng phương sai an toàn tối thiểu ($70\text{ ml}$), phản ánh đúng sai số tự nhiên của thiết bị phế dung kế cơ học.
4. Mô hình xử lý dữ liệu bị khuyết hoặc số lần tái khám không đều giữa các bệnh nhân như thế nào?
Mô hình tách biệt thông tin tĩnh (CT scan tại tuần 0, tuổi, giới tính) và thông tin động (Weeks). Nhờ kiến trúc Quantile Regression kết hợp LSTM, mô hình có thể nhận bất kỳ giá trị Weeks nào từ $-12$ đến $133$ làm đầu vào truy vấn để nội suy hoặc ngoại suy giá trị FVC tương ứng mà không phụ thuộc vào chu kỳ tái khám cố định.
5. Làm thế nào để tích hợp hệ thống vào luồng làm việc của bệnh viện?
Dữ liệu từ máy chụp CT sau khi được kỹ thuật viên quét sẽ tự động gửi file DICOM về PACS Server. API của mô hình sẽ lắng nghe sự kiện từ PACS, tải ảnh và thông tin bệnh nhân từ HIS, thực hiện tiền xử lý, chạy suy luận và trả về đồ thị suy giảm FVC kèm bảng độ tin cậy trực tiếp lên giao diện làm việc của bác sĩ.
Kết luận
Khóa luận tốt nghiệp "Dự đoán dung tích sống gắng sức của bệnh nhân" của sinh viên Trần Kim Sen và Lê Thủy Triều đã giải quyết xuất sắc bài toán y tế phức tạp mang tính thực tiễn cao. Bằng việc kết hợp sáng tạo giữa kỹ thuật thị giác máy tính trên chuỗi ảnh DICOM CT ngực (lọc chọn lát cắt $15% - 80%$ và kiến trúc EfficientNet-B5) với các mô hình hồi quy phân vị và chuỗi thời gian trên dữ liệu bảng, nhóm nghiên cứu đã xây dựng thành công giải pháp toàn diện cho phép tiên lượng FVC liên tục lên tới 133 tuần.
Việc thiết kế hàm mất mát lai mloss kết hợp phân phối Laplace Modified đã tạo ra bước đột phá về độ chính xác (giảm sai số MAE xuống $172.8\text{ ml}$ và đạt Metric $-6.5210$), mở ra hướng đi đầy hứa hẹn cho các hệ thống hỗ trợ ra quyết định lâm sàng (CDSS) trong chuyên khoa Hô hấp. Đồ án không chỉ khẳng định năng lực ứng dụng công nghệ Deep Learning vào Y tế số mà còn đặt nền móng vững chắc cho các nghiên cứu mở rộng trong tương lai hướng tới chẩn đoán và chăm sóc sức khỏe cá nhân hóa.