Tải bản đầy đủ (.pdf) (66 trang)

Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tại nút biên trong lĩnh vực y tế

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.14 MB, 66 trang )

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA
———————————–

NGUYỄN LÊ NGỌC DƯƠNG

NGHIÊN CỨU VÀ PHÁT TRIỂN GIẢI PHÁP XỬ LÝ
DỮ LIỆU DÒNG TẠI NÚT BIÊN TRONG LĨNH
VỰC Y TẾ

Ngành: Khoa Học Máy Tính
Mã ngành: 8.48.01.01

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 8 năm 2021


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA–ĐHQG-HCM

Cán bộ hướng dẫn khoa học : PGS.TS. Thoại Nam
Cán bộ chấm nhận xét 1 : TS. Nguyễn Quang Hùng
Cán bộ chấm nhận xét 2 : PGS.TS. Nguyễn Thanh Hiên
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.
HCM ngày 05 tháng 08 năm 2021 (Trực tuyến).
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học
hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1. Chủ Tịch:


PGS.TS. Trần Văn Hoài

2. Thư Ký:

TS. Lê Thanh Vân

3. Phản Biện 1: TS. Nguyễn Quang Hùng
4. Phản Biện 2: PGS.TS. Nguyễn Thanh Hiên
5. Uỷ Viên:

PGS.TS. Trần Công Hùng

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa (nếu có).

CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA
KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH


ĐẠI HỌC QUỐC GIA TP.HCM

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Độc lập - Tự Do - Hạnh Phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Nguyễn Lê Ngọc Dương

MSHV: 1970212

Ngày, tháng, năm sinh: 23/08/1996

Nơi sinh: Cần Thơ

Ngành: Khoa Học Máy Tính

Mã số: 8.48.01.01

I. TÊN ĐỀ TÀI: Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tại nút
biên trong lĩnh vực y tế.
NHIỆM VỤ VÀ NỘI DUNG:
– Tìm hiểu những thách thức về xử lý dữ liệu lớn trong lĩnh vực y tế và mơ hình
mơ hình điện tốn biên/sương mù ứng dụng trong lĩnh vực y tế;
– Tìm hiểu bệnh tim mạch, phương pháp theo dõi bệnh tim mạch, và ứng dụng
học máy để xây dựng mơ hình dự đốn bệnh tim mạch tại nhà;
– Dựa trên điện toán biên/sương mù xây dựng khung phần mềm thu thập phân
tích dữ liệu có khả năng mở rộng và xử lý theo thời gian thực;
– Đánh giá tính khả thi và so sánh với các cơng trình nghiên cứu đi trước.
II. NGÀY GIAO NHIỆM VỤ: 20/01/2021
III. NGÀY HOÀN THÀNH NHIỆM VỤ: 20/06/2021
IV. CÁN BỘ HƯỚNG DẪN: PGS.TS. Thoại Nam
Tp. HCM, ngày ........ tháng ......... năm 2021
CÁN BỘ HƯỚNG DẪN

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO


(Họ tên và chữ ký)

(Họ tên và chữ ký)

TRƯỞNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
(Họ tên và chữ ký)


Lời cảm ơn
Đầu tiên là lời cảm ơn chân thành đến Thầy PGS.TS. Thoại Nam trong suốt
thời gian qua đã hướng dẫn và giúp đỡ tận tình trong quá trình thực hiện luận
văn tốt nghiệp. Với những lời nhận xét hướng dẫn, và định hướng chuyên nghiệp
của Thầy đã giúp tơi có được hướng tiếp cận đúng để thực hiện đề tài, giúp
chúng tôi thấy được những thuận lợi và hạn chế của các phương pháp khác nhau
và từng bước khắc phục để ngày một hồn thiện hơn.
Bên cạnh đó là lời cảm ơn sâu sắc đến gia đình và bạn bè đã động viên, cổ vũ
tinh thần và góp ý trong suốt quá trình học tập và thực hiện đề tài, đặc biệt là
gia đình đã chăm lo và hy sinh rất nhiều để tơi có thể chun tâm học tập.
Và sau cùng, tơi kính chúc q Thầy Cơ trong khoa Khoa Học và Kĩ Thuật Máy
Tính nhiều sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình
là truyền nhiệt huyết và kiến thức cho thế hệ mai sau.
TP.Hồ Chí Minh, Tháng 08 Năm 2021
Nguyễn Lê Ngọc Dương

i


Tóm tắt
Trong bối cảnh số hố tồn cầu hiện nay trong nhiều lĩnh vực khác nhau, đặc
biệt trong lĩnh vực y tế thì việc theo dõi và quản lý về nhu cầu sức khoẻ từ xa

