CHƯƠNG 1: HỆ CHUYÊN GIA1.1 Giới thiệu hệ chuyên gia Trong lĩnh vực trí thông minh nhân tao, một hệ chuyên gia là một hệ thống máy tính cókhả năng mô phỏng hay hành động giống như một chu
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO BIỂU DIỄN TRI THỨC VÀ
SUYLUẬN
TÌM HIỂU HỆ CHUYÊN GIA VÀ CÁC
PHƯƠNG PHÁP SUY DIỄN
Tháng 03 Năm 2014
Trang 4CHƯƠNG 1: HỆ CHUYÊN GIA
1.1 Giới thiệu hệ chuyên gia
Trong lĩnh vực trí thông minh nhân tao, một hệ chuyên gia là một hệ thống máy tính cókhả năng mô phỏng hay hành động giống như một chuyên gia thật sự, liên quan đến cácvấn đề như dự đoán, đưa ra lời khuyên, hổ trợ quyết định…
Sự tương đương của hệ chuyên gia và chuyên gia được thể hiện qua:
• Khả năng suy luận dựa trên không gian kiến thức của con người
• Giải quyết các vấn đề phức tạp bằng heuristic hay các kỹ thuật gần đúng
• Giải thích và điều chỉnh các giải pháp dựa trên các sự kiện
Các hệ chuyên gia được thiết kế để có thể giải quyết các vấn đề phức tạp bằng cáchsuy luận trên cơ sở tri thức, và được biểu diển chủ yếu theo dạng:
IF…THEN…ELSE
Hơn là các thủ tục code thường dùng Dưới đây là một vài điểm nội bật của hệchuyên gia khi so sánh với các chuyên gia khi được phát triển và ứng dụng trong các lĩnhvực
• Chi phí thấp
• Các kết quả trả về thường là mang lại kết quả đúng
• Độ tin cậy và tính sẵn sàng cao
• Thay thế con người trong những môi trường nguy hiểm
• Sao chép khả năng của một chuyên gia
• Có khả năng giải thích và suy luận mà không qua cảm xúc, thái độ
Trang 5Hình 1.1: Phân hệ của hệ chuyên gia trong hệ thống AI
1.2 Kiến trúc hệ chuyên gia
Một hệ chuyên gia bao gồm những thành phần sau:
• Bộ hổ trợ giải thích (Explanation facility): cung cấp các kiến thức trong quá trình
suy luận khi đưa ra một kết luận hay một quyết định nào đó
• Bộ hổ trợ thao tác kiến thức (Knowledge acquisition facility): cung cấp phương
tiện đề nắm bắt các sự kiện và lưu trữ kiến thức được suy luận từ chuyên gia vàotrong cở sở tri thức
• Cơ sở tri thức(Knowledge base): lưu trử các tri thức của con người, thường là
theo các luật IF THEN…ELSE
• Không gian làm việc (Working memory ): một cơ sở dữ liệu các sự kiện, được sử
dụng trong các luật suy diễn
• Bô suy diễn(Inference engine): thực hiện quá trình suy diễn trên các luật, có thểdựa vào độ ưu tiên hoặc các kiến thức heuristic đề tìm lời giải
• Bộ ghi nhật ký(Agenda): một danh sách các luật đã thảo mãn theo độ ưu tiên, qua
quá trình suy diễn các sự kiện
• Bộ so khớp mẫu (Pattern matcher): so sánh các luật và các sự kiện
Trang 6Hình 1.2: Mô hình hệ chuyên gia
Quá trình thực thi của hệ chuyên gia
Bộ phận được xem là quan trọng bậc nhất trong hệ chuyên gia là bộ suy diện Bộ suydiễn hoạt động theo quy trình tròn sau đây:
• Bộ so khớp mẫu (Pattern matcher): sử dụng các thuật toán để tạo ra danh sách
các luật, dựa vào các sự kiện đã tìm được trong bộ không gia làm việc, ví dụ nhưthuật toán Rete
• Bộ ghi nhật ký(Agenda): xác định thứ tự mà các luật phát sinh từ danh sách
• Bộ giải quyết mâu thuẫn(conflict resolver): chọn các luật có độ ưu tiên các nhất
từ bộ ghi nhật ký
• Bộ thực thi hành động: thực thi các kết quả suy luận vế phài (Right hand side) củacác luật được chọn và xóa các luật này từ bộ ghi nhật ký
• Bộ so khớp mẫu (Pattern matcher): được kích hoạt trở lại, thực hiện cập nhật bộ
ghi nhật ký với các luật thỏa mãn vế trái và xóa các luật không thỏa
Trang 7Quy trình này tiếp tục cho đến khi không còn luật nào tồn tại trong bộ ghi nhật ký.Một luật được kích hoạt khi và chỉ khi vế trái của nó thỏa mãn Tính năng quan trongnày trong hệ chuyên gia được gọi là sự khúc xạ (Refraction) Nó đảm bảo rằng một hệchuyên gia sẽ không bị lặp vòng vô tận
1.2.1 Quá trình thu thập tri thức (Knowledge Engineering):
Thu thập tri thức là một quá trình trích rút dữ liệu của một lĩnh vực cụ thể, thông qua cácchuyên gia, sau đó cấu trúc, định dạng và tích hợp vào trong cơ sở tri thức của hệ chuyêngia
Các dữ liệu rút trích được có thể bao gồm nhiều luật logic hay các kiến thức heuristicđược sử dụng bởi các chuyên gia trong một số trường hợp cụ thể nào đó Không giốngnhư một thuật toán đảm bảo sẽ tìm ra được lời giải chính xác hoàn toàn trong một khoảngthời gian nhất định Hệ chuyên gia chỉ đảm bảo sẽ tìm ra được lời giải hợp lý nhất
Dựa vào trình độ, mức độ kiến thức của chuyên gia trong quá trình hiểu biết sự kếtnồi giữa các kiến thức hay các suy luận, hệ quả; một kỹ sư lập trình kiến thức có thể xâydựng nên một hệ chuyên gia sử dụng các quy tắc heuristic Các kiến thức này thườngđược biểu diễn dưới dạng các luật được gọi là cơ sở tri thức
1.2.2 Biểu diễn tri thức
Một chương trình máy tính gồm cấu trúc dữ liệu và các thuật toán Trong khi đó hệchuyên gia bao gồm hai phần chính là cơ sở tri thức và bộ suy diễn
Tri thức là một phần trong mô hình phân cấp “Tháp kiến thức”:
Trang 8Hình: 1.3 Tháp tri thức
• Dữ liệu tạp (Noise): các loại dữ liệu không xác định, không rõ rang
• Data: những dữ liệu hữu ích, có thể dùng đề trích xuất các thông tin
• Thông tin (Information): những dữ liệu hữu ích cho kiến thức
• Kiến thức (Knowledge): các luật được rút ra từ các thông tin
• Siêu tri thức (Metaknowledge): các luật được rút ra từ các tri thức
1.3 Các ứng dụng của hệ chuyên gia
Hayes-Roth chia các ứng dụng của hệ chuyên gia thành 10 loại:
Loại
Diễn dịch (Interpretation)
Trang 91.4 Một số hạn chế của hệ chuyên gia
• Hệ chuyên gia có thể hoạt động tốt trong một lĩnh vực hẹp với một độ phức tạpnhất định Viêc mô hình hóa một hệ chuyên gia cho nhiều lĩnh vực có thê gấy tácdụng ngược lại
• Hệ chuyên gia không hoàn toàn đảm bảo chất lượng hay tính đúng đắn của cácluật trong quá trình suy luận
• Viêc thêm các luật, các tri thức mới có thể sẽ xung đột với những luật hiện tại và
có thể giảm độ tin cậy của hệ thống
Trang 10CHƯƠNG 2: CÁC PHƯƠNG PHÁP SUY LUẬN
2.1 Suy diễn lùi
Suy diễn lùi là một phương pháp suy luận, được diễn tả là một quá trình kết xuất ngược
từ tập đích (goals) Suy diễn lùi thường được ứng dụng trong hệ chứng minh bài toán tựđộng, các bộ suy diễn, hệ hổ trợ tìm chứng cứ và trong nhiều ứng dụng trong các hệthống AI
Suy diễn lùi được hiện thực trong hệ thống lập trình logic bởi SLD resolution Cácluật suy diễn là dựa trên module ponens Đầy là một trong hai phương pháp được sử dụngtrong các hệ thống suy diễn và phép logic kéo theo Suy diễn lùi thường sữ dụng chiếnlược tìm kiếm theo chiều sau – DFS Ví dụ như trong ứng dụng prolog
Quá trình hoạt động:
Suy diễn lùi bắt đầu với một danh sách các dữ liệu đích và thực hiện suy luận ngược
từ kết quả cho đến các tiên đề suy ra nó Trong một bô suy diễn sử dụng suy diễn ngược,
sẽ tìm kiếm các luật suy diễn cho đến khi tìm được một mệnh đề THEN… mà thỏa nãnvới tập đích.Nếu như mà tập RHS của luật là chưa xác định thì nó sẽ them luật này vàotập đích và tiếp tục quá trình suy diễn
Một ví dụ của suy diển lùi:
Trang 11“chớp đỏ”
A N D
Điện vào máy “có”
• Cĩ âm thanh đọc ổ cứng
• Tình trạng đèn màn hình "xanh" hoặc "chớp đỏ"
• Khơng sử dụng được máy tính
• Điện vào máy tính "cĩ" hay "khơng"
Trang 12lỏng, hệ thống phải lần lượt đi vào các nhánh để kiểm tra các điều kiện như điện vào máy
"có", âm thanh ổ cứng "không"…Tại một bước, nếu giá trị cần xác định không thể đượcsuy ra từ bất kỳ một luật nào, hệ thống sẽ yêu cầu người dùng trực tiếp nhập vào Chẳnghạn như để biết máy tính có điện không, hệ thống sẽ hiện ra màn hình câu hỏi "Bạn kiểmtra xem có điện vào máy tính không (kiểm tra đèn nguồn)? (C/K)" Để thực hiện được cơchế suy luận lùi, người ta thường sử dụng ngăn xếp (để ghi nhận lại những nhánh chưakiểm tra)
Phương pháp suy diễn lùi thường được dùng trong các hệ chuyên gia, các ngôn ngữlập trình như Prolog, Knowledge Machine và ECLiPSe hổ trợ suy diễn lùi qua bộ suydiễn của chúng
2.2 Suy diễn tiến
Đây cũng là một phương pháp dùng trong bộ suy diễn của hệ chuyên gia và đối lặp vớivới phương pháp suy diễn lùi Nó cũng dựa trên modus ponens
Suy diễn tiến bắt đầu với tập sự kiện và sử dụng các luật suy diễn để suy ra nhiều dữkiện khác cho đến khi.tập đích được tìm thấy một bộ suy diễn sử dụng suy diễn tiến khi
sử dụng kỹ thuật này sẽ tìm kiếm trên tập luật đến khi kết quả (IF mệnh đề) là đúng, vàthêm tập dữ kiện của mệnh đề THEN, đề tiếp tục quá trình suy ra tập đích cần tìm
Trang 13If G⊂ T then write (“thành công”)
Else write (“không thành công”);
End;
2.3 Suy diễn Heuristic
Suy diễn heutistic là phương pháp suy diễn dựa vào kinh nghiệm, như là một phươngpháp tạm thời nhưng hợp lý nhấm tìm ra giải pháp cho vần đề hiện tại
Suy diễn heuristic có thể giúp khám phá ra giải pháp nhanh chóng cho các vấn đề suyluận phức tạp, đặc biệt là yêu cầu về mặt thời gian tìm kiếm và không gian dữ liệu tínhtoán lớn
Trang 14quan hệ các thuộc tính mục tiêu
Một luật sẽ có một độ ưu tiên nhất định, nếu như nhiều luật cùng thỏa mãn điều kiệnđầu vào thì ưu tiên chọn luật có độ ưu tiên cao
Mỗi luật sẽ có những thuộc tính đính kèm, để giúp quá trình chọn luật hiệu quả hơnnhằm sinh ra những quan hệ, những sự kiện mà hướng đến mục tiêu
Suy diễn heuristic thường được kết hợp với suy diễn tiến trong các bộ máy suy diễn
để tăng tính hiệu quả của chương trình
2.4 Phương pháp loại bỏ luật thừa và luật mâu thuẫn
Các luật trong Bộ suy diễn có thể có khả năng thừa, trùng lắp hoặc mâu thuẫn Do quátrình xây dựng tập luật và cập nhật trong quá trình hoạt động, dẫn tới kết quả không chínhxác
Tuy quá trình xem xét và thao tác tối ưu hóa các luật là một thao tác khó, vì giữa cácluật thường tồn tại các quan hệ không tường minh Dưới đây là một số phương pháp tối
ưu hóa tập luật:
2.4.1 Loại bỏ luật thừa
• Rút gọn vế phải
Quy tắc: thực hiện loại bỏ những sự kiện bên vế phải nếu sự kiện đã xuất hiện ở vế trái.Nếu sau khi rút gọn mà vế phải rỗng thì loại bỏ luật khỏi cơ sở luật
Ví dụ: A ∧ B → A ∧ C là hoàn toàn tương đương với A ∧ B → C
Thuật toán loại bỏ thừa vế phải:
for each rule r trong R do
Trang 15for each event a < RHS(r) do
if a < LHS(r) thenremove A from RHS(r)endif
Thuật giải
For each luật r do X : A1 ∧ A2, …, An → Y thuộc R
For each event Ai thuộc r do
Gọi luật r1 : X\{Ai} → Y và S = ( R\{r} ) ∪ {r1}
If bao đóng (X\{Ai}, S) ≡ bao đóng (X, R) then
X := X \ {Ai}End if
Trang 16• Luật thừa: luật dẫn A → B được gọi là thừa nếu luật này có thể suy luận từ nhưng luậtcòn lại trong tập luật
Ví dụ: tập 3 luật {A → B, B → C, A → C} thì luất thứ 3 là luật có thể suy luận từ hai luật còn lại, do đó đây là luật thừa
2.4.2 Luật mâu thuẫn
Gọi R: tập luật của cơ sở tri thức
r ∈R: X → Y
(X)R – {r} : tập các mệnh đề suy được từ mệnh đề X bằng các luật thuộc R – {r} Y: phủ định của Y
Trang 17Luật r được gọi là mâu thuẫn nếu: Y ∈ (X)R – {r}
- Kiểm tra nếu Y ∈(X)R’ không?
Nếu đúng: thì luật r mâu thuẫn đối với tập luật R’
Ngược lại r không mâu thuẫn
Loại bỏ luật mâu thuẫn trong CSTT
B1: Xét luật r trong R của CSTT
Kiểm tra r có mâu thuẫn với tập R – {r} không?
B2: Nếu mâu thuẫn thì R = R – {r}
B3: Quay lai B1 với luật khác
Vòng lặp suy diễn
Trang 181 2 R
3
…
Rn
Hình 2.1: Vòng lặp suy diền
Thuật toán:
Gọi R: tập luật sẵn có của cơ sở tri thức
r: X → Y là luật mới cần thêm vào
B1 Xác định (Y)R = {Aj / Aj các mệnh đề có thể suy diễn từ Y dựa trên tập luật R} (baođóng của Y trên R)
B2 Nếu X ∈ (Y)R thì luật r gây ra vòng lặp
2.5 Hệ chuyên gia chẩn đoán một số triệu chứng cơ bản của ô tô
2.5.1 Quy trình hoạt động
Ứng dụng là tập hợp các luật trên công cụ phát triển hệ chuyên gia CLIPS, cho phép dựđoán các vấn đề hỏng hốc cơ bản phát sinh trong quá trình sử dụng ô tô CLIPs hổ trợmạnh định nghĩa độ ưu tiên , các thuộc tính, các toán tử kết hợp luật…
Quá trình dự đoán thông qua các tập luật được định nghĩa trước và các thông tinthông qua tương tác với người dùng Các câu hỏi đưa ra bởi hệ thống sẽ biến đổi tùy theokết quả trả lời trước đó, và theo một trình tự ưu tiêu nhất định Tập các câu hỏi của hệthống:
• Xe khởi động được không ?
• Xe nổ máy không ?
Trang 19• Xe chạy bình thường không ?
• Xe phát tiếng kêu không ?
• Tốc độ chạy của động có có yêu không ?
• Có khí ga bóc ra từ xe không?
• Quan sát bề mặt các bộ phân của xe thấy như thế nào ?
• Hệ thống đanh lửa hoạt động không ?
Một luật trong CLIPS:
(defrule normal-engine-state-conclusions ""
(declare (salience 10)) ; Độ ưu tiên của luật
(working-state engine normal) ; Phần vế trái của luật
=>
(assert (repair "Khong can sua chua.")) ; phần về phài của luật
(assert (spark-state engine normal))
(assert (charge-state battery charged))
(assert (rotation-state engine rotates))); hàm assert dùng để xây dựng sự kiện mới
CLIPS dùng một trình quản lý các sự kiện phát sinh hiện tại của hệ thống, đề xácđịnh luật nào được thỏa đề thực thi và tạo thêm các sự kiện thông qua cơ chế suy diễntiến của nó
Bên cạnh đó trong CLIPs, cho phép định nghĩa các function để xử lý các kết quảnhận được qua tương tác với người dùng Các function có thể là một câu hỏi với nhiềukết quả tùy chọn, hoặc là câu hỏi yes/no
Một dạng hàm trong CLIPs:
(deffunction yes-or-no-p (?question)
(bind ?response (ask-question ?question yes no y n))
(if (or (eq ?response yes) (eq ?response y))
Trang 202.5.2 Các chức năng chính
Hình 2.2: Hộp thoại hiện thị các sự kiện
Hình 2.3: Tiến trình các luật kích hoạt trong CLIPs
Trang 21Hình 2.4: Một trường hợp chẩn đoán của chương trình
Trang 22CHƯƠNG 3: KẾT LUẬN
Trong các hệ thống thông minh hiện nay, hệ chuyên gia ngày càng đóng một vai trò quantrọng để hổ trợ con người đưa ra những dự đoán, chẩn đoán, lời khuyên…trong nhiềulĩnh vực Hệ thống chuyên gia được phát triển là dựa vào những qui tắc, những kiến thứccủa chuyên gia nên nó có thể phần nào thay thế được chuyên gia để đưa ra một số quyếtđịnh
Quá quá trình tìm hiểu và nghiên cưu, Báo cáo đã trình bày chi tiết các bộ phận cấuthành nên hệ chuyên gia, mà trong đó hai thành phần quan trọng nhất là cơ sở tri thức và
bộ suy diễn
Bên cạnh đó, báo cáo cũng giới thiệu một số phương pháp suy diễn thường được sửdụng trong hệ chuyên gia là suy diễn lùi, suy diễn tiến và suy diễn heuristic Một số hổtrợ suy diễn mạnh như Prolog, Knowledge Machine, ECLiPSe , CLIPS
Cùng với đó, Báo cáo trình bày ứng dụng demo chẩn đoán các hỏng hốc thôngthường của ô tô quá công cụ phát triển các hệ chuyên gia CLIPs
Trang 23TÀI LIỆU THAM KHẢO
[1] PGS.TS Đỗ Văn Nhơn(2014), Bài giảng Biểu diễn tri thức và suy luận, Đại học
CNTT, Đại học Quốc gia Tp.HCM
[2] GS-TSKH Hoàng Kiếm – Bài giảng seminar chuyên đề Công nghệ tri thức vả ứngdụng 2013
[3] Elsevier , EXPERT SYSTEMS WITH APPLICATIONS An International Journal, 2014
[4] Yuliadi Erdani, Developing Backward Chaining Algorithm of inference Engine in Ternary Grid Expert System , 2012
[5] www.en.wikipedia.org/wiki/Expert
[6] www.en.wikipedia.org/wiki/Inference_engine