intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Phát hiện tổn thương phổi bằng kỹ thuật học sâu trong môi trường xử lý song song Spark

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:9

30
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết đề xuất phương pháp phát hiện một số tổn thương phổi thường gặp bằng kỹ thuật học sâu trong môi trường xử lý song song Spark được phát triển dựa trên hai kiến trúc mạng VGG-16 & ResNet-50, giúp chẩn đoán chính xác và tự động các tổn thương phổi thông qua các hình ảnh chụp X-quang.

Chủ đề:
Lưu

Nội dung Text: Phát hiện tổn thương phổi bằng kỹ thuật học sâu trong môi trường xử lý song song Spark

  1. Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIV về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), TP. HCM, ngày 23-24/12/2021 DOI: 10.15625/vap.2021.0045 PHÁT HIỆN TỔN THƯƠNG PHỔI BẰNG KỸ THUẬT HỌC SÂU TRONG MÔI TRƯỜNG XỬ LÝ SONG SONG SPARK Phan Anh Cang1, Phan Thượng Cang2, Trần Hồ Đạt1 1 Khoa Công nghệ thông tin, Trường Đại học Sư phạm Kỹ thuật Vĩnh Long 2 Khoa Công nghệ thông tin và truyền thông, Trường Đại học Cần Thơ cangpa@vlute.edu.vn, ptcang@cit.ctu.edu.vn, datth@vlute.edu.vn TÓM TẮT: Hiện nay, số người bị các bệnh liên quan đến phổi chiếm tỷ lệ cao và xảy ra ở hầu khắp mọi độ tuổi, giới tính nhất là trẻ nhỏ, người già có sức đề kháng yếu. Để chẩn đoán chính xác các bệnh lý liên quan tới bệnh phổi, các bác sĩ thường sử dụng các phương pháp kiểm tra thể trạng, căn cứ vào các triệu chứng lâm sàng và cận lâm sàng. Trong đó, chụp X-quang phổi là một trong những kỹ thuật được sử dụng nhiều trong y khoa, giúp bác sĩ có thể đánh giá, phát hiện những triệu chứng, tổn thương của phổi đặc biệt là các tổn thương do virus Corona gây ra. Tuy nhiên, nếu chỉ dựa trên kinh nghiệm của các bác sĩ kiểm tra hình ảnh X-quang, rất khó để chẩn đoán chính xác, nhanh chóng các vùng tổn thương phổi với số lượng bệnh nhân đông. Do đó, trong bài báo này, chúng tôi đề xuất phương pháp phát hiện một số tổn thương phổi thường gặp bằng kỹ thuật học sâu trong môi trường xử lý song song Spark được phát triển dựa trên hai kiến trúc mạng VGG-16 & ResNet-50, giúp chẩn đoán chính xác và tự động các tổn thương phổi thông qua các hình ảnh chụp X-quang. Kết quả thực nghiệm cho thấy, phương pháp đề xuất đạt được độ tin cậy 96%, với thời gian huấn luyện mô hình được rút ngắn giảm 57% so với trường hợp không xử lý song song và phân tán. Phương pháp đề xuất có thể hỗ trợ các bác sỹ lâm sàng đưa ra chẩn đoán sơ bộ các tổn thương phổi một cách nhanh chóng để có hướng điều trị kịp thời. Từ khóa: mạng nơron tích chập, tổn thương phổi, VGG-16, Resnet-50. I. GIỚI THIỆU A. Giới thiệu bài toán Phổi là cơ quan hô hấp quan trọng trong cơ thể con người, tiếp xúc trực tiếp với môi trường bên ngoài nên dễ bị nhiễm nhiều bệnh lý như viêm phổi, viêm phế quản, viêm phế quản mạn tính, lao phổi, ung thư phổi,… Khi phổi bị tổn thương, cơ thể không thể hít đủ oxy, người bệnh sẽ bị tổn thương toàn thân, thậm chí có thể tử vong. Các tổn thương về phổi là một trong những bệnh lý phổ biến nhất trên thế giới. Số người bị các bệnh liên quan đến phổi chiếm tỷ lệ cao. Đối tượng thường mắc các căn bệnh ở phổi ở hầu khắp mọi độ tuổi, giới tính nhất là trẻ nhỏ, người già có sức đề kháng kém. Theo số liệu thống kê hiện nay ước tính có khoảng 4 đến 5 triệu người ở Hoa Kỳ mắc bệnh viêm phổi mỗi năm, trong đó khoảng 55.000 người tử vong. Tại Hoa Kỳ, viêm phổi, cùng với cúm, là nguyên nhân gây tử vong đứng hàng thứ 8 và là nguyên nhân tử vong do truyền nhiễm hàng đầu. Viêm phổi là bệnh nhiễm trùng mắc phải ở bệnh viện gây tử vong phổ biến nhất và là nguyên nhân tử vong tổng thể phổ biến nhất ở các nước đang phát triển [1]. Bệnh viêm phổi gây ra một số triệu chứng như: tức ngực, khó thở, gây mệt mỏi, suy nhược,… ảnh hưởng lâu dài đến sức khỏe của người bệnh. Chính vì vậy, thời gian chẩn đoán bệnh kịp thời và chính xác giúp bệnh nhân mau chóng điều trị, tránh ảnh hưởng xấu đến sức khỏe và tính mạng. Một trong những biện pháp cận lâm sàng để phát hiện căn bệnh này là chẩn đoán dựa trên hình ảnh chụp X-quang phổi. Tuy nhiên, Số lượng người mắc bệnh ngày càng tăng, trong khi năng lực khám chữa của các bệnh viện không tương xứng. Trong năm 2020, Covid-19 đã trở thành một đại dịch toàn cầu, ước tính ở Mỹ số ca mắc đã vượt lên đến 7 triệu người [2]. Việc áp dụng công nghệ sẽ giải quyết cùng lúc hai bài toán, giảm khối lượng công việc của bác sĩ và tăng năng lực khám chữa bệnh. B. Những nghiên cứu liên quan Trong những năm qua có rất nhiều công trình nghiên cứu của nhiều tác giả liên quan đề cập đến vấn đề này: Chen [3] sử dụng mang UNet++ trên ảnh chụp CT để chuẩn đoán bệnh viêm phổi với kết quả đạt được trên 95%, nghiên cứu này giúp các bác sĩ tiết kiệm khoảng 65% trong việc đọc kết quả xét nghiệm. Elshennawy và các cộng sự [4] sử dụng kỹ thuật học sâu trong phát hiện và phân loại bệnh viêm phổi, nhóm tác giả thực nghiệm trên 4 mô hình ResNet152V2, MobileNetV2, CNN và LSTM với kết quả đạt được 91%. Nhóm tác giả Gabruseva [5] đề xuất phương pháp trong xác định các vùng mờ của phổi dựa trên mô hình RetinaNet với mạng Se-ResNext101 được đào tạo trước trên tập dữ liệu ImageNet, phương pháp đề xuất đạt được kết quả cao trong các cuộc thử nghiệm của Hiệp hội X- Quang Bắc Mỹ. Trong đề tài nghiên cứu này nhóm đề xuất xây dựng các mô hình hình CNN - Convolution Neural Network dựa trên những kiến trúc CNN hiện đại như ResNet-50 & VGG-16 giúp chẩn đoán các tổn thương phổi thông qua các hình ảnh chụp X-quang, giúp giai đoạn khám lâm sàng trở nên đơn giản và nhanh chóng, đạt được độ chính xác cao mà không cần đến sự trợ giúp của bác sĩ. Nhóm tác giả Felipe [6] đề xuất phương pháp sử dụng mạng CNN xác định bệnh viêm phổi trên ảnh X-quang ngực kỹ thuật số, kết quả nghiên cứu của nhóm tác giả chứng minh kiến trúc VGG16 đạt hiệu suất vượt trội với độ chính xác 85.11% trên tập dữ liệu 5184 ảnh. Abbas [7] và các cộng sự trích xuất đặc trưng sử dụng mạng CNN và thuật toán giảm số chiều của ảnh bằng thuật toán PCA trên ảnh X-quang, độ chính xác của nhóm đạt được 93,1% trên tập dữ liệu 196 ảnh.
  2. 76 PHÁT HIỆN TỔN THƯƠNG PHỔI BẰNG KỸ THUẬT HỌC SÂU TRÊN MÔI TRƯỜNG XỬ LÝ SONG SONG SPARK II. CÔNG VIỆC LIÊN QUAN A. Mạng nơron tích chập (CNN) Kiến trúc của mạng CNN được sử dụng rộng rãi trong lĩnh vực thị giác máy tính, được xem là một trong những giải pháp nhằm tối ưu quá trình huấn luyện mạng được đề xuất làm giảm trọng số (weight) để tăng tốc độ tính toán, giảm thời gian huấn luyện, tránh hiện tượng khớp khi lượng dữ liệu đầu vào lớn như các các bức ảnh màu, video,… Hình 1. Minh họa một kiến trúc mạng CNN Kiến trúc cơ bản của mạng CNN bao gồm tập hợp các lớp cơ bản bao gồm: lớp tích chập (convolution layer) + lớp phi tuyến (nonlinear layer) , lớp lấy mẫu (pooling layer), lớp kết nối đầy đủ (fully connected layer). Các lớp này liên kết với nhau theo một thứ tự nhất định. Thông thường ảnh sẽ được lan truyền qua lớp tích chập + lớp phi tuyến, sau đó các giá trị tính toán được lan truyền thông qua Lớp lấy mẫu, bộ ba lớp tích chập + lớp phi tuyến + lớp lấy mẫu có thể được lặp lại nhiều lần trong network. Sau đó được lan truyền thông qua lớp kết nối đầy đủ để dự đoán ảnh đó chứa vật thể gì. 1. Kiến trúc mạng VGG-16: Chúng ta có thể thấy mạng CNN đã ngày càng trở nên sâu sắc. Bởi vì một cách dễ dàng nhất để cải thiện độ chính xác của mạng đó là gia tăng kích thước của mạng thông qua độ sâu của chúng. Từ sơ đồ của mạng VGG-16 ta có thể thấy những cải tiến so với AlexNet. Kiến trúc VGG-16 sâu hơn, bao gồm 13 layers tích chập 2 chiều (thay vì 5 so với AlexNet) và 3 layers fully connected [8]. Hình 2. Kiến trúc mạng VGG-16 [8] VGG-16 chỉ sử dụng các bộ lọc kích thước nhỏ 3×3 thay vì nhiều kích thước bộ lọc như AlexNet. Kích thước bộ lọc nhỏ sẽ giúp giảm số lượng tham số cho mô hình mà mang lại hiệu quả tính toán hơn. VD: Nếu sử dụng 2 bộ lọc kích thước 3 × 3 trên một featurs map (là output của một layer CNN) có độ sâu là 3 thì ta sẽ cần n_filters x kernel_size x kernel_size x n_channels = 2 × 3 × 3 × 3 = 54 tham số. Nhưng nếu sử dụng 1 bộ lọc kích thước 5 × 5 sẽ cần 5 × 5 × 3 = 75 tham số. 2 bộ lọc 3 × 3 vẫn mang lại hiệu quả hơn so với 1 bộ lọc 5 × 5 [8]. 2. Kiến trúc mạng ResNet-50: ResNet là kiến trúc được sử dụng phổ biến nhất ở thời điểm hiện tại. ResNet cũng là kiến trúc sớm nhất áp dụng batch normalization. Mặc dù là một mạng rất sâu khi có số lượng layer lên tới 152 nhưng nhờ áp dụng những kỹ thuật đặc biệt mà ta sẽ tìm hiểu bên dưới nên kích thước của ResNet50 chỉ khoảng 26 triệu tham số. Kiến trúc với ít tham số nhưng hiệu quả của ResNet đã mang lại chiến thắng trong cuộc thi ImageNet năm 2015 [9]. Hình 3. Kiến trúc ResNet-50 [9]
  3. Phan Anh Cang, Phan Thượng Cang, Trần Hồ Đạt 77 ResNet có khối tích chập (Convolutional Bock, chính là Conv block trong hình) sử dụng bộ lọc kích thước 3 × 3 giống với của Inception Net. Khối tích chập bao gồm 2 nhánh tích chập trong đó một nhánh áp dụng tích chập 1 × 1 trước khi cộng trực tiếp vào nhánh còn lại. Khối xác định (Identity block) thì không áp dụng tích chập 1 × 1 mà cộng trực tiếp giá trị của nhánh đó vào nhánh còn lại [9]. B. Mô hình xử lý song song và phân tán trên Spark 1. Mô hình MapReduce: MapReduce là một mô hình lập trình thực hiện quá tình xử lý tập dữ liệu lớn, chạy trên lượng lớn cỡ hàng ngàn máy tính và dữ liệu lên đến mức Terabytes [10]. Gồm 2 kỳ: Map và Reduce. Map: Nhận dữ liệu được phân chia từ cơ sở dữ liệu tiến hành xử lý cặp (key, value) để sinh ra cặp (keyI, valueI) trung gian, dữ liệu này là dữ liệu đầu vào của giai đoạn Reduce. Reduce: Tiếp nhận các (keyI, valueI) và trộn các cặp (keyI, valueI) trung gian, lấy ra các valueI có cùng keyI và lưu vào HDFS (Hadoop Distributed File System). 2. Spark Cluster: Các ứng dụng Spark chạy như một tập hợp các quy trình độc lập trên một cụm, được điều phối bởi đối tượng SparkContext trong chương trình chính của chúng ta (được gọi là chương trình điều khiển). Cụ thể, để chạy trên một cụm (cluster), SparkContext có thể kết nối với một số loại trình quản lý cụm (hoặc trình quản lý cụm độc lập của Spark, Mesos hoặc YARN), phân bổ tài nguyên trên các ứng dụng. Sau khi được kết nối, Spark có được các bộ thực thi (executors) trên các nút trong cụm, là các quy trình chạy tính toán và lưu trữ dữ liệu cho ứng dụng của chúng ta. Tiếp theo, nó sẽ gửi mã ứng dụng của chúng ta (được xác định bởi các tệp JAR hoặc Python được chuyển đến SparkContext) cho những bộ thực thi (executors). Cuối cùng, SparkContext gửi các tác vụ đến những bộ thực thi (executors) để chạy [11]. Hình 4. Minh họa Spark Cluster [11] 3. Huấn luyện mạng học sâu theo mô hình phân tán Song song dữ liệu là một kỹ thuật phổ biến được sử dụng để tăng tốc độ đào tạo trên các lô nhỏ (mini-batch) lớn khi mỗi lô nhỏ quá lớn để phù hợp với GPU. Theo song song dữ liệu, một lô nhỏ được chia thành các lô có kích thước nhỏ hơn, đủ nhỏ để vừa với bộ nhớ có sẵn trên các GPU khác nhau trên mạng. Mỗi GPU giữ một bản sao giống hệt nhau của các thông số mạng chạy lan truyền tiến (forward pass) và lan truyền ngược (backward pass). Khi kết thúc quá trình lan truyền ngược, mỗi GPU sẽ gửi các gradient được tính toán đến một máy chủ tham số. Máy chủ tham số tổng hợp các gradient và tính toán các cập nhật cho các thông số mạng bằng cách sử dụng một số biến thể của Stochastic Gradient Descent. Các thông số cập nhật sau đó được gửi đến từng GPU và quá trình này được lặp lại cho một lô nhỏ mới [12]. Khả năng song song của Spark theo cách linh hoạt với RDD phù hợp tự nhiên với khái niệm song song dữ liệu vì về cơ bản công việc Spark thực hiện song song việc xử lý dữ liệu trên nhiều máy. Trên thực tế, cách hoạt động của nó rất đơn giản: một mô hình Keras được khởi tạo trên trình điều khiển Spark (driver) và sau đó được chuyển toàn bộ cho các máy worker, cũng như một chút dữ liệu mà nó sẽ đào tạo [13]. Sau đó, mỗi worker đào tạo mô hình trên phần dữ liệu của mình, gửi lại gradient đến trình điều khiển (driver), sau đó cập nhật "mô hình chính" theo cách song song dữ liệu được mô tả ở trên. Hình 5. Mô hình xử lý song song và phân tán của Elephas [13] Để thực hiện huấn luyện trong môi trường tính toán song song dữ liệu, chúng tôi đề xuất xây dựng mô hình các mạng nơron học sâu trên Spark theo mô hình được trình bày ở hình 5.
  4. 78 PHÁT HIỆN TỔN THƯƠNG PHỔI BẰNG KỸ THUẬT HỌC SÂU TRÊN MÔI TRƯỜNG XỬ LÝ SONG SONG SPARK 4. Xử lý song song và phân tán với Apache Spark: Apache Spark là một công cụ xử lý dữ liệu song song và phân tán có khả năng mở rộng, nhanh so với nhiều khung xử lý dữ liệu khác. Nó bao gồm một số thư viện để giúp xây dựng các ứng dụng cho máy học (MLlib), xử lý luồng (Spark Streaming) và xử lý đồ thị (GraphX),... [14]. Spark dựa trên ý tưởng của mô hình MapReduce nhưng khác biệt chính với Hadoop ở cách tiếp cận xử lý: Spark có thể tính toán và ghi dữ liệu tạm thời ở bộ nhớ trong, trong khi Hadoop phải đọc và ghi vào bộ nhớ ngoài. Do đó, tốc độ xử lý của Spark có thể nhanh hơn gấp 10 đến 100 so với Hahoop [14]. Nó khắc phục được một số hạn chế của Hadoop như: các phép toán đều thực hiện trên đĩa cứng thời gian chậm, không hỗ trợ thời gian thực; hỗ trợ nhiều thư viện MLlib, BigDL,... Tận dụng những ưu điểm trên nên trong nghiên cứu này chúng tôi cài đặt và sử dụng thư viện BigDL trên môi trường Spark để huấn luyện, so sánh về thời gian và độ chính xác giữa hai kịch bản đề ra. C. Đánh giá mô hình 1. Hàm phân lớp softmax: Hàm softmax [15] được sử dụng rộng rãi trong các kiến trúc học sâu giúp xác định khả năng xảy ra của một sự kiện. Công thức của hàm softmax được cho như sau: 𝑧 𝑒 𝑗 𝜎(𝑧)𝑗 = ∑𝐾 𝑧𝑘 (1) 𝑘=1 𝑒 Trong đó: (𝑧)𝑗 là các giá trị vectơ j đầu vào cho hàm softmax và 𝑒 𝑧𝑗 là hàm lũy thừa tiêu chuẩn được áp cho mỗi giá trị (𝑧)𝑗 . Để thực hiện đánh giá độ mất mát trong huấn luyện mô hình chúng tôi sử dụng hàm cross-entropy để tính toán độ chênh lệch giữa 2 phân phối xác suất của dự đoán với nhãn, y là nhãn đúng của phân lớp, 𝑦�𝑖 nhãn dự đoán, M là số lớp dự đoán được cho bởi công thức sau: 𝐻 = − ∑𝑀 𝑖 𝑦𝑖 log(𝑦 �𝑖 ) (2) 2. Đánh giá mô hình phát hiện đối tượng: Để đánh giá mô hình phát hiện đối tượng, các độ đo AP, mAP thường được sử dụng. Các độ đo này được xác định thông qua các giá trị: Recall/ Sensitivity/ True Positive rate (TPR) là độ nhạy tính bằng tỉ lệ phân loại Positive đúng - TP (True positive) trên tổng số các trường hợp Positive với FN (False negative) là dự đoán bỏ sót tính bằng công thức (3); Precision/ Positive predictive value (PPV) là dự đoán chính xác là tỉ lệ phân loại Positive đúng – TP (True positive) trên tổng các trường hợp dự đoán với FP (False positive) là dự đoán sai tính bằng công thức (4). Do Recall và Precision là hai khái niệm khác nhau, ta có chỉ số F1_score cho phép đánh giá trung bình giữa Precision và Recall bằng công thức (3). TP TP Recall = TPR = Sensitivity = = (3) TP + FN ∑ 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 TP Precision∗Recall Precision = PPV = (4) F1_Score = 2 (5) TP+FP Precision+Recall Độ đo AP (Average precision) là giá trị đo lường độ chính xác trong phân lớp được tính bằng công thức (6) thực hiện phép nội suy 11 điểm tóm tắt hình dạng đường cong của Precision x Recall bằng cách lấy trung bình độ chính xác tại một tập hợp gồm 11 điểm cách đều nhau [0,0.1, 0.2,...,1] với 𝜌(𝑟̃ ) là độ chính xác đo được trên 𝑟̃ [17]. Độ chính xác mAP (mean Average Precision) tính độ chính xác trung bình của tất cả các lớp sau khi tính được AP với Q là số lượng lớp đối tượng có trong tập dữ liệu, tính bằng công thức (6). 1 max 𝜌 (𝑟̃ ) 1 𝐴𝑃 = ∑𝑟 ∈{0,0.1,…,1} 𝜌𝑖𝑛𝑡𝑒𝑟𝑝(𝑟) (6) với 𝜌𝑖𝑛𝑡𝑒𝑟𝑝(𝑟) = mAP = ∑N i=1 APi (7) 11 𝑟: � 𝑟̃ ≥ 𝑟 N Để đánh giá được độ chính xác trung bình trên tất cả các lớp, chúng tôi sử dụng độ đo mAP [16]. Độ đo mAP được tính bằng công thức số (7) sau khi có được độ đo AP. III. MÔ HÌNH ĐỀ XUẤT A. Mô hình đề xuất phát hiện tổn thương phổi trong môi trường xử lý song song Dựa trên các kiến trúc mạng CNN VGG-16 và ResNet-50, nội dung bài báo nghiên cứu xây dựng một hệ thống phát hiện tổn thương phổi phục vụ cho việc chẩn đoán nhanh chóng và chính xác trong môi trường xử lý song song và phân tán Spark. Điều này giúp giảm áp lực từ bác sĩ, phát hiện sớm mầm bệnh ngay từ ban đầu, từ đó giúp người bệnh điều trị kịp thời. Mô hình hệ thống đề xuất được trình bày trong hình 6. Hình 6. Mô hình đề xuất dựa trên kiến trúc mạng VGG-16 và ResNet-50 trong môi trường xử lý song song và phân tán Spark
  5. Phan Anh Cang, Phan Thượng Cang, Trần Hồ Đạt 79 Trong hình 7, quá trình huấn luyện và kiểm thử được chia thành 3 giai đoạn: - Giai đoạn 1: Nghiên cứu và tự xây dựng 2 mô hình CNN dựa trên 2 kiến trúc mạng VGG-16 & ResNet-50. Mục tiêu ở giai đoạn này là tự xây dựng mô hình bằng việc tham khảo các lớp từ 2 mô hình trên, điều chỉnh các lớp sao cho số lượng tham số của mô hình được tối giản mà vẫn giữ được các đặc trưng của mô hình chính. Huấn luyện mô hình nhiều lần để tìm ra các giá trị epochs, learning_rate tối ưu. Giai đoạn này được thực hiện toàn bộ ở phân hệ 1. Hình 7. Minh họa các giai đoạn thực hiện huấn luyện và kiểm thử mô hình đề xuất - Giai đoạn 2: Sau khi có được mô hình và các tham số huấn luyện tối ưu mà được thực hiện ở phân hệ 1, thì ở giai đoạn này sẽ thực hiện chuyển đổi tất cả các các đặc trưng của ảnh và các mô hình trên môi trường Keras sang môi trường Spark. Cài đặt và cấu hình Spark Cluster sau đó huấn luyện phân tán mô hình theo cách song song dữ liệu. - Giai đoạn 3: Triển khai hai mô hình lên website để thực hiện chẩn đoán tổn thương phổi từ các hình ảnh X-quang. B. Huấn luyện mô hình học sâu phân tán với Spark Cluster Trong giai đoạn huấn luyện, chúng tôi đã xây dựng hai mô hình 1 và 2 trong môi trường xử lý song song và phân tán dựa trên kiến trúc mạng VGG-16 & ResNet-50 tương ứng. Chúng tôi sử dụng lại giá trị tối ưu của các tham số đã tìm được ở giai đoạn 1 để huấn luyện lại trên Spark Cluster với lần lượt là 1 node, 2 node và 3 node. Sau đó so sánh độ chính xác cũng như thời gian huấn luyện. Các tham số huấn luyện cả hai mô hình được trình bày trong bảng 1. Bảng 1. Tham số huấn luyện cho cả 2 mô hình Mô hình Kiến trúc num_class epochs batch_size optimizer learning_rate input_shape activation mode 1 VGG-16 2 10 32 adam 0.0001 256,256,3 sigmoid asynchronous 2 ResNet-50 2 10 32 adam 0.0001 256,256,3 sigmoid asynchronous IV. KẾT QUẢ THỰC NGHIỆM A. Môi trường cài đặt và tập dữ liệu thực nghiệm 1. Môi trường cài đặt: Trong nội dung bài báo nhóm tiến hành cài đặt Spark Cluster trên 4 máy có hệ điều hành Ubuntu Server 18.04 trong đó cấu hình master sử dụng 5VCPU với 16GB Ram còn lại 3 worker sử dụng 8VCPU với 8GB Ram trên mỗi máy. Nhóm thực hiện huấn luyện song song mô hình trên 3 nút tính toán. Chi tiết các nút tham gia vào quá trình thực nghiệm được mô tả trong hình 8:
  6. 80 PHÁT HIỆN TỔN THƯƠNG PHỔI BẰNG KỸ THUẬT HỌC SÂU TRÊN MÔI TRƯỜNG XỬ LÝ SONG SONG SPARK Hình 8. Chi tiết các nút worker đang thực thi các task 2. Tập dữ liệu thực nghiệm: Bộ dữ liệu sử dụng trong bài báo bao gồm 5863 ảnh chụp X-quang ngực từ Kaggle đã được gán nhãn. Thông tin chi tiết số lượng ảnh được mô tả trong bảng 2. Bảng 2. Ma trận nhầm lẫn 2 mô hình VGG-16 và ResNet-50 VGG-16 ResNet-50 Bình thường (nhãn đúng) 318 (TN) 17 (FP) 302 (TN) 33 (FP) Viêm phổi (nhãn đúng) 25 (FN) 812 (TP) 29 (FN) 808 (TP) Bình thường (dự đoán) Viêm phổi (dự đoán) Bình thường (dự đoán) Viêm phổi (dự đoán) B. Kết quả huấn luyện 1. Đánh giá mô hình: Để đánh giá mô hình chúng tôi dựa vào các độ đo Loss_value, thời gian huấn luyện, AP và mAP của mô hình. Dựa vào kết quả hình 9 và 10, chúng ta thấy cả 2 mô hình có độ chính xác khá cao trên 95% trong đó mô hình ResNet-50 không thay đổi độ chính xác khi thực hiện trên nhiều nút trong khi mô hình VGG-16 có xu hướng giảm khi số nút tăng lên. Kết quả đánh giá độ chính xác biểu đồ Loss và Acc trên 2 mô hình như sau: a) Biểu đồ Loss VGG-16 b) Biểu đồ Acc VGG-16 Hình 9. Biểu đồ Loss và Acc của mô hình VGG-16 a) Biểu đồ Loss ResNet-50 b) Biểu đồ Acc ResNet-50 Hình 10. Biểu đồ Loss và Acc của mô hình ResNet-50 2. Thời gian huấn luyện: Chúng tôi tiến hành so sánh về thời gian huấn luyện trên cả 2 mô hình. Kết quả được trình bày trong hình 11 và 12.
  7. Phan Anh Cang, Phan Thượng Cang, Trần Hồ Đạt 81 60 51 51 40 31 32 Phút 20 0 Mô hình 1 / VGG-16 Mô hình 2 / ResNet-50 Keras Spark Hình 11. So sánh thời gian huấn luyện giữa 2 mô hình Hình 12. So sánh thời gian huấn luyện trên 2 môi trường Keras và Spark Mặc dù cả 2 mô hình đều có số lượng tham số huấn luyện gần như bằng nhau nhưng nhìn vào biểu đồ có thể thấy được mô hình 2 áp dụng các khối identity với các tích chập 1x1 của mạng ResNet-50 giúp thời gian huấn luyện nhanh hơn gấp 1.5 lần so với mô hình áp dụng các khối tích chập thông thường của mạng VGG-16. Ngoài ra, chúng tôi thực hiện so sánh thời gian huấn luyện 2 mô hình trên 2 môi trường kết quả được trình bày trong hình 9. Nhìn vào biểu đồ hình 9 có thể kết luận, việc huấn luyện phân tán 1 nút trên Spark và huấn luyện cục bộ ở Keras cùng một cấu hình (8 GB RAM và 8 VCPU) có thời gian gần như bằng nhau. Đối với tập dữ liệu chỉ có khoảng 5.863 ảnh là còn tương đối ít để áp dụng đào tạo phân tán, vì vậy từ các biểu đồ trên có thể thấy rõ khi số lượng nút huấn luyện tăng lên thì độ chính xác sẽ giảm rõ ở mô hình VGG-16 và loss tăng dần ở mô hình ResNet50. Việc đào tạo phân tán chỉ thực sự hiệu quả khi được áp dụng các bộ dữ liệu lớn cho đến cực lớn và chạy trên các máy có cấu hình cao, có tốc độ mạng ổn định. 3. Kết quả kiểm thử thực nghiệm trên 3 nút Bảng 3. Kết quả đánh giá mô hình thực nghiệm trên 3 nút VGG-16 ResNet-50 precision recall F1-score Số lượng ảnh precision recall F1-score Số lượng ảnh Bình thường 0.91 0.90 0.91 335 0.93 0.95 0.94 335 Viêm phổi 0.96 0.97 0.96 837 0.98 0.97 0.97 837 Trung bình 0.94 0.93 0.93 1172 0.95 0.96 0.96 1172 Accuracy 0.95 1172 0.96 1172 Hình 13. Kết quả nhận dạng ảnh phổi bình thường trên mô hình 2 b) Kết quả phân vùng viêm phổi a) Hình ảnh đầu vào 1B 0B Hình 14. Kết quả phân vùng tổn thương phổi trên mô hình 2
  8. 82 PHÁT HIỆN TỔN THƯƠNG PHỔI BẰNG KỸ THUẬT HỌC SÂU TRÊN MÔI TRƯỜNG XỬ LÝ SONG SONG SPARK (a) NORMAL pred as: (b) NORMAL pred as: (c) PNEUMONIA pred as: (d) PNEUMONIA pred as: NORMAL NORMAL NORMAL PNEUMONIA Hình 15. Kết quả phân vùng tổn thương phổi trên mô hình 2 Hình 13, 14 và 15 hiển thị kết quả phân vùng và phân loại tổn thương phổi dựa trên ảnh đầu vào. Kết quả cho thấy mô hình ResNet-50 đạt được độ chính xác cao trong phát hiện và phân vùng hình ảnh tổn thương phổi. Từ kết quả này, bác sĩ có thể dễ dàng xác định và chẩn đoán mức độ viêm phổi của bệnh nhân để có hướng điều trị phù hợp. V. KẾT LUẬN Trong nội dung bài báo, chúng tôi đề xuất mô hình phát hiện tổn thương phổi bằng kỹ thuật học sâu trên môi trường xử lý dữ liệu lớn. Dựa vào 2 kiến trúc CNN VGG-16 & ResNet-50, chúng tôi đã thực hiện hai mạng này trên mô hình xử lý song song và phân tán để nhận dạng tổn thương phổi trên các ảnh chụp X-quang có độ chính xác cao, hỗ trợ bác sĩ trong việc chẩn đoán và điều trị kịp thời. Kết quả thực nghiệm huấn luyện các mô hình phân tán này so với mô hình truyền thống cho thấy độ chính xác và khả năng chẩn đoán dữ liệu mới gần như tương đương nhau. Tuy nhiên, hệ thống mạng nơron học sâu trên môi trường xử lý dữ liệu song song và phân tán giúp cải thiện đáng kể thời gian huấn luyện so với môi trường thông thường. Trong thời gian tới, chúng tôi tiếp tục nghiên cứu đề xuất phân loại tự động vùng phổi bị tổn thương một cách chính xác dựa vào các kỹ thuật học sâu và kiểm tra trên tập dữ liệu lớn hơn cùng với việc tăng số lượng các worker giúp cải thiện thời gian xử lý đáp ứng yêu cầu các hệ thống phân loại theo thời gian thực. TÀI LIỆU THAM KHẢO [1] S. Sethi, "Overview of Pneumonia", University at Buffalo SUNY, 12 2020. [Online]. Available: https://www.msdmanuals.com/professional/pulmonary-disorders/pneumonia/overview-of-pneumonia). [2] D. Tiến, "Mỹ vượt mốc 7 triệu ca nhiễm COVID-19", 9 2020. [Online]. Available: http://cand.com.vn/The-gioi-24h/My-vuot- moc-7-trieu-ca-nhiem-COVID-19-613039/. [3] J. W. L. Z. J. Z. L. G. D. Z. Y. &. Y. H. Chen, "Deep learning-based model for detecting 2019 novel coronavirus pneumonia on high-resolution computed tomography", Scientific reports, vol. 10, pp. 1-11, 2020. [4] N. M. &. I. D. M. Elshennawy, "Deep-Pneumonia Framework Using Deep Learning Models Based on Chest X-Ray Images", Diagnostics, p. 649, 2020. [5] T. P. D. &. K. A. Gabruseva, "Deep learning for automatic pneumonia detection", In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops, pp. 350-351, 2020. [6] F. A. e. a. Zeiser, "Evaluation of Convolutional Neural Networks for COVID-19 Classification on Chest X-Rays", arXiv preprint arXiv:2109.02415, 2021. [7] A. M. M. A. a. M. M. G. Abbas, "Classification of COVID-19 in chest X-ray images using DeTraC deep convolutional neural network", Applied Intelligence 51.2 , pp. 854-864, 2021. [8] A. Z. Karen Simonyan, "Very Deep Convolutional Networks for Large-Scale Image Recognition", arXiv preprint arXiv:1409.1556, 2014. [9] K. e. a. He, "Deep residual learning for image recognition", Proceedings of the IEEE conference on computer vision and pattern recognition, 2016. [10] Jekyll, "Iron Summit Media's, MapReduce Basic", Georgia Institute of Technology, 2016. [11] "Cluster Overview", [Online]. Available: https://spark.apache.org/docs/latest/cluster-overview.html. [12] A. Z. K. Simonyan, "Very Deep Convolutional Networks for Large-Scale Image Recognition", arXiv preprint arXiv:1409.1556, 2014. [13] A. a. S. P. Gulli, "Deep learning with Keras", Packt Publishing Ltd, 2017. [14] G. Abhishek, "What’s the Difference Between Hadoop and Spark", 2019. [15] C. M. Bishop, "Pattern Recognition and Machine Learning", Springer-Verlag New York, vol. ISBN 0387310738, 2006. [16] S. k. a. J. V, "Review on Performance Evaluation Techniques for Information Retrieval System", Int. J. Eng. Trends Technol., vol. 27, pp. 238-244, 2015. [17] [Online]. Available: https://spark.apache.org/.
  9. Phan Anh Cang, Phan Thượng Cang, Trần Hồ Đạt 83 [18] A. a. S. P. Gulli, "Deep learning with Keras", Packt Publishing Ltd, 2017. [19] J. E. S. a. T. D. Long, "Fully convolu-tional networks for semantic segmentation", Proceedings of the IEEE conference on computer vision and pattern recognition., 2015. [20] T. D. P. a. A. K. Gabruseva, "Deep Learning for Automatic Pneumonia Detection", Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops, 2020. LARGE-SCALE LUNG LESION DETECTION WITH CONVOLUTIONAL NEURAL NETWORKS IN SPARK Phan Anh Cang, Phan Thuong Cang, Tran Ho Dat ABSTRACT: Currently, the number of people suffering from lung-related diseases accounts for a high rate and occurs in almost all age groups, especially young children and the elderly with weak resistance. To accurately diagnose lung diseases, doctors often use physical examination methods, based on clinical and subclinical symptoms. In particular, chest X-ray is one of the most widely used techniques in medicine, helping doctors to assess and detect symptoms and lesions of the lungs, especially those caused by Corona virus. However, it is difficult to accurately and quickly diagnose areas of lung lesion with a large number of patients if we are just based on the experience of doctors examining X-ray images. Therefore, in this paper, we propose a method to detect some common lung lesions by deep learning techniques in Spark environment, helping to accurately and automatically diagnose lung lesions. Experimental results show that the proposed method achieves an accuracy of 96% with the model training time shortened and reduced by 57% compared to the case of no parallel and distributed processing. This supports doctors in making a preliminary diagnosis of lung lesions quickly for prompt treatment.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2