Một trong những ứng dụng tiêu biểu của trí tuệ nhân tạo là hệ chuyên gia, giúp con người giải quyết các vấn đề phức tạp dựa trên tri thức chuyên môn.. Đề tài "Xây dựng hệ chuyên gia tư v
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
HỆ CHUYÊN GIA
ĐỀ TÀI:
XÂY DỰNG HỆ CHUYÊN GIA TƯ VẤN CHỌN QUẦN ÁO
THỜI TRANG
Sinh viên thực hiện :
Giảng viên hướng dẫn : LÊ THỊ TRANG LINH
Hà Nội, tháng năm 2024
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên
sinh viên
ký
1
2
3
Giảng viên chấm 1:
Giảng viên chấm 2:
Trang 3MỤC LỤC
Trang 4LỜI MỞ ĐẦU
Trong thời đại công nghệ phát triển mạnh mẽ, nhu cầu về việc sử dụng các hệ thống thông minh để hỗ trợ con người trong việc ra quyết định ngày càng trở nên quan trọng Một trong những ứng dụng tiêu biểu của trí tuệ nhân tạo là
hệ chuyên gia, giúp con người giải quyết các vấn đề phức tạp dựa trên tri thức chuyên môn Đối với việc chọn mua quần áo thời trang không chỉ ảnh hưởng đến phong cách mà còn phản ánh cá tính và lối sống của mỗi người Một hệ chuyên gia có thể trở thành công cụ hữu ích, giúp đưa ra tư vấn trên gu thẩm
mỹ, ngân sách và có thể là xu hướng thời trang hiện tại, nhằm đảm bảo sự hài lòng tối đa và phù hợp với nhu cầu cá nhân
Đề tài "Xây dựng hệ chuyên gia tư vấn chọn quần áo thời trang" nhằm
mục đích phát triển một hệ thống có khả năng cung cấp các lời khuyên cụ thể và chính xác, giúp người dùng đưa ra quyết định tối ưu khi chọn mua quần áo thời trang Nhóm em đã cố gắng hoàn thành, nhưng do có nhiều hạn chế về kiến thức
và kinh nghiệm tìm hiểu thực tế, nên báo cáo còn có nhiều sai xót Em rất mong nhận được sự giúp đỡ và góp ý của thầy cô để bài báo cáo của nhóm em được hoàn thiện hơn
Nội dung của báo cáo gồm 3 chương:
Chương 1: Giới thiệu về hệ chuyên gia
Chương 2: Phân tích bài toán
Chương 3: Thiết kế, xây dựng chương trình tư vấn
Kết luận
Cuối cùng nhóm em xin chân thành cám ơn thầy cô đã tạo điều kiện thuận lợi và hướng dẫn chúng em hoàn thành bài tập lớn này
Nhóm em xin trân thành cảm ơn!
Trang 5CHƯƠNG 1: GIỚI THIỆU VỀ HỆ CHUYÊN GIA
1 Giới thiệu hệ chuyên gia.
1.1 Hệ chuyên gia là gì?
Theo E Feigenbaum: “Hệ chuyên gia (Expert System) 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 những bài toán tương đối khó khăn đòi hỏi những chuyên gia mới giải được”
Hệ chuyên gia là một hệ thống tin học có thể mô phỏng (emulates) năng lực quyết đoán (decision) và hành động (making abilily) của một chuyên gia (con người) Hệ chuyên gia là một trong những lĩnh vực ứng dụng của trí tuệ nhân tạo (Artifical Intelligence) như hình dưới đây
Hình 1.1: Một số lĩnh vực ứng dụng của trí tuệ nhân tạo.
Hệ chuyên gia sử dụng các tri thức của những chuyên gia để giải quyết các vấn đề (bài toán) khác nhau thuộc mọi lĩnh vực
Tri thức (knowledge) trong hệ chuyên gia phản ánh sự tinh thông được tích tụ từ sách vở, tạp chí, từ các chuyên gia hay các nhà bác học Các thuật ngữ
hệ chuyên gia, hệ thống dựa trên tri thức (knowledge-based system) hay hệ chuyên gia dựa trên tri thức (knowledge-based expert system) thường có cùng nghĩa
Trang 61.2 Ưu điểm và nhược điểm của hệ chuyên gia.
1.2.1 Ưu điểm.
Phổ cập (Increased availability): Là sản phẩm chuyên gia, được phát triển không ngừng với hiệu quả sử dụng không thể phủ nhận
Giảm giá thành (reduced cost)
Giảm rủi ro (reduced dangers): Giúp con người tránh được trong các môi trường rủi ro, nguy hiểm
Tính thường trực (Permanace): Bất kể lúc nào cũng có thể khai thác
sử dụng, trong khi con người có thể mệt mỏi, nghỉ ngơi hay vắng mặt
Đa lĩnh vực (multiple expertise): chuyên gia về nhiều lĩnh vực khác nhau và được khai thác đồng thời bất kể thời gian sử dụng
Độ tin cậy (Increased relialility): Luôn đảm bảo độ tin cậy khi khai thác
Khả năng giảng giải (explannation) Câu trả lời với mức độ tinh thông được giảng giải rõ ràng chi tiết, dễ hiểu
Khả năng trả lời (fast reponse) Trả lời theo thời gian thực, khách quan
Tính ổn định, suy luận có lý và đầy đủ mọi nơi (steady, une motional, and complete respone at all times)
Trợ giúp thông minh như một người hướng dẫn (intelligent - tutor)
1.2.2 Nhược điểm.
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ạp nhấ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ác dụng ngược lại
Hệ chuyên gia không hoàn toàn đảm bảo hay tính đúng đắn của các luật trong quá trình suy luận
Trang 7 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
1.3 Các thành phần của hệ chuyên gia.
Một hệ chuyên gia kiểu mẫu gồm bảy thành phần cơ bản như sau:
Hình 1.2: Những thành phần cơ bản của hệ chuyên gia.
Cơ sở tri thức (knowledge base) Gồm các phần tử (hay đơn vị) tri thức, thông thường được gọi là luật (rule), thường tổ chức như một cơ sở
dữ liệu
Máy suy diễn ( inference engine) Công cụ (chương trình, hay bộ xử
lý ) tạo ra sự suy luận bằng các quyết định xem những luật nào sẽ làm thỏa mãn các sự kiện, các đối tượng, chọn ưu tiên các luật thỏa mãn, thực hiện các luật có tính ưu tiên cao nhất
Lích công việc (agenda) Danh sách các luật ưu tiên do máy suy diễn tạo ra thỏa mãn các sự kiện, các đối tượng có mặt trong bộ nhớ làm việc
Bộ nhớ làm việc (working memory) Cơ sở dữ liệu toàn cục chứa các sự kiện phục vụ cho các luật
Khả năng giải thích (explanation facility) Giải thích các lập luận của hệ thống cho người sử dụng
Khả năng thu nhận tri thức (explanation facility) Cho phép người
sử dụng bổ sung các tri thức vào hệ thống một cách tự động thay vì tiếp
Trang 8nhận tri thức bằng cách mã hóa tri thức một cách tường minh Khả năng thu nhận tri thức là yếu tố mặc nhiên của nhiều hệ chuyên gia
Giao diện người sử dụng (user interface) là nơi người sử dụng và hệ chuyên gia trao đổi với nhau Cơ sở tri thức còn dược gọi là bộ nhớ sản xuất (production memory) trong hệ chuyên gia
Người ta thường phân loại tri thức theo nhiều cách Theo phân loại chức năng, người ta thường phân biệt hai loại tri thức là:
tri thức phán đoán (assertion knowledge): mô tả các tình huống đã được thiết lập hoặc sẽ được thiết lập
tri thức thực hành (operation knowledge) thể hiện những hậu quả rút ra hay những thao tác cần phải hoàn thiện khi một tình huống đã được thiết lập hoặc sẽ được thiết lập trong lĩnh vực đang xét
Theo phân loại biểu hiện, cũng có hai loại
Tri thức hiện, rõ (explicit knowledge):
Diễn đạt bằng ngôn ngữ hình thức, dễ trao đổi giữa các cá nhân
Có thể biểu diễn bằng các công thức khoa học, các thủ tục tường minh, hoặc nhiều cách khác
Bao gồm thông tin, dữ liệu, sách báo, văn bản, tài liệu đã được hệ thống bằng nhiều phương tiện
Tri thức ngầm, ẩn (tacit knowledge):
Có được và ẩn chứa trong kinh nghiệm của từng cá nhân, mang tính chủ quan, bao gồm những hiểu biết riêng thấu đáo, trực giác, linh cảm, kỹ năng, …
Khó trao đổi hoặc chia sẻ với người khác
Chí có thể học được từ người khác nhờ quan hệ gần gũi trong một khoảng thời gian nào đó
Trang 91.4 Đặc điểm chính của một hệ chuyên gia.
Các đặc điểm chính của một hệ chuyên gia:
+ Các kỹ thuật suy diễn
+ Hỗ trợ suy luận tương đối (không chắc chắn)
+ Trình bày tri thức
+ Giao tiếp người dùng
+ Cơ chế giải thích
1.4.1 Các kỹ thuật suy diễn
- Suy diễn lùi:
Là tính hiệu quả để giải quyết vấn đề mà có thể mô hình hóa lại là cấu trúc lựa chọn các vấn đề Trang bị cho hệ thống khả năng chọn cái tốt nhất từ những cái có thể
Kiến thức được cấu trúc lại và đưa vào các luật, chúng mô tả làm như thế nào một khả năng nào đó được chọn Luật chia nhỏ vấn đề thành nhiều vấn đề khác nhỏ hơn Có nhiều vấn đề được đặt ra, khó mà có thể thống kê được số lượng các câu trả lời và chọn được một câu đúng nhất trong tất cả những câu đó
- Suy diễn tiến:
Là sử dụng tập luận tương tự nhau nhằm cho việc sử dụng suy diễn lùi Mặc
dù vậy, tiến trình suy diễn có khác đi, hệ thống giữ vết, cho tình trạng hiện tại của giải pháp và tìm kiếm luật, điều này sẽ dẫn đến việc đi dần đến giải pháp cuối cùng
Ví dụ: Hệ thống thiết lập chỗ cho các đồ đạc trong 1 phòng Có 1 phòng và 1
số các đồ đạc chưa được sắp vào 1 chỗ Hệ thống sẽ chịu trách nhiệm bố trí đồ đạc trong phòng Khi tất cả các món đồ được đặt vào thì hệ thống hoàn tất và tiến hành in ra lời giải cuối cùng Sau đây là 1 ví dụ về luật đặt ti vi cạnh ghế trường kỉ: If Tivi chưa được đặt và ghế trường kỉ đặt gần tivi (X) và (Y) đối diện (X) thì: Đặt tivi (X)
Trang 101.4.2 Biểu diễn tri thức.
- Dạng đối tượng- thuộc tính- giá trị.
Cơ chế tổ chức nhận thức của con người thường được xây dựng dựa trên các sự kiện (fact), xem như các đơn vị cơ bản nhất Một sự kiện là một dạng tri thức khai báo Nó cung cấp một số hiểu biết về một biến có hay một vấn đề nào
đó
Một sự kiện có thể được dùng để xác nhận giá trị của một thuộc tính xác định của một vài đối tượng VD: Mệnh đề “quả bóng màu đỏ” xác nhận “đỏ” là giá trị thuộc tính “màu” của đối tượng “quả bóng” Kiểu sự kiện này được gọi là
bộ ba Đối tượng- Thuộc tính- Giá trị (O-A-V- Object-Attribute-Value) Nhưng khi biểu diễn cho một vấn đề có tính tương đối thì chúng ta phải thêm tác nhân chắc chắn vào bên trong luật (CF)
rule(Name, LHS, RHS)
rhs(Goal, CF)
lhs(GoalList)
av(Attribute, Value)
rule(Name, lhs([av(A1, V1), av(A2, V2), ]), rhs(av(Attr, Val), CF) )
rule(5,
lhs([
av(turns_over, yes),
av(gas_gauge, empty)
]),
rhs(
av(problem, flooded), 80
)
)
left hand side (LHS) ==>> right hand side (RHS)
Trang 11-Dạng khung (Frame):
Là một cấu trúc dữ liệu chứa đựng tất cả những tri thức liên quan đến một đối tượng cụ thể nào đó Frames có liên hệ chặt chẽ đến khái niệm hướng đối tượng (thực ra frame là nguồn gốc của lập trình hướng đối tượng) Ngược lại các phương pháp biểu diễn tri thức đã được đề cập đến, frame “đóng gói” toàn bộ một đối tượng, tình huống hoặc cả một vấn đề phức tạp thành một thực thể duy nhất có cấu trúc Một frame bao hàm trong nó một khối lượng tương đối lớn tri thức về một đối tượng, sự kiện, vị trí, tình huống hoặc những yếu tố khác Do
đó, frame có thể giúp ta mô tả khá chi tiết một đối tượng
rule <rule id>:
[<N>: <condition>, ]
==>
[<action> ]
Trong đó:
rule id - mã nhận dạng luật
N -tùy chọn cho điều kiện
condition -mẫu điều kiện
action -hành động
frame(name, [
slotname1 - [
facet1 val11, facet2 val12, ],
slotname2 - [
facet1 val21, facet2 val 22,
],
]
)
Trang 121.4.3 Suy luận không chắc chắn.
- Độ tin cậy:
goal problem
rule 1
if
not turn_over and battery_bad
then
problem is battery
rule 2
if
lights_weak
then
battery_bad cf 50
rule 3
if
radio_weak
then
battery_bad cf 50
rule 4
if
turn_over and
smell_gas
then
problem is flooded cf 80
rule 5
if
turn_over and
gas_gauge is empty then
Trang 13problem is out_of_gas cf 90.
rule 6
if
turn_over and gas_gauge is low
then
problem is out_of_gas cf 30
ask turn_over
menu (yes no)
prompt 'Does the engine turn over?"
ask lights_weak
menu (yes no)
prompt 'Are the lights weak?"
ask radio_weak
menu (yes no)
prompt 'Is the radio weak?"
ask smell_gas
menu (yes no)
prompt 'Do you smell gas?"
ask gas_gauge
menu (empty low full)
prompt 'What does the gas gauge say?"
-Luật với độ tin cậy:
Có những khẳng định không phải lúc nào cũng là tuyệt đối 100% Có nhiều
vấn đề chúng ta không thể khẳng định được chúng là hoàn toàn đúng hoặc hoàn toài sai
Chẳng hạn, khi đang đi dạo trên đường, chúng tôi muốn ghé nhà anh bạn
nhưng chợt nghĩ đến việc là “Thường thường, vào lúc 7h tối như thế này thì anh
Trang 14ta đã đi chơi với bạn gái” Như vậy nghĩa là sao ? Không phải là anh ta không
có
nhà, nhưng không hẳn là anh ta có nhà, trạng từ “thường thường” đó chính là độ tin cậy vào việc anh ta có ở nhà lúc này hay không?
Chẳng hạn, khi phỏng vấn về xem hơi thì hệ thống sẽ hỏi người dùng rất nhiều câu hỏi, và chúng sẽ tổng hợp những gì mà người dùng cung cấp để cuối cùng cho ra được các vấn đề mà chúng nghi ngờ Khi đề nghị ra giải pháp cho người sử dụng hệ thống hiển thị thông tin về mức độ tin cậy của mệnh đề Như trong VD sau đây: Độ nghi ngờ về tình trạng hết gas là đến 90% trong khi đó hiện
tượng gas bị rò rỉ là lên đến 80%
1.4.4 Giao tiếp với người dùng
-Hỏi người dùng:
Để hỏi người dùng về các thông tin về đặc điểm cá nhân của đối tượng Giả sử ta có các thuộc tính, hành động của một động vật là eat (ăn), feet (chân, wings (đuôi), neck (cổ), color (màu)
Ta có các vị từ sau:
eats(X) :-ask(eats, X)
feet(X) :-ask(feet, X)
wings(X) :-ask(wings, X)
neck(X) :-ask(neck, X)
color(X) :-ask(color, X)
Vị từ ask được thiết kế với mục đích là hỏi đối tượng ấy có thuộc tính A,V
Trang 15và chờ người dùng nhập vào câu trả lời.
ask(A,
V]:-write(A:V),
write('? '),
read(yes)
- Ghi nhận trả lời người dùng:
Những thông tin mà người dùng cung cấp sẽ được hệ thống ghi nhận lại vào cơ sở dữ liệu (với sự xác nhận của người dùng khi trả lời câu hỏi: yes) bằng
vị từ assert với mẫu do kỹ sư chuyên môn cung cấp
ask(A,
V):-known(yes, A, V), !
ask(A,
V):-known(, A, V), !,
fail
ask(A,
V):-write(A:V),
write('?: '),
read(Y),
asserta(known(Y, A, V)),
Y == yes
- Câu hỏi có nhiều giá trị:
Trang 16Với trường hợp câu hỏi có nhiều giá trị thì theo thuật toán cải tién cho vị từ
ask là chúng ta thêm mẫu multivalued để ghi nhận thuộc tính nào đó của đối tượng
mang nhiều giá trị
multivalued(voice)
multivalued(feed)
ask(A,
V):-not multivalued(A),
known(yes, A, V2),
V \== V2,
!, fail
-Hệ thống thực đơn người dùng:
Khi người dùng sẽ được hệ thống giao tiếp thông qua hệ thống thực đơn
đã được thiết kế Vị từ menuask được thiết kế để người dùng qua đó giao tiếp với hệ thống
Đầu tiên với thuộc tính- giá trị, khi muốn hỏi giá trị cho thuộc tính nào đó thì các câu trả lời sẽ tùy thuộc vào danh sách các câu trả lời mà hệ thống đã cung cấp sẵn thông qua tham số MenuList, khi muốn truy vấn người dùng một thuộc tính của đối tượng nào đó Khi người trả lời câu hỏi hệ thống sẽ kiểm tra xem câu trả lời của người dùng có nằm trong danh sách thực đơn hay không? (Điều này sẽ được kiểm tra thông qua vị từ check-val) Khi đã xác thực là câu trả lời hợp lệ thì vị từ assert sẽ ghi nhận câu trả lời vào cơ sở dữ liệu
-Tạo Shell:
Trang 17Cùng giống như một phần mềm bình thường, để giao tiếp với người dùng
hệ thống phải cần đến shell Shell chẳng qua là một cầu nối giao tiếp trung gian giữa người dùng và hệ thống, thông qua đó người dùng và hệ thống có thể trao đổi thông tin, liên lạc với nhau
Quy trình làm viện của hệ thống với người dùng là như sau:
+Khởi động shell
+Nạp cơ sở tri thức vào hệ thống
+Tương tác giữa người dùng và Shell
+Hệ thống dựa cơ sở trên thông tin người dùng cung cấp để giải quyết vấn đề
1.4.5 Cơ chế giải thích
-Giải thích cho người dùng:
Xe khởi động được? Sai
Động cơ không chạy? Đúng
Bạn nghe mùi xăng? Đúng
Lời đề nghị- Chờ khoảng 5 phút sau hãy khởi động lại
Tại sao?
Hệ thống sử dụng luật:
Nếu:
Xe không khởi động và
Động cơ không chạy và
Có mùi nhiên liệu
Trang 18Đề nghị 5 phút sau hãy khởi động xe lại
Trong ngữ cảnh cuộc hội thoại giữa người và hệ thống trợ giúp ở trên, sau khi đưa ra lời đề nghị là chờ thêm 5 phút thì nếu người dùng có nhu cầu muốn xem là “tại sao lại như vậy” thì hệ thống sẽ cung ứng những lý do tại sao chúng ta phải chờ Đối với người dùng việc chúng ta giải thích lý do tại sao chúng ta giải thích sẽ làm người dùng rõ vấn đề hơn
-Giải thích cho kỹ sư:
Đối với kỹ sư thiết kế hệ thống và kỹ sư chuyên môn, giải thích đối với họ
là một việc hết sức quan trọng trong quá trình thiết kế và xây dựng hệ, họ có thể căn cứ vào đó để lần ra được những bug trong chương trình, có thể căn cứ vào
đó để kiểm tra tính đúng đắn của hệ, dễ dàng phát hiện được những chỗ hỏng về mặc chuyên môn, cũng như các lỗi về kỹ thuật khi hệ thống đã được vận hành Những giải thích này có thể xóa khỏi hệ thống khi hệ thống đã hoàn tất, nhưng đôi khi như thế sẽ làm công tác bảo trì sẽ gặp nhiều khó khăn hơn
-Các loại giải thích:
Có 4 loại giải thích thường được sử dụng trong hệ chuyên gia:
+Lần vết theo suy luận: của luật (rất hợp đối với người thiết kế hệ thống)\ +Giải thích How: là làm như thế nào để có được suy luận
+Giải thích Why: là lời giải thích tại sao hệ thống hỏi vấn đề đó
+Giải thích Why not: là kết luận được cung cấp
Như đã khảo sát, quá trình suy diễn lùi cũng là quá trình đối thoại giữa người dùng và hệ chuyên gia Đó là khi hệ chuyên gia cần nhập dữ liệu cho các
sự kiện yêu cầu (là nút tận cùng- loại nút số 3) Ở đây người ta có thể có quyền đặt ra những câu hỏi nghi vấn như Tại sao? Why phải cung cập số liệu này?