4. Cơ sở tri thức - fes - Food Expert System

Download Report

Transcript 4. Cơ sở tri thức - fes - Food Expert System

Bài tập lớn Hệ cơ sở tri thức
GV hướng dẫn: Hoàng Thị Hải Yến
Giới thiệu đề tài
 Vấn đề chọn món ăn.
 Dịch vụ web.
 FES – Food Expert System.
Giới thiệu nhóm
 Nguyễn Việt Hà
 Lê Ngọc Minh
 Đỗ Bích Ngọc
 Lê Anh Quang
Phân công công việc
STT
Họ và tên
Nhiệm vụ
Công việc
1.
Nguyễn Việt Hà
Trưởng nhóm
- Lập trình giao diện.
- Viết luật.
- Thiết kế module hệ thống
2.
Lê Ngọc Minh
Giao diện web.
- Lập trình giao diện.
- Giao tiếp giữa hệ thống và
module suy diễn.
3.
Đỗ Bích Ngọc
Module suy
diễn.
- Nghiên cứu và chỉnh sửa
framework suy diễn.
- Biểu diễn tri thức.
- Làm slide.
4.
Lê Anh Quang
Tri thức.
- Viết luật.
- Thu thập tri thức món ăn.
Nội dung chính
1.
2.
3.
4.
5.
Cơ sở lý thuyết
Kiến trúc chương trình
Mô hình suy diễn
Cơ sở tri thức
Demo chương trình
Hệ chuyên gia
2. Prolog và lập luận không chắc chắn
1.
Hệ chuyên gia
 Hệ chuyên gia là một hệ thống máy tính mô phỏng
hoạt động ra quyết định của một chuyên gia.
 Hệ chuyên gia được thiết kế để giải quyết các vấn đề
phức tạp về lý luận tri thức.
 Hệ chuyên gia gồm hai phần:
 Cơ sở tri thức
 Máy suy diễn
Prolog và lập luận không chắc chắn
 Prolog là một ngôn ngữ lập trình logic phổ biến với cú
pháp đơn giản.
 Khi nói tới một sự kiện, ta thường không thoải mái
khi nói tới nó một cách tuyệt đối, thay vào đó, ta sử
dụng một hệ số gọi là niềm tin hay độ chắc chắn của sự
kiện.
Hệ số chắc chắn
 Hệ số chắc chắn: -1 ≤ CF ≤ 1
 Tính toán hệ số không chắc chắn
 Luật thông thường
 Luật hội
 Luật tuyển
 Nhiều luật cùng kết luận
Mô hình phiên hỏi đáp
2. Cơ sở tri thức người dùng
3. Hỏi đáp trên nền web
1.
Kiến trúc hệ thống
 Kiến trúc hệ thống
 Cơ sở tri thức (người dùng, món ăn).
 Máy suy diễn.
 Giao diện web.
Phiên hỏi đáp
 Một phiên làm việc gồm:
 Mục tiêu cần giải quyết.
 Danh sách các câu hỏi cần trả lời đến khi vấn đề được giải
quyết.
 Phản hồi từ người dùng.
Phiên hỏi đáp (tiếp)
 Phản hồi từ người dùng có thể là:
 Hành động.
 Câu hỏi.
 Câu trả lời.
 Bỏ qua câu hỏi.
Hỏi đáp trên nền web
 Phiên hỏi đáp kéo dài:
 Tốn kém tài nguyên.
 Không khả thi (mất điện, time-out…)
 Giải pháp:
 Đưa ra câu hỏi: Ngắt kết nối, sử dụng câu trả lời “mặc
định”.
 Người dùng trả lời: Lưu trữ câu trả lời, tiến hành lại suy
diễn từ đầu với tri thức mới.
Cách thức đưa ra lựa chọn
2. Biểu diễn tri thức
3. Mô hình máy suy diễn
1.
Cách thức đưa ra lựa chọn
 FES gợi ý món ăn dựa vào khả năng “thích” món ăn đó
của người sử dụng.
 Đối với mỗi một món ăn, FES đi “chứng minh” người
dùng thích món ăn đó và tính độ chắc chắn của sự kiện
này.
 FES gợi ý bữa ăn bằng cách lựa chọn các món mà người
dùng “thích nhất” để gợi ý trước.
 FES sử dụng mô hình suy diễn lùi.
