LỜI MỞ ĐẦUHệ 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 và phát triển từ giữa thập niên 60, góp phần tạo ra các hệ thống có khả năng trí tuệ của con ngườ
Trang 1LỜI MỞ ĐẦU
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
và phát triển từ giữa thập niên 60, góp phần tạo ra các hệ thống có khả năng trí tuệ của con người, giải quyết các vấn đề dựa trên một tập luật phân tích thông tin và đưa lời khuyên về trình tự các hành động cần thực hiện để giải quyết vấn đề
Nhiều hệ chuyên gia đã được thiết kế và xây dựng để phục vụ trong nhiều lĩnh vực y học, kế toán, điều khiển tiến trình (process control), dịch vụ tư vấn tài chính (financial service), tài nguyên con người (human resources), trong đó y khoa là một trong những lĩnh vực được áp dụng đầu tiên, cung cấp các công cụ hữu hiệu cho những áp dụng chẩn đoán bệnh, với mục đích trợ giúp các bác sĩ trong việc chuẩn đoán và điều trị bệnh
Hiện nay có nhiều chương trình chuẩn đoán bệnh dành cho người lớn mà ít có chương trình chuyên biệt phục vụ riêng cho trẻ em Chính vì lý do đó em chọn đề tài xây dựng hệ chuyên gia chuẩn đoán và hướng dẫn điều trị những bệnh thường gặp ở trẻ em như các bệnh: sởi, quai bị, rubella, thủy đậu, sốt xuất huyết,… Chương trình cho phép chẩn đoán, đưa ra kết luận bệnh, các triệu chứng, biến chứng và cho lời khuyên chăm sóc bệnh của bé
Trang 2CHƯƠNG 1:
TỔNG QUAN VỀ HỆ CHUYÊN GIA VÀ BIỂU DIỄN TRI THỨC
1.1 Hệ chuyên gia
1.1.1 Khái niệm cơ bản
Hệ chuyên gia là một chương trình máy tính mô hình hóa khả năng giải quyết vấn đề của các chuyên gia, sử dụng các tri thức và các thủ tục suy diễn để giải quyết các bài toán khó khăn đòi hỏi chuyên gia mới giải quyết được, làm việc giống như một chuyên gia thực thụ và cung cấp các ý kiến dựa trên kinh nghiệm của chuyên gia con người đã được đưa vào Hệ chuyên gia
Ví dụ: hệ chuyên gia trong y học: với mục đích trợ giúp các bác sĩ trong việc chuẩn đoán bệnh và điều trị, hệ chuyên gia chẩn đoán hỏng hóc đường dây điện thoại,…
1.1.2 Cấu trúc Hệ chuyên gia
Hệ chuyên gia làm việc như một chuyên gia thực thụ và có thể cung cấp các ý kiến tư vấn hỏng hóc dựa trên kinh nghiệm của chuyên gia đã được đưa vào hệ chuyên gia Hệ chuyên gia có các thành phần cơ bản sau:
(1) Bộ giao tiếp ngôn ngữ tự nhiên
(2) Động cơ suy diển
Trang 3suy diễn của hệ chuyên gia Câu hỏi HOW nhằm cung cấp các giải thích về con đường mà hệ chuyên gia sử dụng để mang lại kết quả.
Các thành phần của hệ chuyên gia
1.2 Biểu diễn tri thức
1.2.1 Khái niệm biểu diễn tri thức
Biểu diễn tri thức là cách thể hiện tri thức trong máy dưới dạng sao cho bài toán có thể được giải tốt nhất Biểu diễn tri thức trong máy phải :
+ Thể hiện được tất cả các thông tin cần thiết
+ Cho phép tri thức mới được suy diễn từ tập các sự kiện và luật suy diễn + Cho phép biểu diễn các nguyên lý tổng quát cũng như các tình huống đặc
Trang 4+ Bắt lấy được ý nghĩa ngữ nghĩa phức tạp
+ Cho phép lý giải ở mức tri thức cao hơn
1.2.2 Các loại tri thức
Dựa vào cách thức con người giải quyết vấn đề, các nhà nghiên cứu đã xây dựng các kỹ thuật để biểu diễn các dạng tri thức khác nhau trên máy tính Để giải quyết vấn đề, chúng ta chỉ chọn dạng biễu diễn nào thích hợp nhất Sau đây là các dạng biểu diễn tri thức thường gặp
• Tri thức thủ tục mô tả cách thức giải quyết một vấn đề Loại tri thức này
đưa ra giải pháp để thực hiện một công việc nào đó Các dạng tri thức thủ tục tiêu biểu thường là các luật, chiến lược, lịch trình, và thủ tục
• Tri thức khai báo cho biết một vấn đề được thấy như thế nào Loại tri thức
này bao gồm các phát biểu đơn giản, dưới dạng các khẳng định logic đúng hoặc sai Tri thức khai báo cũng có thề là một danh sách các khẳng định nhằm mô tả đầy đủ hơn về đối tượng hay một khái niệm khái niệm nào đó
• Siêu tri thức mô tả tri thức về tri thức Loại tri thức này giúp lựa chọn tri
thức thích hợp nhất trong số các tri thức khi giải quyết một vấn đề Các chuyên gia sử dụng tri thức này để điều chỉnh hiệu quả giải quyết vấn đề bằng cách hướng các lập luận về miền tri thức có khả năng hơn cả
• Tri thức heuristic mô tả các "mẹo" để dẫn dắt tiến trình lập luận Tri thức
heuristic còn được gọi là tri thức nông cạn do không bảm đảm hoàn toàn chính xác về kết quả giải quyết vấn đề Các chuyên thường dùng các tri thức khoa học như sự kiện, luật, … sau đó chuyển chúng thành các tri thức heuristic để thuận tiện hơn trong việc giải quyết một số bài toán
• Tri thức có cấu trúc mô tả tri thức theo cấu trúc Loại tri thức này mô tả mô
hình tổng quan hệ thống theo quan điểm của chuyên gia, bao gồm khái niệm,
Trang 5khái niệm con, và các đối tượng; diễn tả chức năng và mối liên hệ giữa các tri thức dựa theo cấu trúc xác định.
1.2.3 Các kỹ thuật biểu diễn tri thức
Phần này trình bày các kỹ thuật phổ biến nhất để biểu diễn tri thức, bao gồm:
• Bộ ba Đối tượng-Thuộc tính-Giá trị
• Các luật dẫn
• Mạng ngữ nghĩa
• Frames
• Logic
Dạng biểu diễn tri thức cổ điển nhất trong máy tính là logic, với hai dạng phổ biến
là logic mệnh đề và logic vị từ Cả hai kỹ thuật này đều dùng ký hiệu để thể hiện tri thức và các toán tử áp lên các ký hiệu để suy luận logic Logic đã cung cấp cho các
nhà nghiên cứu một công cụ hình thức để biểu diễn và suy luận tri thức Em xin nói chi tiết về logic vị từ
Logic vị từ là sự mở rộng của logic mệnh đề nhằm cung cấp một cách biểu diễn rõ
hơn về tri thức Logic vị từ dùng ký hiệu để biểu diễn tri thức
Logic vị từ, cũng giống như logic mệnh đề, dùng các ký hiệu để thể hiện tri thức
Những ký hiệu này gồm hằng số, vị từ, biến và hàm.
Hằng số: Các hằng số dùng để đặt tên các đối tượng đặc biệt hay thuộc
tính Nhìn chung, các hằng số được ký hiệu bằng chữ viết thường, chẳng hạn
an, bình, nhiệt độ Hằng số an có thể được dùng để thể hiện đối tượng An,
một người đang xét
Vị từ: Một mệnh đề hay sự kiện trong logic vị từ được chia thành 2 phần
là vị từ và tham số Tham số thể hiện một hay nhiều đối tượng của mệnh đề;
Trang 6còn mệnh đề dùng để khẳng định về đối tượng Chẳng hạn mệnh đề "Nam thích Mai" viết theo vị từ sẽ có dạng:
thích(nam, mai)Với cách thể hiện này, người ta dùng từ đầu tiên, tức "thích", làm vị từ Vị từ cho biết quan hệ giữa các đối số đặt trong ngoặc Đối số là các ký hiệu thay cho các đối tượng của bài toán Theo quy ước chuẩn, người ta dùng các chữ thường để thể hiện các đối số
Biến: Các biến dùng để thể hiện các lớp tổng quát của các đối tượng hay
thuộc tính Biến được viết bằng các ký hiệu bắt đầu là chữ in hoa Như vậy,
có thể dùng vị từ có biến để thể hiện nhiều vị từ tương tự
Ví dụ:
Có hai mệnh đề tương tự "Nam thích Mai" và "Bắc thích Cúc" Hai
biến X, Y dùng trong mệnh đề thích(X, Y).
Các biến nhận giá trị sẽ được thể hiện qua X=Nam, Bắc; Y=Mai, Cúc Trong phép toán vị từ người ta dùng biến như đối số của biểu thức vị
từ hay của hàm
Hàm: Logic vị từ cũng cho phép dùng ký hiệu để biểu diễn hàm Hàm mô
tả một ánh xạ từ các thực thể hay một tập hợp đến một phần tử duy nhất của tập hợp khác Ví dụ, các hàm sau đây được định nghĩa nhằm trả về một giá trị xác định:
cha(sơn) = Nam mẹ(sơn) = Mai
Phép toán: Logic vị từ cũng dùng các phép toán như logic mệnh đề
Ví dụ:
Trang 7thích(X,Y) AND thích(Z,Y) -> thích(X,Z).
CHƯƠNG 2:
THU THẬP TRI THỨC VÀ ỨNG DỤNG PROLOG XÂY DỰNG
HỆ CHUẨN ĐOÁN BỆNH THƯỜNG GẶP Ở TRẺ EM
2.1 Thu thập tri thức các bệnh thường gặp ở trẻ em
2.1.1 Bệnh sởi
* Triệu chứng: sốt, phát ban lúc đầu ở mặt sau đó lan ra toàn thân, khi ban sởi biến mất sẽ để lại những vết thâm da Ngoài ra trẻ còn có một số triệu chứng kèm theo gồm chảy mũi, ho và đỏ mắt
* Biến chứng: những biến chứng có thể gặp phải là viêm phổi, viêm não, viêm tai giữa, tiêu chảy, mờ giác mạc, viêm thanh quản, suy dinh dưỡng nặng
* Chăm sóc:
+ Cho bé uống thuốc hạ sốt khi nhiệt độ ≥ 38.5oC, liều lượng thuốc dùng được tính là 10 - 15 mg cho mỗi kí lô cân nặng của trẻ
+ Nếu bé ho có thể cho dùng thuốc giảm ho
+ Chế độ ăn uống phải đầy đủ chất dinh dưỡng và có thể chia nhỏ khẩu phần
ăn làm nhiều lần trong ngày
+ Giữ vệ sinh tốt để tránh nhiễm thêm vi trùng
2.1.2 Bệnh quai bị
* Triệu chứng: sốt, nhức đầu, sưng tuyến mang tai một hoặc cả hai bên, đau nhức khi nhai
Trang 8* Biến chứng: viêm tinh hoàn với xác suất 1/5 nếu bệnh xảy ra ở trẻ lớn và người lớn, tình trạng này có thể dẫn đến vô sinh về sau nhưng với một tỷ lệ rất nhỏ Ngoài
ra bệnh còn có thể gây viêm màng não, viêm tụy và gây chứng điếc vĩnh viễn
* Chăm sóc:
+ Nếu trẻ sốt hoặc đau nhiều có thể cho dùng thuốc hạ sốt giảm đau
+ Cho ăn thức ăn lỏng, dễ nuốt
+ Chăm sóc, vệ sinh răng miệng
+ Cho dùng thuốc hạ sốt khi trẻ sốt
+ Nâng sức đề kháng: ăn uống hợp lý, dùng thêm nước trái cây như nước cam, nước chanh
+ Giữ gìn vệ sinh cho trẻ
2.1.4 Bệnh thủy đậu
* Triệu chứng:
Trang 9+ Bé sốt nhẹ, đau họng, nhức đầu
+ Nổi hồng ban có kích thước vài mm, sau đó nhanh chóng chuyển thành bóng nước, lúc đầu chứa dịch trong sau 24 giờ thì hóa đục
+ Bóng nước gây ngứa dữ dội
+ Bóng nước xuất hiện ở thân mình, sau đó tiến đến vùng đầu mặt, tay chân + Bóng nước xuất hiện ở niêm mạc miệng, cơ quan sinh dục
+ Sau khoảng 5 ngày, những bóng nước này vỡ ra và đóng mài
* Biến chứng:
+ Để lại những sẹo rỗ trên da
+ Viêm mô tế bào do nhiễm thêm vi trùng
+ Viêm phổi
+ Viêm não
* Chăm sóc:
+ Cho trẻ nghỉ ngơi, mặc quần áo thoáng mát
+ Dùng thuốc hạ sốt nhưng lưu ý tuyệt đối không dùng aspirine
+ Cho trẻ ngâm trong bồn nước ấm 1 – 3 lần mỗi ngày, lau nhẹ người bằng vải mềm, chú ý không làm vỡ bóng nước
+ Giữ gìn vệ sinh cá nhân để phòng ngừa nhiễm thêm vi trùng
+ Cắt ngắn móng tay cho trẻ, dạy trẻ không được gãi, trẻ nhỏ nên được đeo găng tay để không tự làm vỡ bóng nước
+ Cách ly trẻ bệnh khoảng 5 - 7 ngày để tránh lây lan
2.1.5 Bệnh sốt xuất huyết
Trang 10* Triệu chứng: Sốt cao, có chấm xuất huyết dưới da thường gặp nhiều nhất ở hai chân; và dấu hiệu gan to Ngoài những dấu hiệu vừa kể, trẻ nhỏ bị SXH còn có các dấu hiệu không đặc hiệu như ho, sổ mũi và tiêu chảy.
* Biến chứng:
Những biến chứng do sốt kéo dài, bệnh nhân nhập viện muộn dễ dẫn tới tình trạng sốc kéo dài, gây co giật, suy hô hấp Khi xuất huyết tiêu hóa nhiều kèm xuất huyết não và tổn thương đa cơ quan (do sốc) rất dễ dẫn đến việc bệnh nhân tử vong
2.2 Xây dựng cơ sở tri thức dựa trên luật
2.2.1 Mô tả tri thức dữ liệu bệnh bằng tập luật
Giả thiết Kết luận
Trang 11R1 IF Phát ban
AND Sốt AND Chảy mũi AND Ho
AND Đỏ mắt
THEN Bệnh sởi
R2 IF Sưng tuyến mang tai
AND Đau nhức khi nhai AND Sốt
AND Nhức đầu
THEN Bệnh quai bị
R3 IF Sưng hạch
AND Phát ban AND Sốt AND Đau khớp
THEN Bệnh rubella
R4 IF Hồng ban
AND Bóng nước AND Đau họng AND Nhức đầu AND Sốt
THEN Bệnh thủy đậu
R5 IF Có chấm xuất huyết
AND Gan to AND Sốt
THEN Bệnh sốt xuất huyết
2.2.2 Hình ảnh mô tả các triệu chứng của từng bệnh
Trang 132.2.3 Sơ đồ mô phỏng chương trình chẩn đoán bệnh
Trang 142.3 Xây dựng ứng dụng hệ chuẩn đoán bệnh trẻ em bằng Prolog và C#
Trang 152.3.1 Công cụ phát triển hệ cơ sở tri thức
Chọn ngôn ngữ lập trình trí tuệ nhân tạo Prolog (PROgramming in LOGic) để phát
triển tri thức, giải quyết các bài toán liên quan đến các đối tượng (object) và mối
quan hệ (relation) giữa chúng Đồng thời kết hợp với ngôn ngữ lập trình C# trên
môi trường Windows Forms để tạo giao diện thân thiện cho phép người dùng có thể tương tác dễ dàng với hệ thống chuẩn đoán bệnh
2.3.2 Phát biểu dưới dạng logic vị từ về bệnh
X là các triệu chứng của bệnh sởi trieuchungsoi(X)
X là các triệu chứng của bệnh quai bị trieuchungquaibi(X)
X là các triệu chứng của bệnh rubella trieuchungrubella(X)
X là các triệu chứng của bệnh thủy đậu trieuchungthuydau(X)
X là các triệu chứng của bệnh sốt xuất
chứng của bệnh quai bị
∀X trieuchungquaibi(X) → trieuchungbenhtreem(X, quaibi)Trẻ mắc bệnh rubella khi có những triệu
chứng của bệnh rubella ∀X trieuchungrubella(X) → trieuchungbenhtreem(X, rubella)
Trẻ mắc bệnh thủy đậu khi có những triệu
chứng của bệnh thủy đậu
∀Xtrieuchungthuydau(X) → trieuchungbenhtreem(X, thuydau)Trẻ mắc bệnh sốt xuất huyết khi có những
triệu chứng của bệnh sốt xuất huyết ∀X trieuchungsotxuathuyet (X) → trieuchungbenhtreem(X, sotxuathuyet)
2.3.3 Mô tả các sự kiện về triệu chứng các loại bệnh
Trang 16Mã luật Sự kiện
R1 trieuchungsoi([phatban,sot,chaymui,ho,domat])
R2
trieuchungquaibi([sungtuyenmangtai,daunhuckhinhai,sot,nhucdau])R3 trieuchungrubella([sunghach,phatban,sot,daukhop])
R4 trieuchungthuydau([hongban,bongnuoc,dauhong,nhucdau,sot])R5 trieuchungsotxuathuyet([cochamxuathuyen,ganto,sot])
2.3.4 Định nghĩa các luật dựa trên các sự kiện
2.4 Chương trình và kết quả thực nghiệm
2.4.1 Giao diện tra cứu triệu chứng bệnh quai bị
Trang 17Người dùng cần biết các triệu chứng của bệnh quai bị (người dùng nhập
trieuchungbenhtrem(X,quaibi) hoặc các triệu chứng của bệnh khác “soi”,
“rubella”, “thuydau”, “sotxuathuyet”), hệ thống SWI-Prolog đưa ra kết quả trả lời
các triệu chứng bệnh quai bị, kết quả trả về được hiển thị trên giao diện Windows Form sau kết nối giữa SWI-Prolog và C# (SWI-Prolog được nạp vào C# nhờ vào thư viện SWIPLCS.dll, cung cấp các lệnh để chuyển C# thành Prolog)
2.4.2 Giao diện tra cứu triệu chứng bệnh rubella
Trang 18Người dùng nhập X,Y,Z là những triệu chứng cần biết của bệnh rubella, hệ thống trả lời những triệu chứng còn thiếu X=sunghach,Y=phatban, và Z=sot của bệnh rubella.
2.4.3 Giao diện chẩn đoán bệnh sởi trên SWI-Prolog
Trang 19Hệ thống chẩn đoán bệnh lần lượt đưa ra các câu hỏi về các triệu chứng bệnh của
bé đã được thiết lập sẵn, người trả lời đưa ra câu trả lời là có (nhập “c.”) hay không (nhập “k.”) ứng với mỗi triệu chứng bệnh chương trình đưa ra Cuối cùng hệ
thống cho ra kết luận bệnh của bé, các triệu chứng tương ứng của bệnh tìm được, các biến chứng bệnh của bé và đưa ra lời khuyên cách chăm sóc bé như thế nào
Trang 20Sau khi tìm hiểu và thực hiện đề tài này, em đã học được cách mô tả, biểu diễn và xử lý tri thức bằng logic dựa trên các sự kiện và luật Do thời gian có giới hạn nên chương trình chỉ mới chẩn đoán được một số bệnh thông thường ở trẻ em
Em xin liệt kê một số kết quả em đạt được và hướng phát triển cho đề tài này:
Kết quả đạt được:
• Giải quyết được bài toán xây dựng hệ chuyên gia chuẩn đoán một số bệnh thường gặp ở trẻ em
• Tìm hiểu kiến thức về các bệnh thường gặp của trẻ em
• Tìm hiểu lập trình trí tuệ nhân tạo Prolog để có thể dựa vào đó phát triển tri thức, mô tả vấn đề bằng suy diễn logic để tìm ra các câu trả lời cho vấn đề, truy vấn
cơ sở tri thức bằng các câu hỏi yes/no và số liệu
• Kết hợp SWI-Prolog với C# trên môi trường Windows Forms để tạo giao
diện trực quan, thân thiện và dễ dùng hơn
Hướng phát triển:
• Xây dựng tập luật có thể xử lý bằng ngôn ngữ tự nhiên
• Xử lý chương trình cho phép trả lời và hỏi đáp liên tiếp giữa SWI-Prolog
và C#
• Thu thập thêm các dữ liệu bệnh của trẻ em để mở rộng hệ chẩn đoán bệnh chuyên sâu hơn, cho nhiều đối tượng khác nhau và đưa ra chẩn đoán bệnh chính xác
và cụ thể hơn
Trang 21TÀI LIỆU THAM KHẢO
[1] Giáo trình các hệ cơ sở tri thức, GS TSKH Hoàng Kiếm, TS Đỗ Phúc, TS
Đỗ Văn Nhơn, năm 2008
[2] Bài giảng Trí tuệ nhân tạo và hệ chuyên gia, TS Nguyễn Thiện Thành, năm 2006
[3] Lập trình Lôgích trong Prolog, PGS.TS Phan Huy Khánh, năm 2004.[4] Artificial Intelligence – Structure and Strategies for Complex Problem Solving (Fourth edition), George F Luger, Addison Wesley Publishing Company, 2002
ngh%C4%A9a-ki%E1%BB%83u-c%E1%BA%A5u-truc-c%E1%BB%A7a-Prolog
http://www.scribd.com/doc/88060280/79/III-1-%C4%90%E1%BB%8Bnh-http://ieeexplore.ieee.org/xpl/articleDetails.jsp?
reload=true&arnumber=5254849&contentType=Conference+Publicationshttp://www.atheenah.com