Bài giảng Trí tuệ nhân tạo cung cấp cho người học những kiến thức như: Giới thiệu, thuật toán, thuật giải, giải thuật di truyền, biểu diễn và suy luận tri thức, logic mệnh đề logic vị từ, máy học, mạng neural. Mời các bạn cùng tham khảo!
Trang 1TRÍ TUỆ NHÂN TẠO
Bài giảng
Nha trang - 2012
NGUYỄN ĐÌNH CƯỜNG
Bộ môn Công Nghệ Phần Mềm Khoa Công Nghệ Thông Tin
Trang 2• GIỚI THIỆU
• BIỂU DIỄN VÀ SUY LUẬN TRI THỨC
Trang 3• AI là lĩnh vực của Công nghệ thông tin, có chức năng nghiên cứu và tạo ra các chương trình mô phỏng hoạt động tư duy của con người.
• Trí tuệ nhân tạo nhằm tạo ra “Máy người”?
• Mục tiêu
• Xây dựng lý thuyết về thông minh để giải thích các hoạt động thông minh
• Tìm hiểu cơ chế sự thông minh của con người
Cơ chế lưu trữ tri thức
Cơ chế khai thác tri thức
• Xây dựng cơ chế hiện thực sự thông minh
• Áp dụng các hiểu biết này vào các máy móc phục vụ con người
Trang 4ĐỐI TƯỢNG NGHIÊN CỨU CỦA AI
• AI là ngành nghiên cứu về cách hành xử thông minh (intellgent behaviour) bao gồm: thu thập, lưu trữ tri thức, suy luận, hoạt động và
Trang 5LỊCH SỬ PHÁT TRIỂN CỦA AI
GIAI ĐOẠN CỔ ĐIỂN
Giai đoạn cổ điển (1950 – 1965)
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 6LỊCH SỬ PHÁT TRIỂN CỦA AI GIAI ĐOẠN VIỄN VÔNG
• Đâ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 công trình 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 và máy bằng ngôn ngữ tự nhiên.
• 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 vẫn còn được dùng đến ngày nay tuy chưa thật tốt như:
Semantic Network (mạng ngữ nghĩa) Conceptial graph (đồ thị khái niệm) Frame (khung)
Script (kịch bản)
Vấp phải trở ngại về năng lực
của máy tính
Trang 7LỊCH SỬ PHÁT TRIỂN CỦA AI GIAI ĐOẠN HIỆN ĐẠI
Giai đoạn hiện đại (từ 1975)
• Xác định lại mục tiêu mang tính thực tiễn hơn của AI:
Tìm ra lời giải tốt nhất trong khoảng thời gian chấp nhận được
Không 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.
• Khẳng định vai trò của tri thức đồng thời xác định 2 trở ngại lớn là biểu diễn tri thức và bùng nổ tổ hợp.
• Nêu cao vai trò của Heuristic nhưng cũng khẳng định tính khó khăn trong đánh giá heuristic.
Trang 8CÁ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: các hệ thống dự báo, tự động hóa
• Machine learning: Trang bị khả năng học tập để giải quyết vấn đề kho tri thức:
Supervised : Kiểm soát được tri thức học được Không tìm ra cái mới.
UnSupervised:Tự học, không kiểm soát Có thể tạo ra tri thức mới nhưng cũng nguy hiểm vì có thể học những điều không mong muốn
Trang 9CÁC LĨNH VỰC ỨNG DỤNG
• Natural Language Understanding & Semantic modelling: Không được phát triển mạnh do mức độ phức tạp của bài toán cả về tri thức & khả năng suy luận.
• Modeling Human perfromance: Nghiên cứu cơ chế tổ chức trí tuệ của con
người để áp dụng cho máy.
• Language and Environment for AI:Phát triển công cụ và môi trường để xây
dựng các ứng dụng AI.
• Neural network / Parallel Distributed processing: giải quyết vấn đề năng lực tính toán và tốc độ tính toán bằng kỹ thuật song song và mô phỏng mạng thần kinh của con người
Trang 10ỨNG DỤNG AI
Mô hình ứng dụng AI hiện tại:
AI = Presentation & Search
.
Trang 11My song
My song
Trang 13TRÍ TUỆ NHÂN TẠO
Bài giảng
Nha trang - 2012
NGUYỄN ĐÌNH CƯỜNG
Bộ môn Công Nghệ Phần Mềm Khoa Công Nghệ Thông Tin
Trang 14• Trong quá trình nghiên cứu giải quyết các vấn đề – bài toán, người ta
đã đưa ra những nhận xét như sau:
Có nhiều bài toán cho đến nay vẫn chưa tìm ra một cách giải theo kiểu thuật toán và cũng không biết là có tồn tại thuật toán hay không.
Có nhiều bài toán đã có thuật toán để giải nhưng không chấp nhận được vì thời gian giải theo thuật toán đó quá lớn hoặc các điều kiện cho thuật toán khó đáp ứng.
Có những bài toán được giải theo những cách giải vi phạm thuật toán nhưng vẫn chấp nhận được
Trang 15• Thuật giải Heuristic là một sự mở rộng khái niệm thuật toán Nó thể hiện cách giải bài toán với các đặc tính sau:
Thường tìm được lời giải tốt (nhưng không chắc là lời giải tốt nhất)
Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn.
Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người
Trang 16Một số nguyên lý cơ bản như sau
Nguyên lý vét cạn thông minh
Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại khônggian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm
ra mục tiêu
Nguyên lý tham lam (Greedy)
Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động chophạm vi cục bộ của từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lời giải
Trang 17CÁC BÀI TOÁN
• Đổi tiền (Vét cạn và Heuristic)
• Tìm kiếm chiều rộng và sâu
• Tic tac toe.
• Người nông dân qua sông.
• Con thỏ và con cáo
• Con khỉ và nải chuối
Trang 18• Giải phương trình bậc cao bằng giải thuật di truyền
• Tính giá trị lớn nhất của hàm nhiều biến bằng giải thuật di truyền
• Sắp xếp thời khóa biểu bằng giải thuật di truyền
• Cài đặt thuật giải Robinson chứng minh mệnh đề
• Cài đặt thuật giải Vương Hạo chứng minh mệnh đề
• Cài đặt thuật giải Quinland trong máy học
• Cài đặt thuật giải học theo Entropy
Trang 19CÁC PHƯƠNG PHÁP TÌM KIẾM HEURISTIC Cấu trúc chung của bài toán tìm kiếm
“ Xuất phát từ một đỉnh của một đồ thị, tìm đường đi hiệu quả nhất đến một đỉnh nào đó"
Một phát biểu khác thường gặp của dạng bài toán này là :
Cho trước hai trạng thái T0 và TG hãy xây dựng chuỗi trạng thái T0, T1, T2, , Tn-1,
Tn = TG sao cho : thỏa mãn một điều kiện cho trước (thường là nhỏ
nhất)
Trang 20Tìm kiếm chiều sâu và tìm kiếm chiều rộng
Tìm kiếm chiều sâu (Depth-First Search) Tìm kiếm chiều rộng (Breath-First Search )
Trang 21Chiều sâu Chiều rộng
Tính hiệu quả 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 Hiệu quả của chiến lược phụ thuộc vào phương án chọn hướng đi Phương án càng kém hiệu quả thì hiệu quả của chiến lược càng giảm Thuận lợi khi muốn tìm chỉ một lời giải.
Hiệu quả khi lời giải nằm gần gốc của cây tìm kiếm Hiệu quả của chiến lược phụ thuộc vào độ sâu của lời giải Lời giải càng
xa gốc thì hiệu quả của chiến lược càng giảm Thuận lợi khi muốn tìm nhiều lời giải.
Lượng bộ nhớ sử dụng để lưu trữ các
trạng thái
Chỉ lưu lại các trạng thái chưa xét đến Phải lưu toàn bộ các trạng thái
Trường hợp xấu nhất Vét cạn toàn bộ Vét cạn toàn bộ.
Trường hợp tốt nhất Phương án chọn hướng đi tuyệt đối chính xác Lời giải
được xác định một cách trực tiếp
Lời giải được xác định khi mở nút đầu tiên
Trang 22Tìm kiếm leo đồi
• Tìm kiếm leo đồi theo đúng nghĩa, nói chung, thực chất chỉ là một trường hợp đặc biệt của tìm kiếm theo chiều sâu nhưng không thể quay lui Trong tìm kiếm leo đồi, việc lựa chọn trạng thái tiếp theo được quyết định dựa trên một hàm Heuristic
Hàm Heuristic là gì
• Thuật ngữ "hàm Heuristic" muốn nói lên điều gì? Chẳng có gì ghê gớm Bạn đã quen với nó rồi!
Đó đơn giản chỉ là một ước lượng về khả năng dẫn đến lời giải tính từ trạng thái đó (khoảng cách giữa trạng thái hiện tại và trạng thái đích)
Trang 23Hình : Các tình huống khó khăn cho tìm kiếm leo đèo
Hình : Một trường hợp thất bại của leo đèo kết hợp quay lui
Trang 24Hình Một trường hợp khó khăn cho phương án "nhảy vọt"
Hiệu quả của cả hai thuật giải leo đồi đơn giản và leo đồi dốc đứng phụ thuộc vào :
• Chất lượng của hàm Heuristic
• Đặc điểm của không gian trạng thái
• Trạng thái khởi đầu
Trang 25Tìm kiếm ưu tiên tối ưu (best-first search)
Hình Minh họa thuật giải Best-First Search
Trang 26• BFS khá đơn giản Tuy vậy, trên thực tế, cũng như tìm kiếm chiều sâu và chiều rộng, hiếm khi ta dùng BFS một cách trực tiếp Thông thường, người ta thường dùng các phiên bản của BFS
là AT, AKT và A*
• Thông tin về quá khứ và tương lai
Hình Phân biệt khái niệm g và h’
Trang 27Thuật giải AT
Thuật giải AT là một phương pháp tìm kiếm theo kiểu BFS với độ tốt của nút là giá trị hàm g tổng chiều dài con
đường đã đi từ trạng thái bắt đầu đến trạng thái hiện tại
Thuật giải AT
1 Đặt OPEN chứa trạng thái khởi đầu
2 Cho đến khi tìm được trạng thái đích hoặc không còn nút nào trong OPEN, thực hiện :
2.a Chọn trạng thái (Tmax) có giá trị g nhỏ nhất trong OPEN (và xóa Tmax khỏi OPEN)
2.b Nếu Tmax là trạng thái kết thúc thì thoát
2.c Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái Tmax Đối với mỗi trạng thái kế tiếp Tk
thực hiện :
g(Tk) = g(Tmax) + cost(Tmax, Tk);
Thêm Tk vào OPEN
Trang 28Tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 7 Thuật giải AT
Trang 29Thuật giải AKT (Algorithm for Knowlegeable Tree Search)
Thuật giải AKT mở rộng AT bằng cách sử dụng thêm thông tin ước lượng h’ Độ tốt của một trạngthái f là tổng của hai hàm g và h’
Thuật giải AKT
1 Đặt OPEN chứa trạng thái khởi đầu
2 Cho đến khi tìm được trạng thái đích hoặc không còn nút nào trong OPEN, thực hiện :
2.a Chọn trạng thái (Tmax) có giá trị f nhỏ nhất trong OPEN (và xóa Tmax khỏi OPEN)
2.b Nếu Tmax là trạng thái kết thúc thì thoát
2.c Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái Tmax Đối với mỗi trạng
thái kế tiếp Tk thực hiện :
Trang 30Thuật giải A*
• A* là một phiên bản đặc biệt của AKT áp dụng cho trường hợp đồ thị
• Thuật giải A* có sử dụng thêm tập hợp CLOSE để lưu trữ những trường hợp đã được
xét đến.
• A* mở rộng AKT bằng cách bổ sung cách giải quyết trường hợp khi "mở" một nút mà nút này đã có sẵn trong OPEN hoặc CLOSE.
• Khi xét đến một trạng thái Ti bên cạnh việc lưu trữ 3 giá trị cơ bản g, h’, f’ để phản ánh
độ tốt của trạng thái đó, A* còn lưu trữ thêm hai thông số sau :
1 Trạng thái cha của trạng thái Ti (ký hiệu là Cha(Ti) )
2 Danh sách các trạng thái kế tiếp của Ti
Trang 31open:={s}; close:=ø;
While (open<> ø) do
begin
n:= Retrieve(Open) //sao cho f(n) min
if (n=g) then return path từ s đến g else begin
Trang 32• Hàm lượng giá Heuristic là hàm ước lượng phí tổn để đi từ trạng thái hiện tại đến trạng thái goal.
• Cơ sở để xác định hàm lượng giá là dựa vào tri thức/kinh nghiệm thu thập được.
• Hàm lượng giá cho kết quả đúng (gần thực thế) hay sai (xa giá trị thực) sẽ dẫn đến
• kết quả tìm được tốt hay xấu.
• Không có chuẩn mực cho việc đánh giá một hàm lượng giá Heuristic Lý do:
Không có cấu trúc chung cho hàm lượng giá
Tính đúng/sai thay đổi liên tục theo từng vấn đề cụ thể
Tính đúng/sai thay đổi theo từng tình huống cụ thể trong một vấn đề
Có thể dùng nhiều hàm lượng giá khác nhau theo tình huống ➔ cần hàm lượng giá về các hàm lượng giá.
Trang 33Trò đố 8 ô hay 15 ô
Trang 34Xét bài toán 8 pussle với goal là:
Trang 35Xét lại hoạt động của giải thuật Best First Search:
• Khi có 2 nút cùng có giá trị kỳ vọng đạt đến mục tiêu bằng nhau thì nút có path từ nút bắt đầu đến nút đó ngắn hơn sẽ được chọn trước như vậy nút này có giá trị
Trang 36Xét ví dụ là bài toán 8 puzzle với:
Nút X có giá trị heuristic tốt hơn nút Y nếu F(x) < F(y).
Ta có hoạt động của giải thuật Best First search trên như hình sau:
Trang 375 7
4 6 1
3 8 2
1
State AF(a) =0+4=4
5 7
4 6 1
3 8 2
x
State B
F(b) =1+5=6
5 6 7
4 1
3 8 2
2
State C
F(c) =1+3=4
5 7
4 6 1
3 8 2
x
State D
F(D) =1+5=6
5 6
7
4 1
3 8
4 8 1
3 2
4
State F
F(f) =2+3=5
5 6 7
4 1
3 8 2
x
State G
F(g) =2+4=6
5 6
4 1 7
3 8 2
x
State I
F(i) =3+4=7
5 7
4 6 1
3 8 2
5 6 7
4 1
3 8 2
Trang 385 6 7
4 8 1
3 2
4
State F
F(f) =2+3=5
5 6
7
4 8
1
3 2
5
State J
F(j) =3+2=5
5 6 7
4 8 1
3 2
x
State KF(k) =3+4=7
5 6 7
4 1
3 8 2
y
State Close
5 6 7
4 8 1
3 2
y
Close
5 6 7
4 8
3 2 1
7
State M
F(m) =5+0=5
5 6
4 8 7
3 2 1
x
State N
F(n) =5+1=7
Trang 40• Một giải thuật Best first search với hàm đánh giá
• F(n) = G(n) + H(n) với
N : Trạng thái bất kỳ G(n): Phí tổn đi từ nút bắt đầu đến nút n H(n) : Phí tổn ước lượng heuristic đi từ nút n đến goal
• Được gọi là giải thuật A
Một giải thuật tìm kiếm được xem là admissible nếu đối với một đồ thị bất kỳ nó
luôn dừng ở path nghiệm tốt nhất (nếu có).
Giải thuật A*: Là giải thuật A với hàm heuristic H(n)luôn luôn giá trị thực đi từ n đến goal.
Giải thuật A* là admissible
Trang 41HEURISTIC TRONG TRÒ CHƠI ĐỐI KHÁNG
Giải thuật minimax:
• Hai đấu thủ trong trò chơi được gọi là MIN và MAX.
• Mỗi nút lá có giá trị:
1 nếu là MAX thắng
0 nếu là MIN thắng.
Minimax sẽ truyền các giá trị này lên cao dần trên đồ thị, qua các nút cha
mẹ kế tiếp theo các luật sau:
Nếu trạng thái cha mẹ là MAX, gán cho nó giá trị lớn nhất có trong các trạng thái
con.
Nếu trạng thái bố, mẹ là MIN, gán cho nó giá trị nhỏ nhất có trong các trạng thái
con.
Trang 42ÁP DỤNG MIN – MAX VÀO TRÒ CHƠI NIM
Trang 43TRÒ CHƠI BÓC SỎI ĐỐI KHÁNG
• N : Viên sỏi
• Mỗi lần bóc từ 1 đến k viên
• 2 Người thay phiên nhau bóc, ai bóc cuối cùng là thua.
Chiến thuật cho người đi trước khả năng thắng cao
K +1 viên
Đoạn dư
N mod k+1
Những lần tiếp theo
Số viên sỏi bóc = K+1 – số viên sỏi đối phương bóc
Bí mật cộng vào giá trị 1 ở mỗi lần bốc
Cố gắng để lại 1 viên cuối cùng (The serect in your brain)
Bình luận
1
Trang 44Minimax với độ sâu lớp cố định
Trang 45Heuristic trong trò chơi tic-tac-toe
Trong đó:M(n) là tổng số đường thắng có thể của tôi
O(n) là tổng số đường thắng có thể của đối thủ E(n) là trị số đánh giá tổng cộng cho trạng thái n
Trang 47GiẢI THUẬT CẮT TỈA -
Tìm kiếm theo kiểu depth-first.
Nút MAX có 1 giá trị (luôn tăng)
Nút MIN có 1 giá trị (luôn giảm)
TK có thể kết thúc dưới bất kỳ:
Nút MIN nào có của bất kỳ nút cha MAX nào.
Nút MAX nào có của bất kỳ nút cha MIN nào.
Giải thuật cắt tỉa - thể hiện mối quan hệ giữa các nút ở lớp n và n+2 , mà tại
đó toàn bộ cây có gốc tại lớp n+1 có thể cắt bỏ.
Trang 48Cắt tỉa S
Trang 51TRÍ TUỆ NHÂN TẠO
Bài giảng
Nha trang - 2012
NGUYỄN ĐÌNH CƯỜNG
Bộ môn Công Nghệ Phần Mềm Khoa Công Nghệ Thông Tin
Trang 52TỔNG QUAN VỀ GA
• Bài toán tối ưu: Tìm lời giải tốt nhất trong không gian tìm kiếm
Nếu không gian tìm kiếm nhỏ: Áp dụng các phương pháp cổ điển.
phải dùng đến những kỹ thuật khác: Trí tuệ nhân tạo, GA là thuật giải mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để khảo sát không gian lời giải
Quan niệm: quá trình tiến hóa tự nhiên là quá trình thế hệ sau bao giờ cũng tốt hơn thế hệ trước.
• Tiến hóa tự nhiên được duy trì nhờ 2 quá trình cơ bản: sinh sản và chọn lọc tự nhiên.
• Sự thay đổi môi trường là động lực thúc đẩy quá trình tiến hóa
• Các cá thể sinh ra trong quá trình tiến hóa nhờ sự lai ghép ở thế hệ bố mẹ Một cá thể mới
có thể mang những đặc tính của thế hệ bố mẹ (di truyền) cũng có thể mang những đặc tính hoàn toàn mới (đột biến) Đột biến xảy ra với xác suất nhỏ hơn nhiều so với di truyền.
• Các thuật toán di truyền dựa trên các quá trình: lai ghép, đột biến, sinh sản và chọn lọc tự nhiên
Trang 53QUÁ TRÌNH LAI GHÉP
Phép lai ghép với xác suất pc, được mô phỏng như sau:
• Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể Giả sử rằng, các nhiễm sắc thể của thế hệ bố mẹ đều có m gen.
• Tạo ngẫu nhiên một số i: 1 i m-1 (i được gọi là điểm lai) Điểm lai chia chuỗi bố
mẹ thành 2 chuỗi con dài m11 m12 và m21 m22 Hai chuỗi nhiễm sắc thể con mới là
m11m22 và m21m12
• Đưa 2 cá thể mới này vào quần thể để tham gia các quá trình tiến hóa tiếp theo.