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

Nghiên cứu các giải thuật máy học và áp dụng vào bài toán dự đoán bệnh thận tại bệnh viện đa khoa tỉnh điện biên dùng ngôn ngữ python

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 (2.65 MB, 99 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

NGUYỄN TIẾN TỰ

NGHIÊN CỨU CÁC GIẢI THUẬT MÁY HỌC
VÀ ÁP DỤNG VÀO BÀI TOÁN DỰ ĐOÁN BỆNH THẬN
TẠI BỆNH VIỆN ĐA KHOA TỈNH ĐIỆN BIÊN
DÙNG NGÔN NGỮ PYTHON

LUẬN VĂN THẠC SỸ
CÔNG NGHỆ THÔNG TIN
CHỦ TỊCH HỘI ĐỒNG

NGƯỜI HƯỚNG DẪN KHOA HỌC

PGS.TS. PHẠM NGỌC THẮNG

Hưng Yên - 2017

TS. NGUYỄN VĂN HẬU


LỜI CẢM ƠN
Trong quá trình học tập và viết luận văn cao học, tôi xin chân thành cảm ơn
Đảng ủy,Ban giám hiệu, Phịng Đào tạo sau đại học, Khoa Cơng nhệ thông tin
Trường Đại học sư phạm kỹ thuật Hưng Yên, Ban Giám đốc Bệnh viện đa khoa tỉnh
Điện Biên đã tạo mọi điều kiện thuận lợi cho tôi trong suốt q trình học tập và hồn
thành luận văn.
Tơi xin bày tỏ lịng kính trọng và biết ơn sâu sắc tới: Tiến sỹ Nguyễn Văn Hậu
người thầy đã tận tâm giảng dạy, trực tiếp hướng dẫn, tạo mọi điều kiện thuận lợi


cho tơi học tập, nghiên cứu và hồn thành luận văn này.
Tơi xin bày tỏ sự kính trọng và biết ơn sâu sắc tới Toàn thể các Thầy các Cô,
những nhà khoa học trong hội đồng chấm luận văn đã tận tình hướng dẫn và cho tơi
những ý kiến q báu giúp tơi hồn thành luận văn này.
Trong q trình học tập và nghiên cứu, Tơi đã nhận được rất nhiều sự giúp đỡ
tận tình và quý báu của các tập thể và cá nhân. Tôi xin chân thành cảm ơn: Phòng
Kế hoạch tổng hợp,Khoa Xét nghiệm và Khoa Thận nhân tạo, tổ Công nghệ thông tin
Bệnh viện đa khoa tỉnh Điện Biên.
Cuối cùng, tôi xin giành lời cảm ơn tới người thân, gia đình, bạn bè và đồng
nghiệp, những người đã chia sẻ khó khăn, tạo mọi điều kiện thuận lợi, khuyến khích,
động viện tơi trong q trình học tập và hoàn thành luận văn này.
Hưng Yên, ngày 28 tháng 11 năm 2017
HỌC VIÊN

Nguyễn Tiến Tự

ii


LỜI CAM ĐOAN
Tôi là Nguyễn Tiến Tự, học viên cao học khóa 2015 – 2017 khoa Cơng nghệ thơng
tin Trường Đại học sư phạm kỹ thuật Hưng Yên, xin cam đoan:
1. Đây là luận văn do bản thân tôi trực tiếp thực hiện dưới sự hướng dẫn của Tiến
sỹ Nguyễn Văn Hậu.
2. Các số liệu và kết quả nghiên cứu trong luận văn là trung thực và chưa từng
được ai cơng bố trong bất kỳ cơng trình nào khác.
Tơi xin hoàn toàn chịu trách nhiệm trước pháp luật về những cam kết này.
Hưng Yên, ngày 28 tháng 11 năm 2017
TÁC GIẢ LUẬN VĂN


Nguyễn Tiến Tự

iii


BẢNG THUẬT NGỮ VIẾT TẮT

Từ đầy đủ

Từ viết tắt

Giải thích

SVM

Support vecto machine

Máy vecto hỗ trợ

LGR

Logistic Regression

Thuật toán Logistic Regression

ML

Machine Learning

Máy học


PCA

Principal

component

Phân tích thành phần chính

analysis
MAP

Maximum aposteriori

Luật tối đa xác suất hậu nghiệm

AI

Artificial Intelligence

Trí tuệ nhân tạo

ML

Machine Learning

Máy học

IT


Information techonogy

Cơng nghệ thông tin

BN

Bệnh nhân

Bệnh nhân

BVĐKTĐB

Bệnh viện đa khoa tỉnh
Điện Biên

iv

Bệnh viện đa khoa tỉnh Điện Biên


MỤC LỤC
LỜI CẢM ƠN ............................................................................................................ ii
LỜI CAM ĐOAN ..................................................................................................... iii
BẢNG THUẬT NGỮ VIẾT TẮT ............................................................................ iv
DANH MỤC HÌNH ................................................................................................. vii
DANH MỤC CHƯƠNG TRÌNH................................................................................x
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ MÁY HỌC VÀ ỨNG DỤNG ...............................3
1.1. TỔNG QUAN VỀ MÁY HỌC.........................................................................3
1.2. MỘT SỐ KHÁI NIỆM TRONG MÁY HỌC ..................................................8

1.2.1. Dữ liệu (Data) .............................................................................................8
1.2.2. Một số thuật ngữ trong Máy học ..............................................................10
1.2.3 Các kiểu học trong Máy học......................................................................13
1.3. ỨNG DỤNG CỦA MÁY HỌC ......................................................................15
1.4. MƠ HÌNH MÁY HỌC VÀ BÀI TỐN DỰ ĐOÁN BỆNH THẬN TẠI BỆNH
VIỆN ĐA KHOA TỈNH ĐIỆN BIÊN ...................................................................18
1.5 TỔNG KẾT CHƯƠNG 1 ................................................................................20
CHƯƠNG 2: MƠ HÌNH SUPPORT VECTOR MACHINE VÀ MƠ HÌNH
LOGISTIC REGRESSION .......................................................................................21
2.1. MƠ HÌNH SUPPORT VECTOR MACHINE................................................21
2.1.1 Support Vector Machine ...........................................................................21
2.1.2 Xây dựng siêu phẳng tuyến tính ................................................................24
2.1.3 SVM với kernels (nhân) ............................................................................35
2.1.4 Prediction – dự đốn..................................................................................38
2.1.5 Tổng kết về SVM ......................................................................................38
2.2. MƠ HÌNH HỒI QUY LOGISTIC REGRESSION ........................................40
2.2.1. Hàm Logistic ...........................................................................................41
2.2.2. Hồi quy Logistic đơn biến ........................................................................42
2.2.3. Hồi quy Logistic đa biến ..........................................................................43
2.2.4. Những lưu ý khi sử dụng mơ hình Hồi quy Logistic ...............................43
2.3. OVERFITTING ..............................................................................................44
2.4. PYTHON TRONG MÁY HỌC......................................................................46

v


2.4.1 Tại sao dùng Python ..................................................................................46
2.4.2 Thư viện trong Python ...............................................................................46
2.5. TỔNG KẾT CHƯƠNG 2 ...............................................................................49
CHƯƠNG 3: ÁP DỤNG THUẬT TOÁN SUPPORT VECTOR MACHINE VÀ

LOGISTIC REGRESSION ĐỂ DỰ ĐOÁN BỆNH THẬN .....................................51
3.1. DỮ LIỆU BỆNH NHÂN MẮC BỆNH THẬN..............................................51
3.1.1. Vấn đề chẩn đoán bệnh thận và dữ liệu....................................................51
3.1.2. Bệnh học bệnh thận ..................................................................................52
3.1.3. Vấn đề chuẩn đoán bệnh Thận của các bác sĩ qua triệu chứng cận lâm sàng
............................................................................................................................53
3.1.4. Thu thập các bệnh án tại bệnh viện đa khoa tỉnh Điện Biên ....................60
3.1.5. Dữ liệu được dùng trong chương trình .....................................................60
3.2. XỬ LÝ DỮ LIỆU BỆNH NHÂN MẮC BỆNH THẬN ................................61
3.2.1. Hiển thị dữ liệu .........................................................................................61
3.2.2. Thống kê dữ liệu.......................................................................................62
3.2.3. Biểu đổ hóa dữ liệu ..................................................................................64
3.2.4. Chuẩn hóa dữ liệu.....................................................................................65
3.2.5 Ma trận tương quan ...................................................................................67
3.3. SỬ DỤNG THAM SỐ TRONG MƠ HÌNH SVM.........................................69
3.3.1. Sự tác động của tham số C .......................................................................69
3.3.2. Sự tác động của tham số Gamma .............................................................71
3.3.3. Sự tác động của tham số kernel ................................................................73
3.4. XÂY DỰNG THUẬT TOÁN SVM TRONG DỰ BÁO BỆNH THẬN .......73
3.5. XÂY DỰNG THUẬT TOÁN LGR DỰ BÁO BỆNH THẬN .......................77
KẾT LUẬN ...............................................................................................................81
TÀI LIỆU THAM KHẢO
PHỤ LỤC

vi


DANH MỤC HÌNH
Hình 1. 1: Hình Hình bên trái, ở giữa, và bên phải lần lượt ở trạng thái ..................11
Hình 1. 2: Mơ tả sự cân bằng Bias-Variance ............................................................13

Hình 2.1. 1: H3 (màu xanh lá cây) không chia tách hai lớp dữ liệu. H1 (màu xanh lơ) phân
tách hai lớp với lề nhỏ và H2 (màu đỏ) phân tách với lề cực đại ..................................22
Hình 2.1. 2:Siêu phẳng với lề cực đại cho một SVM phân tách ...............................23
Hình 2.1. 3: Tập dữ liệu ban đầu (bên trái) được ánh xạ (dùng hàm nhân) ..............24
Hình 2.1. 4: Một siêu phẳng (trong khơng gian 2 chiều) khi 𝒃 < 𝟎, 𝒘𝟏 > 𝟎, 𝒘𝟐 > 𝟎 ....25
Hình 2.1. 5: Một siêu phẳng (trong khơng gian 2 chiều) phân tách hai khơng gian ..........25
Hình 2.1. 6: Siêu phẳng với sự thay đổi của các tham số w và b..............................26
Hình 2.1. 7:Khoảng cách từ lớp C1 và C2 tới siêu phẳng ..........................................28
Hình 2.1. 8: Tất cả 5 siêu phẳng đều thỏa mãn có tổng lề lớn nhất để phân tách 2 lớp ......28
Hình 2.1. 9: Siêu phẳng có khoảng cách lề bằng nhau tới 2 lớp ...............................28
Hình 2.1. 10: Siêu phẳng có khoảng cách lề để phân chia 2 lớp là 𝟏𝒘 ....................29
Hình 2.1. 11: Siêu phẳng cho cùng một tập huấn luyện với sự thay đổi của C tương
ứng [8] .......................................................................................................................34
Hình 2.1. 12: Các siêu phẳng dùng để phân tách dữ liệu khi hệ số 𝜺𝒊 thay đổi........35
Hình 2.1. 13: Hình (a) và (c) minh họa cho các lớp không thể phân tách bởi tuyến
tính trong khơng gian 1 – chiều và 2 – chiều tương ứng ..........................................37
Hình 2.2. 1: Đồ thị hàm Sigmoid ..............................................................................41
Hình 2.3. 1: Mơ hình màu xanh nước biển (green) và xanh lá cây (green) cùng có sai
số bằng 0 trên tập dữ liệu đã cho...............................................................................44
Hình 2.3. 2: Minh họa cho bài tốn có 3 mơ hình: underfit, normal và overfit ........45
Hình 3. 1. Cấu trúc Thận ...........................................................................................51
Hình 3. 2. Biểu đồ biểu diễn dữ liệu cho bài toán dự đốn bệnh Thận.....................65
Hình 3. 3. Biểu đồ biểu diễn ma trận tương quan của các đặc tính của bệnh Thận ..68
Hình 3. 4: Hình minh họa cho sự tác động của tham số C........................................70

vii


Hình 3. 5: Hình bên trái ứng với giá trị C nhỏ cho lề lớn. Hình bên phải ứng với giá
trị C lớn cho lề nhỏ, và trong trường hợp này sẽ cho mơ hình phù hợp hơn với hình

bên trái. ......................................................................................................................71
Hình 3. 6: Hình bên trái ứng với giá trị C nhỏ cho lề lớn, và trong trường hợp này sẽ cho
mơ hình phù hợp hơn với hình bên phải, ứng với giá trị C lớn cho lề nhỏ ..................71
Hình 3. 7: Mơ hình SVM cho bài tốn hoa Ailen với các giá trị khác nhau của tham
số Gamma. .................................................................................................................72
Hình 3. 8: Mơ hình SVM cho bài tốn hoa Ailen với các giá trị khác nhau của 2 tham
số Gamma và C .........................................................................................................73
Hình 3. 9: Đồ thị hàm Sigmoid .................................................................................77

viii


DANH MỤC BẢNG

Bảng 1. 1:Dữ liệu được trích từ tệp ex1data1.txt ........................................................8
Bảng 1. 2: Bảng số liệu khám, chữa bệnh và số lần chạy thận tại Bệnh viện đa khoa
tỉnh Điện Biên trong 5 năm từ 2012 đến 2017 ..........................................................19
Bảng 3. 1:Tóm tắt về các chỉ số để xây dựng cơ sở dữ liệu......................................59
Bảng 3. 2: Các đặc tính để xây dựng chương trình ...................................................60
Bảng 3. 3:Kết quả tổng hợp của mơ hình SVM cho bài tốn dự báo bệnh thận ứng với
các giá trị khác nhau của 2 tham số C và kernel .......................................................75

ix


DANH MỤC CHƯƠNG TRÌNH
Chương trình 3. 1: Kết nối cơ sở dữ liệu ..................................................................61
Chương trình 3. 2: Điều chỉnh tỉ lệ của toàn bộ tập dữ liệu về [0,1] ........................66
Chương trình 3. 3: Ma trận tương quan giữa các đặc tính ........................................68
Chương trình 3. 4: Chương trình xây dựng mơ hình SVM cho tập dữ liệu huấn luyện ..69

Chương trình 3. 5: Chương trình thực thi mơ hình SVM với sự thay đổi của tham số C ..74
Chương trình 3. 6: Chương trình thực thi mơ hình SVM với sự thay đổi của tham số
gamma .......................................................................................................................76
Chương trình 3. 7: Dựng đồ thị hàm sigmoid ...........................................................77
Chương trình 3. 8: Chương trình thực thi mơ hình Logistic Regression với giả định
phân phối Bernoulli ...................................................................................................78
Chương trình 3. 9: Chương trình thực thi mơ hình Logistic Regression ..................79

x


MỞ ĐẦU
Lý do chọn đề tài
Sau khi Apple châm ngòi cho cuộc bùng nổ IoT với chiếc iPhone 3 huyền thoại,
thế giới bắt đầu sản sinh ra một lượng dữ liệu lớn chưa từng thấy. Smartphone và
Internet khiến dữ liệu sinh ra ở tốc độ rất nhanh và nhiều. Dù bạn đi chạy bộ, dù bạn
chỉ ngồi xem TV hay đang dừng xe chờ đèn đỏ, bạn đều có thể phát sinh ra những
dấu vết số. Khi mà càng lúc càng có nhiều thiết bị kết nối vào mạng, lượng dữ liệu sẽ
càng tăng lên với tốc độ cao hơn. Một số người ước tính rằng chỉ riêng những chiếc
xe tự hành thơi đã có thể tạo ra 100 gigabyte dữ liệu mỗi giây.
Trong khi đó, các kĩ thuật trí tuệ nhân tạo như machine learning giúp chúng ta
trích xuất được nhiều thơng tin hữu ích từ những dữ liệu này. Các thuật tốn có thể
đốn được khi nào thì người dùng chuẩn bị mua sắm đồ đạc, khi nào thì một cái động
cơ phản lực chuẩn bị hỏng, hay một người sắp mắc bệnh.
Tương tự thế, mỗi ngày có đến hàng nghìn cơng bố mới về các căn bệnh trên
toàn cầu, bao gồm cả những ca thành công và thất bại. Đây cũng là nguồn dữ liệu
khổng lồ nữa giúp các hệ thống phân tích tìm ra được những thơng tin quan trọng cho
q trình điều trị. Thế nhưng xử lý và phân tích lượng dữ liệu khổng lồ như vậy lại là
một việc khơng hề đơn giản. Chính vì vậy làm thế nào để khai thác được kho dữ liệu
đồ sộ này vào việc tìm kiếm giải pháp cho những vấn đề nhức nhối nhất của nhân loại.

Trí tuệ nhân tạo một bộ môn về khoa học máy tính sẽ giúp chúng ta chinh phục
được các dữ liệu đồ sộ đó. Với rất nhiều nhánh con như: Máy Học, Biểu Diễn Tri
Thức và Suy Luận, Xử Lý Ngôn Ngữ Tự Nhiên, Thị Giác Máy Tính... AI là giấc mơ
của con người nói chung là Khoa Học Máy Tính nói riêng để biến máy tính trở thành
cỗ máy có trí thơng minh và khả năng xử lý và phân tích siêu việt phục vụ cho con người.
Sau một thời gian học tập tại trường với những hiều biết về kiến thức đã được
các thầy các cô truyền đạt, em thực sự thấy quan tâm yêu thích về khoa học máy tính,
đặc biệt là những ứng dụng của các mơ hình Máy học trong dự đốn. Hơn nữa, sống
và làm việc trong mơi trường Bệnh viện, em có thể áp dụng các mơ hình Máy học

1


vào q trình cơng tác phịng ngừa và chữa bệnh tại Bệnh viện đa khoa tỉnh Điện
Biên. Sau một thời gian tìm hiểu và trao đổi với TS. Nguyễn Văn Hậu, người trực
tiếp hướng dẫn luận văn, em đã lựa chọn đề tài: “Nghiên cứu các giải thuật máy học
và áp dụng vào bài toán dự đoán bệnh thận tại Bệnh viện đa khoa tỉnh Điện Biên
dùng ngôn ngữ Python”.
Mục tiêu của luận văn
Luận văn có những mục tiêu chính sau:
- Nghiên cứu mơ hình Máy học: Support Vector Machine (SVM), mơ hình Máy
học: Logistic Regression (LGR).
- Tìm hiểu và sử dụng ngôn ngữ Python và các thư viện sử dụng cho các thuật
toán Máy học.
- Thu thập và xử lý dữ liệu các bệnh nhân thận tại Bệnh viện đa khoa tỉnh Điện
Biên.
- Sử dụng ngôn ngữ Python cài đặt hai mơ hình Máy học (SVM và LGR) cho
bài toán dự đoán bệnh thận.
- Sản phẩm gồm:
+ Một cuốn luận văn trình bày lại tồn bộ đề tài

+ Một bài báo đăng trên Tạp chí khoa học và cơng nghệ trường Đại học Sư
phạm Kỹ thuật Hưng Yên.
+ Một đĩa CD bao gồm chương trình và dữ liệu

2


CHƯƠNG 1
TỔNG QUAN VỀ MÁY HỌC VÀ ỨNG DỤNG
1.1. TỔNG QUAN VỀ MÁY HỌC
Trí tuệ nhân tạo (AI - Artificial Intelligence) đang dần phát triển và tạo nên
những khác biệt lớn dần trong cuộc sống hàng ngày của chúng ta. Nhiều hệ thống
‘Trí tuệ nhân tạo’ - AI hiện đại sử dụng các mạng lưới thần kinh nhân tạo, mã máy
tính mơ phỏng các hệ thống mạng lưới rộng lớn các đơn vị đơn giản, giống như tế
bào thần kinh trong não. Các mạng lưới này có thể học hỏi từ kinh nghiệm bằng cách
thay đổi các kết nối giữa các bit giống như cách bộ não của con người và động vật
làm với tế bào thần kinh.Mạng lưới thần kinh hiện đại có thể học cách nhận diện mơ
hình, dịch thuật, học cách tư duy logic đơn giản, và thậm chí tạo hình ảnh và xây
dựng những ý tưởng mới. Nhận diện mơ hình đặc biệt quan trọng ‘Trí tuệ nhân tạo’
AI có thể nhận diện mơ hình với số lượng lớn dữ liệu, một điều không hề dễ dàng đối
với con người.
Tất cả quá trình này xảy ra với tốc độ vô cùng cao, thông qua một tập hợp các
chương trình mã hóa được thiết kế để chạy các mạng lưới thần kinh với hàng triệu
đơn vị và hàng tỷ kết nối. Trí thơng minh đến từ những tương tác giữa số lượng lớn
các thành phần đơn giản này.Những ứng dụng thông minh trên tuy ở nhiều lĩnh vực
và hồn cảnh khác nhau, nhưng đều có chung một nguồn gốc: Máy học (Machine
Learning). Lịch sử Máy học có từ lâu, nhưng nó thực sự có nhiều đột phá cho tới khi
các nhà khoa học máy tính áp dụng kỹ thuật Deep Learning (học sâu) để cho ra nhiều
sản phẩm có tính ứng dụng hiệu quả trong thương mại và công nghiệp. Hiện nay,
những công ty hàng đầu về cơng nghệ đều có những đội ngũ nghiên cứu và phát triển

các sản phẩm Máy học. Những nhà nghiên cứu AI hàng đầu thế giới như Geoff
Hintonm, Sebastian Thrun, Peter Novig, Yann LeCun, Andrew Ng, v.v… đều là
thuộc nhóm phát triển trong các dự án quan trọng bậc nhất của Google, Facebook,
IBM, Intel, Amazon, Microsoft, Apple, v.v...

3


Máy học 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ể. Ví dụ như các máy có thể "học" cách phân loại thư điện tử xem
có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng. Học
máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật
ngữ. Máy học là một lĩnh vực của khoa học máy tính nhằm cung cấp cho máy tính
khả năng học thơng qua dữ liệu và kinh nghiệm mà khơng địi hỏi được lập trình
tường minh. Là một lĩnh vực của phân tích dữ liệu, máy học là một phương pháp cho
phép xây dựng các mơ hình và thuật tốn phức tạp để tìm ra các tri thức ẩn dấu bên
trong dữ liệu hỗ trợ cho q trình ra quyết định và kinh doanh thơng minh.
Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu,
chuẩn đốn y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khốn, phân
loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và
cử động rơ-bốt (robot locomotion).
Nhóm nghiên cứu:
Hiện nay có rất nhiều nhóm nghiên cứu về Máy học. Có thể kể ra đây
những nhóm ở những trường đại học và ở những tập đồn cơng nghệ:
- CBL: Computational and Biologoical Learning, University of Cambridge,
UK. Zoubin Ghahramani, Carl E Rasmussen, Rich Turner
- CSML: Computational Statistics and Machine Learning at University
College London, UK including the Gatsby Computational Neuroscience Unit
David Barber, John Shawe-Taylor, Arthur Gretton, Mark Herbster, (Mark Girolami)

- MPI for Intelligent Systems, Tübingen, Germany: Bernhard Schölkopf,
Philipp Hennig, Dominik Janzing
- Institute for Adaptive and Neural Computation, Edinburgh University,
UKChris Williams, Iain Murray, Amos Storkey, Charles Sutton, (Chris Bishop)
- SIERRA Team at INRIA, ENS, Paris, France Francis Bach, Sylvain Arlot
- Microsoft Research Cambridge, UKThore Graepel, Tom Minka, John Winn,
Ed Snelson, Chris Bishop

4


- Xerox Research, Machine Learning for Services, near Grenoble, France
(Cedric Archambeau), Onno Zoeter, Guillaume Bouchard
- Machine Learning at Amazon, Berlin, GermanyRalf Herbrich, Rajeev
Rastogi, Cedric Archambeau
- University of Toronto – Machine Learning Group (Geoffrey Hinton, Rich
Zemel, Ruslan Salakhutdinov, Brendan Frey, Radford Neal)
- Université de Montréal – MILA Lab (Yoshua Bengio, Pascal Vincent, Aaron
Courville, Roland Memisevic)
- New York University – Yann Lecun, Rob Fergus, David Sontag
and Kyunghyun Cho
- Stanford University – Andrew Ng, Christopher Manning‘s, Fei-fei
Li‘s group
- University of Oxford – Deep learning group, Nando de Freitas and Phil
Blunsom, Andrew Zisserman
- Google Research – Jeff Dean, Geoffrey Hinton, Samy Bengio, Ilya Sutskever,
Ian Goodfellow, Oriol Vinyals, Dumitru Erhan, Quoc Le et al
- Google DeepMind – Alex Graves, Karol Gregor, Koray Kavukcuoglu,
Andriy Mnih, Guillaume Desjardins, Xavier Glorot, Razvan Pascanu, Volodymyr
Mnih et al

- Facebook AI Research(FAIR) – Yann Lecun, Rob Fergus, Jason Weston,
Antoine Bordes, Soumit Chintala, Leon Bouttou, Ronan Collobert, Yann Dauphin et
al.
Những hội thảo:
Hiện nay có rất nhiều các cuộc hội thảo với chủ đề Học máy. Ở quốc tế có những
hội thảo:
- Journal of Machine Learning Research
- Machine Learning Journal
- Machine Learning papers tại CiteSeer
- NIPS: Neural Information Processing Systems

5


- ICML: International Conference on Machine Learning
Ở trong nước cũng có những hội thảo:
- KSE: The International Conference on Knowledge and System Engineering
- SoICT: The International Symposium on Information and Communication
Technology
- IALP: The International Conference on Asian Language Processing
Một số nhóm nghiên cứu ở VN:
- Phịng nghiên cứu Trí tuệ nhân tạo - ĐH Khoa học tự nhiên Tp.HCM
- Nhóm NLP - ĐH Công nghệ - ĐH Quốc gia HN
- BK-NLP - ĐH Bách Khoa TPHCM
- ePi lab - Cty Cổ phần Công nghệ ePi
- Khoa CNTT, Đại học Bách Khoa Hà Nội
- Khoa CNTT, Đại học SPKT Hưng Yên
Hiện nay, ngày càng nhiều các nhà khoa học và các nhà kinh tế đều cho rằng
chúng ta đang đứng trước thời gian đầu của cuộc cách mạng công nghiệp lần thứ tư.
Cuộc cách mạng của trí tuệ nhân tạo (Artificial Intelligence) và cụ thể hơn là Máy

học (Machine Learning). Nó sẽ là nhân tố tiền đề cho một xã hội kết nối mọi vật
(Internet of Thing – IoT). Nếu người ta coi dầu lửa là nguồn tài nguyên cho phát triển
cơng nghiệp cho thế kỉ 20, thì dữ liệu chính là nguồn tài nguyên cho phát triển công
nghệ thế kỉ 21. Mục tiêu của Máy học là dự đoán một số thơng tin của dữ liệu dựa
trên những đặc tính đã biết. Do vậy, chúng ta có thể khẳng định rằng đây là thời điểm
khơng thể tốt hơn để tìm hiểu, nghiên cứu và ứng dụng Máy học vào trong rất nhiều
lĩnh vực của cuộc sống.
Hàng năm, cộng đồng nghiên cứu và cộng đồng cơng nghiệp đã có những cuộc
hội thảo về chăm sóc sức khỏe sử dụng kiến thức của Máy học, Trí tuệ nhân tạo [24].
Enlitic là một công ty dùng deep learning (học nhiều tầng), một kĩ thuật đột phá và
mang lại nhiều thành công nhất hiện nay cho Máy học, nhằm giúp bác sĩ khám bệnh
nhanh hơn và chính xác hơn [25]. Mỗi khi một bác sĩ nhìn thấy một bệnh nhân, họ
đang giải quyết một tập dữ liệu phức tạp. Mục đích của mỗi trường hợp là đưa ra

6


quyết định điều trị tối ưu dựa trên nhiều hình thức thông tin lâm sàng, như lịch sử
bệnh nhân, triệu chứng, xét nghiệm và hình ảnh y khoa. Chất lượng và số lượng của
dữ liệu này đang được cải thiện nhanh chóng - ước tính sẽ phát triển hơn 50 lần trong
thập kỷ này, lên đến 25.000 petabyte trên toàn thế giới vào năm 2020. Đội ngũ chuyên
gia y tế và các nhà khoa học dữ liệu đẳng cấp thế giới đã cải thiện kết quả sử dụng dữ
liệu này để tối đa tiềm năng của nó. Enlitic sử dụng deep learning để tìm ra những tri
thức từ hàng tỉ trường hợp lâm sàng. Enlitic xây dựng các giải pháp để giúp các bác
sĩ tận dụng kiến thức chuyên sâu của cả cộng đồng y tế cho mỗi bệnh nhân.
Jensen Huang, giám đốc điều hành của Nvidia – công ty cơng nghệ nổi tiếng ở
California, dự đốn rằng vấn đề chăm sóc sức khỏe và xe ơ tơ tự hành sẽ sớm được
đảm nhiệm bởi Trí tuệ Nhân tạo [23]. Nhiều nhóm nghiên cứu Máy học cũng đang
đầu tư vào lĩnh vực y tế và chăm sóc sức khỏe [26,27]. Vic Gundotra, cựu giám đốc
tại Google và Microsoft, nhận định rằng trong vòng 5 năm tới, Máy học sẽ là trợ thủ

đắc lực cho các bác sĩ [28].
Trí thơng minh nhân tạo giúp chẩn đoán bệnh Alzheimer trước 10 năm [30].
Việc phát hiện sớm căn bệnh mất trí nhớ (Alzheimer) là rất quan trọng, nó sẽ giúp
đưa ra các phương án điều trị kịp thời, giảm quá trình suy giảm trí nhớ. Có nhiều cách
để giúp bác sĩ phát hiện sớm căn bệnh nhưng phương pháp mới nhất có liên quan tới
trí thơng minh nhân tạo (AI) được các nhà nghiên cứu của trường Đại học Bari, Ý
đưa ra.
Dựa trên trí thơng minh nhân tạo, các nhà nghiên cứu đã tạo ra thuật toán giúp
phát hiện ra những thay đổi nhỏ nhất trong cấu trúc não bộ trước 10 năm kể từ khi
căn bệnh phát tác. Các nhà nghiên cứu đã huấn luyện cho AI bằng cách chụp cộng
hưởng MRI 67 bản, trong đó 38 từ bệnh nhân Alzheimer và 29 từ người bình thường,
từ đó phân tích sự liên kết giữa các tế bào (neuron) thần kinh. Thuật toán này sau đó
được thử nghiệm với 148 người, bao gồm 52 người khỏe mạnh, 48 người đã bị
Alzheimer và 48 người mắc chứng suy giảm nhận thức nhẹ (sẽ phát tác thành
Alzheimer trong 2,5 đến 9 năm tới).

7


Kết quả mà họ thu được là chẩn đốn chính xác 86% trong khoảng thời gian đó,
quan trọng hơn nó giúp phát hiện chứng suy giảm nhận thức nhẹ (Mild Cognitive
Impairment) với độ chính xác đạt 84%, là cơ sở để chẩn đoán sớm bệnh này. Trong
tương lai với những nghiên cứu mẫu và sự phát triển của AI thì phương thức chẩn
đốn này sẽ cịn chính xác và tin cậy hơn.
Sử dụng Máy học cho bài toán dữ liệu lớn làm đòn bẩy cho những cuộc cách mạng
trong các lĩnh vực thiết yếu điển hình như chăm sóc sức khỏe chính là sứ mệnh và
tầm nhìn của IBM hiện nay. Cuối cùng, chúng ta phải kể tới Watson, được kỳ vọng
sẽ mang lại những chuyển biến tích cực cho ngành y tại Việt Nam [31].
1.2. MỘT SỐ KHÁI NIỆM TRONG MÁY HỌC
1.2.1. Dữ liệu (Data)

Máy học là chương trình máy tính tự “học” từ dữ liệu. Do vậy việc tìm hiểu kĩ
dữ liệu và việc cần thiết. Trong khn khổ luận văn này, dữ liệu giống như một bảng
gồm hàng và cột. Đây là một cấu trúc dữ liệu cơ bản trong Máy học. Những dữ liệu
khác như hình ảnh, video, văn bản là những dữ liệu khơng có cấu trúc sẽ không được
xét đến.
Bảng 1. 1: Dữ liệu được trích từ tệp ex1data1.txt [1]

2104

3

399900

1600

3

329900

2400

3

369000

1416

2

232000


3000

4

539900

1985

4

299900

1534

3

314900

1427

3

198999

1380

3

212000


1494

3

242500

1940

4

239999

2000

3

347000

8


Trong Bảng 1.1 cột thứ nhất chứa thông tin diện tích ngơi nhà (tính bằng feet2),
cột thứ hai chứa thơng tin số phịng ngủ, cột thứ ba chứa thơng tin giá ngơi nhà (tính
bằng USD). Bài tốn đặt ra là dựa vào thơng tin diện tích và phịng ngủ, chúng ta cần
đưa ra dự đốn cho giá của ngơi nhà tương ứng.
Thể hiện/Dữ kiện (instance): Là một hàng trong bảng dữ liệu. Trong ví dụ trên
Bảng 1.1 có 12 thể hiện/dữ kiện, mỗi thể hiện gồm thông tin của một căn hộ (gồm
diện tích, số phịng ngủ, và giá tiền).
Đặc tính (feature): Là một cột trong bảng dữ liệu. Nó là một thành phần của một

đặc trưng của một dữ kiện. Một số đặc trưng là dữ liệu quan sát được và một số là
đặc trưng cần được dự đoán. Trong bài tốn trên 2 cột đầu (diện tích và số phòng ngủ)
là đặc trưng quan sát, cột cuối cùng là đặc trưng cần dự đoán (giá căn hộ).
Kiểu dữ liệu (Data Type): Các đặc trưng đều có dữ liệu, mỗi dữ liệu đều có
một kiểu dữ liệu xác định. Chúng có thể là kiểu số nguyên, số thực, hay cũng có thể
là kiểu rời rạc. Chúng ta cũng gặp phải kiểu dữ liệu như ngày, tháng, chuỗi kí tự, hay
những kiểu phức tạp khác; tuy nhiên, chúng sẽ được chuyển sang kiểu nguyên, thực
hay rời rạc khi dùng các thuật toán Máy học.
Các tập dữ liệu (Datasets): Một tập hợp các thể hiện/dữ kiện là một tập dữ liệu.
Chúng ta sẽ dùng một vài tập dữ liệu cho các mục đích khác nhau.
Tập dữ liệu huấn luyện (Training dataset): Là một tập dữ liệu dùng để huấn
luyện cho mô hình của thuật tốn Máy học. Nói một cách khác, thuật toán Máy học
sẽ học từ tập dữ liệu này.
Tập dữ liệu kiểm tra (Testing dataset): Là một tập dữ liệu dùng để kiểm chứng
độ chính xác của mơ hình của thuật tốn Máy học. Tập dữ liệu này khơng được dùng
để huấn luyện mơ hình.
Có thể hiểu một cách trực quan rằng, tập dữ liệu huấn luyện giống như bài tập
được dùng khi giáo viên ôn tập cho học sinh, sinh viên; còn tập dữ liệu kiểm tra giống
như bài thi. Và bài thi là bài thí sinh chưa bao giờ làm. Một giáo viên giỏi là người
lựa chọn được các bài ơn tập có dạng bài hay dạng đề giống như bài thi.

9


Thông thường chúng ta cần tách tập dữ liệu mà chúng ta có được ra thành các
tập dữ liệu con (dùng để huấn luyện và kiểm tra).
Mục tiêu của một chương trình Máy học (có giám sát) là xây dựng một hàm f
ánh xạ tự dữ kiện quan sát (features) tới nhãn (label):
y = f(X)
1.2.2. Một số thuật ngữ trong Máy học

Máy học là quá trình xây dựng chương trình tự động “học”. Chúng ta sẽ cũng
thảo luận qua một số khái niệm học trong Máy học.
Qui nạp (Induction): Các thuật tốn máy học được học thơng qua q trình qui
nạp nhờ tập dữ liệu huấn luyện (training dataset). Qui nạp là quá trình lập luận đi đến
khái quát từ các trường hợp cụ thể.
Khả năng dự đốn (Generalization): Mơ hình sau khi được xây dựng bởi thuật
tốn Máy học dùng để dự đoán hay đưa ra những quyết định trong một thể hiện cụ
thể của dữ liệu (instance), nhưng dữ liệu này khơng có trong q trình huấn luyện
(hay dữ liệu mới). Chúng ta thường có tập dữ liệu kiểm tra (testing dataset)
Overfitting (over-learning): Khi mơ hình thể hiện sự chính xác trên tập huấn
luyện nhưng lại kém chính xác trên tập dữ liệu mới (tập kiểm tra). Cũng có thể hình
dung khi mơ hình q khớp với tập dữ liệu huấn luyện.
Nguyên nhân: Điều này xảy ra khi tập dữ liệu huấn luyện của chúng ta có nhiễu
(noise), hay mơ hình của chúng ta q phức tạp, tức là có quá nhiều tham số so với
số dữ liệu quan sát được (thể hiện). Chính nhiễu đã gây tác động xấu tới q trình dự
đốn của mơ hình với dữ liệu mới.
Nhận biết: Khi mơ hình cho kết quả độ lệch nhỏ nhưng phương sai lớn (low
bias nhưng high variance)
Underfitting (under-learning): Khi một mơ hình thực thi khơng tốt trên cả tập
dữ liệu huấn luyện và tập dữ liệu kiểm tra. Cũng có thể hình dung khi mơ hình không
khớp với tập dữ liệu huấn luyện.

10


Ngun nhân: Điều này xảy xa khi mơ hình chúng ta đang xây dựng quá đơn
giản so với tập dữ liệu.
Nhận biết: Khi mơ hình cho kết quả độ lệch lớn nhưng phương sai nhỏ (low
variance nhưng high bias).
Cách giải quyết: Một phương pháp để xử lý khi underfitting là hãy thay đổi

thuật toán Máy học đang dùng.
Good-fit: Khi mà mơ hình ở trạng thái tối ưu (sweet pot) giữa overfitting và
underfitting. Đây là đích mà mọi thuật tốn Máy học hướng tới, nhưng nó rất khó đạt
được trong thực tế. Trong q trình học, lỗi mà mơ hình gây ra cho tập dữ liệu huấn
luyện giảm dần và lỗi trên tập kiểm tra cũng vậy. Nếu chúng ta huấn luyện quá lâu,
lỗi trên tập huấn luyện tiếp tục giảm xuống vì mơ hình sẽ học vào mức q chi tiết
không thực sự quan trọng (như nhiễu - noise) hướng sang trạng thái overfitting; cùng
với thời điểm đó, lỗi trên tập dữ liệu kiểm tra sẽ tăng lên và có nghĩa là mức độ khái
qt hóa của mơ hình đang giảm xuống.
Trạng thái tối ưu (sweet pot) chính là điểm ngay trước khi lỗi trên tập kiểm tra
bắt đầu tăng. Ở trạng thái đó, mơ hình đang cân bằng trong cả tập dữ liệu huấn luyện
và tập dữ liệu mới (kiểm tra). Để tìm thấy trạng thái good-fit, chúng ta thường sử
dụng hai kĩ thuật để tránh overfitting như đã nêu ở trên.

Hình 1. 1: Hình Hình bên trái, ở giữa, và bên phải lần lượt ở trạng thái
underfitting, good-fit, và overfitting

11


Hình bên trái là khi mơ hình xây dựng (đường thẳng) đang ở dạng Underfitting,
trong khi hình bên phải ở dạng Overfitting, hình ở giữa ở dạng good-fit (giữa
Underfitting và Overfitting). Tham số d chỉ bậc của đa thức, trục tung chỉ giá, và trục
hồnh chỉ diện tích của căn hộ.
Sự lựa chọn mơ hình: Q trình thiết lập và huấn luyện mơ hình như là một q
trình lựa chọn mơ hình. Mỗi bước lặp, chúng ta lại tạo ra một mơ hình mới. Việc lựa
chọn thuật tốn Máy học cũng là q trình lựa chọn mơ hình.
Độ lệch (Bias): Độ lệch là một số đặc trưng cho giá trị trung bình của các số
liệu so với giá trị đúng. Hay nói một cách khác, độ lệch là lỗi từ việc giả định sai của
thuật tốn học. Mơ hình khi có độ lệch sẽ gây ra những sai số khi khái qt hóa. Một

ví dụ đơn giản về độ sai lệch trong cuộc sống là khi chúng ta có cái cân luôn nặng
hơn 1kg so với trọng lượng chuẩn trong mọi lần đo. Độ lệch ở đây là +1 (đơn vị kg).
Bias lớn sẽ dẫn tới underfiting.
Phương sai (Variance): Phương sai là một số đặc trưng cho độ phân tán của
các số liệu so với số trung bình của nó. Phương sai là mức độ nhạy cảm với sự biến
động nhỏ trong tập dữ liệu được huấn luyện. Một cách để giảm phương sai là chạy
nhiều lần trên tập dữ liệu với các điều kiện ban đầu khác nhau và tính độ chính xác
trung bình trong q trình thực hiện. Phương sai lớn sẽ gây ra overfitting.
Cân bằng giữa Bias-Variance: Việc lựa chọn mơ hình chính là việc cân bằng
giữa Bias-Variance. Mơ hình có bias thấp sẽ có variance lớn và sẽ cần huấn luyện
nhiều hơn; trong khi mơ hình có bias cao sẽ có variance thấp

12


Hình 1. 2: Mơ tả sự cân bằng Bias-Variance

Trong Hình 1.2 trục tung chỉ lỗi của mơ hình dự đốn, trục hồnh chỉ số chiều
của khơng gian đầu vào (độ phức tạp của mơ hình - tỉ lệ với số chiều của các đặc
trưng).
1.2.3 Các kiểu học trong Máy học
Máy học có ba kiểu học chính: Học có giám sát (supervised learning), học không
giám sát (unsupervised learning), và học tăng cường (reinforcement learning).
Học có giám sát (Supervised Learning)
Khi chúng ta có dataset gồm đặc trưng (features) và nhãn (labels). Ví dụ trong
Bảng 1.1 hai cột đầu (diện tích, số phịng ngủ) là features, cột cuối cùng (giá nhà) là
labels. Nhiệm vụ là xây dựng một chương trình (có thể coi là một hàm) có khả năng
dự đốn label khi cho biết tập các features. Hầu hết những thành tựu của Máy học
hiện nay đều là học có giám sát. Ứng dụng của học có giám sát hiện nay vơ cùng
nhiều, một số ví dụ điển hình như:

Bộ lọc thư rác (spam filtering). Google phải huấn luyện hàng triệu các email
(gồm cả email rác và khơng rác) để có được bộ lọc hiệu quả chúng ta dùng hiện nay.

13


Nhận dạng khn mặt (face recognition). Facebook, Apple có chương trình
nhận diện mặt khá tốt nhờ nó được huấn luyện qua nhiều ảnh cũ của một người. Khi
cho một ảnh mới, nó sẽ dự đốn được người đó.
Hệ thống gợi ý (recommendation). Hãng Netflix đã trao giải thưởng lớn cho
nhóm có chương trình gợi ý phim u thích mới cho người cụ thể khi họ đã cung cấp
dữ liệu bộ phim yêu thích.
Nhận dạng chữ viết tay. Nhờ kĩ thuật mới trong Máy học mà độ chính xác của
chương trình đã lên tới 99.7% [10].
Dự đoán giá cho thị trường chứng khốn, thị trường nhà đất, v.v...
Học có giám sát có hai loại chính: Phân lớp (classification) và hồi qui
(regression). Trong classification các label có kiểu dữ liệu là rời rạc, trong khi
regression có kiểu dữ liệu là liên tục (số thực). Ví dụ cho classification là: Ứng dụng
lọc thư, nhận dạng khuôn mặt, hệ thống gợi ý xem phim, nhận dạng chữ viết tay;
trong khi cho regression là dự đoán giá cho thị trường chứng khoán. Với supervised
learning, chúng ta có thể hình dung như một hàm số như sau:
𝑓 (𝑋 ) = 𝑦
Trong đó X là tập đặc trưng (features), y là nhãn (label), dạng của hàm fkhông
biết trước. Nhiệm vụ của chúng ta là tìm hiểu và thử nghiệm các thuật tốn máy học
để tìm ra hàm phù hợp nhất. Chú ý rằng, các thuật toán khác nhau sẽ có những giả
định khác nhau về dạng của hàm trên.
Học không giám sát (Unsupervised Learning)
Khi chúng ta chỉ có dataset gồm đặc trưng (features) mà khơng được gán nhãn
(labels). Nhiệm vụ của chúng ta là tìm ra sự giống nhau giữa các đối tượng đó. Ví dụ
cho học khơng giám sát:

Có hai loại âm thanh, chúng ta cần tách ra.
Có một tập các tin tức, hãy phân loại ra các loại khác nhau (mặc dù chúng ta
không biết có bao nhiêu loại khác nhau).

14


Học tăng cường (Reinforcement Learning)
Thuật toán học tăng cường sẽ được áp dụng khi tương tác với một môi trường
thay đổi nhằm thực hiện một nhiệm vụ nào đó (ví dụ như lái xe hay chơi cờ). Các
thuật toán học tăng cường cố gắng tìm một chiến lược ánh xạ không gian trạng
thái của môi trường tới các hành động mà chương trình nên chọn trong các trạng thái
đó để cực đại hóa một khoản thưởng (reward) nào đó về lâu dài.
Trong Máy học, chương trình học từ cặp (X/input – y/output), được gọi là có
giám sát bởi vì nó giám sát quá trình học theo định dạng của kết quả ra ứng với mỗi
dữ kiện mà thuật toán học. Trong học khơng giám sát, chúng ta chỉ có X, chứ khơng
có y. Học khơng giám sát nhằm tìm ra một mơ hình mà phù hợp với các quan sát. Nó
khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là
không biết trước.
Vì hầu như tất cả các ứng dụng trong công nghiệp và thương mại hiện nay đều
thuộc về học có giám sát.
1.3. ỨNG DỤNG CỦA MÁY HỌC
Demis Hassabis, người sáng lập ra DeepMind – công ty được mua bởi Google
năm 2014, lấy cảm hứng từ bộ não con người đã xây dựng một chương trình “Máy
học vạn năng”: Một tập các lệnh cho thuật toán tự học – giống như là một hệ sinh học
để tìm cách giải quyết một nhiệm vụ từ ban đầu mà chỉ cần dùng dữ liệu thơ. AlphaGo
là chương trình Máy học của DeepMind đã chiến thắng kỳ thủ cờ vây số một thế giới
Ke Jie ngày 27.5.2017. Đây là lần thứ hai AlphaGo đánh bại một đối thủ xếp hạng
cao, lần đầu là trận thắng trước kỳ thủ chuyên nghiệp Lee Sedol của Hàn Quốc với tỉ
số 4-1 năm 2016. Thật là một kết quả kinh ngạc khi Ke Jie được biết đến rộng rãi là

một kỳ thủ số một thế giới và thi đấu gần như "hoàn hảo" trong tất cả các ván đấu mà
khơng thể đánh bại một chiếc máy tính. Kết quả đó đủ để hầu hết các chuyên gia thừa
nhận AlphaGo đã được cải tiến đến mức bất khả chiến bại. Chiến thắng của máy tính
ở mơn cờ vây ấn tượng hơn nhiều so với chiến thắng trong môn cờ vua. Với cờ vua,
máy tính có thể ghi nhớ hàng nghìn nước đi và tính tốn chính xác con đường đến
chiến thắng. Nó chủ yếu là bài tập số học. Đánh bại kì thủ cờ vây lại là một cấp độ

15


×