theo thời gian thực để có thể dự đốn trước bệnh tật giúp giảm chi phí nhập
viện là ưu tiên hàng đầu cho quốc gia và tồn thế giới. Vì vậy, các thiết bị y tế
có khả năng kết nối internet và các ứng dụng di động, v.v. liên tục được phát
triển. Tuy nhiên các thiết bị này liên tục sinh ra một lượng dữ liệu khổng lồ,
được gọi là dữ liệu lớn. Với tốc độ tạo dữ liệu ngày càng nhanh, nên việc thu
thập, xử lý và phân tích dữ liệu để có thể thực hiện các dự đoán trong trường
hợp khẩn cấp hoặc trích xuất thơng tin theo thời gian thực là một thách thức
rất lớn đối với các kiến trúc và phương pháp xử lý truyền thống. Do đó, cần phải
có giải pháp về kiến trúc và phương pháp xử lý luồng dữ liệu theo thời gian thực
một cách hiệu quả và có khả năng mở rộng cao. Để khắc phục vấn đề này, luận
văn đề xuất khung phần mềm hỗ trợ phân tích và dự đốn trước bệnh theo thời
gian thực, giúp theo dõi bệnh nhân từ xa, giúp làm giảm nhiều chi phí. Khung
phần mềm được xây dựng dựa trên kiến trúc được đề mới xuất gần đây được
gọi là điện tốn biên/sương mù (Edge/Fog Computing), nó đem lại khả năng
xử lý và phản hồi nhanh do các máy xử lý đặt ở vị trí gần các nguồn sinh dữ
liệu, ngồi ra cịn có khả năng lưu trữ tại nút biên/sương mù (Edge/Fog Node).
Khung phần mềm tập trung vào việc thu thập dữ liệu từ các thiết bị hoặc ứng
dụng di động thông qua Apache Kafka, mỗi loại bệnh sẽ được quản lý bởi một
hoặc nhiều Kafka Topics, ứng dụng giúp xử lý dữ liệu và áp dụng mơ hình học
máy dự đoán được xây dựng dựa trên Kafka Streams. Để kiểm chứng cho tính
khả thi của khung phần mềm, luận văn xây dựng khung phần mềm giúp thu
thập dữ liệu và dự doán bệnh tim mạch (Heart Disease) với mơ hình học sâu
(Deeplearning) được huấn luyện từ tập dữ liệu có sẵn.
ii


Abstract
In our current age of global digitization across different fields, medical in particular, real-time remote health monitoring and managing helps predict diseases
in advance and reduce hospitalization costs. As a result, such practice has become a top priority for many countries around the world. Therefore, Internetcapable medical devices, wearables, mobile applications, etc. are continuously
developed. However, these devices ceaselessly generate huge amounts of data,

formally known as Big Data. With the speed of data generation getting increasingly faster, it is a challenge for traditional processing architectures and
methods to collect, process, and analyze this data in order to make emergency
predictions or extract real-time information. Thus, there exists an urgent need
for an efficient and scalable real-time data stream processing architecture and
method. To solve this problem, this thesis proposes a software framework that
supports real-time analysis and prediction of diseases so as to help monitor patients remotely and reduce costs. The software framework is based on a recently
proposed architecture called Edge/Fog Computing, which provides fast processing and responses thanks to the processing machines being placed near the data
generation sources and the storage capability at Edge/Fog Nodes. Moreover, the
software framework is focused on collecting data from mobile devices and applications via Apache Kafka - each disease will be managed by one or more Kafka
Topics, while Kafka Streams is used to build applications that preprocess data
and apply predictive machine learning models. To substantiate the viability of
the software framework, this thesis builds a software framework to help monitor
and predict cardiovascular disease through a Deep Learning model trained from
the available data sets with the aim of detecting disease risks as early as possible.

iii


Lời cam đoan
Tôi là Nguyễn Lê Ngọc Dương học viên cao học khoa Khoa Học và Kĩ Thuật
Máy Tính, Đại học Bách Khoa TP. HCM, MSHV 1970212. Tôi xin cam đoan
rằng luận văn thạc sĩ "Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tại
nút biên trong lĩnh vực y tế" là kết quả tìm hiểu, nghiên cứu độc lập của chính
bản thân. Tơi xin cam đoan:
1. Luận văn được thực hiện cho mục đích tìm hiểu và nghiên cứu ở bậc cao
học.
2. Các cơng trình, bài báo tham khảo để xây dựng nên luận văn này đều được
trích dẫn, tham khảo. Tất cả các tài liệu được trích dẫn và có tính kế thừa
từ các tạp chí và các cơng trình nghiên cứu đã được cơng bố.
3. Những cơng cụ, phần mềm cho q trình thực hiện luận văn đều là phần

mềm mã nguồn mở.
4. Hình ảnh và số liệu được trích dẫn nguồn tham khảo rõ ràng.
5. Kết quả nghiên cứu được trình bày trung thực dựa trên số liệu thực tế khi
chạy chương trình.
TP.Hồ Chí Minh, Ngày ..... Tháng ..... Năm .....

iv


Mục lục
1 Giới thiệu đề tài

1

1.1

Tổng quan đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Mục tiêu, đối tượng nghiên cứu và phạm vi của đề tài . . . . . . .

4

1.2.1

Mục tiêu và đối tượng nghiên cứu . . . . . . . . . . . . . .


4

1.2.2

Phạm vi của đề tài . . . . . . . . . . . . . . . . . . . . . . .

5

1.2.3

Cấu trúc luận văn . . . . . . . . . . . . . . . . . . . . . . . .

5

2 Những nghiên cứu liên quan và bài toán cần giải quyết

6

2.1

Những nghiên cứu liên quan . . . . . . . . . . . . . . . . . . . . . .

6

2.2

Bài toán cần giải quyết . . . . . . . . . . . . . . . . . . . . . . . . .

8


2.3

Cơng cụ giải bài tốn . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1

Công cụ xử lý dữ liệu dòng (Stream Processing Engines) . 10

2.3.2

Apache Kafka . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.3

Kafka Streams . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Khung phần mềm thu thập và phân tích dữ liệu trong y tế

18

3.1

Kiến trúc tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2

Kiến trúc khung phần mềm thu thập và phân tích dữ liệu . . . . . 20

3.3

Thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


3.4

