Trí tuệ nhân tạo, Trần Ngân Bình, PDF, 183 trang, 2 MB
NỘI DUNG:
Để đáp ứng nhu cầu học tập của các bạn sinh viên, nhất là sinh viên chuyên ngành Tin học, Khoa Công Nghệ Thông Tin & Truyền thông - Trường Đại Học Cần Thơ chúng tôi đã tiến hành biên soạn các giáo trình, bài giảng chính trong chương trình học theo hướng giúp sinh viên có thể tự học, tự nghiên cứu. Giáo trình môn Trí tuệ nhân tạo này được biên soạn cơ bản dựa trên quyển "Artificial Intelligence" của George F. Luger và William A. Stubblefield, xuất bản bởi Wesley Publishing Company, Inc vào năm 1997; và quyển "Trí tuệ nhân tạo – Các cấu trúc và chiến lược giải quyết vấn đề"- biên dịch bởi Bùi Xuân Toại – Trương Gia Việt phát hành bởi NXB Thống kê năm 2000. Giáo trình cũng được biên soạn dựa trên kinh nghiệm giảng dạy nhiều năm môn Trí tuệ nhân tạo của chúng tôi. Tài liệu này được soạn theo đề cương chi tiết môn Trí tuệ nhân tạo dành cho sinh viên chuyên ngành Tin học - Khoa Công Nghệ Thông Tin & Truyền thông - Trường Đại Học Cần Thơ. Mục tiêu của nó nhằm giúp các bạn sinh viên chuyên ngành năm thứ tư có một tài liệu cô đọng dùng làm tài liệu học tập, nhưng cũng không loại trừ sự tham khảo của các đối tượng khác. Chúng tôi đã hết sức làm cụ thể hóa trong phạm vi có thể các nội dung trong giáo trình so với thời lượng mà môn học cho phép. Dù đã rất cố gắng nhưng có lẽ giáo trình vẫn còn nhiều thiếu sót và hạn chế. Chúng tôi xin chân thành cảm ơn và rất hoan nghênh các ý kiến đóng góp của các bạn đồng nghiệp gần, xa và của các bạn sinh viên để giáo trình môn học này được hoàn chỉnh hơn theo thời gian. Đại Học Cần Thơ, tháng 08 năm 2006 VÕ HUỲNH TRÂM – TRẦN NGÂN BÌNH Email : vhtram@cit.ctu.edu.vntnbinh@cit.ctu.edu.vn 3/197 GIỚI THIỆU TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO GIỚI THIỆU TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO GIỚI THIỆU TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO Mặc dù trong các thế kỷ 18, 19 và đầu thế kỷ 20, sự hình thức hóa trong khoa học và toán học đã tạo điều kiện tiên quyết về mặt trí tuệ cho việc nghiên cứu trí tuệ nhân tạo, nhưng phải cho đến thế kỷ 20 cùng với sự ra đời của máy tính số thì Trí tuệ nhân tạo (AI : Artificial Intelligence) mới trở thành một ngành khoa học có sức sống. Cho đến cuối những năm 1940, bằng những chương trình thông minh, các máy tính số đã cho thấy được tiềm năng to lớn của chúng trong việc cung cấp bộ nhớ và sức mạnh cho những xử lý cần thiết. Ngày nay, chúng ta có thể cài đặt các hệ suy luận hình thức vào trong máy tính và kiểm tra một cách thực nghiệm khả năng biểu lộ trí thông minh của chúng. Một thành phần không thể thiếu được của Trí tuệ nhân tạo là việc dùng các máy tính số như một phương tiện chọn lựa để tạo ra và thử nghiệm các lý thuyết về trí tuệ. Không chỉ thế, kiến trúc của chúng còn cung cấp một mô hình đặc trưng cho những lý thuyết đó: trí tuệ là một hình thức xử lý thông tin. Những kỹ thuật và hình thức được khảo sát trong lĩnh vực Trí tuệ nhân tạo luôn thể hiện mối quan hệ khắng khít giữa máy tính số và những cốt lõi lý thuyết của nó. Cũng như với bất cứ khoa học nào khác, Trí tuệ nhân tạo (AI : Artificial Intelligence) tự nó liên quan đến một tập hợp nhất định những vấn đề và triển khai một nhóm các kỹ thuật đặc thù để tiếp cận những vấn đề đó. Một lịch sử hình thành và phát triển ngắn gọn về Trí tuệ nhân tạo, về những con người và những nhận định đã định hình, một số các định nghĩa và cách nhìn khái quát về các lĩnh vực ứng dụng của Trí tuệ nhân tạo được trình bày dưới đây sẽ giúp cho chúng ta một cái nhìn tổng quan về ngành khoa học còn tương đối mới mẻ này. Download slide tại đây 4/197 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO Nội dung chính: Trong chương này, chúng ta sẽ giới thiệu một cách khái quát về lịch sử hình thành và phát triển của khoa học Trí tuệ nhân tạo, các định nghĩa mang tính tương đối về Trí tuệ nhân tạo – một lĩnh vực khoa học mới mẻ với sức phát triển nhanh chóng trong những thập niên gần đây. Các lĩnh vực ứng dụng quan trọng của Trí tuệ nhân tạo và hiệu quả thiết thực của chúng trong các mặt cuộc sống con người được đề cập đến một cách chi tiết sau đó. Cuối chương, một số đặc điểm mang tính tổng kết về Trí tuệ nhân tạo cũng sẽ được trình bày. Mục tiêu cần đạt : Sau chương này, sinh viên có thể : • Biết khái quát về lịch sử hình thành và phát triển của TTNT • Biết các định nghĩa về TTNT • Hiểu và dẫn chứng được một số lĩnh vực ứng dụng của TTNT • Hiểu các đặc điểm cơ bản của GQVĐ trong TTNT Kiến thức tiên quyết : Các hiểu biết về lịch sử phát triển của khoa học máy tính. Tài liệu tham khảo : • George F. Luger, William A. Stubblefield – Albuquerque – Artificial Intelligence – Wesley Publishing Company, Inc – 1997 (Chapter 1) • Bùi Xuân Toại – Trương Gia Việt (Biên dịch) – Trí tuệ nhân tạo – Các cấu trúc và chiến lược giải quyết vấn đề - NXB Thống kê, 2000 (Phần I) • PTS. Nguyễn Thanh Thủy – Trí tuệ nhân tạo – Các phương pháp giải quyết vấn đề và kỹ thuật xử lý tri thức– NXB Giáo dục, 1995 (Chương 1) • Wikipedia – Bách khoa toàn thư mở - Lịch sử ngành Trí tuệ nhân tạo • http://en.wikipedia.org/wiki/Artificial_intelligence • Artificial Intelligence: A Modern Approach (Second Edition) by Stuart Russell and Peter Norvig : Introduction on AI • http://aima.cs.berkeley.edu/ 5/197 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA TRÍ TUỆ NHÂN TẠO LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA TRÍ TUỆ NHÂN TẠO Những năm gần đây, khá nhiều sách, báo, công trình nghiên cứu khoa học đề cập đến các kỹ thuật tính toán, người ta hay nhắc đến nhiều thuật ngữ như: máy tính thông minh, máy tính thế hệ V, hệ chuyên gia, mạng ngữ nghĩa, ... Các ngôn ngữ lập trình như LISP, PROLOG mở đường cho việc áp dụng hàng loạt các hệ thống chương trình có khả năng "thông minh". Trước đây, mỗi khi nói đến Trí tuệ nhân tạo (TTNT) người ta thường quan tâm đến việc tạo lập các máy tính có khả năng "suy nghĩ", thậm chí trong một số phạm vi hẹp nào đó, có thể cạnh tranh hoặc vượt quá khả năng của bộ não con người. Những hy vọng này trong một thời gian dài đã ảnh hưởng rất nhiều đến các nghiên cứu trong phòng thí nghiệm. Mặc dù những mô hình tương tự các máy tính thông minh đã được đưa ra hàng nhiều năm trước, nhưng chỉ từ khi Alan Turing công bố những kết quả nghiên cứu quan trọng đầu tiên, người ta mới bắt đầu thực sự nghiên cứu đến các vấn đề TTNT một cách nghiêm túc. Phát hiện của Turing cho rằng chương trình có thể được lưu trữ trong bộ nhớ để sau đó được thực hiện trên cơ sở các phép toán cơ bản thao tác với các bit 0, 1. Điều này đã tạo nên nền tảng của những máy tính hiện đại. Việc lưu trữ chương trình trong máy cho phép thay đổi chức năng của nó một cách nhanh chóng và dễ dàng thông qua việc nạp một chương trình mới vào bộ nhớ. Theo một nghĩa nào đó, khả năng này làm cho máy tính có khả năng học và suy nghĩ. Đó cũng chính là một trong những biểu hiện quan trọng đầu tiên của những máy tính được trang bị TTNT. Năm 1956, chương trình dẫn xuất kết luận trong hệ hình thức đã được công bố. Tiếp theo đó, năm 1959 chương trình chứng minh các định lý hình học phẳng và chương trình giải quyết bài toán vạn năng (GPS - General Problem Solving) đã được đưa ra. Tuy vậy chỉ cho đến khoảng năm 1960 khi McCathy ở MIT (Massachussets Institute of Technology) đưa ra ngôn ngữ lập trình đầu tiên dùng cho trí tuệ nhân tạo LISP (list processing), các nghiên cứu về TTNT mới bắt đầu phát triển mạnh mẽ. Thuật ngữ TTNT do Marvin Minsky một chuyên gia nổi tiếng cũng ở MIT đưa ra năm 1961 trong bài báo " Steps Forwards To Artificial Intelligence". Những năm 60 có thể xem là một mốc quan trọng trong quá trình xây dựng các máy có khả năng suy nghĩ. Các chương trình chơi cờ và các chương trình chứng minh định lý toán học đầu tiên cũng được công bố trong khoảng thời gian này. Những bế tắc, hạn chế thành công của các công trình nghiên cứu TTNT trong những năm 60 chính là do giới hạn khả năng của các thiết bị, bộ nhớ và đặc biệt là yếu tố thời gian thực hiện. Chính những yếu tố này không cho phép tổng quát hóa những thành 6/197 công bước đầu đạt được trong các hệ chương trình TTNT đã xây dựng. Tuy rằng vào giữa những năm 70, bộ nhớ máy tính và thời gian tính toán đã được nâng cao đáng kể về chất, song những cách tiếp cận khác nhau đến TTNT vẫn chưa đem tới những thành công thật sự do sự bùng nổ tổ hợp trong quá trình tìm kiếm lời giải cho các bài toán đặt ra. Cuối những năm 70, một số nghiên cứu cơ bản trong các lĩnh vực như xử lý ngôn ngữ tự nhiên, biểu diễn tri thức, lý thuyết giải quyết vấn đề đã đem lại diện mạo mới cho TTNT. Thị trường tin học đã bắt đầu đón nhận những sản phẩm TTNT ứng dụng đầu tiên mang tính thương mại. Đó là các hệ chuyên gia được áp dụng trong các lĩnh vực khác nhau. Hệ chuyên gia là các phần mềm máy tính, chứa các thông tin và tri thức về một lĩnh vực cụ thể nào đó, có khả năng giải quyết những yêu cầu của người dùng ở một mức độ nào đó với trình độ như một chuyên gia có kinh nghiệm lâu năm. Một trong những hệ chuyên gia đầu tiên được sử dụng thành công trong thực tế là hệ MYCIN, được thiết kế và cài đặt tại trường Đại học Tổng Hợp Stanford. Một sự kiện quan trọng trong sự phát triển của khoa học TTNT là sự ra đời của ngôn ngữ PROLOG, do Alain Calmerauer đưa ra năm 1972. Năm 1981, dự án của Nhật Bản xây dựng các máy tính thế hệ thứ V lấy ngôn ngữ PROLOG như là ngôn ngữ cơ sở đã làm thay đổi khá nhiều tình hình phát triển TTNT ở Mỹ cũng như châu Âu. Giai đoạn 1981 trở đi người ta cảm nhận khá rõ nét rằng các chuyên gia về TTNT đang dần chuyển các kết quả nghiên cứu từ phòng thí nghiệm sang cài đặt các ứng dụng cụ thể. Có thể nói đây cũng là giai đoạn cạnh tranh ráo riết của các công ty, các viện nghiên cứu hàng đầu nhằm đưa ra thị trường các sản phẩm phần mềm ứng dụng kỹ thuật TTNT. Cuối những năm 80, đầu những năm 90 thị trường các sản phẩm dân dụng đã có khá nhiều sản phẩm ở trình độ cao như máy giặt, máy ảnh, . . . sử dụng TTNT. Các hệ thống nhận dạng và xử lý hình ảnh, tiếng nói đang ngày càng thúc đẩy sự phát triển kỹ thuật mạng Neuron. Sự xích lại của hai cách tiếp cận: Tiếp cận mờ trong lập luận xấp xỉ và kỹ thuật mạng Neuron đã và đang gây được sự quan tâm đặc biệt của các chuyên gia tin học. Bên cạnh sự xuất hiện của các hệ chuyên gia, các ứng dụng công nghiệp và quản lý xã hội, quản lý kinh tế cũng đòi hỏi sự ra đời của các hệ thống xử lý tri thức – dữ liệu tích hợp. Thế giới đang chuyển mình trong những nghiên cứu về TTNT. Tuy vậy câu hỏi liệu kỹ thuật TTNT có tạo nên những bước nhảy vọt trong công nghệ tin học, đặc biệt là trong công nghệ máy tính như người ta đã mong đợi hay không vẫn chưa có lời giải đáp thỏa đáng. 7/197 ĐỊNH NGHĨA TRÍ TUỆ NHÂN TẠO ĐỊNH NGHĨA TRÍ TUỆ NHÂN TẠO Trí tuệ nhân tạo Trí tuệ nhân tạo (AI: Artificial Intelligence) có thể được định nghĩa như một ngành của khoa học máy tính liên quan đến việc tự động hóa các hành vi thông minh. AI là một bộ phận của khoa học máy tính và do đó nó phải được đặt trên những nguyên lý lý thuyết vững chắc, có khả năng ứng dụng được của lĩnh vực này. Những nguyên lý này bao gồm các cấu trúc dữ liệu dùng cho biểu diễn tri thức, các thuật toán cần thiết để áp dụng những tri thức đó, cùng các ngôn ngữ và kỹ thuật lập trình dùng cho việc cài đặt chúng. Tuy nhiên định nghĩa trên phải chấp nhận một thực tế - trí tuệ tự nó là một khái niệm không được định nghĩa một cách rõ ràng. Mặc dù hầu hết chúng ta đều có thể nhận ra các hành vi thông minh khi nhìn thấy chúng nhưng rất khó có thể đưa ra một định nghĩa về trí tuệ. Vì thế mà vấn đề định nghĩa Trí tuệ nhân tạo tự nó trở thành một sự định nghĩa trí tuệ: đó có phải là một năng lực duy nhất hay chỉ là tên dùng gọi một tập hợp những khả năng khác nhau và không liên quan gì đến nhau ? Thế nào là khả năng sáng tạo ? Thế nào là trực giác ? Có thể kết luận ngay về tính trí tuệ từ việc quan sát một hành vi hay không hay cần phải có biểu hiện của một cơ chế nào đó nằm bên trong ? Tất cả những câu hỏi này vẫn chưa được trả lời và chúng đã nêu ra những vấn đề cần có phương pháp luận để giải quyết. Cho đến nay, Trí tuệ nhân tạo vẫn còn là một ngành khoa học trẻ, những mối quan tâm và những phương pháp của nó chưa được rõ ràng so với tất cả các ngành khoa học đã trưởng thành trước đó. Song, một trong những mục tiêu trọng tâm của nó là quan tâm đến việc mở rộng khả năng của khoa học máy tính hơn là tìm cách định nghĩa những giới hạn của nó. Câu hỏi : Nêu một định nghĩa theo sự khái quát của riêng bạn về Trí tuệ nhân tạo ? Trắc nghiệm Turing Năm 1950, một nhà toán học người Anh là Alan Turing đã viết những trang sách đầu tiên trả lời một cách cụ thể câu hỏi: trí tuệ máy có liên hệ như thế nào với máy tính kỹ thuật số hiện đại. Tác phẩm "Máy tính và trí tuệ" (Turing 1950) của ông vẫn còn mang tính thời đại đối với việc đánh giá những tranh luận về khả năng tạo ra một máy tính 8/197 thông minh, cũng như đối với những câu trả lời của tác phẩm này cho các tranh luận trên. Turing, người nổi tiếng chủ yếu qua những đóng góp của ông cho lý thuyết về khả năng tính toán đã xem xét câu hỏi: liệu có thể làm cho một máy tính thực sự có khả năng suy nghĩ hay không ? Để giải quyết những mơ hồ trong câu hỏi này, ông đã đề xuất thay thế câu trả lời bằng kết quả của một trắc nghiệm mang tính thực nghiệm – trắc nghiệm Turing (Turing test) hay "trò chơi bắt chước". Trắc nghiệm Turing đo lường khả năng của một máy tính được coi là thông minh và so sánh với khả năng đó của con người – một đối tượng được xem là có hành vi thông minh nhất và là chuẩn mực duy nhất về trí tuệ. Trong trắc nghiệm này, một máy tính và một người tham gia trắc nghiệm được đặt vào trong các căn phòng cách biệt với một người thứ hai, người này được gọi là "người thẩm vấn" (hình 1.1). Người thẩm vấn không thể nhìn thấy hay nói chuyện với bất kỳ ai trong trong hai đối tượng trên, cũng không biết được chính xác đối tượng nào là người hay máy tính, và cũng chỉ có thể giao tiếp với hai đối tượng đó thông qua một thiết bị soạn thảo văn bản, chẳng hạn như một thiết bị đầu cuối. Người thẩm vấn có nhiệm vụ phân biệt người với máy tính bằng cách chỉ dựa trên những câu trả lời của họ đối với những câu hỏi được truyền qua thiết bị liên lạc này. Trong trường hợp nếu người thẩm vấn không thể phân biệt được máy tính với người thì khi đó, theo Turing, máy tính này có thể được xem là thông minh. Hình 1.1 – Trắc nghiệm Turing Bằng cách cách ly người thẩm vấn với máy tính cũng như người tham gia vào trắc nghiệm, thí nghiệm này bảo đảm rằng người thẩm vấn sẽ không có thành kiến với sự xuất hiện của máy tính hay bất kỳ một đặc tính máy móc nào trong lời nói của nó. Tuy nhiên, với mục đích cố gắng phát hiện ra đâu là máy tính, người thẩm vấn có thể được tự do hỏi bất kỳ câu hỏi nào, cho dù là những câu hỏi bóng gió hay quanh co. Chẳng 9/197 hạn, người thẩm vấn có thể yêu cầu cả hai đối tượng thực hiện một phép tính liên quan ít nhiều đến số học với giả định rằng máy tính sẽ thực hiện nhanh và chính xác hơn người. Để đối phó với chiến thuật này, một máy tính thông minh cần phải biết khi nào thì nó nên đưa ra một câu trả lời sai cho những bài toán nhằm tỏ ra nó giống con người. Một cách tương tự, để có thể phát hiện ra đặc tính con người dựa vào bản chất cảm xúc, người thẩm vấn cũng có thể hỏi cả hai đối tượng các kiến thức về thơ văn hay nghệ thuật. Và để đối phó với chiến thuật này đòi hỏi máy tính cũng phải có những kiến thức liên quan đến cảm xúc xuất phát từ con người. Những đặc trưng quan trọng của trắc nghiệm này là : Nó đưa ra một khái niệm khách quan về trí tuệ, tức là hành vi của một thực thể thông minh nào đó đáp ứng lại một tập hợp các câu hỏi đặc thù. Việc này cho chúng ta một chuẩn mực để xác định trí thông minh, đồng thời tránh được những tranh luận không cần thiết về bản chất "đúng" của nó. Nó tránh cho chúng ta khỏi bị lạc đường bởi những câu hỏi rắc rối và hiện thời chưa thể trả lời được, chẳng hạn như máy tính có sử dụng những suy luận thích hợp bên trong nó hay không, hay máy tính thực sự có ý thức được những hành động của nó hay không. Nó loại trừ bất cứ định kiến thiên vị nào vì bắt buộc người thẩm vấn chỉ tập trung vào nội dung các câu trả lời. Nhờ những ưu điểm này, trắc nghiệm Turing đã cung cấp một cơ sở cho nhiều sơ đồ đánh giá mà những sơ đồ này được dùng thực sự cho các chương trình TTNT hiện đại. Người ta có thể đánh giá khả năng chuyên môn của một chương trình về một lĩnh vực nào đó bằng cách so sánh kết quả làm việc của nó với một chuyên gia khi cùng giải quyết một tập các bài toán cho trước. Kỹ thuật đánh giá này chỉ là biến thể của trác nghiệm Turing: một nhóm chuyên gia sau đó sẽ được yêu cầu so sánh kết quả thực hiện của máy và người trên một tập hợp đặc thù các bài toán mà không được thấy các đối tượng. Chúng ta sẽ thấy rằng phương pháp luận này đã trở thành một công cụ không thể thiếu trong cả hai giai đoạn phát triển và kiểm chứng của các hệ chuyên gia hiện đại. Câu hỏi : Hãy so sánh những điểm khác nhau cơ bản trong khả năng giải quyết vấn đề giữa máy tính hiện đại với con người ? 10/197 KHÁI QUÁT CÁC LĨNH VỰC ỨNG DỤNG CỦA TTNT KHÁI QUÁT CÁC LĨNH VỰC ỨNG DỤNG CỦA TTNT Hai mối quan tâm nền tảng nhất của các nhà nghiên cứu TTNT là biểu diễn tri thức (knowledge representation) và tìm kiếm (search). Sự quan tâm thứ nhất chú ý đến vấn đề nắm bắt theo một ngôn ngữ hình thức, tức là một dạng thức thích hợp để máy tính vận hành, phạm vi tri thức đầy đủ mà hành vi thông minh đòi hỏi. Trong khi, tìm kiếm là kỹ thuật giải quyết vấn đề theo cách khảo sát có hệ thống một không gian trạng thái bài toán (problem state), tức là các giai đoạn tuần tự và có chọn lựa trong quá trình giải quyết vấn đề. Giống như hầu hết các ngành khoa học khác, Trí Tuệ Nhân Tạo cũng được phân thành những ngành con. Trong khi chia sẻ một tiếp cận giải quyết vấn đề cơ bản, các ngành con này có các mối quan tâm đến các ứng dụng khác nhau. Phần sau sẽ phác thảo tổng thể một vài lĩnh vực ứng dụng chính và những đóng góp của chúng cho Trí tuệ nhân tạo. Trò chơi Ngay từ thời kỳ đầu của việc nghiên cứu vấn đề tìm kiếm trong không gian trạng thái, người ta đã tiến hành nhiều thử nghiệm bằng cách sử dụng các trò chơi thông dụng có bàn cờ như cờ đam (checker), cờ vua và trò đố 15 ô (15 puzzule). Ngoài sức quyến rũ do tính chất trí óc vốn có trong các trò chơi có bàn cờ, có nhiều tính nhất định làm cho chúng trở thành một đối tượng lý tưởng của thời kỳ này. Hầu hết các trò chơi đều sử dụng một tập hợp các luật chơi được xác định rõ ràng. Điều này làm cho việc phát sinh không gian tìm kiếm trở nên dễ dàng và giải phóng nhiều nghiên cứu khỏi những sự mơ hồ và phức tạp vốn có trong các bài toán ít cấu trúc hơn. Hình dạng của những bàn cờ sử dụng trong các trò chơi này dễ dàng được biểu diễn vào máy tính, trong khi không đòi hỏi một hình thức khó hiểu cần thiết nào để nắm bắt những tinh tế và ngữ nghĩa trong những lĩnh vực bài toán phức tạp hơn. Do có thể chơi các trò chơi một cách dễ dàng nên việc thử nghiệm một chương trình chơi trò chơi không phải trả một gánh nặng nào về tài chính hay đạo đức. Các trò chơi có thể phát sinh ra một số lượng không gian tìm kiếm cực kỳ lớn. Những không gian này đủ lớn và phức tạp để đòi hỏi những kỹ thuật mạnh nhằm quyết định xem những chọn lựa nào cần được khảo sát trong không gian bài toán. Những kỹ thuật này được gọi là các heuristic và chúng tạo thành một lĩnh vực lớn trong nghiên cứu TTNT. Một heuristic là một chiến lược giải quyết vấn đề tốt nhưng tiềm ẩn khả năng thất bại, chẳng hạn như việc kiểm tra để biết chắc rằng một thiết bị không nhạy đã được cắm vào trước khi giả định rằng nó bị hỏng, hay cố gắng bảo vệ quân cờ hoàng hậu của bạn khỏi bị bắt trong trò chơi cờ vua. Nhiều thứ mà chúng ta gọi là thông minh thuộc về các heuristic được người ta sử dụng để giải quyết các vấn đề. 11/197 Hầu hết chúng ta đều có một số kinh nghiệm với những trò chơi đơn giản này, nên chúng ta cũng có khả năng nghĩ ra và kiểm nghiệm tính hiệu quả của những heuristic của chính mình. Chúng ta không cần đi tìm và hỏi ý kiến chuyên gia trong một số lĩnh vực chuyên môn sâu như là y học hay toán học (cờ vua là một ngoại lệ dễ thấy đối với quy tắc này). Vì những lý do đó, các trò chơi cung cấp một không gian mênh mông cho việc nghiên cứu các tìm kiếm heuristic. Các chương trình chơi trò chơi, trái ngược với tính đơn giản của chúng, đưa ra những thử thách riêng của chúng, bao gồm các đấu thủ mà các nước đi của anh ta có thể không dự đoán trước được một cách chắc chắn. Sự có mặt này của đấu thủ càng làm phức tạp hơn mô hình chương trình do sự thêm vào một yếu tố không dự đoán trước được và sự cần thiết phải tính đến những yếu tố tâm lý cũng như là chiến thuật trong chiến lược của trò chơi. Suy luận và chứng minh định lý tự động Chúng ta có thể cho rằng chứng minh định lý tự động là một nhánh nghiên cứu có từ lâu đời nhất của Trí tuệ nhân tạo khi tìm lại nguồn gốc của nó qua các tác phẩm "Nhà lý luận logic (logic theorist)" (Newell và Simon 1963a) và "Công cụ giải quyết vấn đề tổng quát (General problem solver)" (Newell và Simon 1965b) của Newell và Simon, cho đến trong những nổ lực của Rusell và Whitehead xem toàn bộ toán học như là sự dẫn xuất hình thức thuần tuý của các định lý từ các tiên đề cơ sở. Trong bất cứ trường hợp nào, nó chắc chắn vẫn là một trong những ngành phong phú nhất của lĩnh vực này. Nghiên cứu chứng minh định lý đã đạt được nhiều thành tích trong thời kỳ đầu của việc hình thức hoá các giải thuật tìm kiếm và phát triển các ngôn ngữ biểu diễn hình thức như phép tính vị từ. Hầu hết sự quyến rũ của chứng minh định lý tự động đều là không đáng tin cậy và không đúng với nguyên tắc chung của logic. Vì là một hệ hình thức, logic tự bổ sung cho mình sự tự động hoá. Người ta có thể khảo sát một số lượng lớn những bài toán khác nhau, bằng cách biểu diễn mô tả của bài toán và những thông tin cơ sở liên quan như là tiên đề logic, và xem những trường hợp bài toán là những định lý cần phải chứng minh. Sự hiểu biết thấu đáo này là cơ sở cho việc nghiên cứu chứng minh định lý tự động và các hệ suy luận toán học. Một lý do khác cho việc tiếp tục quan tâm đến các máy chứng minh định lý tự động là sự nhận thức rằng một hệ thống kiểu như vậy không nhất thiết phải có khả năng giải quyết những bài toán cực kỳ phức tạp một cách độc lập mà không có sự trợ giúp nào của con người. Nhiều máy chứng minh định lý hiện đại hoạt động như những trợ lý viên thông minh khi chúng cho phép con người thực hiện những công tác đòi hỏi trình độ cao hơn là phân tích một bài toán lớn thành nhiều bài toán con và đặt ra những heuristic để tìm kiếm trong không gian những chứng minh có thể chọn. Máy chứng minh định lý sau đó thực hiện công tác đơn giản hơn nhưng cũng quan trọng là chứng minh các bổ đề, kiểm chứng những giải quyết nhỏ hơn, và hoàn thành những khía cạnh hình thức của 12/197 một chứng minh đã được phác thảo bởi sự hợp tác của nó với con người (Boyer và More 1979). Các hệ chuyên gia Kể từ lúc khoa học giải quyết vấn đề được nghiên cứu, người ta đã sớm ý thức một cách sâu sắc và cơ bản về tầm quan trọng của tri thức chuyên ngành. Lấy ví dụ một bác sĩ chẳng hạn, cô ta không thể chẩn đoán bệnh tốt chỉ nhờ vào một số kỹ năng giải quyết vấn đề tổng quát bẩm sinh; mà cô ta đã chẩn đoán tốt là vì cô ta có nhiều kiến thức y học. Tương tự như thế, một nhà địa chất giỏi phát hiện các mỏ khoáng vì anh ta biết áp dụng một cách hiệu quả nhiều tri thức lý thuyết và thực nghiệm về địa lý vào bài toán đang nằm trong tay anh ta. Tri thức chuyên gia về lĩnh vực là sự kết hợp giữa kiến thức lý thuyết về vấn đề đó và một tập hợp các quy tắc giải quyết vấn đề theo kiểu heuristic mà kinh nghiệm khi sử dụng những quy tắc này đã tỏ ra hiệu quả trong lĩnh vực đó. Các hệ chuyên gia được người ta xây dựng bằng cách thu thập các kiến thức từ chuyên gia người và mã hoá nó thành dạng thức mà máy tính có thể áp dụng cho những bài toán tương tự. Sự tin cậy vào tri thức của chuyên gia chuyên ngành trong các chiến lược giải quyết vấn đề của hệ là một đặc trưng chính của các hệ chuyên gia. Người ta đã viết ra một số chương trình mà ở đó người thiết kế cũng là nguồn tri thức chuyên ngành, nhưng sẽ điển hình hơn nhiều nếu chúng ta xem xét những chương trình được phát sinh từ sự cộng tác giữa một chuyên gia chuyên ngành chẳng hạn như một bác sĩ, một nhà hoá học, một nhà địa chất học hay một kỹ sư, với một chuyên gia riêng về trí tuệ nhân tạo. Chuyên gia chuyên ngành cung cấp kiến thức cần thiết về chuyên ngành thông qua những cuộc thảo luận tổng quát về các phương pháp giải quyết vấn đề của anh ta, và bằng cách biểu diễn những kỹ năng đó trên một tập hợp các bài toán mẫu được chọn lựa cẩn thận. Chuyên gia TTNT, hay còn gọi là kỹ sư tri thức (knowledge engineer), như người ta vẫn thường gọi là các nhà thiết kế hệ chuyên gia, có trách nhiệm thể hiện tri thức này vào một chương trình mà chương trình đó phải vừa hiệu quả vừa có vẻ thông minh trong các hành vi của nó. Một chương trình như thế vừa hoàn thành xong, cần phải tinh chế kiến thức chuyên môn của nó thông qua một quá trình cung cấp cho nó những bài toán mẫu để giải, để cho chuyên gia chuyên ngành phê bình hành vi của nó và thực hiện bất cứ thay đổi hay cải biến nào cần thiết đối với tri thức của chương trình. Quá trình này lặp đi lặp lại cho đến khi chương trình đạt được mức độ hoàn thiện mong muốn. Một trong các hệ chuyên gia sớm nhất khai thác tri thức chuyên ngành để giải quyết vấn đề là DENDRAL được phát triển tại Stanford vào cuối những năm 1960 (Lindsay et al.1980). DENDRAL được thiết kế để phỏng đoán cấu trúc của các phân tử hữu cơ từ công thức hoá học của chúng và các thông tin về khối quang phổ có liên quan đến các liên kết hoá học có mặt trong các phân tử. Vì các phân tử hữu cơ thường rất lớn, nên số lượng cấu trúc có khả năng tồn tại đối với những phân tử này thường là khổng lồ. DENDRAL chú ý vào bài toán của không gian tìm kiếm rộng lớn này bằng cách áp 13/197 dụng tri thức heuristic của các chuyên gia hoá học vào bài toán làm sáng tỏ cấu trúc. Các phương pháp của DENDRAL đã tỏ ra có một sức mạnh đáng kể. Khi thường xuyên tìm thấy cấu trúc đúng trong hàng triệu khả năng khác nhau chỉ sau có vài phép thử. Phương pháp này tỏ ra thành công đến mức người ta đã sử dụng những phiên bản của hệ chuyên gia nói trên trong các phòng thí nghiệm hoá học khắp nơi trên thế giới. Trong khi DENDRAL là một trong số những chương trình đầu tiên sử dụng tri thức chuyên ngành một cách hiệu quả để đạt được khả năng giải quyết vấn đề cấp chuyên gia, thì MYCIN là hệ chuyên gia đã thiết lập nên phương pháp luận cho các hệ chuyên gia hiện đại (contemporary expert systems) (Buchanan and Shortliff 1984). MYCIN sử dụng tri thức y khoa chuyên gia để chẩn đoán và kê đơn điều trị cho bệnh viêm màng não tuỷ sống và những trường hợp nhiễm trùng vi khuẩn trong máu. MYCIN, được các nhà nghiên cứu phát triển ở Stanford vào giữa những năm 1970, là một trong những chương trình đầu tiên chú ý đến những bài toán suy luận bằng thông tin không chắc chắn hoặc không đầy đủ. MYCIN cung cấp những giải quyết rõ ràng và logic về quá trình suy luận của nó, sử dụng một cấu trúc kiểm tra thích hợp với lĩnh vực chuyên môn của vấn đề, và nhận biết đặc tính để đánh giá một cách tin cậy hoạt động của nó. Nhiều kỹ thuật xây dựng hệ chuyên gia đang dùng hiện nay đã được người ta phát triển lần đầu trong dự án MYCIN. Những hệ chuyên gia cổ điển khác bao gồm chương trình PROSPECTOR dùng để tìm ra những nơi có chứa quặng mỏ và xác định loại quặng mỏ, dựa trên thông tin địa lý về một địa điểm nào đó (duda et al. 1979a, 1979b), chương trình INTERNIST dùng để chẩn đoán trong lĩnh vực nội khoa, Dipmeter Advisor dùng để phiên dịch các kết quả của các máy khoan giếng dầu (Smith and Baker 1983) và XCON dùng để định hình các máy tính hệ VAX.XCON được sử dụng từ năm 1981, tất cả các máy VAX và Digital Equipment Corporation bán thời bấy giờ đều được định hình bằng XCON. Vô số những hệ chuyên gia khác ngày nay đang giải quyết những bài toán trong nhiều lĩnh vực khác nhau như y học, giáo dục, kinh doanh, thiết kế và khoa học (Waterman 1986). Một điều thú vị mà chúng ta có thể nhận thấy là hầu hết các hệ chuyên gia được viết cho những lĩnh vực khá chuyên biệt và ở cấp độ chuyên gia. Nói chung những lĩnh vực này đều được nghiên cứu kỹ và chúng có những chiến lược giải quyết vấn đề đã xác định một cách rõ ràng. Mặc dù còn tồn tại những hạn chế này các hệ chuyên gia vẫn đang chứng minh giá trị của chúng trong nhiều ứng dụng quan trọng. Câu hỏi : Nêu thêm một số ưu điểm của hệ chuyên gia trên các phương diện tri thức, xã hội hoặc tài chính ? 14/197 Hiểu và mô hình hoá ngữ nghĩa ngôn ngữ tự nhiên Một trong những mục tiêu có từ lâu đời của Trí tuệ nhân tạo là tạo ra các chương trình có khả năng hiểu ngôn ngữ của con người. Khả năng hiểu ngôn ngữ tự nhiên không chỉ là một trong những biểu hiện căn bản nhất của trí thông minh con người mà sự tự động hoá nó một cách thành công sẽ gây ra một tác động ngoài sức tưởng tượng đối với năng lục và hiệu quả chính của những chiếc máy tính. Người ta đã bỏ ra nhiều công sức để viết các chương trình có khả năng hiểu ngôn ngữ tự nhiên. Tuy những chương trình này đã có được một số thành công trong những ngữ cảnh hạn chế, nhưng các hệ thống có khả năng sử dụng ngôn ngữ tự nhiên một cách linh hoạt và tổng quát theo cách như con người vẫn còn ở ngoài tầm tay những phương pháp luận hiện nay. Hiểu ngôn ngữ tự nhiên liên quan đến nhiều thứ hơn nhiều so với chỉ phân tích các câu thành các phần riêng rẽ những nhóm câu của chúng và tìm những từ đó trong từ điển. Khả năng hiểu thực sự tuỳ thuộc vào kiến thức nền tảng rộng lớn về lĩnh vực của bài văn và những thành ngữ dùng trong lĩnh vực đó, cũng như là khả năng ứng dụng những kiến thức tổng quát tuỳ thuộc theo ngữ cảnh để giải quyết những trường hợp bỏ sót hay tối nghĩa, là một đặc điểm bình thường trong lối nói con người. Ví dụ như chúng ta thử xem xét những khó khăn khi tiến hành một cuộc hội thoại về bóng chày với một người biết tiếng Anh nhưng không biết gì về luật chơi, các đấu thủ, hoặc lịch sử của môn chơi. Liệu người này có thể hiểu được hay không nghĩa của câu: "With none down in the top of the nith anh the go-ahead run at second, the managercalled this relief from the bull pen ?" Tuy từng từ riêng lẻ trong câu này là có thể hiểu được, nhưng câu này vẫn được coi là sai ngữ pháp ngay cả đối với người thông minh nhất trong số những người không am hiểu bóng chày. Công việc tập hợp và tổ chức kiến thức nền tảng này được tiến hành theo cách mà sao cho cách ấy có thể áp dụng được cho sự lĩnh hội ngôn ngữ, đã hình thành nên vấn đề chủ yếu của việc tự động hoá quá trình hiểu ngôn ngữ tự nhiên. Để đáp ứng yêu cầu này, các nhà nghiên cứu đã phát triển nhiều kỹ thuật dùng để cấu trúc hoá ý nghĩa ngữ nghĩa, các kỹ thuật này được dùng xuyên suốt khoa học Trí tuệ nhân tạo. Do việc hiểu ngôn ngữ tự nhiên đòi hỏi những khối lượng kiến thức khổng lồ, hầu hết các công trình được người ta thực hiện trong những lĩnh vực vấn đề đã được hiểu rõ và chuyên môn hoá. Một trong những chương trình khai thác sớm nhất phương pháp luận "thế giới qui mô" này là SHRDLU của Winograd, một hệ ngôn ngữ tự nhiên có khả năng "trò chuyện" về hình dáng đơn giản của các khối có nhiều hình dạng và màu sắc khác nhau (winograd 1973). SHRDLU có thể trả lời được những câu hỏi kiểu như "khối màu gì đang nằm trên hình lập phương màu xanh da trời ?" và dự kiến những hành động kiểu như "di chuyển hình chóp màu đỏ lên viên gạch màu xanh lá cây". Những bài toán loại này, liên quan đến việc mô tả và thao tác những sắp xếp đơn giản của các khối đã 15/197 xuất hiện và thường xuyên gây ngạc nhiên trong giới nghiên cứu TTNT và được người ta biết đến dưới cái tên là những bài toán "thế giới của khối". Mặc cho SHRDLU thành công với việc trò chuyện về sự sắp xếp của các khối, nhưng phương pháp của nó đã không đủ khái quát được để vượt ra khỏi thế giới các khối. Những kỹ thuật biểu diễn được sử dụng trong chương trình này quá đơn giản nên không đủ để tổ chức nắm bắt ngữ nghĩa của nhiều lĩnh vực phong phú và phức tạp hơn một cách có kết quả. Nhiều sự đầu tư nghiên cứu về hiểu ngôn ngữ tự nhiên trong thời gian gần đây được người ta dành hết cho việc tìm ra những hình thức biểu diễn, mà về cơ bản đủ dùng trong một phạm vi rộng lớn các ứng dụng mà những ứng dụng này tự bản thân chúng còn chưa thích nghi tốt với cấu trúc đặc thù của lĩnh vực đó. Người ta khảo sát một số lượng những kỹ thuật khác nhau (hầu hết đều là những mở rộng hay cải tiến của kỹ thuật mạng ngữ nghĩa) cho mục đích này và dùng chúng vào việc phát triển những chương trình có khả năng hiểu ngôn ngữ tự nhiên trong những lĩnh vực tri thức cấp bách nhưng lý thú. Sau cùng, trong nghiên cứu gần đây (grosz 1997, marcus 1980), các mô hình và cách tiếp cận stochastic, mô tả cách các tập hợp từ "cùng xuất hiện" trong các môi trường ngôn ngữ, đã được dùng để khắc hoạ nội dung ngữ nghĩa của câu. Tuy nhiên, hiểu ngôn ngữ tự nhiên một cách tổng quát là vấn đề vẫn còn vượt quá giới hạn hiện nay của chúng ta. Câu hỏi : Trình bày một số ứng dụng cụ thể mà bạn biết cho việc xử lý ngôn ngữ tự nhiên đang áp dụng vào các lĩnh vực cuộc sống hiện nay ? Mô hình hoá hoạt động của con người Mặc dù khá nhiều vấn đề đã nói ở trên dùng trí tuệ con người làm điểm tựa tham khảo để xem xét trí tuệ nhân tạo, thực tế đã không diễn biến theo cách mà những chương trình cần phải lấy sự tổ chức của trí óc con người làm kiểu mẫu cho chúng. Thực ra nhiều chương trình TTNT được thiết kế để giải một số bài toán cần thiết mà không cần chú ý đến tính tương tự của chúng so với kiến trúc trí óc con người. Ngay cả các hệ chuyên gia, trong khi nhận được nhiều tri thức từ các chuyên gia con người, cũng không thực sự cố gắng bắt chước những quá trình trí tuệ bên trong của con người. Nếu như sự hoạt động chỉ là những đặc tính mà theo đó một hệ thống sẽ được đánh giá, thì có thể là không có mấy lý do để mô phỏng các phương pháp giải quyết vấn đề của con người. Trong thực tế, những chương trình sử dụng các phương pháp không theo kiểu con người để giải quyết các bài toán thường thành công hơn những chương trình theo kiểu con người. Tuy nhiên, mô hình của những hệ thống rõ ràng bắt chước một số khía cạnh của cách giải quyết vấn đề theo kiểu con người vẫn là một mảnh đất màu mỡ trong nghiên cứu cho cả hai ngành khoa học trí tuệ nhân tạo và tâm lý học. 16/197 Mô hình hóa hoạt động con người, ngoài việc cung cấp cho TTNT nhiều phương pháp luận cơ bản, đã chứng tỏ được rằng nó là một dụng cụ mạnh để công thức hóa và thử nghiệm những lý thuyết về sự nhận thức của con người. Những phương pháp luận giải quyết vấn đề được các nhà khoa học máy tính phát triển đã đem đến cho các nhà tâm lý học một sự ẩn dụ mới để khảo sát trí tuệ con người. Hơn cả việc mở rộng được các lý thuyết về sự nhận thức trong thứ ngôn ngữ không rõ ràng sử dụng vào đầu thời kỳ nghiên cứu hay là từ bỏ được bài toán mô tả toàn bộ những hoạt động bên trong của trí óc con người (như đề nghị của các nhà hành vi học), nhiều nhà tâm lý học đã đưa ngôn ngữ và lý thuyết khoa học máy tính vào để công thức hóa các mô hình trí tuệ con người. Những kỹ thuật này không chỉ cung cấp một vốn từ vựng cho việc mô tả trí tuệ con người mà sự thể hiện trên máy tính những lý thuyết này đã tạo cho các nhà tâm lý học một cơ hội để thử nghiệm, phê bình và cải tiến một cách thực nghiệm những ý tưởng của họ (luger 1994). Lập kế hoạch và robotics Lập kế hoạch (planning) là một khía cạnh quan trọng trong những cố gắng nhằm chế tạo ra các robot có thể thực hiện được nhiệm vụ của chúng với một trình độ nhất định và khả năng linh hoạt và phản ứng với thế giới bên ngoài. Nói một cách khác ngắn gọn, việc lập kế hoạch giả định rằng robot có khả năng thực hiện những hành động sơ cấp (atomic action) nhất định. Nó cố gắng tìm ra một chuỗi các hành động cho phép hoàn thành một công tác ở cấp độ cao hơn, chẳng hạn như đi qua một căn phòng chứa đầy những chướng ngại vật. Có nhiều những lý do khiến cho việc lập kế hoạch trở thành một bài toán khó khăn, ngoài lý do không đáng kể nhất là kích thước quá lớn của không gian những chuỗi bước đi có thể tồn tại. Ngay cả một máy tính cực kỳ đơn giản cũng có khả năng tạo ra một số lượng khổng lồ những chuỗi bước đi có thể. Ví dụ, chúng ta hãy tưởng tượng rằng, một robot có khả năng di chuyển về phía trước, phía sau, bên phải, bên trái và cần xem xét có bao nhiêu cách khác nhau mà robot đó có thể dùng để di chuyển quanh căn phòng đó và robot phải lựa chọn một đường đi quanh chúng theo một phương pháp nào đó có hiệu quả. Viết một chương trình có khả năng tìm ra đường đi tốt nhất một cách thông minh với điều kiện như vậy, mà không bị chôn vùi bởi khối lượng khổng lồ các khả năng dự kiến, đòi hỏi phải có những kỹ thuật phức tạp để biểu diễn tri thức về không gian và kiểm soát việc tìm kiếm trong môi trường cho phép. Một phương pháp mà con người vẫn áp dụng để lập kế hoạch là phân rã vấn đề từng bước (hierarchical problem decoposition). Nếu bạn đang lập kế hoạch cho chuyến du lịch đến Luân Đôn, thì nói chung những vấn đề như sắp xếp chuyến bay, đến sân bay, liên hệ với hãng hàng không, vận chuyển đường bộ tại Luân Đôn sẽ được bạn xem xét một cách riêng lẻ, cho dù tất cả chúng đều là bộ phận của một kế hoạch toàn thể lớn hơn. Từng vấn đề này có thể được tiếp tục phân rã thành những vấn đề con (subproblem) nhỏ hơn như tìm một bản đồ thành phố, xem xét hệ thống giao thông, và tìm một nơi ăn ở 17/197 phù hợp điều kiện về tài chính. Cách làm này không những làm giảm bớt một cách hiệu quả không gian tìm kiếm mà nó còn cho phép chúng ta tiết kiệm được những kế hoạch con có thể dùng trong tương lai. Trong khi con người lập kế hoạch một cách chẳng mấy khó khăn, thì việc tạo ra một chương trình máy tính có thể làm được công việc như vậy là một thách thức ghê gớm. Một công tác có vẻ đơn giản là phá vỡ một vấn đề lớn thành nhiều vấn đề con liên quan thực sự cần đến những heuristic phức tạp và kiến thức bao quát về lĩnh vực đang lập kế hoạch. Quyết định xem cần giữ lại những kế hoạch con nào và tổng quát hóa chúng như thế nào cho sự sử dụng trong tương lai là một vấn đề phức tạp tương đương. Một robot thực hiện một dãy các hành động một cách mù quáng mà không biết phản ứng lại với những thay đổi trong môi trường của nó hoặc không có khả năng phát hiện và sửa chữa trong chính kế hoạch của nó khó có thể được người ta coi là thông minh. Thông ...
XEM VÀ TẢI VỀ:
[linkxem]https://drive.google.com/file/d/1spjW7scHombYDgFbV4H6FQ55TovTjiWe/preview[/linkxem][linktai]https://drive.google.com/file/d/1spjW7scHombYDgFbV4H6FQ55TovTjiWe/view[/linktai]