BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-----------------------
CAO VĂN THẮNG
ỨNG DỤNG CÁC KỸ THUẬT HỌC MÁY TRONG CHẨN ĐỐN BỆNH
LUẬN VĂN THẠC SĨ KỸ THUẬT
CƠNG NGHỆ THÔNG TIN
Hà Nội – 2018
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-----------------------
CAO VĂN THẮNG
ỨNG DỤNG CÁC KỸ THUẬT HỌC MÁY TRONG CHẨN ĐỐN BỆNH
LUẬN VĂN THẠC SĨ KỸ THUẬT
CƠNG NGHỆ THÔNG TIN
GIÁO VIÊN HƯỚNG DẪN:
PGS.TS. LÊ THANH HƯƠNG
Hà Nội - 2018
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
LỜI CAM ĐOAN
Trước tiên, em xin được chân thành gửi lời cảm ơn sâu sắc tới các thầy cô
giáo trong Viện Công nghệ Thông tin và Truyền thông, Bộ môn Hệ thống thông
tin, Bộ môn Công nghệ phần mềm, Bộ mơn Khoa học máy tính đã tận tình giảng
dạy, truyền đạt cho em những kiến thức và kinh nghiệm quý báu trong suốt hơn
một năm học tại trường Đại học Bách Khoa Hà Nội.
Em xin được gửi lời cảm ơn chân thành đến PGS. TS. Lê Thanh Hương –
giảng viên Bộ mơn Hệ thống thơng tin đã hết lịng giúp đỡ, tạo điều kiện và
hướng dẫn tận tình trong quá trình em làm luận văn cao học.
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè, đồng nghiệp đã
quan tâm, động viên, đóng góp ý kiến và giúp đỡ em trong quá trình học tập,
nghiên cứu và hoàn thành luận văn tốt nghiệp.
Em xin cam đoan luận văn tốt nghiệp với đề tài “ứng dụng các kỹ thuật
học máy trong chẩn đốn bệnh” là cơng trình nghiên cứu của em, không sao
chép của bất cứ ai. Các luận cứ, số liệu trong luận văn có nguồn gốc rõ ràng và
đã được công bố theo đúng quy định.
Các kết quả nghiên cứu trong luận văn do em tự tìm hiểu, phân tích một
cách trung thực, khách quan và phù hợp với thực tiễn của Việt Nam. Các kết quả
này chưa được công bố trong bất kỳ một nghiên cứu nào khác.
Em xin chịu mọi trách nhiệm liên quan đến luận văn tốt nghiệp của mình.
i
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
MỤC LỤC
DANH MỤC CÁC BẢNG ...................................................................................................... 1
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ................................................................................ 2
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT......................................................... 3
PHẦN MỞ ĐẦU ...................................................................................................................... 4
1/ Lý do chọn đề tài ............................................................................................................. 4
2/ Tìm hiểu một số hệ thống ứng dụng học máy trong chẩn đoán bệnh ....................... 6
3/ Mục đích, đối tượng, phạm vi nghiên cứu ................................................................... 7
4/ Phương pháp nghiên cứu ................................................................................................ 8
5/ Bố cục của luận văn ........................................................................................................ 8
CHƯƠNG I: TỔNG QUAN ................................................................................................... 9
1/ Tổng quan về machine learning..................................................................................... 9
1.1/ Định nghĩa ................................................................................................................ 9
1.2/ Các phương pháp học trong machine learning .................................................. 10
1.2.1/ Học có giám sát – Supervised learning....................................................... 10
1.2.2/ Học không giám sát – Unsupervised learning ........................................... 11
1.2.3/ Học bán giám sát – Semi-Supervised learning .......................................... 12
1.2.4/ Học củng cố – Reinforcement learning ...................................................... 13
2/ Ứng dụng machine learning trong lĩnh vực y tế ........................................................ 14
2.1/ Các nghiên cứu liên quan ..................................................................................... 14
ii
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
2.2/ Những thách thức .................................................................................................. 16
CHƯƠNG II: CHẨN ĐOÁN BỆNH DỰA TRÊN HỌC MÁY ...................................... 18
1/ Giới thiệu bài toán ......................................................................................................... 18
2/ Phương pháp học máy áp dụng trong bài toán .......................................................... 20
2.1/ Cây quyết định – Decision tree ............................................................................ 20
2.1.1/ Khái niệm ....................................................................................................... 20
2.1.2/ Xây dựng cây quyết định .............................................................................. 21
2.1.3/ Cách phân chia mẫu ...................................................................................... 22
2.1.4/ Vấn đề quá phù hợp với dữ liệu (overfitting) ............................................ 27
2.1.5/ Ưu điểm của cây quyết định......................................................................... 29
2.2/ Giải thuật rừng ngẫu nhiên ................................................................................... 29
2.2.1/ Lịch sử nghiên cứu ........................................................................................ 29
2.2.2/ Bootstrap và Bagging .................................................................................... 30
2.2.3/ Out of bag ....................................................................................................... 32
2.2.4/ Rừng ngẫu nhiên hoạt động như thế nào? .................................................. 32
2.3/ Phương pháp máy vector hỗ trợ - Support Vector Machine ............................ 35
3/ Một số thông tin về ba loại bệnh được sử dụng trong bài toán ............................... 36
3.1/ Bệnh đái tháo đường ............................................................................................. 36
3.2/ Bệnh tăng huyết áp ................................................................................................ 37
3.3/ Bệnh hen phế quản ................................................................................................ 41
CHƯƠNG III: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ ............................................ 43
iii
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
1/ Cài đặt thử nghiệm ........................................................................................................ 43
1.1/ Tiền xử lý dữ liệu .................................................................................................. 43
1.2/ Trích chọn đặc trưng ............................................................................................. 43
1.3/ Huấn luyện.............................................................................................................. 46
1.3.1/ Phân chia dữ liệu............................................................................................ 46
1.3.2/ Huấn luyện mơ hình ...................................................................................... 47
1.4/ Kiểm thử và kết quả .............................................................................................. 49
1.5/ Kiểm thử với mơ hình phân lớp SVM ................................................................ 55
2/ Nhận xét.......................................................................................................................... 56
CHƯƠNG IV: KẾT LUẬN .................................................................................................. 58
1/ Đánh giá.......................................................................................................................... 58
2/ Hướng phát triển............................................................................................................ 59
TÀI LIỆU THAM KHẢO ..................................................................................................... 60
iv
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
DANH MỤC CÁC BẢNG
Bảng 1: Độ chính xác của thuật toán Boosting trên các tập dữ liệu ................................ 16
Bảng 2: Ví dụ về dữ liệu phân lớp........................................................................................ 24
Bảng 3: Bảng tổng hợp thuộc tính Age ............................................................................... 25
Bảng 4: Ngưỡng chẩn đoán tăng huyết áp .......................................................................... 38
Bảng 5: Phân độ tăng huyết áp ............................................................................................. 38
Bảng 6: Phương pháp điều trị dựa trên nguy cơ phân tầng ............................................... 41
Bảng 7: Kết quả chạy giải thuật phân lớp rừng ngẫu nhiên .............................................. 48
Bảng 8: Kết quả chạy giải thuật phân lớp SVM ................................................................. 56
1
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Hệ hỗ trợ chẩn đốn ................................................................................................... 6
Hình 2: Ví dụ về phân cụm ................................................................................................... 12
Hình 3: Học bán giám sát (Semi - Suppervised learning) ................................................. 13
Hình 4: AlphaGo chiến thắng cờ thủ số 1 thế giới ............................................................. 14
Hình 5: Ví dụ về cây quyết định ........................................................................................... 21
Hình 6: Chia dữ liệu theo thuộc tính Age............................................................................ 26
Hình 7: Cây quyết định theo thuộc tính Age....................................................................... 27
Hình 8: Mơ hình Bagging ...................................................................................................... 31
Hình 9: Bảng dữ liệu ban đầu ............................................................................................... 46
Hình 10: Confusion matrix without normalization ............................................................ 50
Hình 11: Normalized confusion matrix ............................................................................... 50
Hình 12: Mơ hình SVM (tiền xử lý dữ liệu) ....................................................................... 55
2
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Tên tắt
STT
Tên đầy đủ
1
ĐTĐ
Đái tháo đường
2
THA
Tăng huyết áp
3
HPQ
Hen phế quản
4
RF
Random Forest
5
ML
Machine learning
6
OOB
Out of bag
7
AI
Artificial Intelligence
8
SVM
Support Vector Machine
3
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
PHẦN MỞ ĐẦU
1/ Lý do chọn đề tài
- Theo thống kê của Bộ Y tế, nhân lực ngành y tính đến năm 2020 cần
phải bổ sung rất nhiều, cụ thể vùng Đồng bằng Sông Hồng cần bổ sung 12.251
bác sĩ, con số này ở vùng Trung du và Miền núi phía Bắc là 6.575; tỷ lệ bác sĩ
trên 10.000 dân là 7,8 (theo thống kê của Bộ Y tế). Đặc biệt ở vùng núi, vùng sâu
vùng xa, tỷ lệ này cịn thấp hơn nhiều và trình độ chun mơn của bác sĩ cũng
còn nhiều hạn chế.
- Trong những năm gần đây, việc ứng dụng công nghệ thông tin trong hầu
hết các lĩnh vực đều được được quan tâm và đầu tư mang lại hiệu quả rõ rệt, lĩnh
vực y tế nhờ đó cũng có nhiều chuyển biến tích cực trong cơng tác điều hành,
quản lý, chẩn đốn. Nhờ vào ứng dụng cơng nghệ thơng tin mà trình độ chun
mơn của bác sĩ, y tá được nâng cao; các phương tiện chẩn đốn và điều trị được
tự động hóa; cơng tác đào tạo, thực hành y khoa cũng được cải tiến; đặc biệt
cơng tác hành chính, quản lý bệnh viên có những thay đổi tích cực đem lại sự
thoải mái cho bệnh nhân. Đây là những tiền đề để ứng dụng các thành tựu của
công nghệ thông tin mạnh mẽ và hiệu quả hơn nữa.
- Trên thế giới, lĩnh vực y tế đã đạt được những thành tựu đột phá nhờ ứng
dụng công nghệ thông tin, đặc biệt là ứng dụng trí tuệ nhân tạo, học máy trong
chẩn đốn và điều trị. Có thể kể ra một số ví dụ điển hình như: Các nhà khoa
học máy tính tại Stanford đó tạo ra một thuật tốn dựa trên trí thơng minh nhân
tạo để chẩn đoán bệnh ung thư da qua một chiếc máy soi da; Trong một nghiên
4
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
cứu đăng trên tạp chí Scientific Reports, Madabhushi, Asha Singanamalli đã thử
nghiệm thuật toán học máy sử dụng dữ liệu từ 149 bệnh nhân cho phép chẩn
đoán sớm bệnh Alzheimer trước khi các triệu chứng bắt đầu can thiệp vào cuộc
sống hàng ngày của bệnh nhân (theo ); sức mạnh
công nghệ cùng với trí tuệ nhân tạo đã mang lại những bước tiến mới trong chẩn
đoán và điều trị từ xa: Cuối tháng 4-2016, bác sĩ phụ khoa Tây Ban Nha Richard
Farnam, giám đốc Khoa phẫu thuật robot, Trung tâm y tế Las Palmas, Mỹ, tiến
hành ca phẫu thuật từ xa cắt bỏ dạ con. Trong ca phẫu thuật này, bác sĩ Farman
và các cộng sự giới thiệu bàn chuyển động bên trong cho phép cánh tay robot và
bàn phẫu thuật chuyển động đồng thời. Ca mổ được truyền hình trực tiếp cho
hơn 200 bác sĩ của Hội nghị phẫu thuật cắt bỏ dạ con toàn cầu 2016 tổ chức tại
San Diego và 7.000 bác sĩ thuộc Hiệp hội phẫu thuật nội soi phụ khoa Mỹ theo
dõi. (theo internet).
- Mới đây, ngày 23/9/2017, tại Hà Nội, Cục Công nghệ thông tin – Bộ Y
tế đã phối hợp với Tập đoàn IBM, công ty Five9 Việt Nam vừa tổ chức hội thảo
“ứng dụng trí tuệ nhân tạo trong khám, chữa bệnh”. Theo các chuyên gia,
việc phát triển trí tuệ nhân tạo, đặc biệt là trong các ứng dụng của ngành y tế, là
việc khơng thể chần chừ, và đó là xu thế tất yếu của thời đại và nó có thể hỗ trợ
rất nhiều trong cơng tác chẩn đốn điều trị. Bộ Y tế đã báo cáo và Chính phủ đã
chỉ đạo, kể từ ngày 1/1/2018, tất cả các bệnh viện sẽ triển khai bệnh án điện tử,
nhằm đồng bộ hoá nguồn dữ liệu, tạo tiền đề cho các ứng dụng cơng nghệ thơng
tin khác (theo ).
- Trong bối cảnh đó, tác giả quyết định chọn đề tài: “ứng dụng các kỹ
thuật học máy trong chẩn đoán bệnh” với mong muốn hỗ trợ bác sĩ trong việc
5
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
chẩn đoán các bệnh Đái tháo đường, Tăng huyết áp và Hen phế quản dựa trên
tiền sử bệnh và một số xét nghiệm đơn giản, khơng tốn kém.
2/ Tìm hiểu một số hệ thống ứng dụng học máy trong chẩn đốn bệnh
- Đầu tiên phải kể đến máy tính hỗ trợ chẩn đoán. Chẩn đoán là một
nghệ thuật nhằm xác định được một bệnh dựa trên các dấu hiệu và triệu trứng
[16]. Điều đó mang tính chủ quan và phụ thuộc nhiều vào kinh nghiệm của
người quan sát và thời gian nghiên cứu. Nguyên tắc của máy tính hỗ trợ chẩn
đoán là hỗ trợ các chuyên gia y tế, được huấn luyện bằng kinh nghiệm của nhiều
chuyên gia, hệ thống chẩn đoán dựa trên nền tảng học máy cho phép cải thiện
tính khách quan và do đó tăng độ tin cậy của chẩn đốn.
Hình 1: Hệ hỗ trợ chẩn đốn
Hệ thống học bao gồm hai giai đoạn: (1) phát hiện các bất thường sau đó gán
nhãn cho chúng, và (2) phân loại thành lành tính hoặc ác tính. [16]
- Với sự phát triển của khoa học công nghệ, ngày càng có nhiều quốc gia
nghiên cứu và thử nghiệm các hệ thống ứng dụng trí thơng minh nhân tạo trong
chẩn đốn và điều trị bệnh. Mới đây, tại Hội thảo chuyên ngành y tế được tổ
chức tại thành phố Hoàng Dương, Hồ Nam, Trung Quốc, phần mềm trí thơng
6
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
minh nhân tạo (AI) được lập trình để trở thành một bác sĩ đa khoa có khả năng
học hỏi liên tục các kiến thức, kinh nghiệm và quy trình chẩn đốn. Phần mềm
này có cơ sở dữ liệu bao gồm hàng trục triệu bệnh án, trong một đến hai tuần,
phần mềm có khả năng học hỏi kiến thức và kinh nghiệm chẩn đoán của một căn
bệnh mới. Sau khi lắng nghe những triệu chứng của bệnh nhân, phần mềm sẽ gợi
ý các mục xét nghiệm và lời khuyên dựa trên kết quả xét nghiệm, và cuối cùng
bác sĩ sẽ vẫn là người quyết định liệu pháp điều trị. Còn tại Mỹ, phần mềm
Human Dx được phát triển trên nền tảng trí tuệ nhân tạo sử dụng học máy để
phân tích dữ liệu bệnh nhân và đưa ra một danh sách các chẩn đốn. Phần mềm
sẽ giúp các bác sĩ có thể tư vấn từ xa và cùng nhau phối hợp trong chẩn đoán
bệnh, nhiều tổ chức y tế hàng đầu của các quốc gia đã tin tưởng, ủng hộ và sẵn
sàng đưa phần mềm vào thử nghiệm như: Hiệp hội y khoa Hoa Kỳ, Hiệp hội các
trường cao đẳng y tế Hoa Kỳ.
3/ Mục đích, đối tượng, phạm vi nghiên cứu
- Mục đích:
o Nghiên cứu về học máy và việc ứng dụng học máy trong các lĩnh
vực của đời sống, đặc biệt trong lĩnh vực y tế.
o Nghiên cứu các thuật tốn phân lớp và ứng dụng nó nhằm hỗ trợ
bác sĩ trong chẩn đoán một số bệnh.
- Đối tượng nghiên cứu:
o Học máy, các phương pháp học có giám sát
o Kỹ thuật phân lớp
- Phạm vi nghiên cứu:
o Cây quyết định
7
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
o Rừng ngẫu nhiên (Random forest)
o Máy vector hỗ trợ (Support Vector Machine)
o Dữ liệu nghiên cứu: được thu thập tại các bệnh viện và trung tâm
y tế của Tây Bắc bao gồm hơn 700 bệnh án của ba bệnh: bệnh
Đái tháo đường (ĐTĐ), bệnh Tăng huyết áp (THA) và bệnh Hen
phế quản (HPQ).
4/ Phương pháp nghiên cứu
- Nghiên cứu lý thuyết: Nghiên cứu các tài liệu liên quan đến học máy,
học có giám sát, phân lớp dữ liệu, cây quyết định, rừng ngẫu nhiên, máy vector
hỗ trợ; tìm hiểu về ngun nhân, triệu chứng, quy trình chẩn đốn một số bệnh;
nghiên cứu và thiết kế mơ hình phân lớp với Random forest.
- Nghiên cứu thực nghiệm: Thực thi kỹ thuật phân lớp Random forest
(RF) trên dữ liệu bệnh án của ba bệnh trên nhằm chẩn đốn các bệnh đó. Song
song với kỹ thuật phân lớp Random forest, với chính bộ dữ liệu trên, luận văn
còn thử nghiệm kỹ thuật SVM (Support Vector Machine) và so sánh kết quả của
hai kỹ thuật này.
5/ Bố cục của luận văn
Nội dung chính của luận văn được chia thành 4 chương:
- Chương I: Trình bày tổng quan cơ sở lý thuyết về học máy và việc ứng
dụng học máy trong chẩn đoán bệnh
- Chương II: Mơ tả bài tốn và trình bày phương pháp giải quyết bài toán
- Chương III: Cài đặt thử nghiệm và đánh giá
- Chương IV: Kết luận và hướng phát triển
8
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
CHƯƠNG I: TỔNG QUAN
1/ Tổng quan về machine learning
1.1/ Định nghĩa
- Machine learning đã và đang trở thành một xu hướng cơng nghệ trên
tồn thế giới trong vài năm gần đây. Từ các công ty lớn như Google, Facebook,
Microsoft đến các công ty khởi nghiệp đều đầu tư vào machine learning. Hàng
loạt các ứng dụng sử dụng machine learning ra đời trên mọi lĩnh vực của cuộc
sống như Khoa học máy tính, vật lý, hố học, y học... Vậy machine learning là gì
mà lại có sự ảnh hưởng lớn như vậy? Trước tiên, hãy xem mối quan hệ của nó
với Trí tuệ nhân tạo (AI), Big Data và Dự đốn tương lai.
o Trí tuệ nhân tạo (AI) đang khiến cả thế giới phải phát sốt với những
sản phẩm công nghệ được dán nhãn AI, từ những chiếc điện thoại
thông minh đến những chiếc ô tô hay những Robot đều được trang
bị công nghệ AI. AI – theo giới hàn lâm là một ngành khoa học
được sinh ra với mục đích làm cho máy tính có được trí thơng minh,
tư duy và cảm xúc như con người. Rõ ràng AI thể hiện mục tiêu của
con người, machine learning là một công cụ nhằm giúp con người
đạt được mục tiêu đó. Đến đây bạn đã hình dung ra được machine
learning là gì. Tiếp theo, chúng ta hãy xem nó với Big Data [19].
o Big Data là một cụm từ dùng để chỉ thời kỳ bùng nổ dữ liệu hiện
nay, đây là hệ quả tất yếu của mạng internet ngày càng được mở
rộng. Với sự ra đời của các mạng xã hội như Facebook, Instagram,
9
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Twitter, Youtube, nhu cầu chia sẻ thông tin của con người tăng lên
một cách chóng mặt. Big Data chỉ thực sự bắt đầu được quan tâm
khi chúng ta hiểu được giá trị của thơng tin ẩn chứa trong đó và có
đủ tài ngun cũng như cơng nghệ để có thể khai thác chúng trên
quy mơ tồn cầu, và machine learning chính là thành phần mấu chốt
của cơng nghệ đó [19].
o Machine learning có mối quan hệ mật thiết với thống kê, nó sử dụng
các mơ hình thống kê để ghi nhớ lại sự phân bố của dữ liệu, đồng
thời còn phải có khả năng khái qt hố những gì đã nhìn thấy và
đưa ra dự đốn cho những trường hợp chưa được nhìn thấy [19].
- Machine learning là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc
nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ
liệu để giải quyết những vấn đề cụ thể (theo wikipedia).
1.2/ Các phương pháp học trong machine learning
Các thuật toán dựa trên phương pháp học trong machine learning bao
gồm: Học có giám sát (Supervised learning), học không giám sát (Unsupervised
learning), học bán giám sát (Semi-Supervised learning) và học củng cố.
1.2.1/ Học có giám sát – Supervised learning
- Ý tưởng chính của Supervised learning là ghi nhớ và tổng quát hoá
một số quy tắc từ các quan sát được gán nhãn, máy tính có thể tự gán nhãn
cho các quan sát mới. Diễn tả theo tốn học tức là khi chúng ta có một tập
hợp biến đầu vào X = {x1, x2, ..., xN} và một tập hợp nhãn tương ứng Y =
{y1, y2, ... yN}. Các tập dữ liệu này gọi là dữ liệu huấn luyện, từ tập dữ liệu
10
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
huấn luyện này, cần tạo ra một hàm số ánh xạ mỗi phần tử của tập X sang
một phần tử của tập Y tương ứng: yi ~ f(xi), với mọi i = 1, 2, ..., N [20].
- Trong Supervised learning, các quan sát bắt buộc phải được gán
nhãn trước, đây chính là một trong những nhược điểm của phương pháp
này vì khơng phải lúc nào việc gán nhãn cho các quan sát cũng dễ dàng và
chính xác [19].
- Có hai bài tốn chính trong học có giám sát là phân lớp
(Classification) và hồi quy (Regression).
1.2.2/ Học không giám sát – Unsupervised learning
- Thuật tốn này chỉ có dữ liệu đầu vào mà không biết được dữ liệu đầu ra
(hay label), tức là chúng ta chỉ có dữ liệu vào X mà khơng biết label Y tương
ứng.
- Các bài tốn học khơng giám sát bao gồm:
o Clustering - Bài tốn phân nhóm: tồn bộ dữ liệu đầu vào X được
phân thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu
trong mỗi nhóm. Ví dụ: phân nhóm khách hàng dựa trên hành vi
mua hàng; phân nhóm thu nhập dựa trên mức thu nhập của mỗi
người ...
11
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Hình 2: Ví dụ về phân cụm
o Association: là bài tốn khi chúng ta muốn tìm ra một quy luật dựa
trên các dữ liệu đầu vào cho trước (dữ liệu này phải đủ lớn). Ví dụ:
các khách hàng nam mua quần áo thường có xu hướng mua thêm
thắt lưng hoặc ví da, những khán giả đã xem phim Spider Man
thường có xu hướng xem thêm phim Iron Man... chúng ta dựa vào
những quy luật đó để tạo ra một hệ thống gợi ý (Recommendation
System) phục vụ nhu cầu của khách hàng.
1.2.3/ Học bán giám sát – Semi-Supervised learning
- Học bán giám sát tức là khi chúng ta có một lượng lớn dữ liệu nhưng chỉ
một phần trong số đó được gán nhãn (label). Thực tế có rất nhiều bài tốn trong
machine learning sử dụng phương pháp học này vì việc thu thập dữ liệu có gán
nhãn tốn rất nhiều thời gian và chi phí, nhiều loại dữ liệu cần phải có chun gia
mới có thể gán nhãn được (điển hình là các hình ảnh trong y tế).
12
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Hình 3: Học bán giám sát (Semi - Suppervised learning)
1.2.4/ Học củng cố – Reinforcement learning
- Học củng cố là bài toán tự động xác định hành vi dựa trên ngữ cảnh.
Hiện tại, thuật toán này được áp dụng vào lý thuyết trị chơi, một ví dụ điển hình
đó là AlphaGo nổi tiếng với việc chơi cờ vây thắng cả người giỏi nhất (tất nhiên
trong cỗ máy AlphaGo được tích hợp rất nhiều thuật toán học máy khác)
13
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Hình 4: AlphaGo chiến thắng cờ thủ số 1 thế giới
2/ Ứng dụng machine learning trong lĩnh vực y tế
2.1/ Các nghiên cứu liên quan
Amit Kumar Dewangan (2015) đã đề xuất một phương pháp phân lớp
bệnh đái tháo đường sử dụng các kỹ thuật học máy, đó là kết hợp kỹ thuật khai
phá dữ liệu Multi layer Perceptron và kỹ thuật phân lớp Bayesian Net. Bộ dữ
liệu sử dụng là Pima Indian Diabetes Data set có 8 thuộc tính và 768 mẫu thử
nghiệm. Phương pháp này cho kết quả khá tốt với độ chính xác (Accuracy) đạt tỷ
lệ 81,89% [8]
Nguyễn Văn Hoàng và các cộng sự (2015) đã đề xuất phương pháp lấy
mẫu mới nhằm khắc phục nhược điểm của phương pháp RF truyền thống đối với
dữ liệu có số chiều lớn. Phương pháp lấy mẫu này loại bỏ những thuộc tính
khơng liên quan tới bệnh (thuộc tính nhiễu), các thuộc tính cịn lại được tách
thành hai tập (tập thuộc tính ảnh hưởng mạnh và tập thuộc tính ảnh hưởng yếu
14
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
tới thuộc tính phụ thuộc), và cuối cùng các thuộc tính sẽ chọn ngẫu nhiên và độc
lập với nhau để xây dựng cây quyết định. [11]
Kết quả trên bộ dữ liệu thực nghiệm (dữ liệu SNP trên toàn bộ hệ gen) cho
thấy phương pháp này cho độ chính xác vượt trội hơn hẳn so với phương pháp
RF truyền thống với độ chính xác đạt 90,07%.
Kathleen H.Miao và cộng sự (2016) đề xuất một giải thuật học máy quần
thể sử dụng thuật tốn Boosting (cịn gọi là AdaBoost) để chẩn đốn bệnh mạch
vành tim – một căn bệnh là nguyên nhân hàng đầu dẫn đến tử vong của cả nam
và nữ trên tồn cầu. Thuật tốn adaBoost xây dựng các bộ phân lớp yếu và trong
q trình huấn luyện thuật tốn sẽ cập nhật lại trọng số để chuẩn bị cho việc xây
dựng các bộ phân lớp yếu tiếp theo và kết hợp các bộ phân lớp yếu này để tạo ra
một bộ phân lớp mạnh [12].
Nghiên cứu được thực nghiệm trên bốn tập dữ liệu Cleveland Clinic
Foundation (CCF), Hungarian Institute of Cardiology (HIC), Long Beach
Medical Center (LBMC) và University Hospital in Switzerland (SUH) và cho
kết quả dự đoán rất cao trên tập dữ liệu huấn luyện và tập dữ liệu kiểm thử, cụ
thể:
Accuracy
Data set
Training data set
Testing data set
CCF
97.16%
80.14%
HIC
98.63%
89.12%
LBMC
93.15%
77.78%
15
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Accuracy
Data set
SUH
Training data set
Testing data set
100%
96.72%
Bảng 1: Độ chính xác của thuật toán Boosting trên các tập dữ liệu [12]
Đỗ Thanh Nghị và cộng sự (2015) đề xuất giải pháp nâng cao hiệu quả phân lớp
của rừng ngẫu nhiên bằng cách thay thế luật bình chọn số đơng ở nút lá của cây
quyết định bằng luật gán nhãn cục bộ, k láng giềng. Nhóm nghiên cứu thực hiện
thực nghiệm mơ hình trên 10 tập dữ liệu gen với số chiều của mỗi tập dữ liệu là
rất lớn và so sánh với mơ hình rừng ngẫu nhiên truyền thống và mơ hình máy
học vector (Support Vector Machine) [15].
Kết quả của mơ hình mới cho độ chính xác tốt nhất so với hai mơ hình
truyền thống trên cả 10 tập dữ liệu (1: 100%; 2: 100%; 3: 75%; 4: 100%; 5:
100%; 6: 91.67%; 7: 95.24%; 8: 100%; 9: 100%; 10: 100%) [15].
2.2/ Những thách thức
- Học máy (Machine learning) được tìm thấy trong các ứng dụng của nhiều
lĩnh vực khác nhau như: di truyền học, xử lý ngôn ngữ tự nhiên, bộ máy tìm
kiếm, thị giác máy tính, tính tốn tài chính và phân tích thị trường chứng khốn.
Trong lĩnh vực y tế, việc ứng dụng học máy còn khá mới mẻ, tuy nhiên, xu
hướng này ngày càng gia tăng và có nhiều cơng trình nghiên cứu ứng dụng học
máy được cơng bố mỗi năm. Sự chậm trễ này cũng dễ hiểu bởi vì có khá nhiều
thách thức khi ứng dụng học máy để giải quyết các vấn đề trong y tế, có thể thấy:
16
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
o Thứ nhất: tri thức được xây dựng dựa trên kinh nghiệm hoặc rất
nhiều chứng cứ được thu thập của chuyên gia y tế. Con người là một
bộ máy rất phức tạp, bao gồm nhiều thành phần và có thể bị ảnh
hưởng bởi nhiều nhân tố [16]. Do đó, việc mơ hình hố các chức
năng và các rối loại chức năng khác nhau là một nhiệm vụ rất khó
khăn.
o Thứ hai: Đối tượng được quan tâm là bệnh nhân – con người, vậy
nên các rủi ro phải được giảm thiểu ở mức tối đa và các phương pháp
thực sự được chuyển thành các quy trình lâm sàng cần phải được hiểu
rõ và có độ tin cậy cao [16].
o Thứ ba: Dữ liệu được huấn luyện phải đủ lớn để tránh xảy ra tình
trạng Overfitting (tức là quá phù hợp với dữ liệu – khi huấn luyện thì
cho độ chính xác cao nhưng khi chạy thực tế thì ngược lại) và có đủ
khả năng để khái qt hố.
o Thứ tư: Hầu hết các nhiệm vụ trong học máy đều phải được giám sát,
dữ liệu cần được xử lý một cách thủ công (đây là một công việc khá
tẻ nhạt, yêu cầu sự kiên trì và tập trung cao) địi hỏi phải có một đội
ngũ chuyên gia y tế giám sát và mất rất nhiều thời gian.
17
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
CHƯƠNG II: CHẨN ĐOÁN BỆNH DỰA TRÊN HỌC MÁY
1/ Giới thiệu bài tốn
- Trong một chuyến cơng tác cùng đồng nghiệp tại một số bệnh viện và
trạm y tế ở Tây Bắc, tác giả mới thực sự thấy được sự thiếu thốn về đội ngũ y
bác sĩ cũng như trang thiết bị y tế tại đây, có những bệnh nhân đến khám trong
tình trạng bệnh đã nặng và phải được chuyển ngay lên bệnh viện tuyến trên. Có
thể do thói quen sinh hoạt cộng với sự thiếu hiểu biết nên bà con nơi đây thường
mắc phải một số bệnh như: Đái tháo đường, Tăng huyết áp, Hen phế quản và
Lao phổi. Ý tưởng về việc xây dựng một hệ thống chẩn đoán bệnh nhằm hỗ trợ
cho các y bác sĩ và bệnh nhân được hình thành từ đây.
- Trong khn khổ của luận văn, tác giả ứng dụng phương pháp phân lớp
rừng ngẫu nhiên (Random Forest) và máy vector hỗ trợ (Support Vector
Machine) để chẩn đoán ba loại bệnh: Đái tháo đường, Tăng huyết áp và Hen phế
quản dựa vào một số đặc trưng của ba bệnh này. Khi nhập vào các thơng tin của
bệnh nhân, chương trình sẽ thơng báo bệnh nhân bị bệnh gì. Đối với bệnh nhân
được chẩn đốn là Tăng huyết áp, chương trình sẽ phân loại theo cấp độ nặng/
nhẹ (THA độ I, THA độ II, THA độ III) dựa trên hai chỉ số huyết áp tâm thu và
huyết áp tâm trương của người bệnh.
- Tập dữ liệu sử dụng trong bài toán là hơn 700 bản ghi (tương ứng với
hơn 700 bệnh án) của ba loại bệnh được thu thập từ một số bệnh viện của tỉnh
Sơn La: Đái tháo đường (gồm 151 trường thông tin), tăng huyết áp (77 trường
thông tin), và hen phế quản (32 trường thông tin).
18
Ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh
Ứng dụng học máy để giải quyết bài toán trên:
Cho một tập gồm n bệnh án đầu vào (input) kí hiệu: D={d1,d2,...,dn},
trong quá trình học, kỹ thuật phân lớp rừng ngẫu nhiên sẽ phân các bệnh án trên
vào một tập gồm m lớp (cụ thể m = 5), kí hiệu là: C= {c1,c2,...,c m}. Kết thúc quá
trình học sẽ được một mơ hình (model), sử dụng mơ hình này để chẩn đốn cho
những bệnh án (bệnh nhân) mới. Sau đó, dữ liệu được chạy với mơ hình phân
lớp máy vector hỗ trợ nhằm so sánh độ chính xác so với mơ hình phân lớp rừng
ngẫu nhiên.
Quy trình thực hiện
Cũng giống như các bài toán học máy khác, bài toán phân loại bệnh cũng
bao gồm hai bước chính đó là Học (learning) và Dự đoán kết quả (Prediction)
Bước học (learning): sử dụng các kĩ thuật học máy để tìm ra được một mơ hình
(model) hợp lý nhất cho bài tốn, nó bao gồm các bước như sau:
•
Tiền xử lý dữ liệu (Cleaning data): làm sạch dữ liệu trước khi bắt đầu
bất kì xử lý nào trên tập dữ liệu.
•
Trích chọn đặc trưng (Feature Extraction): lựa chọn các đặc trưng tiêu
biểu có tính đại diện cho tập dữ liệu để làm input cho thuật tốn phân lớp.
•
Huấn luyện (Training): sử dụng các thuật tốn học máy để tìm ra mơ
hình tốt nhất nhằm sử dụng trong bước tiếp theo, việc huấn luyện được
thực hiện trên cả tập dữ liệu (dataset) và mô hình (model).
Bước dự đốn (Prediction): đem mơ hình thu được sau khi học (learning) đi
vào thực tế để xem nó có thực sự đủ tốt hay khơng, việc huấn luyện lại mơ hình
19