Ứng dụng xử lý dữ liệu luồng . . . . . . . . . . . . . . . . . . . . . 22

4 Giải thuật xử lý dữ liệu tại nút biên

24

4.1

Bệnh tim mạch (Heart Disease) . . . . . . . . . . . . . . . . . . . . 24

4.2

Phương pháp theo dõi bệnh tim từ xa . . . . . . . . . . . . . . . . 26

4.3

Xây dựng mơ hình học máy . . . . . . . . . . . . . . . . . . . . . . 30

v


MỤC LỤC

4.4

4.3.1


Trực quan hoá tập dữ liệu . . . . . . . . . . . . . . . . . . . 30

4.3.2

Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . . 32

Cơng cụ tích hợp mơ hình vào ứng dụng xử lý luồng . . . . . . . . 34

5 Đánh giá khung phần mềm
5.1

5.2

36

Mơ hình học máy dự đoán bệnh tim mạch . . . . . . . . . . . . . . 36
5.1.1

Phương pháp đánh giá mơ hình dự đốn . . . . . . . . . . 36

5.1.2

Độ chính xác của mơ hình dự đốn bệnh tim theo dõi từ xa 37

Khung phần mềm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.1

Phương pháp đánh giá khung phần mềm . . . . . . . . . . 40

5.2.2


Đánh giá hiệu năng khung phần mềm . . . . . . . . . . . . 41

6 Kết luận

45

6.1

Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2

Khó khăn và hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.3

Định hướng tương lai . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Tài liệu tham khảo

48

A Bảng đối chiếu thuật ngữ Anh - Việt

A1

B Thiết lập cho thử nghiệm

B2


B.1 Thiết lập Kafka Broker . . . . . . . . . . . . . . . . . . . . . . . . . B2
B.2 Thiết lập mô phỏng dữ liệu . . . . . . . . . . . . . . . . . . . . . . B3
B.3 Thiết lập Kafka Streaming Application . . . . . . . . . . . . . . . . B3

vi


Danh sách hình vẽ
1.1

Tổng quan mơ hình điện tốn biên/sương mù [1] . . . . . . . . . .

1.2

