HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
VŨ VĂN HUY
THEO DÕI NHỊP THỞ
BẰNG PHƯƠNG PHÁP HỌC SÂU
LUẬN VĂN THẠC SỸ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2019
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
VŨ VĂN HUY
THEO DÕI NHỊP THỞ
BẰNG PHƯƠNG PHÁP HỌC SÂU
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ : 8.48.01.01
LUẬN VĂN THẠC SỸ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS. PHẠM VĂN CƯỜNG
HÀ NỘI – 2019
LỜI CAM ĐOAN
Luận văn này là thành quả của quá trình học tập nghiên cứu của em cùng sự
giúp đỡ, khuyến khích của các quý thầy cô sau hai năm theo học chương trình đào
tạo Thạc sỹ, chuyên ngành Khoa học máy tính của trường Học viện Công nghệ Bưu
chính Viễn thông.
Em xin cam đoan đây là công trình nghiên cứu của riêng. Nội dung của luận
văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí
được liệt kê trong danh mục các tài liệu tham khảo và được trích dẫn hợp pháp.
Tác giả
(Ký và ghi rõ họ tên)
Vũ Văn Huy
LỜI CẢM ƠN
Sau một thời gian dài học tập và nghiên cứu, cuối cùng em cũng đã hoàn thành
luận văn tốt nghiệp này, đây là dịp tốt nhất để em có thể bày tỏ lòng biết ơn sâu sắc
đến mọi người.
Em xin gửi lời cảm ơn sâu sắc đến thầy Phạm Văn Cường, đã tận hình hướng
dẫn, định hướng cho em trong suốt thời gian thực hiện đề tài. Thầy đã cho em những
lời khuyên quý báu giúp em hoàn thành tốt luận văn.
Em xin cảm ơn Khoa Sau Đại học, Khoa Công Nghệ Thông Tin – Học viện
Công nghệ Bưu chính Viễn thông, cảm ơn các thầy cô trong khoa đã tận tình giảng
dạy, truyền đạt cho em những kiến thức quý báu trong những năm học vừa qua, giúp
cho em có một nền tảng kiến thức vững chắc để thực hiện luận văn cũng như nghiên
cứu học tập sau này.
Cuối cùng, tôi xin gửi lời cảm ơn đến tất cả bạn bè, anh, chị, những người đã
giúp đỡ, khích lệ cũng như phê bình, góp ý, giúp tôi hoàn thành khóa luận một cách
tốt nhất.
Hà Nội, tháng 02 năm 2019
Vũ Văn Huy
i
MỤC LỤC
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT .............................................................. iii
DANH MỤC BẢNG BIỂU ...................................................................................... iv
DANH MỤC HÌNH VẼ, SƠ ĐỒ ................................................................................v
MỞ ĐẦU .....................................................................................................................1
Chương 1. TỔNG QUAN ...........................................................................................4
1.1 Đặt vấn đề..........................................................................................................4
1.2 Tổng quan vấn đề theo dõi sức khỏe bằng nhịp thở .........................................5
1.2.1 Tổng quan...................................................................................................5
1.2.2 Bài toán theo dõi nhịp thở dựa vào dữ liệu âm thanh ................................7
1.3 Một số nghiên cứu liên quan .............................................................................9
1.3.1 Phát hiện âm thanh hô hấp dựa trên trích chọn đặc trưng ..........................9
1.3.2 Phân loại các giai đoạn của giấc ngủ dựa trên nhịp thở ...........................16
1.3.3 Đánh giá ...................................................................................................21
1.4 Kết chương ......................................................................................................22
Chương 2. KỸ THUẬT HỌC SÂU CHO BÀI TOÁN THEO DÕI NHỊP THỞ .....23
2.1 Tổng quan về Học sâu .....................................................................................23
2.1.1 Mối quan hệ giữa trí tuệ nhân tạo, học máy và học sâu ...........................23
2.1.2 Sự phát triển của Học sâu.........................................................................26
2.1.3 Ứng dụng của Học sâu .............................................................................30
2.2 Long short term memory .................................................................................31
2.2.1 Mạng nơ-ron Hồi quy...............................................................................31
2.2.2 Mạng nơ-ron LSTM .................................................................................33
2.3 Áp dụng LSTM cho bài toán theo dõi nhịp thở ..............................................35
2.3.1 Các bước nhận dạng nhịp thở ..................................................................36
2.3.2 Thu thập dữ liệu nhịp thở .........................................................................37
2.3.3 Lọc tín hiệu nhiễu.....................................................................................40
2.3.4 Trích chọn frame chứa dữ liệu nhịp thở ...................................................43
ii
2.3.5 Chuẩn hóa dữ liệu ....................................................................................44
2.3.6 Tạo LSTM Model ....................................................................................46
2.4 Kết chương ......................................................................................................51
Chương 3. THỰC NGHIỆM, ĐÁNH GIÁ KẾT QUẢ VÀ XÂY DỰNG ỨNG DỤNG
ĐẾM NHỊP THỞ ......................................................................................................52
3.1 Thử nghiệm .....................................................................................................52
3.1.1 Độ đo đánh giá .........................................................................................52
3.1.2 Bộ dữ liệu thử nghiệm..............................................................................55
3.1.3 Kết quả thực nghiệm ................................................................................56
3.2 Đánh giá ..........................................................................................................57
3.3 Xây dựng ứng dụng đếm nhịp thở ..................................................................58
3.3.1 Mô hình triển khai hệ thống .....................................................................58
3.3.2 Xây dựng ứng dụng đếm nhịp thở ...........................................................59
KẾT LUẬN ...............................................................................................................63
TÀI LIỆU THAM KHẢO .........................................................................................65
PHỤ LỤC ..................................................................................................................68
iii
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
Từ viết tắt
Tiế ng Viêṭ
Tiế ng Anh
1
DL
Học sâu
Deep Learning
2
ML
Học máy
Machine Learning
3
AI
Trí tuệ nhân tạo
Artificial Intelligence
4
TH1
Trường hợp 1
5
TH2
Trường hợp 2
6
TH3
Trường hợp 3
7
TH4
Trường hợp 4
8
(+)
Nhãn dữ liệu là nhịp thở
9
(-)
Nhãn dữ liệu không là nhịp thở
STT
iv
DANH MỤC BẢNG BIỂU
Bảng 1-1: Một mẫu dữ liệu PFT và ý nghĩa các đại lượng [6] ...................................6
Bảng 1-2: Nhịp thở qua từng giai đoạn giấc ngủ [19] ..............................................19
Bảng 1-3: Nhiệt độ cơ thể qua từng giai đoạn giấc ngủ [20] ....................................19
Bảng 2-1: So sánh kết quả thử nghiệm lấy mẫu dữ liệu âm thanh ...........................38
Bảng 2-2: Thông số kỹ thuật bộ micro không dây FM XXD-18 ..............................39
Bảng 2-3: Các phương trình xử lý nhiễu của bộ lọc Kalman ...................................42
Bảng 2-4: Thời gian tạo model phụ thuộc vào độ dài lấy mẫu dữ liệu .....................45
Bảng 3-1: Ma trận nhầm lẫn trong phân loại lớp đối tượng .....................................52
Bảng 3-2: Kết quả thử nghiệm ..................................................................................56
Bảng 3-3: Cấu hình phần cứng sử dụng trong thực nghiệm .....................................60
Bảng 3-4: Yêu cầu phần mềm cài đặt để chạy ứng dụng ..........................................60
Bảng 3-5: Kết quả thử nghiệm ứng dụng đếm nhịp thở..........................................604
v
DANH MỤC HÌNH VẼ, SƠ ĐỒ
Hình 1-1: Một đoạn dữ liệu thở chứa một nhịp hít vào và một nhịp thở ra ................7
Hình 1-2: Một đoạn dữ liệu thở liên tục......................................................................8
Hình 1-3: Quá trình training (trên - dưới) và quá trình phân loại (trái - phải) ..........11
Hình 1-4: Trích chọn window dữ liệu từ file [8] ......................................................13
Hình 1-5: Sơ đồ hệ thống phân loại giai đoạn giấc ngủ ............................................20
Hình 2-1: Mối quan hệ giữa trí tuệ nhân tạo, học máy và học sâu ...........................23
Hình 2-2: Điểm khác biệt giữa học máy và học sâu .................................................25
Hình 2-3: Lịch sử Deep Learning .............................................................................26
Hình 2-4: LeNet-5 cho bài toán nhận diện chữ số viết tay .......................................28
Hình 2-5: Một đoạn của mạng nơ-ron hồi quy .........................................................32
Hình 2-6: Chuỗi mạng nơ-ron hồi quy ......................................................................32
Hình 2-7: Một chuỗi mạng LSTM với mỗi module bao gồm 4 tầng tương tác ........33
Hình 2-8: Sơ đồ hệ thống nhận dạng nhịp thở ..........................................................36
Hình 2-9: Bộ micro không dây FM XXD-18 ............................................................39
Hình 2-10: Mô hình hoạt động chung của một bộ lọc ..............................................41
Hình 2-11: Áp dụng bộ lọc Kalman ..........................................................................43
Hình 2-12: Giao diện làm việc của phần mềm xử lý âm thanh Audacity 2.1.0 ........44
Hình 2-13: Cấu trúc bộ thư viện Keras .....................................................................47
Hình 2-14: Hai thành phần chính tham gia xây dựng Model....................................48
Hình 3-1: Độ đo AUC ...............................................................................................54
vi
Hình 3-2: Chỉ số Precision, Recall, F-measure qua các bộ dữ liệu thử nghiệm .......57
Hình 3-3: Mô hình triển khai hệ thống .....................................................................58
Hình 3-4: Chương trình đếm nhịp thở theo thời gian thực .......................................61
Hình 3-5: Raspberry Pi 3...........................................................................................64
1
MỞ ĐẦU
Phát hiện nhịp thở và phân tích dữ liệu nhịp thở là một trong những ứng dụng
quan trọng trong lĩnh vực y tế. Việc phát hiện ra các bất thường trong nhịp thở, rất
có thể là khởi đầu cho việc ngăn chặn một hệ quả xấu liên quan đến hô hấp. Đã có
rất nhiều phương pháp cũng như công nghệ được phát triển nhằm mục đích phát
hiện, theo dõi nhịp thở. Luận văn này tập trung chính vào việc theo dõi nhịp thở.
Luận văn đề xuất một phương pháp đơn giản, kết nối một micro không dây với một
máy tính. Thu lại âm thanh hơi thở và phân tích dữ liệu hơi thở thu được. Phương
pháp tiếp cận để phát hiện nhịp thở là sử dụng Học sâu. Cuối cùng, luận văn cũng
xin trình bày về việc xây dựng ứng dụng đếm nhịp thở theo thời gian thực dựa trên
Học sâu.
Hành động hít thở là một việc thiết yếu, cơ bản và cũng rất quan trọng với tất
cả động vật sống. “Hơi thở là một hỗ hợp của nitơ, oxi, cacbonic, hơi nước và một
lượng rất nhỏ các chất hữu cơ dễ bay hơi” [1]. Hành động hít thở gồm hai giai đoạn
liên tiếp, hít vào và thở ra và diễn ra liên tục. Số nhịp thở trên một phút được ghi nhận
tùy thuộc vào trạng thái hành động của người đó. Ví dụ như nhịp thở khi đi bộ, khi
chạy, khi làm việc nặng hay khi đang ngủ và khi nghỉ ngơi. Nhịp thở sẽ chậm hơn
khi nghỉ ngơi hoặc khi đang ngủ [2]. Hít thở cũng đóng vai trò như một yếu tố quan
trọng, được dùng như một thước đo để đánh giá trong lĩnh vực y tế [3].
Việc theo dõi nhịp thở về cơ bản là việc thu thập dữ liệu bằng các thiết bị khác
nhau và sử dụng dữ liệu từ các thiết bị này cho việc phân tích dữ liệu. Đã có rất nhiều
kỹ thuật đã được sử dụng để theo dõi nhịp thở. Dựa trên yếu tố thiết bị được sử dụng
có tiếp xúc với người cần theo dõi nhịp thở hay không, có thể chia phương pháp thành
tiếp xúc và không tiếp xúc [2], cũng có thể một phương pháp sử dụng nhiều thiết bị
và kết hợp cả hai phương pháp trên. Phương pháp tiếp xúc sử dụng các loại cảm biến
nhiệt điện, cảm biến hô hấp và cảm biến âm thanh. Ưu điểm lớn nhất của phương
pháp này là độ chính xác của dữ liệu nhận được trong quá trình thu thập. Nhưng
phương pháp tiếp cận này tỏ ra không phù hợp khi áp dụng cho các ứng dụng di động
2
hoặc tạo ra sự không thoải mái cho người đang được theo dõi nhịp thở khi phải đeo
nó. Ngược lại phương pháp không tiếp xúc lại dựa vào các lại camera, radar hoặc
“doppler modalities”. Nhược điểm lớn nhất của việc sử dụng các thiết bị này là giá
thiết bị cao, việc thu thập và phân tích dữ liệu lớn cũng là một thác thức [2].
Đã có nhiều nghiên cứu theo dõi nhịp thở dựa trên các loại cảm biến và dựa
trên học máy đem lại những kết quả khả quan. Dữ liệu được thu thập có thể là dữ liệu
âm thanh thu qua micro gắn với máy tính. Cảm biến gắn trên lồng ngực ghi nhận
chuyển động khi hô hấp của đối tượng theo dõi. Cảm biến nhiệt thu thập dữ liệu hơi
thở dựa trên nguyên tắc nhiệt độ hơi thở lúc hít vào sẽ thấp hơn so với nhiệt độ hơi
thở khi thở ra [4]. Các phương pháp sử dụng cảm biến nói chung là cho kết quả tốt
với một chi phí thấp đầu tư cho mua thiết bị. Kết hợp với các thuật toán học máy trên
dữ liệu thu thập được cũng đem lại kết quả ấn tượng. Trong những năm gần đây, sự
xuất hiện của các phương pháp Học sâu, dần thay đổi phương pháp phân tích dữ liệu
bởi độ chính xác mà chúng mang lại. Theo đó, việc thu thập dữ liệu dựa trên cảm
biến âm thanh, sau đó dựa trên phương pháp học sâu để phân tích dữ liệu thu được là
một hướng nghiên cứu mới cho việc theo dõi nhịp thở, hứa hẹn đem lại kết quả tốt.
Trên đây, luận văn đã điểm qua tầm quan trọng của bài toán theo dõi nhịp thở,
đồng thời là ý nghĩa khoa học và thực tiễn vấn đề. Nhận thức được điều này, luận văn
đã chọn đề tài là: “Theo dõi nhịp thở bằng phương pháp Học sâu”.
Bố cục luận văn bao gồm phần mở đầu, phần kết luận và các chương nội dung
được tổ chức như sau:
-
Chương 1: Tổng quan. Nội dung chính của chương này là trình bày bài
toán theo dõi nhịp thở, vì sao lại cần phải theo dõi nhịp thở, một số khái
niệm cơ bản, trình bày ngắn gọn một số nghiên cứu liên quan và cuối cùng
là mô tả ngắn phương pháp và đóng góp của luận văn.
-
Chương 2: Kỹ thuật Học sâu cho bài toán theo dõi nhịp thở. Chương này
trình bày nội dung chính của luận văn, phương pháp nghiên cứu, cách thức
đã được tiến hành để theo dõi nhịp thở; hệ thống thử nghiệm đếm nhịp thở.
3
-
Chương 3: Thực nghiệm, đánh giá kết quả và xây dựng ứng dụng đếm
nhịp thở. Nội dung chương 3 trình bày phương pháp tiến hành thực nghiệm
và đánh giá, xây dựng ứng dụng theo dõi nhịp thở, kết luận và hướng phát
triển của đề tài.
4
Chương 1. TỔNG QUAN
Trong chương này, luận văn sẽ giới thiệu một cách tổng quan về bài toán theo
dõi nhịp thở (đếm số nhịp thở), tại sao lại cần theo dõi nhịp thở, các vấn đề gặp phải
khi theo dõi nhịp thở, mục tiêu đề tài, kỹ thuật sử dụng giải quyết bài toán theo dõi
nhịp thở. Một số công trình nghiên cứu liên quan cũng sẽ được đề cập đến trong
chương này.
1.1 Đặt vấn đề
Trong nhiều năm qua, việc sử dụng học máy vào các lĩnh vực khai thác dữ liệu
số đã trở nên rất quen thuộc. Việc ứng dụng học máy vào các lĩnh vực đời sống đem
lại những kết quả to lớn trong nghiên cứu khoa học. Lĩnh vực y tế cũng được hưởng
lợi rất nhiều từ sự phát triển của học máy. Nhưng so với các lĩnh vực khác việc nghiên
cứu trên dữ liệu y tế và áp dụng học máy vào đó vẫn còn khá mới mẻ.
Một phương pháp mới mẻ hơn là Học sâu cho thấy rất nhiều tín hiệu khả quan
trong nghiên cứu xử lý dữ liệu lớn. Vì vậy việc áp dụng Học sâu vào nghiên cứu dữ
liệu y tế là một xu hướng mới cần được quan tâm.
Tại sao lại phải theo dõi nhịp thở? Bởi lẽ, hoạt động hít thở là hoạt động cơ
bản của mọi cá nhân. Hành động hít thở đối với hô hấp và theo dõi hô hấp là khâu
theo dõi đầu tiên và có vai trò quan trọng. Đối với các bệnh nhân có tiền sử về các
bệnh hô hấp, việc phát hiện sớm các bất thường về hô hấp có thể đưa ra các phán
đoán sớm để phân loại bệnh, phán đoán sớm tình trạng bệnh hoặc để cung cấp thông
tin phục vụ cho các công việc y tế khác.
Các khó khăn gặp phải khi theo dõi nhịp thở. Có nhiều phương pháp tiếp cận
để thu thập được thông tin và phân tích nhịp thở. Nhưng tựu chung là vấn đề xử lý
dữ liệu lớn trong thời gian liên tục. Điều này dẫn đến khó khăn trong việc nâng cao
tính chính xác. Một khó khăn khác đến từ các thiết bị giúp theo dõi nhịp thở, đôi khi
có giá thành quá cao, đôi khi lại không thực sự tiện lợi khi gắn vào đối tượng cần
5
được theo dõi. Như vậy, vấn đề cần phải giải quyết là tìm ra một phương pháp có độ
chính xác cao với chi phí ở mức cho phép.
Mục tiêu của đề tài, phương pháp được sử dụng và đóng góp của đề tài.
Mục tiêu chính của luận văn là tìm hiểu về phương pháp Học sâu và thử nghiệm
phương pháp này trong việc xây dựng một ứng dụng đếm nhịp thở. Trong khuôn khổ
nội dung, luận văn sẽ trình bày về một số phương pháp áp dụng học máy trên dữ liệu
y tế, dữ liệu nhịp thở, các khó khăn hạn chế của các phương pháp này. Trình bày
nhiều hơn về một phương pháp mới có tên là Học sâu (deep learning) trong khai thác
thông tin dữ liệu. Mà cụ thể là kỹ thuật LSTM (long short time memory). Luận văn
sử dụng dữ liệu nhịp thở thu thập được từ micro âm thanh. Sau đó sử dụng phương
pháp LSTM để nhận dạng ra âm thanh nhịp thở. Cuối cùng là xây dựng một ứng dụng
để đếm nhịp thở của một đối tượng được gắn micro âm thanh.
1.2 Tổng quan vấn đề theo dõi sức khỏe bằng nhịp thở
1.2.1 Tổng quan
Hầu hết các ứng dụng y tế được sử dụng trong các doanh nghiệp, tổ chức, bệnh
viện, cá nhân và cộng đồng nói chung tạo ra một lượng dữ liệu cực lớn. Các dữ liệu
này có thể là có cấu trúc và phi cấu trúc, bao gồm cả dữ liệu âm thanh, hình ảnh và
dữ liệu văn bản. Hầu hết các dữ liệu này đã được số hóa và lưu trữ, theo ước tính
trong những năm tiếp theo có thể lên tới hàng trăm zetabytes. Các dữ liệu bệnh nhân
được thu thập có thể giúp các bác sỹ đưa ra quyết định tốt hơn và nhanh hơn dựa trên
các dự đoán và khuyến nghị được cung cấp bởi các thuật toán học máy. Các dữ liệu
liên quan đến các bệnh hô hấp và các thuật toán học học cho các bệnh hô hấp cũng
được đặc biệt quan tâm trong suốt một thời gian dài. Để chuẩn đoán được các nguyên
nhân dựa trên các triệu chứng của các bệnh hô hấp, phương pháp kiểm tra Pulmonary
Function Tests (PFTs) đã được áp dụng. Các tổ chức American Thoracic Society
(ATS), National Asthma Education and Prevention Program và Global Initiative for
Chronic, Obstructive Lung Disease (GOLD) khuyến nghị sử dụng PFT [5].
6
Bảng 1-1: Một mẫu dữ liệu PFT và ý nghĩa các đại lượng [6]
Đại lượng
FVC (L)
3.84
FEV1 (L)
2.3
FEV1/FVC
0.60
PEF (L/s)
0.98
DLCO
(mL/mmHg/min)
Ý nghĩa
Giá trị
8.9
Thể tích không khí thở ra từ thời điểm
hít vào sâu nhất và thở ra sâu nhất
Thể tích không khí trong giây đầu tiên
của FVC
Tỉ lệ giữa FEV1 và FVC
Tốc độ dòng không khí lớn nhất thu
được trong khi đo FVC
Khả năng khuếch tán oxy vào máu của
phổi
TLC (L)
5.21
Tổng dung tích của phổi
VA (mL)
4.46
Dung tích của phế nang
DLCO/VA
1.99
Tỉ lệ DLCO trên từng phế nang
Với rất nhiều dữ liệu PFT của các bệnh nhân có sẵn, áp dụng các thuật toán
học máy không chỉ giúp bác sỹ phân loại chính xác bệnh nhân mà còn cung cấp các
dự đoán về tình trạng sức khỏe của bệnh nhân. Kỹ thuật học máy được sử dụng phổ
biến trong phân tích dữ liệu bệnh hô hấp là kỹ thuật học máy có giám sát: thuật toán
Naïve Bayes, Support Vector Machine, Decision Tree, K Nearest Neighbors… Độ
chính xác trên các dữ liệu PFT cũng rất cao, trung bình lên đến xấp xỉ 90% đối với
ba phương pháp Naïve Bayes, Support Vector Machine, Decision Tree [7].
Âm thanh thở (Breath Sound) chứa các chỉ số quan trọng về sức khỏe và bệnh
hô hấp, việc phân tích phát hiện âm thanh thở trở thành một chủ đề quan trọng trong
chuẩn đoán và đánh giá các khả năng điều trị [7]. Dữ liệu trích rút ra từ âm thanh nhịp
thở có dạng chuỗi dữ liệu, có tính liên tục và yêu cầu để phân tích nó cần phải nhanh.
7
Một điểm quan trọng đối với các mô hình học máy thông thường là việc phải trích
xuất ra các đặc trưng của các mẫu dữ liệu. Điều này đối với từng bộ dữ liệu cụ thể sẽ
là khó khăn và mang tính chất cảm nhận cá nhân của người xử lý dữ liệu. Việc áp
dụng các mô hình học sâu mang lại một lợi thế lớn là việc không cần quan tâm đến
trích xuất ra đặc trưng, mô hình học sâu sẽ tự động điều chỉnh cho phù hợp và xuất
ra đặc trưng phù hợp cho quá trình nhận dạng. Một ưu thế nữa của mô hình học sâu
là vấn đề phụ thuộc xa. Các mẫu dữ liệu thu thập được có tính liên quan đối với các
đoạn dữ liệu nằm phía trước chúng. Các mô hình học máy thông thường rất khó để
liên kết các thông tin của chuỗi dữ liệu nằm ở phía trước, trong khi việc đưa ra quyết
định phân loại nhãn đối với dữ liệu chuỗi lại phụ thuộc rất lớn vào vấn đề này.
1.2.2 Bài toán theo dõi nhịp thở dựa vào dữ liệu âm thanh
Bài toán 1: Cho trước một tập dữ liệu là các file âm thanh được thu từ micro
âm thanh. Các file này ngắn và chứa nội dung bên trong có thể là một đoạn âm thanh
nhịp thở hoặc là một đoạn âm thanh không phải nhịp thở. Nhiệm vụ của việc giải bài
toán này là gán nhãn cho các file đó, nhằm phân biệt trong file có những đoạn
(segments) nào là chứa âm thanh nhịp thở và và đoạn nào là không chứa âm thanh
nhịp thở. Thông thường, người ta có thể cắt từng đoạn rồi lưu ra mỗi đoạn là một file.
Từ đó việc gán nhãn nhịp thở sử dụng các file dữ liệu này.
Hình 1-1: Một đoạn dữ liệu thở chứa một nhịp hít vào và một nhịp thở ra
Bài toán 2: Dữ liệu nhịp thở lúc này không phải là các file đơn thuần nữa mà
là một luồng dữ liệu liên tục. Nhiệm vụ đặt ra là đếm trong khoảng thời gian nhất
định có bao nhiêu nhịp thở.
8
Hình 1-2: Một đoạn dữ liệu thở liên tục
Bài toán 3: Vẫn là luồng dữ liệu nhịp thở liên tục. Nhiệm vụ lúc này là thu
thập nhiều hơn các thông tin về nhịp thở. Có thể bao gồm: tần suất thở trên một phút,
các bất thường về nhịp thở (nhịp thở có gấp, có đều đặn…) để đưa ra các phán đoán
sâu hơn về tình trạng bệnh lý của người được theo dõi.
Có thể thấy được rằng bài toán số 1 là bài toán cơ sở. Từ việc phân loại nhãn
của các tệp nhỏ, giúp xây dựng được một mô hình nhận dạng và từ đó sử dụng mô
hình này cho việc xác định nhãn của một frame dữ liệu (quá trình này cũng bao gồm
công việc phải đi tìm điểm bất thường trong luồng dữ liệu để xác định đâu là điểm
bắt đầu cho frame dữ liệu cần xác định nhãn). Đặc biệt ở trong bài toán số 3, số lượng
các nhãn sẽ lớn hơn trong bài toán số 2 (vốn chỉ bao gồm hai loại nhãn đúng hoặc
sai).
Trong khuôn khổ nội dung của luận văn, sẽ trình bày phương pháp tiếp cận và
giải quyết bài toán số 1 và bài toán số 2. Bài toán số 3 có thể sẽ được tìm hiểu và trình
bày trong các nghiên cứu dẫn xuất sau này.
Bài toán số 1 được coi là loại bài toán loại bài toán phân loại, bài toán số 2 là
loại bài toán đếm (dựa trên cơ sở phân loại và đếm số nhịp thở), bài toán số 3 là loại
bài toán phân tích.
Trong quá trình giải quyết bài toán số 2, luận văn sẽ tiến hành giải quyết bài
toán số 1, trên cơ sở bài toán số 1 cùng với việc phát hiện bất thường trong quá trình
thu thập âm thanh, để xác định điểm đầu tiên của nhịp thở (phát hiện bất thường để
cắt frame dữ liệu chính xác) để xây dựng nên ứng dụng đếm nhịp thở theo thời gian
thực.
9
Như vậy có hai bài toán nhỏ mà luận văn tập trung giải quyết gồm:
-
Bài toán Phân loại dữ liệu nhịp thở
-
Bài toán xác định điểm bất thường trong luồng dữ liệu nhịp thở liên tục, để
cắt frame chính xác chứa nhịp thở.
1.3 Một số nghiên cứu liên quan
Lĩnh vực nghiên cứu, áp dụng học máy vào xử lý dữ liệu y tế rất được quan
tâm. Trong những năm gần đây, đã có rất nhiều các nghiên cứu liên quan đến hô hấp
và theo dõi nhịp thở. Phương pháp áp dụng để giải quyết vấn đề cũng rất đa dạng.
Luận văn xin được trình bày hai nghiên cứu có liên quan nhiều đến phương pháp tiếp
cận mà luận văn sắp trình bày ở chương nội dung số hai.
1.3.1 Phát hiện âm thanh hô hấp dựa trên trích chọn đặc trưng
a. Tổng quan
Nghiên cứu của nhóm tác giả Morten Grønnesby, Juan Carlos Aviles Solis,
Einar Holsbø, Hasse Melbye, Lars Ailo Bongo với tên đề tài “Feature Extraction for
Machine Learning Based Crackle Detection in Lung Sounds from a Health Survey”
[8].
Ống nghe là một công cụ chuẩn đoán hết sức phổ biến và được sử dụng rộng
rãi ở mọi nơi trên thế giới. Nhân viên y tế trong quá trình chăm sóc sức khỏe cho
bệnh nhân thường sử dụng nó để nghe những âm thanh bất thường trong phổi để có
thể chuẩn đoán tình trạng sức khỏe và bệnh lý của bệnh nhân. Mặc dù chuẩn đoán
bệnh thông qua nghe âm thanh phổi đã là một kỹ thuật rất cũ nhưng những tiến bộ
gần đây trong các lĩnh vực phần cứng và phần mềm cũng như phân tích âm thanh đã
mở ra một hướng phát triển mới cho việc phân tích âm thanh phổi, cung cấp các khả
năng cho phép khai phá dữ liệu từ âm thanh phổi. Điều này được phản ánh bởi nhiều
giải pháp thương mại cho phép ghi âm và nghe lại âm thanh phổi từ ống nghe, chẳng
hạn giải pháp Bluetooth cho điện thoại thông minh từ thiết bị Eko
10
() và ống nghe di động MIT [9]. Tuy nhiên các giải pháp này
không có phương pháp tự động để phát hiện âm thanh bất thường trong âm thanh
phổi, mà được kì vọng là có thể dễ dàng tích hợp với các thiết bị thông minh và điện
thoại.
Crackle là những âm thanh ngắn, những tiếng nổ nhỏ (hay những bất thường
trong âm thanh của phổi), sự xuất hiện của các âm thanh bất thường này có liên quan
đến các bệnh lý về phổi và tim như bệnh tắc nghẽn phổi mãn tính (COPD), viêm phổi,
suy tim và bệnh bụi phổi. Trong những căn bệnh này, việc xuất hiện của các crackle
giúp chuẩn đoán bệnh sớm hơn [10] [11]. Những bệnh này đại diện cho một vấn đề
sức khỏe của cộng đồng, năm 2012 có đến hơn 3 triệu người chết do COPD, chiếm
6% tổng số người chết trong năm đó [12]. Do vậy nếu có thể chuẩn đoán sớm và
chính xác các bất thường trong âm thanh hô hấp sẽ dễ hơn hơn cho việc điều trị sớm
và khả quan hơn trong việc bảo vệ sức khỏe của người bệnh.
Phát hiện ra crackle trong âm thanh phổi là một thách thức lớn bởi hai nguyên
nhân chính. Đầu tiên, tín hiệu âm thanh crackle rất ngắn chỉ chừng 5-40ms. Thứ hai
là âm thanh này rất dễ bị nhầm lẫn bởi các âm thanh giống với nó chẳng hạn như
tiếng ống nghe chạm vào quần áo hay tóc. Tuy nhiên phương pháp mà nhóm tác giả
đề cập đến trong bài báo hứa hẹn tính khả thi cho việc phát hiện ra các bất thường
trong âm thanh hô hấp.
Nhóm tác giả đã đề xuất phương pháp tiếp cận dựa trên học máy để phát hiện
các dấu hiệu bất thường trong âm thanh phổi ghi lại bằng ống nghe trong một cuộc
khảo sát sức khỏe trên diện rộng. Phương pháp này được đào tạo và đánh giá bằng
các tệp mà đã được phân loại và đánh giá bởi các chuyên gia hô hấp. Các tệp âm
thanh được xử lý bằng cách trích xuất các cửa sổ âm thanh (frame). Nhóm tác giải
thực hiện đánh giá thông qua một số phương pháp trích xuất đặc trưng và một số thuật
toán học máy.
11
b. Phương pháp
Phương pháp tiếp cận của nhóm tác giả được mô tả như sau: Chương trình sẽ
cung cấp một công cụ phát hiện tự động và tự động chú thích dễ dàng sử dụng đối
với nhân viên y tế và các người dùng khác. Người dùng sẽ ghi âm lại âm thanh bằng
cách sử dụng ống nghe có micro và sau đó tải lên máy chủ thông qua một giao diện
web. Các kết quả sau đó cũng sẽ được trình bày ngay trong ứng dụng web đó. Ngoài
ra kết quả cũng có thể trích xuất dưới dạng excel. Sơ đồ mô tả quá trình nhận dạng
như sau:
Hình 1-3: Quá trình training (trên - dưới) và quá trình phân loại (trái - phải)
Nhóm tác giả sử dụng phương pháp học máy có giám sát để phân loại âm thanh
thành hai nhãn: nhãn âm thanh hô hấp bất thường (crackle) và nhãn âm thanh bình
thường (non-crackle). Phương pháp học máy này có ưu điểm có thể xử lý dữ liệu lớn
mà không cần đến sự can thiệp của một chuyên gia về bệnh hô hấp nào. Để có thể
đưa bộ phân loại đi vào hoạt động thì trước đó một quá trình đào tạo cho bộ phân loại
đã được tiến hành. Đầu vào của bộ đào tạo này là nhóm các tệp tin đã được đánh dấu
nhãn phân loại crackle và non-crackle. Một số khó khăn trong việc xây dựng nên hệ
thống này có thể kể đến như: việc trích chọn ra đặc trưng từ các mẫu âm thanh đã
được cắt (frame), chọn số lượng đặc trưng như nào cho phù hợp; chọn phương pháp
12
học máy nào để tối ưu được kết quả phân loại nhãn, phù hợp với bộ dữ liệu thử
nghiệm…
c. Thu thập dữ liệu
Nhóm tác giả đã sử dụng các mẫu tệp âm thanh từ những người trưởng thành
tham gia thử nghiệm của nghiên cứu Tromsø 7. Tromsø 7 là một nghiên cứu tương
lai về dịch tễ học, nội dung chủ yếu liên quan đến tình trạng sức khỏe và các bệnh
mãn tính. Để tiến hành thu thập dữ liệu, nhóm tác giải sử dụng một micro electret
(MKE 2-eW Gold) được bố trí lắp vào phần ống của tai nghe, cách ngực khoảng
10cm. Micro này cũng được điều chỉnh độ nhạy là 12dB để giảm thiểu các tác động
đến từ các tiếng ồn, các âm thanh giống với crackle. Đối với 300 người đầu tiên,
nhóm tác giả sử dụng ống nghe tim mạch (Littman Cardiology II, 3M corporation)
và phần còn lại của các ứng viên tham gia, nhóm tác giả sử dụng một thiết bị khác
(Littman Classic II SE, 3M corporation). Nguyên nhân của sự thay đổi này là thiết bị
sau đem lại một hiệu suất tốt hơn về việc giảm tiếng ồn. Các tệp âm thanh được ghi
ở định dạng file *.wav và được lấy mẫu ở tốc độ 44100 Hz. Các bệnh nhân được yêu
cầu hít vào bằng miệng và thở ra sâu hơn bình thường. Có 6 điểm đặt ống nghe trên
ngực của bệnh nhân, mỗi điểm đặt ống nghe sẽ được ghi nhận âm thanh trong khoảng
thời gian 15 giây. Tổng cộng đã có 36210 tệp âm thanh thu được từ 6035 bệnh nhân.
Trong đó có 45.2% là nam giới.
d. Chuyên gia tham gia phân loại nhãn dữ liệu
Khi bắt đầu tạo cơ sở dữ liệu chứa âm thanh phổi. Các bản ghi âm được phân
loại theo hai cấp độ. Đầu tiên, hai chuyên gia tham gia phân loại sẽ quan sát độc lập
từng bản ghi bằng phần mềm Adobe Audition 5.0 để nghe âm thanh phổi và kiểm tra
trực quan bằng đồ thị. Các bản ghi âm sẽ được phân loại theo các tiêu chí sau đây:
-
Âm thanh thở bình thường
-
Hít vào khò khè
-
Thở ra khò khè
13
-
Rối loạn hô hấp
-
Âm thanh thở chứa crackle
-
Âm thanh bất thường khác
-
Không thể phân loại
Nếu có bất kỳ sự tương đồng nào ở bước đầu tiên giữa hai chuyên gia phân
tích độc lập thì các bản ghi âm sẽ được đưa vào thảo luận trong một cuộc họp giữa
hai chuyên gia nói trên cùng một chuyên gia thứ ba về âm thanh hô hấp. Sau khi thảo
luận, quyết định cuối cùng được đưa ra nếu đạt được sự thống nhất của cả ba người.
Tập dữ liệu này chứa nhiều nhãn, nhóm tác gia thủ được 8784 tệp, trong đó chỉ có
333 tệp chứa crackle (chiếm 3.8%).
e. Cắt file chứa crackle trong file dữ liệu
Đầu tiên nhóm tác giả chia các tập tin thành các window với độ dài 92ms.
Mỗi của sổ 92ms này chứa 4096 mẫu dữ liệu.
Hình 1-4: Trích chọn window dữ liệu từ file [8]
Việc chọn lựa các window này phải đảm bảo sao cho các crackle không được
nằm ở hai cửa sổ. Kích thước cửa sổ cho phép truy tìm âm thanh bất thường dễ dàng
14
và ở độ chính xác đủ chấp nhận được. Chia dữ liệu thành các cửa sổ cũng cho phép
giảm thiểu số lượng dữ liệu phải phân tích trong một khoảng thời gian, giúp thuật
toán tìm kiếm học máy dễ dàng hơn. Cuối cùng, sử dụng window đảm bảo dữ liệu
không bị phân loại sai do thiếu chiều dài và hình dạng dữ liệu được chuẩn hóa (chuyên
gia hô hấp tham gia vào quá trình phân loại dữ liệu).
Kết quả của quá trình này thu được là 175 window chứa crackle và 208
window bình thường, được lưu trữ trong một mảng dữ liệu một chiều gồm 4096 phần
tử dưới dạng số thập phân 32bit. Để tránh ảnh hưởng của nhiễu tín hiệu, các tác giả
đã sử dụng bộ lọc Butterworth [13] để loại bỏ nhiễu dải trên 2400Hz và 50Hz dải
dưới vì những âm thanh ở ngoài khoảng này không thể chứa crackle. Nghiên cứu này
cũng chi thấy việc sử dụng bộ lọc Butterworth thực tế không cải thiện kết quả một
cách đáng kể. Do đó nhằm đảm bảo thời gian cho việc xử lý tín hiệu, các bộ lọc được
bỏ qua không sử dụng đến trong việc chuyển đổi âm thanh trong các window dữ liệu.
f. Trích trọn đặc trưng
Để trích chọn được các đặc trưng liên quan nhằm xây dựng một mô hình phát
hiện crackle, nhóm tác giả đánh giá lại một số phương pháp tiếp cận. Mục tiêu là xây
dựng một bộ phát hiện với các thông số presicion và recall ở mức cao. Sau yêu cầu
bỏ qua tiếng ồn nền và tiếng ồn khác. Cuối cùng một cách tiếp cận với mô tả nhóm
các đặc trưng được xây dựng với một vector đặc trưng có 5 chiều trên miền thời gian
và tần số.
Vector đặc trưng 5 chiều được xây dựng, đã được kiểm nghiệm là cho kết quả
đủ tốt. 5 chiều của vector đặc trưng đó bao gồm 4 chiều dựa trên miền thời gian
{variance, range, coarse, fine} và 1 chiều dựa trên miền tần số {spectrum mean}. Tất
nhiên miền thời gian của vector này đúng bằng độ dài của window dữ liệu được trích
chọn (92ms). Trong đó ý nghĩa của từng đặc trưng như sau:
-
Variance: đây là thước đo trung bình độ lệch chuẩn bình phương. Thông
thường các window chứa crackle sẽ có sự biến thiên lớn về độ lệch chuẩn
15
giá trị của tần số. Các tiếng nổ nhỏ tạo ra bởi crackle rất nhạy cảm với sự
thay đổi tần số biên độ.
-
Range: là phạm vi giữa giá trị lớn nhất và giá trị nhỏ nhất trong window
dữ liệu. Thông thường kể từ khi xảy ra crackle sẽ đi kèm một tiếng nổ, và
chắc chắn rằng biên độ của dữ liệu sẽ lớn hơn các window bình thường rất
lớn.
-
Coarse (Sum of simple moving average - SMA): cho biết dấu hiệu của tín
hiệu đang thay đổi như thế nào theo thời gian. Trên một window dữ liệu
thì công thức tính SMA như sau:
𝑙𝑒𝑛(𝑤𝑖𝑛𝑑𝑜𝑤)
𝑆𝑀𝐴 =
∑
|𝑠𝑖𝑔𝑛 − 𝑠𝑖𝑔𝑛−1 |
(1.1)
𝑛=1
-
Fine: chỉ số này nhằm mục đích so sánh các window dữ liệu với nhau.
Công thức như sau:
𝐹𝑖𝑛𝑒 = 𝑀𝑎𝑥(𝑆𝑀𝐴(𝑤𝑖𝑛1 ), 𝑆𝑀𝐴(𝑤𝑖𝑛2 ) … 𝑆𝑀𝐴(𝑤𝑖𝑛𝑛 ))
-
(1.2)
Spectrum mean: cho biết dấu hiệu trọng tâm của miền tần số. Crackle xảy
ra trong hơi thở mang nhiều năng lượng hơn nên sẽ ở miền tần số cao hơn.
Sự tập trung và tính hội tụ của các mẫu dữ liệu sẽ tập trung ở các miền tần
số cao hơn. Mặc dù đây là kết luận rút ra được từ việc quan sát dữ liệu chứ
chưa phải là một quy tắc.
g. Thuật toán phân lớp
Kết quả của quá trình phân lớp phụ thuộc rất nhiều vào phương pháp học máy
được sử dụng. Chính vì vậy, nhóm tác giả đã cố gắng thử nghiệm một số phương
pháp sau đây: SVM, KNN và AdaBoost (Decision Trees) [14] [15] [16]. Đối với tất
cả các phương pháp này đều sử dụng 5 loại đặc trưng trên dữ liệu đầu vào.
Support Vector Machines (SVM) là các bộ phân loại phổ biến và được sử
dụng rộng rãi, hơn thế nữa SVM cũng cho kết quả phân loại với tỉ lệ chính xác cao