1
MỤC LỤC
2
Danh mục các ký hiệu, các chữ viết tắt
user profile hồ sơ đặc trưng người dùng
patient profile hồ sơ bệnh nhân
ESKF Expert System for Kidney Failure
HCG Hệ chuyên gia
3
Danh mục các bảng biểu
Bảng 3.1 Bảng đánh giá thông tin dùng để chẩn đoán khả năng suy thận
của một bác sĩ..............................................................................................................45
Bảng 3.2 Bảng ánh xạ mức độ đánh giá của bác sĩ sang CF.......................................46
Bảng 4.1 Bảng kết quả đánh giá chức năng hỏi bệnh bổ sung kiểm tra trên nhiều
nhóm bệnh án..............................................................................................................68
Bảng 4.2 Bảng kết quả đánh giá chức năng hỏi bệnh bổ sung kiểm tra trên cùng một
nhóm bệnh án..............................................................................................................69
4
Danh mục các hình vẽ
Hình 2.1 Các thành phần cơ bản của một hệ chuyên gia............................................12
Hình 2.2 Ma trận đánh giá...........................................................................................22
Hình 2.3 Mạng ngữ nghĩa............................................................................................23
Hình 3.1 Kiến trúc của hệ chẩn đoán suy thận ESKF................................................34
Hình 3.2 Các bước xây dựng cơ sở tri thức của ESKF...............................................50
Hình 3.3 Đồ thị giải thích kết quả chẩn đoán sơ bộ....................................................56
Hình 3.4 Sơ đồ DFD quá trình chẩn đoán tổng quát...................................................58
Hình 3.5 Sơ đồ DFD quá trình thu thập thông tin.......................................................59
Hình 3.6 Sơ đồ DFD quá trình chẩn đoán bệnh .........................................................61
Hình 4.1 Mẫu bệnh án dùng để thu thập dữ liệu.........................................................64
Hình 4.2 Biểu đồ kết quả chẩn đoán suy thận của ESKF so với bệnh án ..................70
Hình 4.3 Biểu đồ kết quả chẩn đoán suy thận của ESKF so với bác sĩ ......................70
vực. Hệ chuyên gia là một trong những lĩnh vực của trí tuệ nhân tạo được nghiên cứu
6
và phát triển từ giữa thập niên 60 [11 tr.11]. Cho đến nay hệ chuyên gia được áp dụng
trong nhiều lĩnh vực, trong đó y khoa là một trong những lĩnh vực được áp dụng đầu
tiên.
Ngoài ra, tính chất của suy thận mạn là tiến triển âm thầm, ít có triệu chứng đặc
trưng trong giai đoạn đầu nên muốn chẩn đoán được suy thận mạn sớm cần phải theo
dõi bệnh sử của bệnh nhân. Hơn thế nữa, khi biết được bệnh sử thì bác sĩ có thể tiên
đoán được hiện trạng của bệnh nhân, từ đó bác sĩ chỉ cần kiểm tra một vài triệu
chứng hay dấu hiệu bất thường là có thể chẩn đoán được bệnh. Như vậy tùy vào bệnh
sử của mỗi bệnh nhân mà bác sĩ sẽ có cách hỏi bệnh khác nhau.
Các hệ thống thích nghi cá nhân là các hệ thống cung cấp thông tin, tài nguyên,
dịch vụ… dựa vào đặc điểm của từng người sử dụng. Trong những hệ thống này, mỗi
người sử dụng có một hồ sơ đặc trưng (profile) để mô tả những đặc điểm của người
đó [21]. Do đó để hệ thống có thể hỏi và chẩn đoán bệnh sao cho phù hợp với hiện
trạng của mỗi bệnh nhân và đặc biệt là có thể theo dõi diễn tiến của suy thận, luận
văn đề xuất việc khai khác các hồ sơ người dùng (user profile), ở đây gọi là hồ sơ
bệnh nhân (patient profile
1
).
1.2. Mục tiêu luận văn
Với các vấn đề được nêu ở trên, luận văn nhằm xây dựng một hệ chuyên gia hỗ
trợ bác sĩ và bệnh nhân chẩn đoán và theo dõi suy thận (Expert System for Kidney
Failure gọi tắt là ESKF) để hạn chế tình trạng chẩn đoán thiếu chính xác. Điểm khác
biệt so với các hệ chuyên gia truyền thống là ESKF sử dụng hồ sơ bệnh nhân vào hệ
thống với mục đích:
- Theo dõi diễn tiến suy thận mạn của bệnh để cảnh báo cho bệnh nhân nếu có
dấu hiệu suy thận mạn và giúp chẩn đoán được suy thận mạn sớm.
1
o Các tri thức, thông tin trong y khoa thường không chắc chắn và không
rõ ràng nên đề tài cần tìm hiểu các phương pháp biểu diễn thông tin
dạng này.
o Phương pháp suy diễn ra kết luận dựa vào tập tri thức đã có.
1.4. Kết quả đạt được
Đề tài đã đề xuất một cấu trúc profile của bệnh nhân dùng trong chẩn đoán và
theo dõi suy thận, từ đó xây dựng một hệ chẩn đoán suy thận dựa vào các thông tin
có trong profile.
Xây dựng ESKF giúp chẩn đoán cũng như theo dõi diễn tiến suy thận mạn của
bệnh nhân để có thể phát hiện được suy thận mạn ngay trong giai đoạn đầu. Trong
chẩn đoán suy thận, kết quả cận lâm sàng có vai trò quyết định, nhưng ngày nay,
bệnh nhân dễ dàng có được kết quả cận lâm sàng từ các trung tâm y tế tư nhân nên
bệnh nhân có thể sử dụng ESKF để theo dõi tình trạng suy thận của bản thân. Như
vậy mới có thể phát hiện được bệnh trong giai đoạn đầu để ngăn chặn bệnh tiến đến
giai đoạn cuối giúp người bệnh kéo dài được tuổi thọ và giảm chi phí điều trị.
ESKF có cung cấp tiện ích giải thích để diễn giải quá trình suy diễn ra kết quả
chẩn đoán. Như vậy bác sĩ có thể kiểm tra kết quả chẩn đoán của hệ thống làm cho hệ
thống đáng tin cậy hơn. Ngoài ra ESKF còn có tiện ích giúp chuyên gia chỉnh sửa,
cập nhật tri thức chẩn đoán và tiện ích quản lý hồ sơ bệnh nhân.
Tóm lại, đề tài minh chứng cho thấy việc sử dụng patient profile vào các hệ
chẩn đoán bệnh mà đặc biệt là các bệnh cần phải theo dõi thường xuyên như suy thận
mạn là rất cần thiết. Khi có patient profile, quá trình chẩn đoán sẽ thuận tiện hơn và
có thể theo dõi được diễn tiến của bệnh.
1.5. Bố cục luận văn
Luận văn được trình bày thành năm chương với bố cục như sau:
Chương 1: Tổng quan
Giới thiệu tổng quan bao gồm động cơ nghiên cứu, mục tiêu của đề tài, các vấn
đề khoa học kỹ thuật cần giải quyết trong đề tài và kết quả đề tài đạt được.
9
Chương 2: Cơ sở lý thuyết
khác nhau như y khoa, kinh tế, nông nghiệp… Trong đó y khoa là một trong những
lĩnh vực đươc áp dụng từ những năm đầu phát triển, đặc biệt vào những năm 80.
Khảo sát của Waterman (1986) cho thấy số lượng hệ chuyên gia dùng trong y khoa
chiếm hơn 30% trong tổng số các hệ chuyên gia được tạo ra. Một số ví dụ về hệ
chuyên gia dùng trong y khoa là: MYCIN (1973) một hệ chuyên gia nổi tiếng để chẩn
đoán nhiễm trùng máu [7], PUFF (1982) dùng để phân tích kết quả xét nghiệm chức
năng phổi [5], PSG-Expert (2000) chẩn đoán bệnh mất ngũ [8], BI-RADS(2007) chẩn
đoán ung thư vú [24], Naser xây dựng một hệ chuyên gia chẩn đoán bệnh về da
(2008) [23]…
2.1.1. Định nghĩa hệ chuyên gia
Có nhiều định nghĩa về hệ chuyên gia (HCG) và định nghĩa đầu tiên được
Edward Feigenbaum phát biểu như sau (1977): “HCG là một chương trình máy tính
thông minh sử dụng tri thức (knowledge) và các thủ tục suy luận (inference
procedures) để giải quyết các vấn đề khó cần đến kiến thức chuyên môn của các
chuyên gia về lĩnh vực đó.” [26 tr.9]
Theo Jackson phát biểu vào năm 1990 thì: “Một HCG là một chương trình máy
tính thể hiện và suy luận với tri thức của các chuyên gia để giải quyết vấn đề hay
đưa ra lời khuyên.” [26 tr.9]
11
Turban cho rằng: Một HCG là một chương trình máy tính áp dụng các phương
pháp hay tri thức trong một lĩnh vực cụ thể để đưa ra lời khuyên như một người
chuyên gia. (1995) [26 tr.9]
Tóm lại, HCG có thể được định nghĩa như sau: HCG là một chương trình máy
tính mô hình hoá khả năng giải quyết của chuyên gia.
2.1.2. Các thành phần chính của một hệ chuyên gia
Một HCG cổ điển có hai thành phần chính: thành phần thứ nhất chứa tri thức để
giải quyết vấn đề được gọi là cơ sở tri thức và thành phần thứ hai sử dụng tri thức đó
để suy luận ra kết quả được gọi là môtơ suy luận [11 tr.3].
Cơ sở tri thức
Môtơ suy luận
- Cơ sở tri thức có thể tách rời với phần suy diễn.
- Tri thức là các luật có tính độc lập cao nên dễ dàng cập nhật và bổ
sung tri thức.
- Dễ dàng thể hiện và suy luận với tri thức không chắc chắn.
- Có thể thêm tri thức heuristic.
- Dễ dàng giải thích kết quả đạt được.
Bên cạnh các ưu điểm nêu trên thì phương pháp này cũng có khuyết điểm như:
khó bảo trì tri thức đối với các hệ thống lớn có quá nhiều luật.
Luật là một cấu trúc tri thức dùng để liên kết thông tin đã biết với các thông tin
khác, các thông tin có thể được suy luận để người ta hiểu biết thêm [1 tr.47].
13
Các chuyên gia thường phát biểu tri thức dưới dạng “Nếu…thì…” nên luật là tri
thức thường được sử dụng nhất để biểu diễn tri thức trong các HCG. Cấu trúc của
một luật gồm một hay nhiều giả thiết trong phần IF với một hay nhiều kết luận trong
phần THEN. Cấu trúc một luật có dạng:
IF … THEN …
Hay
IF … THEN … ELSE …
Phần giả thiết của một luật có thể gồm nhiều giả thiết nhỏ kết hợp với nhau
thông qua phép logic AND hay OR hay cả hai.
Ví dụ: IF họng của bệnh nhân bị đau AND họng của bệnh nhân bị đỏ AND bệnh
nhân bị ho THEN bệnh nhân bị viêm họng
Cấu trúc thứ hai ít được sử dụng hơn vì các lý do: khó kiểm tra, luôn đưa ra kết
luận nên có thể cho ra kết quả không như mong đợi. Hơn thế nữa, cấu trúc luật có
phần ELSE có thể dễ dàng tách làm 2 luật không có ELSE.
Đối với các hệ thống dựa trên luật, các tri thức về lĩnh vực được thu thập và thể
hiện duới dạng các luật. Các luật này được lưu trong cơ sở tri thức của hệ thống. Hệ
thống dùng các luật này cùng với các thông tin có được trong bộ nhớ để giải bài toán.
Một luật có phần IF khớp (match) với thông tin có trong bộ nhớ sẽ được kích hoạt
(fire) và các thủ tục trong phần THEN được thực hiện hay thông tin mới được sinh ra
Giả sử ban đầu có sự kiện A có nghĩa là bộ nhớ làm việc lúc này có A. Như vậy
luật R1 sẽ được kích hoạt nên ta có thêm C trong bộ nhớ làm việc. Khi có sự kiện C
thì luật kế đến được kích hoạt là R3 và ta thu được D. Vậy kết luận cuối cùng là D.
Nhưng trong quá trình suy luận có thể xảy ra trường hợp là có nhiều luật có
phần giả thiết khớp với sự kiện có trong bộ nhớ làm việc như vậy phải chọn luật nào
để kích hoạt. Sau đây là một vài giải pháp cho trường hợp này:
- Chọn luật đầu tiên
15
- Chọn luật có độ ưu tiên cao nhất
- Chọn luật có nhiều giả thiết nhất
- Luật liên quan đến phần tử mới thêm vào
b) Suy luận lùi (Backward chaining)
Suy luận lùi dùng để chứng minh một giả thiết là đúng hay sai bằng cách thu
thập thông tin trong quá trình suy luận [1 tr.92].
Quá trình suy luận lùi như sau:
- Đầu tiên bộ nhớ làm việc được kiểm tra để xem đích cần chứng minh đã
có hay chưa.
- Nếu chưa có thì môtơ suy luận tìm xem luật nào có phần THEN chứa
đích.
- Môtơ suy luận xem phần giả thiết của luật này có trong bộ nhớ làm việc
không. Các giả thiế không có trong bộ nhớ làm việc gọi là các đích mới
hay đích con cần được chứng minh. Các đích con được cung cấp hay được
chứng minh nhờ vào các luật khác.
Quá trình cứ tiếp tục cho đến khi thấy một giả thiết không được luật nào cung
cấp thì hệ thống sẽ yêu cầu người sử dụng cung cấp thông tin. Hệ thống dùng các
thông tin này để giải đích con và đích ban đầu.
Xét lại ví dụ trong suy luận tiến và giả sử đích cần chứng minh là D.
Đầu tiên xét bộ nhớ làm việc không có D nên tìm luật có phần kết luận có chứa
D, đó chính là R3. Giả thiết trong R3 là C nên kiểm tra bộ nhớ làm việc xem có C
không. Trong bộ nhớ làm việc không có C nên tìm luật có phần kết luận là C. Luật
MD(H,E) thể hiện độ không tin cậy về giả thiết H khi có dấu hiệu E.
Vì 0 ≤ MB(H,E),MD(H,E) ≤ 1 nên -1≤ CF(H,E) ≤1
Khi có hai dấu hiệu E
1
và E
2
cùng khẳng định một giả thiết H thì
CF(H, E
1
&E
2
) = MB(H, E
1
&E
2
) – MD(H, E
1
&E
2
)
17
Trong đó MB(H,E
1
&E
2
) và MD(H,E
1
&E
2
) được tính như sau [7 tr.255]:
H ,E
1
)
)
n ếu ng ượ cl ạ i
MD
(
H , E
1
∧E
2
)
=
{
0 nế u MB
(
H ,E
1
∧E
2
)
=1
MD
(
H , E
1
)
+ MD
(
)
Như vậy chỉ cần một một giả thiết có độ không tin cậy (MD) cao cũng có thể
làm giảm nhiều đến mức độ tin cậy do nhiều giả thiết khác khác nên CF được tính lại
như sau [1 tr.124]:
CF
(
H , E
)
=
MB( H , E) – MD( H , E)
1−MIN ( MB
(
H , E
)
, MD
(
H , E
)
)
Các chương trình ít khi thể hiện MB và MD mà chỉ sử dụng CF. Thông thường
khi thu thập tri thức thì giá trị CF được các chuyên gia cung cấp.
Ví dụ một người cho biết là trời nhiều mây nhưng người này hay nói dối nên
người khác chỉ tin anh ta 50%. Vậy CF(trời nhiều mây) trong trường hợp này là 0.5.
• Luật không chắc chắn:
IF E THEN H (CF
R
)
Như vậy CF(H) = CF(E)*CF
R
Ví dụ có một người thường theo dõi thời tiết và theo kinh nghiệm của ông ta thì
R
)
18
CF(H,E
1
,E
2
,…,E
n
) = max{ CF(E
i
)}*CF
R
• Nếu có nhiều luật có cùng kết luận [1 tr.128]:
R
1
: IF E
1
THEN H (CF
R1
) CF
1
(H) = CF(E
1
)*CF
R1
R
2
: IF E
2
1
(
H
)
,CF
2
(
H
)
>0
CF
1
(
H
)
+CF
2
(
H
)
+CF
1
(
H
)
∗CF
2
(
H
)
+CF
2
(
H
)
¿
CF
(
H
)
=¿
Lập luận bằng logic mờ (fuzzy logic)
Logic mờ sử dụng tập mờ trong các mệnh đề mờ. Một mệnh đề mờ là mệnh đề
khẳng định một giá trị cho một biến ngôn ngữ nào đó. Biến ngôn ngữ là một từ hay
một cụm từ trong ngôn ngữ tự nhiên của con người để miêu tả các khái niệm mơ hồ,
ví dụ như “tuổi già”.
• Định nghĩa tập mờ
Cho X là miền xác định, có các phần tử ký hiệu là x. Tập mờ A của X được đặc
trưng bằng hàm thuộc hay hàm thành viên µ
A
(x). Hàm này ánh xạ các phần tử x
i
của
X sang [0,1]. Các giá trị này cho biết mức độ thuộc của x
i
vào tập A
[1 tr.142].
Ví dụ xét tập mờ “cao” về chiều cao của con người:
Cao={0.0/1.5, 0.6/1.6, 1/1.7}
Một luật mờ liên kết 2 mệnh đề mờ có dạng:
ij
= min(a
i
,b
j
)
Vậy khi có A’ sẽ tính được B’ như sau:
b’
j
= max{min(a’
i
,m
ij
)}, 1<= i <= n
b) Suy diễn tích cực đại
Ta có A = (a
1
,…,a
n
), a
i
= µ
A
(x
i
)
B = (b
1
,…,b
n
∑
=
=
∗
=
n
j
jB
n
j
jBj
i
ym
ymy
y
1
'
1
'
)(
)(
Ví dụ ta xác đinh được tập mờ kết quả là B’ = {0/10, 0.5/20, 0.5/30, 0.5/40,
0/50}.Áp dụng công thức trên ta tính được giá trị rõ
b = (0*10+0.5*20+0.5*30+0.5*40+0*50)/(0+0.5+0.5+0.5+0)=30
2.2. Hồ sơ đặc trưng người dùng (user profile)
2.2.1. Giới thiệu
20
Thời gian gần đây, nhiều kỹ thuật được nghiên cứu và áp dụng để làm cho các
chương trình máy tính thông minh hơn, cụ thể là tuỳ vào đặc điểm của người sử dụng
mà chương trình có những cách xử lý khác nhau. Ví dụ: giới thiệu sản phẩm sao cho
j
thể hiện mức độ quan tâm của người sử dụng thứ i đối
với đặc trưng thứ j.
1
/>21
Mô hình khai thác lịch sử (History-based model) [21]
Khi người sử dụng tương tác với hệ thống, hệ thống sẽ lưu giữ lại các thông tin
này. Thông thường hệ thống cũng sẽ lưu trữ những phản hồi (feedback) của người sử
dụng về những thông tin được tư vấn. Phương pháp này thường được áp dụng trong
thương mại điện tử, trong đó hệ thống này sẽ lưu giữ danh sách các mặt hàng mà
khách hàng đã mua. Từ đó hệ thống có thể suy diễn ra khách hàng thích loại hàng gì
để giới thiệu các mặt hàng mới mà có thể khách hàng sẽ thích. Ví dụ website thương
mại Amazon sử dụng phương pháp này để tư vấn sách mới cho người dùng.
Ma trận đánh giá (User –item ratings matrix) [21]
Là một ma trận hai chiều R, một chiều là các người dùng (user) và một chiều là
các tài nguyên (item). Giá trị r
ij
trong ma trận R thể hiện đánh giá của người dùng thứ
i đối với tài nguyên thứ j. Các giá trị đánh giá r
ij
phụ thuộc vào từng hệ thống và được
thu thập một cách tường minh hay thông qua quá trình tương tác của người sử dụng
với hệ thống.
Ví dụ một người sử dụng xem 1 bộ phim nhiều lần chứng tỏ người này rất thích
bộ phim. Nếu một bộ phim mới mở lên xem vài phút rồi anh ta chuyển sang phim
khác chứng tỏ anh ta không thích phim đó. Ví dụ Bellcore Video Recommender [13]
và MoviExplain [28] là hai hệ thống tư vấn phim sử dụng phương pháp này. Hình 2.2
minh họa ma trận đánh giá của 4 người dùng (Amy, Matt, Paul, Cliff) cho 4 phim
(The Matrix, Speed, Sideways, Brokeback Mountain).
The Matrix Speed Slideways
3.4
11.
Tranh
7.2
9.
Nhà điêu khắc
5.8
15.
Hội họa
7.89
3.
Viện bảo tàng
8.1
5.
Điêu khắc
4.56
Tượng
5.2
6.
23
định nào đó. Các luật này sẽ được sử dụng để cung cấp tài nguyên cho người
dùng thông qua những sản phẩm mà họ đã lựa chọn, đánh giá trước đó. Ví dụ
một luật thể hiện quan hệ giữa một sản phẩm thường được mua cùng với các
sản phẩm khác [6].
- Ngoài ra một số hệ thống khác tổ chức profile phục vụ cho việc khai thác
theo mô hình mạng nơ-ron, mạng Bayes.
2.2.3. Khởi tạo profile
Đối với một người sử dụng mới, hệ thống sẽ phải khởi tạo một profile cho
người này. Hệ thống có thể sẽ yêu cầu người sử dụng cung cấp các thông tin như
thông tin cá nhân, đánh giá một số tài nguyên (item) mẫu, cho biết sở thích…Những
điểm của người sử dụng, còn nếu tập mẫu nhiều sẽ gây khó chịu cho người sử dụng.
Ví dụ, MovieLens
1
yêu cầu người dùng mới phải đánh giá một số phim do hệ thống
đưa ra để cung cấp thông tin cho hệ thống khởi tạo profile.
2.2.4. Cập nhật profile
Sau khi khởi tạo, trong quá trình tương tác với hệ thống, profile của người sử
dụng cần được cập nhật để mô tả chính xác hơn đặc điểm của người đó vì những
thông tin ban đầu còn rất hạn chế và có thể không chính xác. Ngoài ra đặc trưng của
người sử dụng có thể thay đổi theo thời gian. Sau đây là ba phương pháp dùng để cập
nhật profile [21].
• Phản hồi tường minh (Explicit feedback)
1
/>Theo phương pháp này, người sử dụng đánh giá các tài nguyên một cách tường
minh. Thông qua các giá trị đánh giá này, đặc trưng của người sử dụng được rút ra và
cập nhật. Phương pháp này có ưu điểm là đơn giản, độ chính xác cao,
25
nhưng có khuyết điểm là hệ thống sẽ gặp khó khăn khi người sử dụng lười đánh giá.
Ví dụ MovieLens yêu cầu người sử dụng phải đánh giá ít nhất 15 phim trước khi tư
vấn phim cho người này.
• Phản hồi không tường minh (Implicit feedback)
Hướng tiếp cập này không yêu cầu nguời sử dụng đánh giá các tài nguyên như
hướng tiếp cận trên. Trong quá trình tương tác với người sử dụng, hệ thống sẽ tự
động rút ra đặc trưng của người sử dụng thông qua hành vi của người đó. Ví dụ khi
sử dụng hệ thống thì người dùng thường vào mục nào, xem mục nào đầu tiên…
Như vậy với hướng tiếp cận này, người sử dụng không cần phải đánh giá tập
mẫu, một công việc nhàm chán và tốn nhiều thời gian. Khắc phục được khuyết điểm
trên của hướng tiếp cận phản hồi tường minh nhưng hướng tiếp cận này cũng có
khuyết điểm là chi phí xử lý để rút ra đặc trưng cao hơn, kết quả cho được có mức tin
cậy ít hơn. Ví dụ SiteIF cập nhật thông tin profile thông qua các website mà người