Tổng quan mơ hình điện tốn biên/sương mù ứng dụng trong lĩnh
vực y tế [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1

3
4

Các tính năng của cơng cụ xử lý luồng hiện có và message broker
[3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2

Mơ hình Publish/Subscribe [4] . . . . . . . . . . . . . . . . . . . . . 11


2.3

Một hệ sinh thái sử dụng Apache Kafka [3] . . . . . . . . . . . . . 13

2.4

Luồng dữ liệu và Kafka [3] . . . . . . . . . . . . . . . . . . . . . . . 13

2.5

Đồ thị cấu trúc liên kết các bộ xử lý luồng trong Kafka Streams [5] 16

3.1

Kiến trúc tổng quan khung phần mềm . . . . . . . . . . . . . . . . 19

3.2

Thành phần và chức năng của từng thành phần trong khung phần
mềm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3

Đồ thị cấu trúc liên kết xử lý và dự đoán bệnh tim . . . . . . . . . 22

4.1

Điện tâm đồ (ECG) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2


Độ dốc của nhịp tim . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3

Thống kê số lượng nhãn của tập dữ liệu . . . . . . . . . . . . . . . 30

4.4

Tần suất bệnh tim mạch theo độ tuổi . . . . . . . . . . . . . . . . 31

4.5

Tần suất bệnh tim mạch theo các cơn đau ngực . . . . . . . . . . . 31

4.6

Mối tương quan giữa các thuộc tính . . . . . . . . . . . . . . . . . 32

4.7

K-Fold Cross Validation . . . . . . . . . . . . . . . . . . . . . . . . 33

4.8

Cấu trúc mơ hình dự đốn bệnh tim . . . . . . . . . . . . . . . . . 33

4.9

Thông số mơ hình dự đốn bênh tim mạch . . . . . . . . . . . . . 34


vii


Danh sách bảng
4.1

Các thuộc tính của bệnh tim mạch . . . . . . . . . . . . . . . . . . 27

5.1

Confusion Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2

Confusion Matrix cho mơ hình 1 . . . . . . . . . . . . . . . . . . . 37

5.3

Confusion Matrix cho mơ hình 2 . . . . . . . . . . . . . . . . . . . 38

5.4

Confusion Matrix cho mơ hình 3 . . . . . . . . . . . . . . . . . . . 38

5.5

Confusion Matrix cho mơ hình 4 . . . . . . . . . . . . . . . . . . . 39

5.6


Confusion Matrix cho mơ hình 5 . . . . . . . . . . . . . . . . . . . 39

5.7

Cấu hình máy dùng cho thí nghiệm . . . . . . . . . . . . . . . . . . 41

5.8

Kết quả thông lượng tham khảo [4] . . . . . . . . . . . . . . . . . . 42

5.9

Kết quả thông lượng tham khảo với sự ảnh hưởng từ băng thông
mạng [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.10 Kết quả thông lượng của khung phần mềm được hiện thực với
Kafka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.11 Kết quả thời gian xử lý tham khảo. . . . . . . . . . . . . . . . . . . 44
5.12 Kết quả thời gian xử lý của khung phần mềm được hiện thực với
Kafka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

viii


Chương 1

Giới thiệu đề tài
1.1


Tổng quan đề tài

Ngày nay, thời đại được mô tả là thời đại của dữ liệu, nơi tất cả dữ liệu đều
được số hóa và trở nên có ý nghĩa trong mọi lĩnh vực. Nên nhu cầu theo dõi
về mọi mặt là cần thiết. Do đó, thị trường IoT toàn cầu dự kiến sẽ đạt hơn 10
nghìn tỷ đơ la vào năm 2025 [7]. Đặc biệt trong nền cơng nghiệp y tế chăm sóc
sức khoẻ (Healthcare Industry), một lượng lớn dữ liệu được sinh ra từ các thiết
bị theo dõi như MioT, Wearable Medical Devices, và một số công cụ thu thập
dữ liệu khác. Gartner đã ước tính tổng số thiết bị IoT là 8,4 tỷ vào năm 2017 và
tăng 31% so với năm 2016. Intel ước tính 200 tỷ vào năm 2020, tương đương với
26 thiết bị thông minh cho mỗi con người trên Trái đất. Về con số chi phí, tổng
số tiền chi cho các thiết bị và dịch vụ IoT là 2 nghìn tỷ đô la vào năm 2017, các
dự báo khác bao gồm 772,5 tỷ đô la vào năm 2018, tăng 14,6% so với ước tính.
Nó có thể đạt 1 nghìn tỷ đơ la vào năm 2020 và 1,1 nghìn tỷ đơ la vào năm 2021.
Các giải pháp IoT chăm sóc sức khỏe vào năm 2025 có thể đạt khoảng 1 nghìn
tỷ đô la vào năm 2025. Các số liệu thống kê sau đây cho thấy độ ảnh hưởng của
việc ứng dụng cơng nghệ trong nển cơng nghiệp chăm sóc sức khỏe [8]:
1. Các thiết bị IoT ở các tổ chức chăm sóc sức khỏe chiếm 60%.
2. Bảo trì và giám sát IoT đang diễn ra trên 73% các tổ chức.
3. Đến năm 2019, các cơng cụ và cơng nghệ IoT có khả năng được triển khai
1


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

tại 87% các tổ chức chăm sóc sức khỏe. 64% bệnh nhân trong ngành chăm
sóc sức khỏe bắt đầu sử dụng các công cụ IoT.
4. Tuy nhiên, có 89% vi phạm bảo mật IoT xảy ra trong các tổ chức chăm sóc
sức khỏe.
Từ những con số từ thống kê có thể thấy, nền cơng nghiệp chăm sóc sức khỏe

đang phát triển rất nhanh và phải đối mặt với nhiều thách thức được mô tả như
5 đặc tính trong dữ liệu lớn: Volume, Variety, Velocity, Veracity và Value (5V)
[9].
Từ nhiều khảo sát có thể thấy trong nền cơng nghiệp chăm sóc sức khỏe
thơng mình phải đối mặt mới 3 thách thức chính:
• Thứ nhất, dữ liệu chăm sóc sức khỏe đến từ nhiều nguồn phân tán, chẳn

hạn như hồ sơ y tế điện tử, hình ảnh lâm sàng, dữ liệu chẩn đoán và dữ liệu
yêu cầu về sức khỏe, hệ thống phát trực tuyến, cảm biến gắn vào giường
bệnh để liên tục theo dõi thông tin bệnh nhân, v..v, thu thập dữ liệu từ các
hệ thống phân tán là một quá trình phức tạp do lượng dữ liệu khổng lồ.
• Thứ hai, lưu trữ dữ liệu lớn và khơng đồng nhất đó là một vấn đề lớn; do

đó, nhu cầu về một hệ thống lưu trữ dữ liệu lớn với hiệu suất hoạt động
hiệu quả là rất cần thiết.
• Thứ ba, thách thức này liên quan đến phân tích dữ liệu, đặc biệt là xử lý

dữ liệu lớn trong thời gian thực, bao gồm mơ hình hóa, trực quan hóa, dự
đốn và tối ưu hóa.
Với những thách thức này đòi hỏi các hệ thống xử lý mới phải đối phó với dữ
liệu khơng đồng nhất hoặc xử lý dữ liệu lớn trong thời gian thực. Điều này cho
thấy hệ thống tập trung điện toán đám mây (Cloud Computing) thuần túy sẽ
không giúp giải quyết được những thách thức vì cần phải xử lý tập trung theo
gói (Batch Processing), và tốn nhiều thời gian để xử lý. Do đó, cần phải có một
mơ hình thu thập và xử lý theo thời gian thực (Real-time Processing) hoặc cận
thời gian thực (Near Real-time Processing). Gần đây một kiến trúc hệ thống
mới được đề xuất đó là mơ hình phân tích dữ liệu theo thời gian thực điện tốn
biên/sương mù Hình 1.1, với mục đích giảm tải cho điện tốn đám mây và mang
2



CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

các nút có khả năng tính tốn, dự đốn và lưu trữ gần với nguồn sinh dữ liệu
từ các ICU, bệnh viện, phòng khám, v.v. Mơ hình mang lại khả năng tiền xử
lý dữ liệu, trích xuất những thơng tin có ý nghĩa trước khi được thu thập tập
trung về máy chủ trung tâm. Ngoài ra, với thiết kế đặt gần các nguồn sinh dữ
liệu (người dùng, thiết bị, . . . ) về vị trí địa lý nên khả năng phản hồi nhanh,
độ trễ thấp, rất phù hợp cho việc theo dõi các thông số cần tính chất thời gian
thực.
Dựa trên mơ hình điện toán biên/sương mù, luận văn xây dựng khung phần
mềm tập trung vào giải quyết việc thu thập và tiền xử lý dữ liệu theo thời gian
thực hoặc cận thời gian thực trong lĩnh vực y tế Hình 1.2.

Hình 1.1: Tổng quan mơ hình điện tốn biên/sương mù [1]

3


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

Hình 1.2: Tổng quan mơ hình điện tốn biên/sương mù ứng dụng trong lĩnh vực
y tế [2]

1.2

Mục tiêu, đối tượng nghiên cứu và phạm
vi của đề tài

1.2.1


Mục tiêu và đối tượng nghiên cứu

Luận văn đề ra 2 mục tiêu cụ thể như sau:
• Dựa trên mơ hình điện tốn biên/sương mù xây dựng khung phần mềm để

thu thập và theo dõi dữ liệu trong lĩnh vực y tế. Khung phần mềm đem lại
khả năng mở rộng và chịu tải cao với một lượng lớn dữ liệu được xử lý tại
nút biên trước khi dữ liệu về nút xử lý trung tâm;
• Ứng dụng giải thuật giúp khung phần mềm có khả năng tiền xử lý và dự

đoán tại nút biên. Khả năng xử lý trong khoảng thời gian cho phép giúp
khung phần mềm có thể đem lại độ trễ thấp nhất có thể.
Đối tượng nghiên cứu của luận văn là các loại bệnh cần theo dõi và phát hiện
sớm các bất thường để đội ngũ y bác sĩ có thể dễ dàng theo dõi và can thiệp
điều trị kịp thời như bệnh tim mạch, bệnh tiểu đường, bệnh tiểu đường thời kỳ
thai sản, v.v.
Cụ thể đối tượng nghiên cứu chính trong luận văn là bệnh tim mạch.

4


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

1.2.2

Phạm vi của đề tài

Luận văn sẽ không tập trung vào việc định nghĩa các dữ liệu được sinh ra như
thế nào và dữ liệu sau khi đã xử lý qua khung phần mềm được ứng dụng như thế

nào. Tất cả dữ liệu về các thông số theo dõi bệnh tim sẽ được mô phỏng, ngoại
trừ tập dữ liệu dùng để huấn luyện mơ hình dự đoán bệnh tim từ Kaggle [10].
Luận văn sẽ tập trung vào xây dựng khung phần mềm dựa trên nền điện toán
biên/sương mù và ứng dụng giải thuật máy học vào dự đoán bệnh tim mạch.
Hiện thực và đánh giá khung phần mềm về khả năng chịu tải và khả năng xử
lý đưa ra dự đốn thơng qua mơ hình máy học.

1.2.3

Cấu trúc luận văn

Chương 1. Tổng quan về nội dung, mục tiêu và phạm vi nghiên cứu.
Chương 2. Những nghiên cứu liên quan và bài toán cần giải quyết.
Chương 3. Khung phần mềm thu thập và phân tích dữ liệu.
Chương 4. Giải thuật xử lý tại nút biên.
Chương 5. Đánh giá khung phần mềm.
Chương 6. Kết luận.

5


Chương 2

Những nghiên cứu liên
quan và bài toán cần giải
quyết
2.1

Những nghiên cứu liên quan


Ngày nay, phân tích dữ liệu lớn, đặc biệt là phân tích chăm sóc sức khỏe đã
trở thành một vấn đề quan trọng đối với một số lượng lớn các nghiên cứu. Gần
đây, nhiều bài nghiên cứu đang sử dụng máy học kết hợp với xử lý luồng trong
hệ thống chăm sóc sức khoẻ thơng minh.
Trong [11] tác giả đã đưa ra những thách thức phải đối mặt trong việc xử lý
một lượng lớn dữ liệu về y tế. Họ đã đưa ra những thách thức như sau. Thứ
nhất, việc thu thập và nhập dữ liệu là cần thiết cho thiết lập chăm sóc sức khỏe
lâm sàng, và nó là dữ liệu dạng luồng nên những thách thức chính trong khi
xử lý việc thu thập dữ liệu là băng thông mạng, khả năng mở rộng và các vấn
đề chi phí. Thứ 2, sau khi thu thập thì việc quản lý và lưu trữ rất khó khắn
và cần chi phí rất lớn. Thứ 3, để cải thiện kết quả của bệnh nhân và phát hiện
các dấu hiệu cảnh báo của các biến chứng, cần có khung phần mềm xử lý dịng
theo thời gian thực. Ví dụ trong các dịch vụ chăm sóc sức khỏe hiện đại, bệnh
nhân thường được kết nối với thiết bị y tế liên tục theo dõi huyết áp và nhịp

6


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

tim. Và để giải quyết các vấn đề, họ đã đề xuất mơ hình kết hợp Apache Kafka
và Apache Spark Streaming. Kafka hoạt động rất tốt trong việc vận chuyển dữ
liệu giữa các hệ thống khác nhau, nhưng lại khơng có cơng cụ phân tích và xử
lý, nên Spark Streaming được áp dụng vào để thực hiện việc phân tích.
Nhóm tác giải ở [12] [13] cũng với ý tưởng kết hợp Apache Kafka và Apache
Spark xây dựng hệ thống xử lý luồng cho việc thu thập thông tin, phân tích
dự đốn bệnh tim mạch với mơ hình máy học Decision Tree. Họ sử dụng bộ dữ
liệu tim mạch Cleveland để huấn luyện mơ hình. Cả hai đều thu thập dữ liệu và
quản lý bệnh nhân thông qua mạng xã hội Twitter, sử dụng Twitter Streaming
API để tạo các luồng dữ liệu.[12] thu thập dữ liệu và phân tích thông qua Spark

Streaming, [13] kết hợp thêm Kafka để thu thập dữ liệu và Spark Streaming với
mơ hình học máy để phân tích và dự đốn.
Bài báo [14] dựa trên các ý tưởng về xây dựng hệ thống phân tích luồng và
áp dụng mơ hình máy học. Điểm đặc biệt trong [14] là nó vừa thu thập dữ liệu
và vừa huấn luyện mơ hình (online traning). Kiến trúc mơ hình như sau, trong
giai đoạn đầu, dữ liệu được thu thập từ các nguồn dữ liệu khác nhau; Kafka
Producer liên tục tạo ra luồng dữ liệu và truyền về Kafka Broker thông qua các
chủ đề khác nhau, tên các chủ đề liên quan đến các bệnh khác nhau. Thứ hai,
Spark Streaming nhận luồng dữ liệu y tế với các thuộc tính liên quan đến từng
bệnh và sau đó áp dụng mơ hình máy học để dự đốn tình trạng sức khỏe. Thứ
ba, Online Predict nhận các gói dữ liệu đầu vào và chịu trách nhiệm phân tích
và cập nhật mơ hình theo dữ liệu mới đến. Ở giai đoạn cuối cùng, kết quả dự
đoán đến các nơi lưu dữ liệu, trong đó đầu ra cũng sẽ gửi lại một lần nữa đến
Kafka để được sử dụng bởi các ứng dụng khác như dịch vụ web, hệ thống báo
động, bảng điều khiển, ứng dụng di động và mạng xã hội bệnh viện.
Nhóm tác giả ở bài báo [15] xây dựng mơ hình HealthFog, kết hợp mơ hình
deep learning ở điện tốn biên để theo dõi, phân tích và dự đốn bệnh tim mạch
theo thời gian thực. Tác giả đưa ra thách thức với mơ hình điện tốn đám mây
hiện tại khơng thể đáp ứng hết khi cần phân tích dự đốn theo thời gian thực với
số lượng các thiết bị có thể tạo ra dữ liệu q lớn. Nên với mơ hình HealthFog
tác giả xây dựng kết hợp điện toán biên và điện toán đám mấy để giải quyết
bài toán trên. Sử dụng ứng dụng di động để thu thập dữ liệu của bệnh nhân,
và các dữ liệu sẽ được gửi về nút biên có tên là FogBus. Tận dụng lợi thế của

7


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

điện toán biên được thế kế nằm gần các nguồn sinh dữ liệu nên việc nhận phân

tích và dự đốn với mơ hình máy học đem lại phản hồi nhanh. Các dữ liệu được
phân tích ở FogBus sẽ được gửi về điện tốn đám mây để có thể sử dụng lại.
Với ý tưởng điện toán biên, [16] tác giả sử dụng một cụm máy Raspberry Pi
3 để chạy ứng dụng xử lý luồng tại nút biên. Trong bài báo này, điện toán biên
được sử dụng để theo dõi, thu thập dữ liệu từ các thiết bị IoT trên xe đang di
chuyển liên tục. Mơ hình kết hợp MQTT và Apache Flink để phân tích và xử
lý. Kết quả đem lại mơ hình có thể theo dõi được 245369 xe đang di chuyển tại
Italy, với 0.8 dữ liệu được sinh ra trong mỗi giây. Quá trình xử lý mất 10s để có
thể gửi về đám mây.
Một khung phần mềm thu thập, chuẩn hố các loại dữ liệu khơng đồng nhất,
và kết hợp mơ hình dự đốn tính tốn nhỏ được đề xuất trong [3], bài báo tận
dụng sức mạnh của Kafka Streams xây dựng mơ hình dự đốn hạn hán. Dựa
vào dữ liệu từ các trạm thu thập dữ liệu môi trường, và điểm đặc biệt các dữ
liệu của các trạm lại có định dạng khác nhau, tác giả kết hợp Kafka Streaming
xây dựng công cự xử lý luồng để định dạng lại dữ liệu theo mong muốn và cho
đi qua mơ hình dữ đốn hạn hán. Trong bài báo, tác giả sử dụng Confluent
Platform [17] một công cụ được xây dựng dựa trên Apache Kafka hỗ trợ nhiều
tính năng mới để hiện thực nên mơ hình đề xuất.
Mơ hình điện tốn biên ngày càng được ứng dụng nhiều trong IoT, tại phịng
thí nghiệm ở các trường đại học cũng đã đem vào giảng dạy và thực hành. Bài
báo [18] xây dựng mơ hình điện tốn biên cho phịng thí nghiệm, tận dụng Kafka
để thu thập dữ liệu thơng qua Kafka Connect để có thể hỗ trợ nhiều giao thức
trong IoT như MQTT, COAP, HTTP, v.v.

2.2

Bài toán cần giải quyết

Các cơng trình nghiên cứu đi trước đã đưa ra những thách thức liên quan
về việc thu thập dữ liệu y tế, và từ các dữ liệu đó phân tích, trích xuất những

thơng tin cần thiết để đưa ra dự đốn nhanh nhất có thể và sau đó là lưu trữ
dữ liệu.
Với các khó khăn từ các cơng trình nghiên cứu đi trước, luận văn hình thành
bài tốn như sau. Với nhu cầu mức sống ngày càng cao của con người và việc

8


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

ngày càng phát triển của khoa học kỹ thuật, thì việc ứng dụng khoa học kỹ
thuật vào lĩnh vực y tế như các cơng trình nghiên cứu trên là rất cần thiết. Các
phòng khám, các bệnh viện, hoặc các trung tâm chăm sóc đặc biệt, v.v rất cần
theo dõi những thông số cần thiết liên quan đến bệnh của bệnh nhân một các
chặt chẽ. Cụ thể trong phạm vi của luận văn, đối tượng bệnh cần theo dõi là
bệnh tim, một căn bệnh có nguy cơ gây tử vong cao nên việc theo dõi liên tục
và đưa ra dự đoán sớm những dấu hiệu là rất cần thiết. Giả sử một trường hợp
cụ thể, các bệnh nhân sau khi điều trị bệnh tim tại các cơ sở chữa trị được xuất
viện và cần theo dõi với tần suất theo yêu cầu của y bác sĩ. Với cách truyền
thống khơng có sự can thiệp của khoa học kỹ thuật, các bệnh nhân chỉ có thể
được theo dõi mỗi lần tái khám định kỳ, trong quá trình giữa hai lần tái khám,
đội ngũ y bác sĩ không thể theo dõi và phát hiện bất thường ngay lập tức và
can thiệp điều trị. Khi áp dụng sự theo dõi từ công nghệ, bệnh nhân có thể
được theo dõi từ xa và đều đặn, các thông số sẽ được theo dõi và phát hiện bất
thường ngay lập tức, giúp y bác sĩ có thể can thiệp kịp thời.
Với bài tốn đã đề ra, khung phần mềm cần xây dựng cần phải giải quyết
được các vấn đề được trình bày sau:
1. Cách thu thập và quản lý dữ liệu đầu và từ các bệnh khác nhau, với nhiều
định dạng khác nhau;
2. Giải thuật xử lý dữ liệu và đưa ra dự đoán bất thường một cách nhanh

chóng;
3. Có khả năng mở rộng và đáp ứng khi lượng dữ liệu ngày càng nhiều theo
thời gian.
Một số cơng trình nghiên cứu đi trước đã đưa ra cách theo dõi và dự đoán
phát hiện sớm bệnh tim mạch, các tác giả đã kết hợp mơ hình máy học Decision
Tree và cả mơ hình học sâu để đưa ra dự đốn trong mơ hình theo dõi bệnh
của họ, hệ thống của họ hướng tới hệ thống xử lý tập trung ứng dụng các công
nghệ xử lý dữ liệu lớn như Apache Spark chạy trên cụm máy chủ. Và cũng có
cơng trình nghiên cứ tập trung vào điện tốn biên để xây dựng mơ hình theo
dõi bệnh tim. Nhóm tác giả ở cơng trình [15] [16] đã cho thấy được sức mạnh
của điện toán biên/sương mù trong việc giải bài toán tiền xử lý dữ liệu.
9


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Thừa hưởng từ các cơng trình đã có luận văn đưa ra cách giải quyết các vấn
đề của bài toán đã đặt ra như sau. Luận văn tận dụng sức mạnh và khả năng
chịu tải của Apache Kafka [4] để thu thập dữ liệu từ bệnh nhân vì Kafka hoạt
động rất tốt trong việc vận chuyển dữ liệu giữa các hệ thống, nhưng lại khơng
có cơng cụ phân tích và xử lý [11]. Để xây dựng cơng cụ phân tích và xử lý cho
khung phần mềm, luận văn dựa vào bài báo nghiên cứu [3] với ý tưởng sử dụng
khả năng xử lý dữ liệu một cách nhanh chóng và dễ sử dụng của thư viện Kafka
Streams để xây dựng ứng dụng xử lý dữ liệu và dự đốn cho khung phần mềm.
Để có thể xây dựng và chọn được công cụ cho các thành phần của khung
phần mềm, ta cần một số khái niệm sẽ được trình bày tiếp sau đây.

2.3
2.3.1


Cơng cụ giải bài tốn
Cơng cụ xử lý dữ liệu dòng (Stream Processing
Engines)

Xử lý dữ liệu dòng là một phần của xử lý dịng, nó là một cách để có thể có
thể bắt được tất cả các sự kiện xảy ra trong thế giới thực theo thời gian và xử
lý dữ liệu đó theo thời gian thực. Quá trình xử lý liên quan đến việc sử dụng
một cơng cụ nhằm thực hiện các hoạt động tính tốn như tính trung bình, so
sánh mẫu, dự đốn sự kiện (dự báo), lọc sự kiện, tương quan và trừu tượng hóa
trên các luồng dữ liệu đầu vào hoặc tập dữ liệu.
Trong nhiều năm qua, nhiều nền tảng xử lý luồng khác nhau đã được phát
triển, [3] một số được phát triển theo mơ hình publish/subscribe (Hình 2.2)
với cơng cụ xử lý dữ liệu dịng tích hợp và Message Broker. Ngồi ra, vẫn có
một số một số cơng cụ chỉ chun xử lý dữ liệu dòng như Apache Storm [19]
, Apache Flink [20], Apache Kafka [21], Apache Spark [22], Apache Samza ,
SQLStreams-Server , v.v.

10


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Hình 2.1: Các tính năng của cơng cụ xử lý luồng hiện có và message broker [3]

Hình 2.1 nêu các tính năng nổi bật của các cơng cụ xử lý dữ liệu, xử lý luồng
và message broker khác nhau. Từ đó, ta có thể thấy Apache Kafka phù hợp cho
đề tài luận văn. Kafka cung cấp các tính năng quan trọng về khả năng mở rộng
hệ thống, tính sẵn sàng cao, hiệu suất cao (lên đến 100.000 message/s trên một
máy chủ duy nhất), và quản lý các bản ghi thơng qua các Kafka Topics, điều
này có thể giúp giải quyết được hai vấn đề mà bài toán đã đề ra đó là: Cách thu

thập và quản lý dữ liệu đầu từ các bệnh khác nhau, có nhiều định dạng khác
nhau; Có khả năng mở rộng và đáp ứng khi lượng dữ liệu ngày càng nhiều theo
thời gian.

Hình 2.2: Mơ hình Publish/Subscribe [4]

11


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

2.3.2

Apache Kafka

Giới thiệu
Apache Kafka là một công cụ mã nguồn mở xử lý, cũng như message broker
của Apache – được xây dựng như IaaS (Infrastructure-as-a-Service) Hình 2.3
và được sử dụng để cung cấp chức năng phân tích luồng dữ liệu bằng cách sử
dụng các bộ lọc, tổng hợp, kết hợp trên một tập dữ liệu theo một khung thời
gian, dựa trên các mẫu được xác định trước khác nhau để tạo ra suy luận dự
đốn. Nó là một nền tảng streaming với khả năng publish/subscribe các luồng
dữ liệu, lưu trữ các luồng dữ liệu theo cách có thể chịu được lỗi và xử lý các
luồng dữ liệu trong thời gian thực. Công cụ xử lý luồng xử lý các luồng dữ liệu
cảm biến hoặc tập dữ liệu trong thời gian thực để xác định các mẫu sự kiện từ
quan sát/đọc của cảm biến đến và tương quan dữ liệu với ngưỡng giá trị được
xác định trước/đặt trước để phân tích dự đốn.
Apache Kafka có thể được chạy dưới dạng một cluster hoặc được triển khai
trong môi trường cloud, với các producers được kết nối với cụm bằng cách sử
dụng Kafka Connect APIs [23], được xử lý bởi bộ xử lý luồng. Kafka Cluster

lưu lại các bản ghi của dữ liệu (data record) thông qua Kafka Topics. Mỗi bản
ghi (record) sẽ bao gồm key, value, timestamp. Công cụ Kafka Streams sẽ lấy
luồng dữ liệu từ các Input Topics để xử lý, chuyển hố dữ liệu sau đó ghi ra các
Output Topics Hình 2.4

12


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Hình 2.3: Một hệ sinh thái sử dụng Apache Kafka [3]

Hình 2.4: Luồng dữ liệu và Kafka [3]
Các thành phần Apache Kafka
1. Topics
Trong Kafka cluster, các messages được phân loại thành các Topics dựa trên
các thuộc tính tương tự. Mỗi chủ đề tương tự như các bảng trong cơ sở dữ
liệu như PostgreSQL - tuy nhiên, khơng có các ràng buộc. Trong Kafka,
một số chủ đề có thể được tạo ra để phân loại sự giống nhau, với mỗi chủ
đề được xác định duy nhất bằng tên của nó. Các chủ đề được chia thành
các phân vùng trong một danh sách có thứ tự với các messages/data trong
mỗi phân vùng của chủ đề được xác định bằng cách sử dụng offset [24].
Các messages hoặc records được tạo từ producers được ghi vào các Topics
13


CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

thích hợp theo thứ tự thời gian hoặc trình tự đến, các consumers sử dụng
các messages/records bằng các đọc từ các Topics.

2. Brokers
Kafka cluster bao gồm nhiều Brokers với mỗi Broker hoạt động như một
máy chủ cluster. Mỗi Broker chứa các phân vùng (partitions) của Topic với
dữ liệu của các Topics ở dạng phân tán. Các phân vùng là cách mà Kafka
cho phép khả năng mở rộng theo chiều ngang để sao chép các thơng điệp
trên tồn cluster [24]. Sao chép (Replication) là một tiêu chí quan trọng
trong bất kỳ hệ thống phân tán nào, do đó Kafka đảm bảo một bản sao của
tất cả các Topics có sẵn trên các Broker khác trong cụm tùy cài đặt của
Topic.
3. Producers
Kafka Producers là nguồn của các messages/data ghi vào các Topics, sau
đó được ghi vào các phân vùng và được lưu trên các Brokers trong cụm.
Producers rất đa dạng có thể là các cảm biến, các ứng dụng di động, v.v.
4. Consumers
Consumers sử dụng các messages/data do các Producers tạo ra bằng cách
subcribe một Topics cụ thể [24]. Các Consumers được cấu hình và lập trình
với quyền truy cập đọc để kết nối với các Brokers thích hợp để đọc dữ liệu
theo dạng luồng. Trong trường hợp Broker trong cụm bị lỗi, Consumers sẽ
tự động tìm dữ liệu từ Broker có sẵn tiếp theo trong cluster. Messages/data
trong các phân vùng được sử dụng theo thứ tự dựa trên hiệu số. Phần bù
của Consumer giống như dấu trang tiêu chuẩn cho phép Consumer biết bắt
đầu đọc dữ liệu của Topic từ đâu. Trong trường hợp một Topics có nhiều
hơn một phân vùng, data/messages được đọc song song bởi Consumer và
ngẫu nhiên từ nhiều phân vùng.

2.3.3

Kafka Streams

Kafka Streams [5] là một thư viện client để xây dựng ứng dụng xử lý và phân

tích dữ liệu được lưu trữ trong Kafka.

14


×