Chương 1 Tổng quan về Trí tuệ nhân tạo Chương 2 Chiến lược tìm kiếm mù Chương 3 Chiến lược tìm kiếm có thông tin heuristic Chương 4 Tìm kiếm đối kháng - trò chơi Chương 5 Biểu diễn tri thức Chương 6 Chứng minh trong logic mệnh đề Chương 7 Logic vị từ Chương 8 Tri thức và suy luận không chắc chắn
Trang 1Trí Tuệ Nhân Tạo
Artificial Intelligence
Trang 2Mục tiêu của môn học
◼ Các khái niệm cơ bản của trí tuệ nhân tạo
◼ Giải quyết vấn đề bằng phương pháp tìm kiếm
Trang 3KẾT CẤU BÀI GIẢNG
Chương 1 Tổng quan về Trí tuệ nhân tạo
Chương 2 Chiến lược tìm kiếm mù
Chương 3 Chiến lược tìm kiếm có thông tin heuristic
Chương 4 Tìm kiếm đối kháng - trò chơi
Chương 5 Biểu diễn tri thức
Chương 6 Chứng minh trong logic mệnh đề
Chương 7 Logic vị từ
Chương 8 Tri thức và suy luận không chắc chắn
Trang 4Yêu cầu môn học
◼ Sinh viên phải dự trên 80% số tiết mới được dự thi kết thúc học phần
◼ Thảo luận, thực hành, seminar
◼ Làm bài tập mỗi chương
◼ Làm đồ án theo nhóm (4-5 SV)
Trang 6Phân bổ thời gian
Trang 7Nội dung môn học
◼ Giới thiệu Trí tuệ nhân tạo
◼ Các phướng pháp giải quyết vấn đề
❑ Các phương pháp biểu diễn
❑ Các phương pháp giải quyết vấn đề
❑ Tìm kiếm mù trên không gian trạng thái
❑ Tìm kiếm với thông tin heuristic
◼ Biểu diễn tri thức
❑ Lược đồ biểu diễn tri thức
❑ Xử lý tri thức
❑ Tri thức và suy luận không chắc chắn
Trang 8Tài liệu tham khảo
◼ Sách, giáo trình chính
❑ Artificial Intelligence: A Modern Approach Stuart Russell
& Peter Norvig (3nd edition, 2009)
❑ Phạm Nguyên Khang, Giáo trình Trí tuệ nhân tạo, ĐHCT
❑ Từ Minh Phương, Giáo trình Trí tuệ nhân tạo, Học viện
Bưu chính Viễn thông.
◼ Sách/Slides tham khảo
❑ Bài giảng Trí tuệ nhân tạo
◼ http://www.doc.ic.ac.uk/~sgc/teaching/pre2012/v231
◼ http://www-scf.usc.edu/~csci460/schedule.htm
Trang 9Chương 1: Tổng quan về Trí
tuệ nhân tạo
Trang 11Trí tuệ nhân tạo là gì?
Search engines Semantic web
Trang 12Trí tuệ nhân tạo là gì? (tt)
◼ Trí tuệ nhân tạo là lĩnh vực khoa học chuyên nghiên cứu
các phương pháp chế tạo trí tuệ máy sao cho giống như trí tuệ con người
◼ Hai định nghĩa về trí tuệ nhân tạo
❑ Hệ thống mà biết suy nghĩ như con người
❑ Hệ thống mà biết hành động như con người
◼ Để hệ thống mà biết suy nghĩ và hành động giống như
con người thì hệ thống
❑ Phải có tri thức, phải có khả năng lý giải, phải có khả năng học Phải có thị giác và thính giác
Trang 13Thinking humanly
(Suy nghĩ như con người)
Thinking rationally (Suy nghĩ hợp lý)
Acting humanly (Hành động như con người)
Acting rationally (Hành động hợp lý)
Các yêu cầu của TTNT
Trang 15◼ Các lĩnh vực cần nghiên cứu trong AI:
❑ Xử lý ngôn ngữ tự nhiên: để giao tiếp người - máy
❑ Biểu diễn tri thức: để lưu trữ và phục hồi các thông tin được cung cấp trước/trong quá trình thẩm vấn
❑ Suy diễn tự động: để sử dụng các thông tin đã được lưu trữ trả lời các câu hỏi và đưa ra các kết luận mới
❑ Học máy: thích nghi với các tình huống mới, phát hiện
và suy ra dữ liệu mới
Hành động như con người
Trang 16◼ Con người suy nghĩ như thế nào?
❑ Nhờ tâm lý học, khoa học nhận thức lý giải
◼ Người thuộc trường phái này, yêu cầu:
❑ Chương trình chẳng những giải đúng
❑ Còn so sánh từng bước giải với sự giải của 1 người
❑ VD: General Problem Solver (GPS), Newell & Simon
Suy nghĩ như con người
Trang 17◼ Aristole: ~420 BC
❑ Tiến trình suy nghĩ đúng là gì?
❑ Mở ra nhánh: quá trình suy luận
❑ VD: “Socrates is a man, all men are mortal; therefore Socrates is mortal”
◼ Theo sau Aristole -> 20th:
❑ Logic hình thức (formal logic) ra đời
❑ Hình thức hoá về mặt ký hiệu và quá trình suy diễn với các đối tượng trong thế giới tự nhiên
Suy nghĩ hợp lý
Trang 19TTNT kế thừa nhiều ý tưởng, quan điểm và các kỹ thuật từ các
ngành khoa học khác
TTNT
Ngôn ngữ học
Khoa học máy tính
Toán học
Các lý thuyết của lập luận và học
Các lý thuyết xác suất logic, tạo quyết định và tính toán
Nghiên cứu ý nghĩa và
cấu trúc của ngôn ngữ
Nghiên cứu tâm
trí con người
Các nền tảng cơ bản của TTNT
Trang 20Lịch sử hình thành TTNT
◼ Giai đoạn cổ điển (1950 - 1965)
❑ Có 2 lãnh vực chính:
◼ Game playing: dựa trên kỹ thuật State Space Search
◼ Theorem proving: thực hiện chuỗi các suy diễn để đạt tới biểu thức cần chứng minh
❑ Có 2 kỹ thuật tìm kiếm cơ bản
◼ Kỹ thuật generate and test: chỉ tìm được 1 đáp án chưa
chắc tối ưu.
◼ Kỹ thuật Exhaustive search (vét cạn): tìm tất cả các
nghiệm, chọn lựa phương án tốt nhất
Trang 21Lịch sử hình thành TTNT (tt)
◼ Giai đoạn viễn vông (1965-1975)
❑ Đây là giai đoạn phát triển với tham vọng làm cho máy hiểu được con người qua ngôn ngữ tự nhiên
❑ Các nghiên cứu tập trung vào việc biểu diễn tri
thức và phương thức giao tiếp giữa người & máy bằng ngôn ngữ
❑ Kết quả không mấy khả quan nhưng cũng tìm ra
được các phương thức biểu diễn tri thức hiện vẫn
sử dụng: Semantic Network (mạng ngữ nghĩa), Conceptial graph (đồ thị khái niệm), Frame (khung), Script (kịch bản)
Trang 22Lịch sử hình thành TTNT (tt)
◼ Giai đoạn hiện đại (từ 1975 đến nay)
❑ Xác định lại mục tiêu mang tính thực tiễn hơn:
◼ Tìm ra lời giải tốt nhất trong khoảng thời gian chấp nhận được
◼ Không yêu cầu toàn tìm ra lời giải tối ưu
❑ Tinh thần HEURISTIC ra đời và được áp dụng mạnh mẽ
để khắc phục bùng nổ tổ hợp
❑ Các hệ chuyên gia (Expert System)
❑ Mạng nơ-ron (Neural Network)
❑ Các tác tử thông minh (Intelligent Agents)
❑ Máy học (Machine Learning), Computer vision…
Trang 23Các lĩnh vực ứng dụng
◼ Game Playing: tìm kiếm Heuristic
◼ Automatic reasoning & Theorem proving: tìm kiếm Heuristic
◼ Expert System: là hướng phát triển mạnh mẽ nhất và
có giá trị ứng dụng cao nhất.
◼ Planning & Robotic: lập kế hoạch và lập lịch trình tự động, NASA
◼ Machine learning: học máy để giải quyết vấn đề
❑ Học có giám sát: kiểm soát được tri thức học được
❑ Học không có giám sát: tự học, không kiểm soát
Trang 24Mô hình ứng dụng
Trang 25Mô hình phân tầng
Trang 26Các thành tựu hiện tại
◼ Computer beats human in a chess game
◼ Computer-human conversation using speech
recognition
◼ Expert system controls a spacecraft
◼ Robot can walk on stairs and hold a cup of water
◼ Language translation for webpages
◼ Home appliances use fuzzy logic
◼
Trang 27Google:Finding Canonical Images
Trang 28Induced Graph
Trang 29Route Finding
Trang 31Statistical Machine Translation
SEHR GEEHRTER GAST!
KUNST, KULTUR UND
KOMFORT IM HERZEN
BERLIN.
DEAR GUESTS, ART, CULTURE AND LUXURY IN THE HEART
OF BERLIN.
DIE ÖRTLICHE
NETZSPANNUNG BETRÄGT
220/240 VOLT BEI 50 HERTZ.
THE LOCAL VOLTAGE
IS 220/240 VOLTS 50 HZ
Trang 32Tìm kiếm theo nội dung
https://images.google.com
Trang 33Tìm kiếm theo nội dung tt.
http://wolframalpha.com
Trang 34Nhận dạng tiếng nói
Trang 35Nhận dạng đối tượng
Trang 36Nhận dạng đối tượng tt.
Trang 37Hướng nghiên cứu của TTNT
Trang 38Chương 2: Chiến lược tìm
kiếm mù
Trang 39Nội dung
◼ Bài toán tìm kiếm
❑ Biểu diễn bài toán
❑ Tìm kiếm
◼ Các chiến lược điều khiển tìm kiếm
◼ Các đặc trưng của bài toán
◼ Vấn đề trong thiết kế chương trình tìm kiếm
Trang 41Bài toán tìm kiếm
Làm sao có thể đi từ S đến G? Và số lần chuyển đổi có thể ít nhất?
Trang 42Bài toán tìm kiếm (tt)
◼ Giải bài toán bằng cách tìm kiếm, gồm:
❑ Cấu trúc bài toán: VD tìm đường đi trên đồ thị
❑ Biểu diễn bài toán bằng không gian trạng thái
❑ Giải bài toán = Tìm ra một trạng thái/con đường
trong không gian trạng thái (trạng thái đầu trạng thái đích)
Trang 43Bài toán tìm kiếm (tt)
◼ Không gian trạng thái của bài toán tìm kiếm có 5 thành phần: Q, S, G, sucss, cost
❑ Q: tập hữu hạn các trạng thái (nút của Graph)
❑ SQ: tập hữu hạn khác rỗng các trạng thái bắt đầu
Trang 44Bài toán tìm kiếm (tt)
Trang 45Các loại bài toán tìm kiếm
Trang 46Các loại bài toán tìm kiếm (tt)
◼ Fully observable, deterministic
❑ interleave search and execution
◼ Unknown state space
❑ exploration problem
❑ execution first
Trang 47State space vs database search
State Space
◼ Không gian tìm kiếm thường là
một đồ thị (graph)
◼ Mục tiêu tìm kiếm là một path
◼ Phải lưu trữ toàn bộ không gian
trong quá trình tìm kiếm
◼ Không gian tìm kiếm biến động
liên tục trong quá trình tìm kiếm
◼ Đặc tính của trạng thái / nút chứa
nhiều thuộc tính bị thay đổi giá trị
trong quá trình tìm kiếm
◼ Không gian tìm kiếm là cố định trong quá trình tìm kiếm
◼ Thuộc tính của một record/nút là cố định
Trang 48Bài toán Romania
◼ State space:
❑ Cities
◼ Successor function:
❑ Go to adj city with cost = dist
Trang 49Bài toán: Tic tac toe
Đồ thị có hướng không lặp
lại (directed acyclic graph)
Trang 50Bài toán: 8 puzzle
Có khả năng xảy ra vòng lặp không?
Trang 51Chiến lược tìm kiếm?
◼ Khi tìm kiếm lời giải, từ một trạng thái nào đó chưa phải là trạng thái đích, ta dựa theo hàm succs sinh ra tập các trạng thái mới (mở rộng)
◼ Để được lời giải, ta phải liên tục chọn trạng thái mới,
mở rộng, kiểm tra cho đến khi tìm được trạng thái
đích hoặc không mở rộng được KGTT
◼ Tập các trạng thái được mở rộng sẽ có nhiều phần tử, việc chọn trạng thái nào để tiếp tục mở rộng được gọi
là chiến lược tìm kiếm
Trang 52Đánh giá một chiến lược?
◼ Tính đầy đủ: chiến lược phải đảm bảo tìm được lời giải (nếu có lời giải)?
◼ Tính tối ưu: lời giải có tốt hơn so với một số chiến lược khác hay không?
◼ Độ phức tạp không gian: cần bao nhiêu đơn vị bộ nhớ để tìm được lời giải?
◼ Độ phức tạp thời gian: cần bao nhiêu thời gian để tìm được lời giải?
Trang 53Thông tin mỗi nút ?
◼ Nội dung trạng thái mà nút hiện hành đang biểu diễn
Trang 54Tìm kiếm mù
◼ Trạng thái được chọn để phát triển dựa theo cấu trúc của KGTT mà dùng thông tin hỗ trợ
◼ Là chiến lược tìm kiếm mù không hiệu quả
◼ Đây là cơ sở để chúng ta cải tiến và thu được
những chiến lược hiệu quả hơn
◼ Hai giải thuật tìm kiếm mù
❑ Tìm kiếm theo chiều rộng (Breadth-First-Search)
❑ Tìm kiếm theo chiều sâu (Depth First Search)
Trang 55Tìm kiếm theo chiều rộng
S
a b
a c
q c G
a
q e
p
h
f
r q
q c
S
G
d b
c e h
a
f r
Trang 56Ghi nhớ đường đi
◼ Khi một nút được gán nhãn (bước), ghi nhận trạng
thái trước đó (con trỏ quay lui) Tất cả ghi nhận được dùng để phát sinh lời giải khi đã đến đích
❑ Tôi đã đến đích, trước khi tới đích tôi đã ở f, rồi r
Do đó lời giải sẽ là S → e → r → f → G
S
G
d b
c
e h
a
f r
Trang 57Con trỏ quay lui - backpointers
Trang 58Con trỏ quay lui
Trang 59Giải thuật -BFS
Open :=[START]
previous(START)=NULL
WHILE (Open không chứa GOAL và khác rỗng) do
Lấy TT s nằm bên trái nhất trong Open
Đặt s vào Close;
for mỗi TT s’ trong succs(s)
IF s’ chưa gán nhãn (chưa xét) then
Đặt previous(s’) := s;
Đưa s’ vào bên PHẢI nhất của Open
IF Open rỗng return FAILURE
Else Xây dựng lời giải.
Định nghĩa S k = GOAL; Đường đi được tính dựa
trên hàm previous với S k-1 = previous(S k) Cho
đến khi S là START
Trang 60Tìm kiếm theo chiều rộng(tt)
0 1 2 3 4 5 6 7
A B C D E F
G
[A ] [B C D ] [C D E F ] [D E F G ] [E F G ] [F G H I ] [G H I J ] [H I J ]
[ ] [A]
[A B]
[A B C ] [A B C D ] [A B C D E ] [A B C D E F ] [A B C D E F ]
A
Trang 61Depth First Search
S
a b
a c
q c G
a
q e
p
h
f
r q
q c
S
G
d b
c
e h
a
f
r q
p
h
f d
Trang 62Depth-First-Search (tt)
Open :=[START]
previous(START)=NULL
WHILE (Open không chứa GOAL và khác rỗng) do
Lấy TT s nằm bên trái nhất trong Open
Đặt s vào Close;
for mỗi TT s’ trong succs(s)
IF s chưa gán nhãn (chưa xét) then
Đặt previous(s’) := s;
Đưa s’ vào bên TRÁI nhất của Open
IF Open rỗng return FAILURE
Else Xây dựng lời giải.
Định nghĩa S k = GOAL; Đường đi được tính dựa
trên hàm previous với S k-1 = previous(S k) Cho
đến khi S là START
Trang 63Depth-First-Search (tt)
0 1 2 3 4 5 6 7 8 9
A B E H I F J C
G
[A]
[B C D ] [E F C D ] [H I F C D ] [I F C D ] [F C D ] [J C D ] [C D ] [ G D ]
[ ] [A]
[A B]
[A B E ] [A B E H ] [A B E H I ] [A B E H I F ] [A B E H I F J ] [A B E H I F J C ]
A
Trang 64Breath First vs Depth First
◼ Breath First: “open” được tổ chức dạng FIFO (Queue)
◼ Depth First: “open” được tổ chức dạng LIFO (Stack)
◼ Đặc tính
❑ Breath First search hiệu quả khi lời giải nằm gần gốc của cây tìm kiếm, tìm nhiều lời giải
❑ Depth First search hiệu quả khi lời giải nằm sâu trong cây tìm kiếm
và có một phương án chọn hướng đi chính xác
◼ Kết quả
❑ Breath First search chắc chắn tìm ra kết quả nếu có
❑ Depth First có thể sa lầy
◼ Bùng nổ tổ hợp là khó khăn lớn nhất cho các giải thuật này
Trang 65Depth first search có giới hạn
◼ Depth first search có khả năng lặp vô tận do các trạng thái con sinh ra liên tục → độ sâu tăng vô tận
◼ Khắc phục bằng cách giới hạn độ sâu của giải thuật
◼ Sâu bao nhiêu thì vừa? → chiến lược giới hạn:
❑ Cố định một độ sâu MAX, như các danh thủ chơi cờ tính trước được số nước nhất định
❑ Theo cấu hình tài nguyên của máy tính
❑ Meta knowledge trong việc định giới hạn độ sâu
◼ Giới hạn độ sâu co hẹp không gian trạng thái có thể mất nghiệm hoặc không tìm thấy nghiệm
Trang 66Các đặc trưng của bài toán
◼ Một số yếu tố cần phân tích khi chọn kỹ thuật giải bài toán:
❑ Khả năng phân rã bài toán
❑ Khả năng lờ đi và quay lui
❑ Khả năng dự đoán toàn cục
❑ Đích là một trạng thái hay con đường (tập các TT)
❑ Lượng tri thức cần để giải bài toán
❑ Có cần sự can thiệp của con người trong quá trình giải không?
Trang 67Các đặc trưng của bài toán (tt)
◼ Khả năng phân rã bài toán
❑ Phân rã được: như BT tính tích phân ký hiệu
Trang 68Các đặc trưng của bài toán (tt)
◼ Các bước giải có thể lờ đi hay quay lui
❑ Có thể lờ đi : như BT chứng minh định lý
◼ Vì: định lý vẫn đúng sau một vài bước áp dụng các luật
❑ Có thể quay lui: như BT 8-puzzle
◼ Vì: có thể di chuyển theo hướng ngược lại để về TT
trước
❑ Không thể quay lui: như BT chơi cờ
◼ Vì: game over!
Trang 69Các đặc trưng của bài toán (tt)
◼ Các bước giải có thể lờ đi hay quay lui
❑ Không thể quay lui
◼ Dùng các chiến lược phức tạp hơn vì mỗi khi ra quyết định thì đó là quyết định cuối cùng
◼ Có thể dùng giải pháp Planning
Trang 70Các đặc trưng của bài toán (tt)
◼ Khả năng dự đoán của bài toán:
❑ Có thể dự đoán được: như BT 8 puzzle
có thể đề ra 1 chuỗi các nước đi và tự tin vào kết qua sẽ xãy ra
Có thể quay lui được
❑ Không thể dự đoán được: như các game có đối kháng
◼ Cần theo đuổi nhiều kế hoạch
◼ Có chiến lược/đánh giá để chọn kế hoạch tốt
Trang 71Các đặc trưng của bài toán (tt)
◼ Lời giải là tuyệt đối hay tương đối
❑ Tuyệt đối (best-path): như bài toán TSP
◼ Tính toán khó hơn (tổng quát)
◼ Cần giải thuật tìm kiếm toàn diện hơn
❑ Tương đối (any-path): như bài toán suy luận đời
thường (xem sau)
◼ Có thể dùng heuristic để giải trong thời gian hợp lý
Trang 72Các đặc trưng của bài toán (tt)
◼ Lời giải là trạng thái hay con đường (tập các TT)
❑ Trạng thái: như bài toán tìm ra cách hiểu phù hợp cho câu
❑ Ví dụ:
◼ “The bank president ate a dish of pasta salad with the fork.”
◼ Từng từ như: bank, president, … có thể được hiểu theo nhiều cách
◼ Một kiểu tìm kiếm nào đó được thực hiện để tìm ra cách hiểu toàn bộ cho câu
❑ Song, điều này cũng tương đối Vì có thể biểu diễn trạng thái
để nó có thể bao gồm thông tin về một phần hay toàn bộ con đường
Trang 73Các đặc trưng của bài toán (tt)
◼ Vai trò của tri thức là gì?
❑ Cần ít tri thức:
◼ Như bài toán: “chơi cờ”
◼ Tri thức ~ luật để di chuyển hợp lệ, cơ chế điều khiển, chiến lược điều khiển để tăng tốc tìm kiếm
❑ Cần nhiều tri thức
◼ Như bài toán: Hiểu câu chuyện trên tạp chí
◼ Tri thức: nhiều, cả những cái đã ghi tường minh và cả những cái
◼ không được ghi trong chính câu chuyện
Trang 74Vấn đề trong thiết kế CT tìm kiếm
◼ Sự tìm kiếm
❑ Tìm kiếm ~ duyệt cây, từ TT bắt đầu -> TT đích
❑ Cả cây tìm kiếm thường không được xây dựng sẵn
❑ Cấu trúc đồ thị thường thay thế cho cây trong biểu diễn
KGTT
◼ Các vấn đề
❑ Xác định hướng tìm (forward hay backward reasoning)
❑ Cách lựa chọn luật để áp dụng (matching)
❑ Cách biểu diễn nút (NODE) của quá trình tìm kiếm
❑ Các NODE trong đồ thị có thể được phát sinh và xem xét nhiều lần trong quá trình duyệt cần loại bỏ những NODE lặp lại Cần lưu lại các NODE đã xét.
Trang 75Vấn đề trong thiết kế CT …
◼ Giải thuật kiểm tra NODE lặp lại (DFS)
❑ Xem xét tập NODE đã tạo ra, để xem NODE mới đã có chưa
❑ Nếu chưa thì thêm NODE mới vào đồ thị