Biểu diễn tri thức
 Tri thức của FES gồm có tập sự kiện (món ăn, người
dùng), tập luật và tập các câu hỏi với người dùng.
 Một sự kiện được biểu diễn bởi vị từ fact gồm hai
phần:
 av(Attribute, Value): Cặp thuộc tính-giá trị.
 CF: Độ chắc chắn của sự kiện.
 VD: fact(av(age, 22), 1).
Biểu diễn tri thức (tiếp)
 Một luật được biểu diễn bởi vị từ rule gồm ba phần:
 id: ID của luật.
 lhs: Vế trái của luật hay mệnh đề if.

Vế trái của luật là một danh sách trong đó chứa các sự kiện phải
chứng minh.
 rhs: Vế phải của luật hay mệnh đề then.
 Vế phải của luật là một cặp av và CF.
 VD:
rule(
'P2',
lhs([av(age, X), X >= 0, X =< 14]),
rhs(av(ageCategorize, child), 0.85)
).
Biểu diễn tri thức (tiếp)
 Một câu hỏi được biểu diễn bởi vị từ askable gồm
hai phần:
 Sự kiện hỏi được.
 Câu hỏi tương ứng.
 VD:
askable(like_taste(hot), 'Bạn thích ăn cay
không?').
Cách thức suy diễn
 Hoạt động chính của FES là chứng minh một sự kiện
cùng với độ chắc chắn của sự kiện đó.
 Đối với một sự kiện:
 Nếu sự kiện đó đã biết (có trong tri thức), FES đưa ra
câu trả lời.
 Nếu sự kiện đó chưa biết nhưng có thể hỏi được, FES sẽ
hỏi người dùng.
 Nếu sự kiện đó không hỏi được nhưng suy diễn được
bằng luật, FES sẽ lần lượt chứng minh cách luật.
Mô hình máy suy diễn
findgoal
<đã biết>
fact
<hỏi được>
askable
<suy diễn>
query_user
rule
findgoal2
prove
findgoal
adjust
update
fact
combine
Merritt, D. (1989) Building Expert Systems in Prolog, Springer. Chapter 3: Backward Chaining with Uncertainty.
Tri thức món ăn
2. Tri thức người dùng
3. Luật suy diễn
1.
Tri thức món ăn
 Một món ăn được mô hình dựa trên khoa học dinh
dưỡng, có các thuộc tính:
 Danh sách nguyên liệu.
 Thuộc tính lý hóa: Mùi, vị, độ mềm, tính nóng lạnh.
 Thuộc tính hóa sinh: Năng lượng (calorie), hàm lượng
đạm (protein), hàm lượng chất béo (fat), hàm lượng
đường (glucose), hàm lượng chất khoáng (minerals),
hàm lượng vitamin.
 Một số thuộc tính phụ khác.
Tri thức người dùng
 Việc chọn lựa món ăn dựa trên sở thích, thời điểm và
đảm bảo dinh dưỡng đối với người dùng. Các tri thức
quan tâm đến bao gồm:
 Tuổi tác.
 Nghề nghiệp.
 Tình trạng sức khỏe.
 Một số trường hợp đặc biệt.
 Một số điều kiện ngoại cảnh như thời tiết cũng được
đưa vào, ảnh hưởng lên việc chọn món ăn.
Luật suy diễn
 Các luật đều ở dạng: “Nếu (…) thì người sử dụng có
khả năng thích món ăn X với độ chắc chắn CF”.
 Luật được phân thành một số nhóm sau:
 Tuổi tác.
 Sức khỏe.
 Nghề nghiệp.
 Sở thích.
 Thời tiết
 Thời điểm bữa ăn.
Ví dụ về luật suy diễn
 Ta có tri thức: “Người vận động thể thao nên có chế độ
ăn nhiều năng lượng, hàm lượng protein cao”.
 Luật được phát biểu thành: “Người vận động thể thao
có khả năng thích món ăn có nhiều năng lượng, giàu
protein”.
Ví dụ về luật suy diễn (tiếp)
 Biểu diễn luật trong prolog:
rule(
'SPORTR01a',
lhs([av(play_sport, yes), av(calorie(X),
high)]),
rhs(av(like_recipe(X), true), 0.45)
).
rule(
'SPORTR01b',
lhs([av(play_sport, yes), av(protein(X),
high)]),
rhs(av(like_recipe(X), true), 0.45)
).
Food Expert System
 FES gồm:
 ~130 luật
 ~30 món ăn