Skip to main content

Knowledge Representation, Inference Và Proof Systems Giúp Máy Tính Biến Tri Thức Thành Khả Năng Suy Luận Như Thế Nào?

Nếu dữ liệu thực sự là tất cả những gì chúng ta cần để tạo ra trí thông minh, thì một ổ cứng chứa hàng tỷ dòng thông tin có lẽ đã trở thành hệ thống thông minh nhất thế giới.

Nhưng thực tế không phải như vậy.

Điều khiến một hệ thống trở nên thông minh không chỉ nằm ở việc nó biết được bao nhiêu thông tin, mà còn nằm ở khả năng hiểu được ý nghĩa của những thông tin đó và sử dụng chúng để tạo ra những tri thức mới.

Sau khi đã học được ngôn ngữ của suy luận thông qua Logic, First-order Logic và Predicate Logic, máy tính sẽ phải đối mặt với một thách thức khác: làm thế nào để biến những tri thức mà mình đã biết thành khả năng suy luận về thế giới?

Ngôn Ngữ Của Suy Luận: Logic Đã Dạy Máy Tính Hiểu Thế Giới Như Thế Nào?

Trong bài viết này, chúng ta sẽ cùng khám phá vai trò của Knowledge Representation, Inference và Proof System trong hành trình biến dữ liệu thành tri thức và biến tri thức thành khả năng suy luận của máy tính.

1. Vì sao biết dữ liệu là chưa đủ để trở nên thông minh?

 Nếu chỉ nhìn vào những thành tựu của AI hiện đại, chúng ta rất dễ đi đến kết luận rằng điều quan trọng nhất là phải có thật nhiều dữ liệu. Hàng tỷ trang web được sử dụng để huấn luyện các mô hình ngôn ngữ lớn (LLM), hàng triệu hình ảnh được dùng để xây dựng các hệ thống nhận diện khuôn mặt và mỗi ngày lại có thêm vô số dữ liệu mới được tạo ra trên Internet. Điều đó khiến nhiều người tin rằng dữ liệu chính là chìa khóa tạo nên trí thông minh của máy tính.

Tuy nhiên, dữ liệu và trí thông minh chưa bao giờ là hai khái niệm đồng nghĩa với nhau.

Dữ liệu chỉ đơn thuần trả lời câu hỏi "hệ thống biết điều gì?", trong khi tri thức còn phải trả lời được câu hỏi "hệ thống hiểu được điều gì từ những gì nó đã biết?". Nhưng ngay cả khi đã có tri thức, một câu hỏi khác lại xuất hiện: "Hệ thống có thể suy ra được những điều gì mới từ các tri thức đó?".

Có lẽ đây mới là điều khiến một hệ thống trở nên thông minh. Trí thông minh không chỉ nằm ở việc biết thật nhiều, mà còn nằm ở khả năng liên kết các tri thức đã biết để tạo ra những kết luận mới, nhận ra những mối quan hệ chưa được nói ra một cách trực tiếp và sử dụng những hiểu biết đó để đưa ra quyết định phù hợp trong từng tình huống cụ thể.

Điều này cũng cho thấy vì sao dữ liệu là chưa đủ để tạo nên một hệ thống có khả năng suy luận. Máy tính không chỉ cần biết thế giới đang tồn tại những gì, mà còn phải biết những thông tin đó có ý nghĩa gì, chúng liên hệ với nhau như thế nào và từ đó có thể khám phá ra những điều gì mới. Nói cách khác, muốn biến dữ liệu thành khả năng suy luận, chúng ta cần nhiều hơn một kho lưu trữ thông tin. Chúng ta cần những cơ chế cho phép máy tính biểu diễn tri thức về thế giới và sử dụng những tri thức đó để tạo ra các kết luận mới một cách chính xác và đáng tin cậy.

Đó cũng chính là lý do Inference và Knowledge Representation trở thành hai trong số những ý tưởng quan trọng nhất của Automated Reasoning và AI hiện đại. Một ý tưởng giúp máy tính biết mình đang hiểu thế giới như thế nào, còn ý tưởng kia giúp nó biết mình có thể suy ra được điều gì từ những gì đã biết. Khi được kết hợp lại, chúng đã biến một cỗ máy chỉ biết lưu trữ dữ liệu trở thành một hệ thống có khả năng suy luận về thế giới mà nó đang quan sát.

2. Inference đã biến tri thức thành khả năng suy luận như thế nào?

Hãy hình dung một tình huống rất đơn giản. Nếu bạn biết rằng:

  • Tất cả các loài chim đều có cánh.
  • Chim sẻ là một loài chim.

Dù không ai nói trực tiếp rằng "chim sẻ có cánh", bạn vẫn có thể kết luận điều đó là đúng. Việc rút ra một kết luận mới từ những điều đã biết như vậy chính là Inference (suy luận).

Nói một cách đơn giản, Inference là quá trình sử dụng những tri thức đã có để tìm ra những tri thức mới một cách chính xác và đáng tin cậy, thay vì dựa vào cảm tính hay phỏng đoán.

Nếu logic cho chúng ta biết thế nào là một lập luận đúng, thì inference chính là việc áp dụng các quy tắc logic đó để thực sự tạo ra tri thức mới. Logic giống như bộ luật của một trò chơi, còn inference là những nước đi hợp lệ được thực hiện theo bộ luật đó.

How Inference Works

Inference rất dễ bị nhầm lẫn với một khái niệm khác là entailment (quan hệ kéo theo). Hãy hình dung rằng từ tập tri thức ban đầu của bạn có thể suy ra được hàng nghìn kết luận đúng khác nhau. Tập hợp tất cả những kết luận đó giống như một "đống rơm" khổng lồ.

  • Việc một kết luận nào đó thực sự nằm trong "đống rơm" này được gọi là entailment.
  • Còn quá trình từng bước tìm ra kết luận đó được gọi là inference.

Nói cách khác:

  • Entailment trả lời câu hỏi: "Kết luận này có thực sự được suy ra từ những gì ta đã biết hay không?"
  • Inference trả lời câu hỏi: "Làm thế nào để ta tìm ra được kết luận đó?"

Ví dụ, từ hai câu:

  • Tất cả các loài chim đều có cánh.
  • Chim sẻ là một loài chim.

Câu "chim sẻ có cánh" là một kết luận được entail bởi hai câu trên. Còn quá trình áp dụng các quy tắc logic để đi đến kết luận "chim sẻ có cánh" chính là inference.

Chỉ biết một tập các sự kiện là chưa đủ. Điều quan trọng hơn là làm thế nào để từ những điều đã biết, chúng ta có thể rút ra được những điều mới một cách chính xác và đáng tin cậy.

Ví dụ, nếu một hệ thống chỉ biết rằng:

  • Paris thuộc Pháp.
  • Pháp nằm ở Châu Âu.

Nhưng nó không thể suy ra được rằng:

  • Paris nằm ở Châu Âu.

thì hệ thống đó chỉ giống như một "kho lưu trữ dữ liệu", chứ chưa phải là một hệ thống có khả năng suy luận.

Vấn đề này càng trở nên quan trọng khi chúng ta muốn giao việc suy luận cho máy tính. Máy tính không có trực giác hay kiến thức nền như con người. Những điều mà chúng ta cho là quá hiển nhiên đôi khi lại hoàn toàn không hiển nhiên đối với máy tính. Nó chỉ có thể làm việc với những gì được mô tả một cách chính xác và các quy tắc suy luận được định nghĩa rõ ràng.

Nếu không có inference, một hệ thống sẽ chỉ biết đúng những gì được cung cấp ban đầu. Muốn nó biết thêm một sự thật mới, chúng ta buộc phải nói cho nó biết một cách trực tiếp. Nó sẽ không thể tự kết hợp các tri thức đã có để khám phá ra những điều mới.

Trong khi đó, phần lớn tri thức hữu ích của con người lại được hình thành từ chính quá trình suy luận này. Chúng ta hiếm khi học từng sự thật một cách riêng lẻ; thay vào đó, chúng ta liên tục kết hợp những điều đã biết để hiểu thêm những điều chưa được nói ra một cách tường minh. Chính vì vậy, inference trở thành một thành phần nền tảng của logic, trí tuệ nhân tạo và các hệ thống Automated Reasoning. Nó biến một "kho tri thức tĩnh" thành một hệ thống có khả năng tạo ra tri thức mới từ những gì nó đã biết.

Điều quan trọng nhất của inference là: nó không được phép tạo ra những kết luận sai từ những điều đúng. Trong logic, người ta gọi tính chất này là sound (tính đúng đắn). Nói một cách đơn giản, nếu các thông tin ban đầu đều đúng và chúng ta áp dụng đúng luật suy luận, thì kết luận cuối cùng chắc chắn cũng phải đúng.

Ví dụ, nếu bạn biết rằng:

  • Tất cả các loài chim đều có cánh.
  • Chim sẻ là một loài chim.

thì việc kết luận rằng "chim sẻ có cánh" là hoàn toàn hợp lý. Một hệ thống suy luận đáng tin cậy phải luôn hoạt động theo nguyên tắc như vậy: không được tự ý "bịa" ra những thông tin không thực sự được suy ra từ các tri thức ban đầu.

Tuy nhiên, chỉ có các luật suy luận thôi là chưa đủ để xây dựng một hệ thống suy luận hiệu quả.

Hãy hình dung bạn đang chơi cờ vua. Biết tất cả luật chơi không đồng nghĩa với việc bạn sẽ trở thành một kỳ thủ giỏi. Nếu mỗi lượt đi bạn thử tất cả các nước đi hợp lệ có thể có, bạn sẽ nhanh chóng bị choáng ngợp bởi vô số khả năng khác nhau. Điều quan trọng không chỉ là "đi đúng luật", mà còn là biết nên đi nước nào trước.

Một hệ thống suy luận cũng gặp vấn đề tương tự. Nếu nó cố gắng áp dụng tất cả các luật suy luận cho mọi thông tin mà nó có, nó sẽ tạo ra vô số kết luận, trong đó rất nhiều kết luận là không cần thiết hoặc không liên quan đến vấn đề cần giải quyết. Hệ thống sẽ phải tốn rất nhiều thời gian và tài nguyên để xử lý những thông tin dư thừa đó.

Vì vậy, bên cạnh các luật suy luận, một hệ thống suy luận hiệu quả còn cần có một chiến lược suy luận (reasoning strategy) để trả lời những câu hỏi như:

  • Nên bắt đầu suy luận từ đâu?
  • Nên tập trung vào những thông tin nào?
  • Kết luận nào là quan trọng đối với bài toán đang cần giải quyết?
  • Những thông tin nào có thể bỏ qua vì dư thừa hoặc lặp lại?

Có thể hình dung rằng các luật suy luận giống như luật chơi của một ván cờ, còn chiến lược suy luận chính là cách chúng ta lựa chọn những nước đi tốt nhất. Chỉ khi kết hợp được cả hai yếu tố này, một hệ thống mới có thể suy luận vừa đúng, vừa hiệu quả, thay vì chỉ tạo ra thật nhiều kết luận mà không mang lại nhiều giá trị.

Biết suy luận đúng là điều kiện cần, nhưng biết suy luận đúng lúc và đúng chỗ mới là điều kiện đủ để xây dựng một hệ thống suy luận hiệu quả.

Tầm quan trọng của Inference

Inference chính là chiếc cầu nối giữa việc "biết điều gì đó""làm được điều gì đó với tri thức ấy".

Một hệ thống thông minh không chỉ đơn thuần lưu trữ dữ liệu. Điều quan trọng hơn là nó phải biết cách sử dụng những gì mình đã biết để đưa ra những kết luận mới và quyết định hành động tiếp theo.

Ví dụ, một chiếc xe tự lái không chỉ biết rằng:

  • Có một vật thể ở phía trước.
  • Vật thể đó đang di chuyển về phía mình.

mà còn phải suy luận được rằng:

  • Vật thể đó có thể là một người đi bộ.
  • Nó đang tiến vào vùng nguy hiểm.
  • Xe cần phải giảm tốc độ hoặc phanh lại.

Chính quá trình biến dữ liệu thành những kết luận có ý nghĩa này là công việc của inference.

Trong khoa học máy tính, inference xuất hiện ở rất nhiều lĩnh vực quan trọng. Chẳng hạn:

  • Trong chứng minh định lý tự động (Automated Theorem Proving), máy tính sử dụng các luật suy luận để tự tìm ra chứng minh cho những mệnh đề toán học.
  • Trong lập trình logic, một chương trình không chỉ đơn thuần là các câu lệnh được thực thi tuần tự, mà chính là một tập các tri thức và luật suy luận để trả lời những câu hỏi mà chúng ta đặt ra.
  • Trong xác minh phần mềm và phần cứng (Formal Verification), inference được sử dụng để chứng minh rằng một chương trình hoặc một bộ vi xử lý thực sự hoạt động đúng như đặc tả của nó và không vi phạm những thuộc tính an toàn quan trọng.

Vì vậy, inference không chỉ là một khái niệm trừu tượng của logic học. Nó là cơ chế giúp biến tri thức thành khả năng suy luận, là nền tảng đứng sau nhiều công nghệ hiện đại trong lĩnh vực Automated Reasoning, và cũng chính là một trong những thành phần quan trọng làm nên các hệ thống AI có khả năng lập luận ngày nay.

3. Knowledge Representation đã dạy máy tính hiểu thế giới ra sao?

Hãy hình dung bạn muốn xây dựng một robot giúp việc trong nhà. Nếu chỉ nói với nó rằng:

  • Cái cốc đang ở trên bàn.
  • Chiếc bàn đang ở trong phòng khách.

thì việc lưu hai thông tin này vào cơ sở dữ liệu là tương đối đơn giản.

Nhưng nếu bạn hỏi: "Vậy cái cốc đang ở đâu?" robot phải có khả năng suy luận rằng: "Nếu cái cốc ở trên chiếc bàn và chiếc bàn ở trong phòng khách, thì cái cốc cũng đang ở trong phòng khách."

Điều này cho thấy một hệ thống thông minh không chỉ cần lưu trữ thông tin, mà còn cần biết các thông tin đó có ý nghĩa gì và chúng liên hệ với nhau như thế nào.

Đó chính là công việc của Knowledge Representation (KR) – Biểu diễn tri thức.

Nói một cách đơn giản, Knowledge Representation là cách chúng ta mô tả những gì một hệ thống biết về thế giới bằng một ngôn ngữ hoặc một cấu trúc đủ chính xác để máy tính có thể hiểu được, đồng thời đủ linh hoạt để nó có thể sử dụng những tri thức đó cho việc suy luận.

Nói cách khác, mục tiêu của Knowledge Representation không chỉ là trả lời câu hỏi: "Hệ thống biết những gì?" mà còn phải trả lời được: "Hệ thống sẽ sử dụng những điều nó biết để suy luận ra điều gì?"

Vì vậy, Knowledge Representation không đơn thuần là việc lưu dữ liệu, mà là việc quyết định hệ thống sẽ "nhìn thế giới" theo cách nào.

Ví dụ, chúng ta cần quyết định:

  • Trong thế giới này có những loại thực thể nào? (con người, đồ vật, địa điểm, sự kiện,...)
  • Chúng có những thuộc tính gì?
  • Chúng liên hệ với nhau như thế nào?
  • Chúng có thay đổi theo thời gian hay không?
  • Hệ thống có cần biểu diễn những điều nó chưa biết hoặc chưa chắc chắn hay không?

Những quyết định này sẽ ảnh hưởng trực tiếp đến khả năng suy luận của hệ thống sau này.

Data → Knowledge → Reasoning

KR giải quyết vấn đề gì?

Một câu hỏi rất tự nhiên là: "Tại sao chúng ta không sử dụng các cấu trúc dữ liệu thông thường như mảng, danh sách hay bảng dữ liệu?”

Thực tế, các cấu trúc dữ liệu này hoạt động rất tốt khi chúng ta chỉ cần lưu trữ những thông tin cụ thể.

Ví dụ:

  • Chiếc xe màu đỏ.
  • Nhiệt độ hiện tại là 32°C.
  • Có một cái hố ở vị trí (2,2).

Nhưng tri thức trong thế giới thực thường phức tạp hơn rất nhiều. Chẳng hạn, một hệ thống có thể biết rằng: "Có một cái hố ở vị trí (2,2) hoặc ở vị trí (3,1), nhưng hiện tại tôi chưa biết chính xác nó nằm ở đâu" hoặc "Mọi con chim đều có cánh" hay "Nếu trời mưa thì đường thường sẽ bị ướt".

Những loại tri thức này có một số đặc điểm mà các cấu trúc dữ liệu thông thường khó biểu diễn một cách tự nhiên:

  • Tri thức có thể không đầy đủ.
  • Tri thức có thể mang tính tổng quát và áp dụng cho nhiều trường hợp khác nhau.
  • Tri thức có thể thay đổi theo thời gian.
  • Tri thức có thể chứa các mối quan hệ phức tạp giữa nhiều đối tượng khác nhau.
  • Hệ thống có thể cần suy luận ra những điều chưa được nói ra một cách trực tiếp.

Nếu chỉ sử dụng các cấu trúc dữ liệu thông thường, chúng ta có thể lưu được thông tin, nhưng lại rất khó để trả lời những câu hỏi như:

  • Tôi có thể suy ra được điều gì từ những gì mình đã biết?
  • Điều gì chắc chắn đúng?
  • Điều gì có thể đúng nhưng chưa được xác nhận?
  • Khi có thêm thông tin mới, những kết luận nào cần phải được cập nhật?

Chính vì vậy, Knowledge Representation ra đời để biến một "kho dữ liệu" thành một "kho tri thức" có khả năng hỗ trợ việc suy luận.

Một vấn đề quan trọng hơn cả việc biểu diễn tri thức

Thực ra, trước khi viết ra bất kỳ một mệnh đề tri thức nào, chúng ta còn phải trả lời một câu hỏi nền tảng hơn: "Chúng ta sẽ cho hệ thống biết những gì về thế giới?". Ví dụ, khi xây dựng một hệ thống dành cho xe tự lái, chúng ta cần quyết định:

  • Có cần biểu diễn thời gian hay không?
  • Có cần biểu diễn tốc độ của các phương tiện hay không?
  • Có cần phân biệt người đi bộ với xe máy hay không?
  • Có cần biểu diễn mức độ chắc chắn của các thông tin mà cảm biến thu được hay không?

Nếu xây dựng một hệ thống hỗ trợ bác sĩ chẩn đoán bệnh, những câu hỏi lại hoàn toàn khác:

  • Có cần biểu diễn triệu chứng của bệnh nhân không?
  • Có cần biểu diễn xác suất mắc bệnh hay không?
  • Có cần biểu diễn lịch sử điều trị của bệnh nhân không?

Công việc quyết định "thế giới của hệ thống gồm những gì" được gọi là Ontological Engineering (kỹ thuật bản thể luận).

Có thể hiểu một cách đơn giản rằng đây là quá trình thiết kế "mô hình thế giới" mà hệ thống sẽ sử dụng để suy nghĩ và suy luận.

Nếu làm không tốt công đoạn này, hệ thống có thể chỉ hoạt động được với một bài toán rất hẹp, khó mở rộng sang những lĩnh vực khác và khó thích nghi khi xuất hiện những tri thức mới. Ngược lại, một mô hình tri thức được thiết kế tốt sẽ giúp hệ thống không chỉ lưu trữ thông tin hiệu quả mà còn có khả năng suy luận, mở rộng và thích nghi với những tình huống mới.

Tóm lại, Knowledge Representation không chỉ trả lời câu hỏi "hệ thống biết gì", mà còn trả lời câu hỏi "hệ thống hiểu thế giới như thế nào". Chính cách chúng ta lựa chọn biểu diễn tri thức sẽ quyết định hệ thống có thể suy luận được những gì và giới hạn của nó nằm ở đâu.

Hiểu bản chất của Knowledge Representation

Ý tưởng quan trọng nhất của Knowledge Representation (biểu diễn tri thức) là: chúng ta không cần và cũng không thể mô tả mọi chi tiết của thế giới thực. Thay vào đó, người ta sẽ xây dựng trước một "bộ khung" thật tổng quát để phân loại tri thức, sau đó mới bổ sung các thông tin cụ thể khi cần.

Hãy hình dung bạn muốn xây dựng một thư viện khổng lồ chứa mọi kiến thức của nhân loại. Bạn sẽ không thể viết hết mọi thứ ngay từ đầu. Việc đầu tiên cần làm là tạo ra các ngăn lớn như "Con người", "Sự vật", "Sự kiện", "Thời gian", "Địa điểm",... Sau này, khi có thêm tri thức mới, bạn chỉ cần đặt chúng vào đúng ngăn tương ứng. Bộ khung tổng quát này được gọi là bản thể luận thượng tầng (Upper Ontology).

Cách làm này cũng giống như trong lập trình hướng đối tượng (OOP). Chúng ta thường tạo ra một lớp tổng quát như Window (Cửa sổ) trước, rồi mới tạo ra các lớp cụ thể hơn như BrowserWindow, Spreadsheet Window hay GameWindow. Bộ khung được thiết kế càng tốt thì việc mở rộng hệ thống sau này càng dễ dàng.

Lấy ví dụ, chúng ta muốn giao cho AI nhiệm vụ sau: "Hãy tìm một thị trấn ở Mỹ có dân số dưới 10.000 người". Có hai cách để hệ thống lưu trữ tri thức này.

·       Cách thứ nhất liệt kê toàn bộ những thị trấn thoả mãn điều kiện. Nếu ngày mai có thêm một thị trấn mới thoả mãn điều kiện, chúng ta lại phải cập nhật toàn bộ danh sách.

·       Cách thứ hai lưu trữ tri thức dưới dạng một quy tắc tổng quát: "Mọi thị trấn ở Mỹ có dân số dưới 10.000 người đều thoả mãn yêu cầu". Khi đó, nếu chúng ta cung cấp thêm thông tin: "Thị trấn X ở Mỹ có dân số là 7.000 người" thì hệ thống có thể tự suy luận: "Vậy thị trấn X cũng thoả mãn yêu cầu". Chúng ta không cần phải lập trình thêm một quy tắc mới cho thị trấn X.

Đây chính là sức mạnh của việc biểu diễn tri thức bằng những quy tắc tổng quát thay vì liệt kê mọi trường hợp cụ thể.

Hãy xem xét một ví dụ khác: chúng ta thường nói "cà chua có màu đỏ". Đây là một quy luật đúng trong phần lớn trường hợp, giúp chúng ta hiểu và trao đổi thông tin một cách nhanh chóng. Tuy nhiên, thực tế vẫn có cà chua màu xanh, màu vàng hay màu cam. Máy tính nên lưu trữ tri thức như thế nào?

  • Cách thứ nhất là xem "cà chua có màu đỏ" là một quy luật mặc định. Nói cách khác, nếu chưa có thông tin nào khác thì hệ thống sẽ giả sử cà chua có màu đỏ. Chỉ khi nào xuất hiện thông tin mới như "đây là cà chua xanh" thì hệ thống mới thay đổi kết luận của mình.
  • Cách thứ hai là mô tả tri thức thật chi tiết ngay từ đầu, chẳng hạn như phân loại từng giống cà chua và màu sắc tương ứng của chúng để tránh các ngoại lệ.

Không có cách nào là hoàn hảo. Cách thứ nhất đơn giản và dễ suy luận nhưng phải chấp nhận có ngoại lệ. Cách thứ hai chính xác hơn nhưng lại khiến việc biểu diễn tri thức trở nên phức tạp hơn rất nhiều.

Knowledge Representation luôn phải chấp nhận sự đánh đổi. Nếu biểu diễn tri thức quá chi tiết và cố gắng mô phỏng đầy đủ thế giới thực (bao gồm các ngoại lệ, những thông tin mơ hồ và sự không chắc chắn), thì việc suy luận sẽ trở nên rất phức tạp và tốn nhiều tài nguyên tính toán. Ngược lại, nếu biểu diễn quá đơn giản thì hệ thống có thể suy luận rất nhanh, nhưng lại bỏ sót nhiều thông tin quan trọng.

Vì vậy, không có một cách biểu diễn tri thức nào là "tốt nhất cho mọi trường hợp". Điều quan trọng là phải lựa chọn cách biểu diễn phù hợp với bài toán mà chúng ta muốn giải quyết. Một cách biểu diễn được xem là tốt khi nó cân bằng được ba yếu tố: dễ lưu trữ tri thức, dễ suy luận và đủ chính xác cho mục đích sử dụng.

Knowledge Representation Pipeline

KR nằm ở đâu trong bức tranh lớn?

Có thể hình dung một hệ thống AI hoạt động theo quy trình sau: Tri thức của thế giới thực → Biểu diễn tri thức (Knowledge Representation) → Suy luận (Reasoning) → Đưa ra kết luận hoặc hành động

Ví dụ:

·       "Chim có thể bay."

·       "Chim cánh cụt là một loài chim."

·       "Chim cánh cụt không thể bay."

Đầu tiên, hệ thống phải biết cách lưu trữ ba mẩu tri thức trên. Sau đó, nó mới có thể suy luận để kết luận rằng: "Không phải mọi loài chim đều có thể bay".

Vì vậy, Knowledge Representation có thể được xem là "nguyên liệu đầu vào" của quá trình suy luận. Nếu tri thức được biểu diễn không tốt thì dù thuật toán suy luận có mạnh đến đâu, kết quả đưa ra cũng sẽ không chính xác.

Điều thú vị là không chỉ có một cách duy nhất để biểu diễn tri thức. Có rất nhiều phương pháp khác nhau đã được phát triển trong AI:

  • First-Order Logic: biểu diễn tri thức bằng các mệnh đề logic đúng hoặc sai.
  • Mạng xác suất (Probabilistic Networks): cho phép biểu diễn mức độ tin cậy của tri thức thay vì chỉ đúng hoặc sai tuyệt đối.
  • Logic thời gian (Temporal Logic): dùng để mô tả những sự kiện thay đổi theo thời gian, chẳng hạn như các hệ thống phản ứng liên tục.
  • Mạng nơ-ron sâu (Deep Neural Networks): tri thức không được lưu dưới dạng những câu mà con người có thể đọc được, mà được "mã hoá" bên trong hàng triệu hoặc hàng tỷ trọng số số học của mô hình.

Dù sử dụng phương pháp nào, mục tiêu cuối cùng vẫn giống nhau: giúp máy tính hiểu được những gì chúng ta biết về thế giới để có thể suy luận và đưa ra quyết định một cách hợp lý.

Nếu Machine Learning giúp máy tính học từ dữ liệu, còn Automated Reasoning giúp máy tính suy luận, thì Knowledge Representation chính là cách chúng ta dạy máy tính hiểu những gì nó đang biết. Máy tính chỉ có thể suy luận tốt khi tri thức được biểu diễn một cách phù hợp.

4. Làm thế nào để máy tính biết mình đang suy luận đúng?

"Nếu máy tính có thể suy luận, vậy làm thế nào để chúng ta biết rằng nó đang suy luận đúng?"

Đến đây, có lẽ chúng ta đã có thể trả lời được một phần câu hỏi được đặt ra từ đầu bài viết: máy tính cần một ngôn ngữ của suy luận để có thể biểu diễn tri thức về thế giới và tạo ra những kết luận mới từ những điều mà nó đã biết. Nhưng điều đó lại dẫn chúng ta đến một câu hỏi thú vị hơn.

Giả sử một hệ thống AI đưa ra kết luận rằng: “Tom đáng yêu”. Chúng ta có thể hỏi nó rằng: "Vì sao?". Nếu hệ thống trả lời rằng vì "Tom là một con mèo" và "mọi con mèo đều đáng yêu", chúng ta sẽ cảm thấy hoàn toàn hợp lý. Nhưng nếu nó kết luận rằng "Tom biết bay" từ hai thông tin trên thì sao? Bằng cách nào chúng ta biết được rằng hệ thống đang suy luận đúng hay chỉ đang tạo ra một kết luận nghe có vẻ hợp lý?

Đây thực chất không phải là một câu hỏi mới của AI hiện đại. Nó đã được các nhà Logic học đặt ra từ lâu: điều gì khiến một lập luận trở nên đúng? Liệu một kết luận được xem là đúng chỉ vì chúng ta cảm thấy nó hợp lý, hay nó phải được tạo ra từ những quy tắc suy luận chặt chẽ và đáng tin cậy?

Hãy xét một ví dụ đơn giản:

  • Mọi con người đều phải chết.
  • Socrates là một con người.
  • Vậy Socrates phải chết.

Hầu hết chúng ta đều đồng ý rằng đây là một lập luận đúng. Tuy nhiên, điều đáng chú ý ở đây không nằm ở nội dung của ba câu nói trên. Nếu thay Socrates bằng bất kỳ một đối tượng nào khác và thay "con người" bằng một khái niệm khác nhưng vẫn giữ nguyên cấu trúc của lập luận, chúng ta vẫn thu được một kết luận đúng. Nói cách khác, điều khiến một lập luận trở nên đúng không chỉ nằm ở việc các tiền đề là đúng, mà còn nằm ở cách chúng ta đi từ các tiền đề đó đến kết luận cuối cùng.

Điều này cũng chính là vấn đề mà máy tính phải đối mặt khi thực hiện suy luận. Một hệ thống có thể biết rất nhiều quy luật của thế giới, nhưng nếu không có một cơ chế giúp xác định đâu là những bước suy luận hợp lệ thì nó hoàn toàn có thể tạo ra những kết luận sai lầm. Khả năng suy luận vì thế không chỉ là khả năng tạo ra các kết luận mới, mà còn phải là khả năng chứng minh được rằng những kết luận đó được tạo ra theo một cách đúng đắn.

Đó cũng chính là lý do Proof System ra đời. Nếu Logic cung cấp cho máy tính ngôn ngữ của suy luận thì Proof System lại cung cấp cho nó những quy tắc để biết mình có đang suy luận đúng hay không. Nó cho phép chúng ta trả lời những câu hỏi quan trọng như:

  • Một kết luận có thực sự được suy ra từ các tri thức đã biết hay không?
  • Những bước suy luận nào được xem là hợp lệ?
  • Điều gì đảm bảo rằng một hệ thống sẽ không chứng minh những điều sai là đúng?
  • Khi nào chúng ta có thể tin tưởng vào một kết quả mà máy tính đưa ra?

Có lẽ, đây chính là một trong những ý tưởng đẹp nhất của Logic học. Trước khi dạy máy tính cách suy luận, chúng ta cần dạy cho nó biết thế nào là một lập luận đúng.

Proof System (hệ chứng minh) là một tập hợp các quy tắc suy luận được định nghĩa rất rõ ràng, cho phép chúng ta đi từ những giả thiết ban đầu đến một kết luận thông qua nhiều bước lập luận nhỏ.

Bạn có thể hình dung nó giống như một "cuốn sách luật" dành cho việc suy luận. Mỗi bước suy luận đều phải tuân theo các quy tắc đã được quy định sẵn. Nếu tất cả các bước đều hợp lệ thì kết luận cuối cùng cũng được công nhận là đúng.

Ví dụ, nếu ta biết:

  • Nếu trời mưa thì đường sẽ ướt.
  • Hôm nay trời đang mưa.

Ta có thể kết luận: Vậy hôm nay đường sẽ ướt.

Đây là một kiểu suy luận rất tự nhiên của con người. Proof System sẽ quy định chính xác rằng trong trường hợp nào chúng ta được phép suy ra kết luận như vậy.

Điểm quan trọng nhất của Proof System là mọi thứ đều được mô tả một cách chính xác và không mơ hồ. Vì vậy, nếu một chứng minh được thực hiện đúng theo các quy tắc của hệ thống, thì bất kỳ ai kiểm tra lại — dù là con người hay máy tính — cũng phải đi đến cùng một kết luận rằng chứng minh đó là hợp lệ.

Proof System giải quyết vấn đề gì?

Nói rằng một mệnh đề là "đúng" vẫn chưa đủ. Điều quan trọng hơn là chúng ta phải trả lời được câu hỏi: "Làm thế nào để chứng minh nó đúng?"

Chẳng hạn, nếu có ai đó nói: "Chương trình này chắc chắn không bao giờ bị lỗi" hoặc "Định lý này chắc chắn đúng" thì chúng ta cần một phương pháp cụ thể để kiểm tra xem những khẳng định đó có thực sự đúng hay không.

Với các bài toán logic đơn giản, ta có thể thử liệt kê tất cả các khả năng có thể xảy ra rồi kiểm tra từng trường hợp một. Tuy nhiên, cách làm này chỉ phù hợp với những bài toán nhỏ.

Khi hệ thống trở nên phức tạp hơn, chẳng hạn như:

  • Chương trình máy tính có hàng triệu dòng mã nguồn.
  • Các hệ thống trí tuệ nhân tạo cần suy luận trên rất nhiều thông tin.
  • Các bài toán logic có số lượng khả năng cần xem xét là vô hạn.

thì việc kiểm tra bằng cách "thử hết mọi trường hợp" gần như không còn khả thi nữa.

Lúc này, chúng ta cần một cơ chế suy luận từng bước giống như cách con người lập luận, nhưng được chuẩn hóa thành những quy tắc rõ ràng để máy tính cũng có thể hiểu và thực hiện được. Đó chính là vai trò của Proof System.

Nếu không có Proof System, mỗi người có thể chứng minh theo một cách khác nhau. Việc kiểm tra tính đúng sai sẽ trở nên khó khăn và thiếu khách quan. Quan trọng hơn, chúng ta cũng không thể giao cho máy tính tự động kiểm tra hay tự động xây dựng các chứng minh toán học và chương trình máy tính.

Có thể xem Proof System như "bộ luật của suy luận". Nó trả lời cho câu hỏi: "Muốn chứng minh một điều gì đó là đúng, chúng ta được phép suy luận như thế nào?"

Chính nhờ những quy tắc chặt chẽ này mà các lĩnh vực như Formal Verification, SAT/SMT Solver, Automated Theorem Proving hay Automated Reasoning mới có thể được xây dựng.

Bản chất của Proof System

Có hai tính chất quan trọng nhất mà một Proof System tốt cần phải có, đó là Soundness (tính đúng đắn)Completeness (tính đầy đủ).

  • Soundness (tính đúng đắn) có nghĩa là hệ thống chỉ được phép chứng minh những điều thực sự đúng. Nói một cách đơn giản, nó không được phép "chứng minh nhầm".
  • Completeness (tính đầy đủ) có nghĩa là nếu một điều gì đó thực sự đúng thì về nguyên tắc, hệ thống phải có khả năng chứng minh được nó. Nói cách khác, nó không được phép bỏ sót sự thật.

Bạn có thể hình dung Proof System giống như một vị giám khảo trong một cuộc thi toán học:

  • Nếu vị giám khảo chấm một bài sai thành đúng thì hệ thống đã mất đi tính Soundness.
  • Nếu vị giám khảo từ chối công nhận một bài giải hoàn toàn chính xác thì hệ thống đã mất đi tính Completeness.

Một Proof System lý tưởng phải có được cả hai tính chất này cùng một lúc.

  • Nếu chỉ có Soundness mà không có Completeness, hệ thống sẽ rất "cẩn thận". Nó không bao giờ công nhận điều sai là đúng, nhưng đôi khi lại không thể chứng minh được những điều vốn dĩ là đúng.
  • Ngược lại, nếu chỉ có Completeness mà không có Soundness, hệ thống có thể chứng minh được rất nhiều thứ, nhưng lại nguy hiểm vì đôi khi nó còn "chứng minh" được cả những điều sai.

Vì vậy, một hệ thống suy luận tốt không chỉ cần tránh sai lầm mà còn phải có khả năng tìm ra mọi sự thật mà nó có thể biểu diễn được.

Điều thú vị là các nhà logic học đã chứng minh được rằng đối với First-order Logic (logic vị từ cấp một), chúng ta có thể xây dựng được những Proof System vừa Sound vừa Complete. Điều này có nghĩa là: Nếu một mệnh đề là đúng thì về mặt lý thuyết, luôn tồn tại một chứng minh cho nó.

Tuy nhiên, điều đó không đồng nghĩa với việc chúng ta luôn tìm được chứng minh ấy trong một khoảng thời gian hữu hạn.

Hãy hình dung bạn biết chắc rằng có một cuốn sách nào đó nằm trong một thư viện vô cùng lớn. Việc cuốn sách đó tồn tại là điều đã được đảm bảo, nhưng không ai có thể cho bạn biết phải mất bao lâu để tìm thấy nó.

Chứng minh trong First-order Logic cũng tương tự như vậy.

  • Nếu một mệnh đề là đúng, chúng ta biết rằng sẽ tồn tại một chứng minh cho nó.
  • Nhưng quá trình đi tìm chứng minh đó có thể rất lâu.
  • Tệ hơn nữa, nếu mệnh đề là sai thì việc tìm kiếm có thể kéo dài mãi mãi mà không bao giờ cho chúng ta câu trả lời cuối cùng.

Chính vì vậy, mặc dù First-order Logic vừa Sound vừa Complete, chúng ta vẫn không thể xây dựng được một thuật toán "thần kỳ" có khả năng luôn trả lời được hai câu hỏi:

·       "Mệnh đề này có đúng hay không?"

·       "Nếu đúng thì hãy tìm chứng minh cho nó."

trong một khoảng thời gian hữu hạn đối với mọi trường hợp.

Đây là một trong những kết quả sâu sắc nhất của logic học. Nó cho chúng ta thấy rằng: "Có thể chứng minh được" không đồng nghĩa với "có thể nhanh chóng tìm ra cách chứng minh".

Sự khác biệt rất nhỏ này lại chính là nền tảng của nhiều lĩnh vực hiện đại như Automated Reasoning, Automated Theorem Proving, SAT/SMT Solver và Formal Verification.

Tầm quan trọng của Proof System

Proof System được xem như "trái tim" của lĩnh vực Automated Theorem Proving (chứng minh định lý tự động). Nhiệm vụ của các hệ thống này là giúp máy tính:

  • Kiểm tra xem một chứng minh có đúng hay không.
  • Tự động tìm ra chứng minh cho một mệnh đề logic.
  • Hoặc chứng minh rằng một số tính chất quan trọng của hệ thống luôn được đảm bảo.

Ý tưởng này được ứng dụng rất nhiều trong Formal Verification (xác minh hình thức). Ví dụ, thay vì chỉ chạy thử một chương trình hàng nghìn lần rồi hy vọng nó không có lỗi, chúng ta có thể đặt câu hỏi:

·       "Liệu chương trình này có bao giờ chia cho số 0 không?"

·       "Liệu hệ thống này có bao giờ rơi vào trạng thái bị treo không?"

·       "Liệu phần mềm điều khiển máy bay có luôn đưa ra quyết định đúng trong mọi trường hợp hay không?"

Khi đó, bài toán không còn là "kiểm thử chương trình" nữa mà trở thành bài toán "chứng minh bằng toán học rằng chương trình luôn hoạt động đúng theo đặc tả của nó".

Ngoài việc xây dựng các chứng minh hình thức, một số hệ thống còn sử dụng kỹ thuật Model Checking (kiểm tra mô hình). Có thể hình dung đơn giản rằng máy tính sẽ cố gắng duyệt qua tất cả những trạng thái mà chương trình có thể đi qua để kiểm tra xem có trạng thái nào vi phạm yêu cầu đặt ra hay không.

Một ứng dụng thú vị khác xuất hiện trong các ngôn ngữ lập trình logic như Prolog. Với Prolog, việc chạy một chương trình thực chất là quá trình máy tính đi tìm lời giải cho một câu hỏi bằng cách áp dụng các quy tắc suy luận đã được định nghĩa từ trước.

Ví dụ, thay vì viết: "Hãy thực hiện các bước 1, 2, 3 rồi in kết quả ra màn hình" chúng ta sẽ nói với máy tính rằng:

·       "Đây là những sự kiện mà ta biết là đúng."

·       "Đây là những quy tắc suy luận được phép sử dụng."

·       "Hãy tự tìm xem kết luận nào có thể được suy ra."

Nói cách khác, máy tính không còn chỉ đơn thuần "thực thi chương trình", mà đang thực hiện một quá trình suy luận logic để đi tìm câu trả lời.

Chính vì vậy, Proof System không chỉ là một khái niệm thuần túy của logic học. Nó đã trở thành nền tảng của rất nhiều lĩnh vực quan trọng trong khoa học máy tính hiện đại như Automated Reasoning, Automated Theorem Proving, Formal Verification, Model Checking và cả các ngôn ngữ lập trình logic. Khi một hệ thống AI chứng minh được một định lý toán học, khi một công cụ xác minh được rằng phần mềm của máy bay không vi phạm một yêu cầu an toàn nào đó, hay khi một chương trình Prolog tìm ra lời giải cho một bài toán, ở phía sau tất cả những điều đó đều là những ý tưởng được xây dựng từ Proof System.

5. Khi Logic gặp AI: Một hệ thống có khả năng suy luận được hình thành như thế nào?

Điều gì khiến một cỗ máy chỉ biết lưu trữ dữ liệu có thể trở thành một hệ thống có khả năng suy luận?

Câu trả lời hóa ra không nằm ở việc cung cấp cho nó thật nhiều dữ liệu. Một hệ thống thông minh cần nhiều hơn thế.

Trước hết, nó cần biết mình đang hiểu thế giới theo cách nào. Đây chính là vai trò của Knowledge Representation. Việc biểu diễn tri thức không đơn thuần là lưu trữ các thông tin về thế giới, mà còn là quyết định hệ thống sẽ nhìn nhận những đối tượng nào là quan trọng, chúng có những thuộc tính gì và chúng liên hệ với nhau ra sao. Chính cách chúng ta lựa chọn biểu diễn tri thức sẽ quyết định hệ thống có thể suy luận được những gì và giới hạn của khả năng suy luận đó nằm ở đâu.

Tuy nhiên, một kho tri thức dù được xây dựng tốt đến đâu cũng chỉ là những thông tin được lưu trữ một cách thụ động. Muốn trở thành một hệ thống có khả năng suy luận, máy tính còn phải biết cách sử dụng những tri thức mà mình đang có để tạo ra những kết luận mới. Đây chính là công việc của Inference. Nó cho phép hệ thống trả lời những câu hỏi như: "Tôi có thể suy ra được điều gì từ những gì mình đã biết?" hay "Những kết luận nào chắc chắn đúng nếu các tri thức ban đầu đều đúng?".

Nhưng khả năng tạo ra những kết luận mới vẫn chưa phải là điều kiện cuối cùng của một hệ thống thông minh. Một kết luận chỉ thực sự có ý nghĩa khi chúng ta có thể tin tưởng rằng nó được tạo ra từ những bước suy luận hợp lệ và đáng tin cậy. Đó cũng chính là lý do Proof System trở thành một mảnh ghép không thể thiếu của suy luận tự động. Nó giúp đảm bảo rằng hệ thống không chỉ biết suy luận, mà còn biết mình đang suy luận đúng.

Khi ba ý tưởng này được kết hợp lại với nhau, chúng ta có được một Knowledge Base (cơ sở tri thức) – nơi lưu trữ các sự kiện, các quy luật và những tri thức mà hệ thống biết về thế giới và trở thành nền móng của một Knowledge-based Agent – một hệ thống có khả năng tiếp nhận thông tin từ môi trường, cập nhật tri thức của mình, suy luận để tạo ra những kết luận mới và sử dụng những kết luận đó để đưa ra các quyết định phù hợp.

Điểm quan trọng nhất cần nhớ là: một agent dựa trên tri thức (knowledge-based agent) luôn tách riêng hai thứ:

1.    Tri thức (Knowledge): là những thông tin mà agent biết về thế giới. Ví dụ: "Con người cần oxy để sống" hoặc "Nếu trời mưa thì đường có thể bị ướt". Đây là những câu mô tả sự thật, còn gọi là tri thức khai báo (declarative knowledge).

2.    Cách sử dụng tri thức (Reasoning Mechanism): là cách agent suy luận từ những điều đã biết để đưa ra kết luận hoặc hành động. Đây là phần quy trình suy nghĩ (procedural process), nhưng nó không phụ thuộc vào một lĩnh vực cụ thể nào.

Sự tách biệt này mang lại một lợi ích rất lớn: chúng ta có thể dạy agent những kiến thức mới bằng cách thêm thông tin mới vào kho tri thức, mà không cần phải sửa lại phần chương trình suy luận bên trong.

Ví dụ, nếu muốn một agent hiểu thêm rằng: "Chim cánh cụt là loài chim nhưng không biết bay" ta chỉ cần thêm thông tin này vào cơ sở tri thức. Cơ chế suy luận của agent vẫn giữ nguyên, không cần lập trình lại từ đầu.

Đây chính là ý tưởng của tầng tri thức (Knowledge Level).

Ở tầng này, chúng ta chỉ quan tâm đến:

  • Agent biết những gì?
  • Agent muốn đạt được điều gì?
  • Từ những kiến thức đó, agent có thể suy luận ra điều gì?

Chúng ta không cần quan tâm bên dưới agent được xây dựng bằng cách nào: có thể bằng cấu trúc dữ liệu, thuật toán tìm kiếm, mạng nơ-ron hay một hệ thống phức tạp khác.

Nói một cách đơn giản: Tri thức mà một agent sở hữu và cách máy tính triển khai tri thức đó là hai vấn đề hoàn toàn khác nhau.

Đây là một trong những ý tưởng quan trọng giúp AI có thể trở nên linh hoạt hơn: thay vì viết lại chương trình mỗi khi muốn agent học điều mới, chúng ta chỉ cần bổ sung thêm tri thức cho nó.

Đến đây, chúng ta có thể ghép các mảnh ghép lại với nhau:

  • Logic cho agent khả năng suy luận một cách chặt chẽ và đáng tin cậy.
  • First-Order Logic cung cấp một ngôn ngữ để mô tả thế giới dưới dạng đối tượng, thuộc tính và các quy luật tổng quát.
  • Knowledge Representation (Biểu diễn tri thức) trả lời câu hỏi: "Agent cần biết những gì về thế giới?"
  • Inference (Suy luận) trả lời câu hỏi: "Từ những điều đã biết, agent có thể kết luận thêm được điều gì?"
  • Proof System (Hệ thống chứng minh) giúp đảm bảo rằng các bước suy luận được thực hiện một cách chính xác và có thể kiểm chứng được.

Có thể hình dung toàn bộ quá trình như sau: Biểu diễn thế giới → Lưu trữ tri thức → Suy luận → Đưa ra quyết định → Hành động.

Mỗi thành phần đều đóng một vai trò riêng, nhưng chúng kết hợp với nhau để tạo nên khả năng "suy nghĩ" của một knowledge-based agent.

Nhìn theo một góc độ khác, hành trình từ Logic đến AI hiện đại thực chất cũng chính là hành trình biến dữ liệu thành tri thức, biến tri thức thành khả năng suy luận và cuối cùng biến khả năng suy luận thành những hành động có ý nghĩa. Và có lẽ, đó mới chính là điều khiến một hệ thống trở nên thông minh.

Complete Automated Reasoning Pipeline

Lưu ý rằng không phải mọi hệ thống AI hiện đại đều sử dụng First-Order Logic theo đúng nghĩa truyền thống. Trong thực tế, các hệ thống AI ngày nay còn kết hợp nhiều phương pháp khác nhau:

  • Temporal Logic (Logic thời gian) dùng cho các hệ thống phải liên tục phản ứng với môi trường như robot hay hệ điều hành.
  • Probabilistic Models (Mô hình xác suất) giúp AI đưa ra quyết định khi thông tin không đầy đủ hoặc không chắc chắn.
  • Deep Neural Networks (Mạng nơ-ron sâu) biểu diễn tri thức dưới dạng hàng triệu tham số số học mà con người không thể đọc trực tiếp như các câu logic.

Mặc dù cách biểu diễn tri thức có thể rất khác nhau, nhưng ý tưởng nền tảng vẫn không thay đổi: Trước khi một agent có thể suy luận về thế giới, nó phải có một cách nào đó để biểu diễn thế giới ấy.

Nói cách khác, một agent không thể suy nghĩ về những điều mà nó chưa từng được biểu diễn và lưu trữ dưới bất kỳ hình thức nào. Biểu diễn tri thức luôn là bước đầu tiên của suy luận.

Những cách hiểu chưa đúng

AI suy luận giống như con người suy nghĩ

Chúng ta thường nói rằng AI "hiểu", "suy nghĩ" hay "suy luận", nhưng điều này rất dễ khiến người mới hình dung rằng AI hoạt động giống như bộ não con người. Thực tế không hoàn toàn như vậy.

Một knowledge-based agent không suy nghĩ bằng trực giác hay kinh nghiệm sống như con người. Nó chỉ đang thực hiện những phép suy luận dựa trên các thông tin và quy luật mà nó được cung cấp.

Ví dụ, nếu agent biết rằng:

·       Mọi ô nằm cạnh hố sâu đều có gió.

·       Vị trí hiện tại có gió.

thì nó có thể suy luận rằng: Gần đây có thể tồn tại một hố sâu.

Agent không thực sự "nhìn thấy" chiếc hố hay "hiểu" cảm giác nguy hiểm giống con người. Nó chỉ đang xử lý thông tin theo những quy tắc suy luận đã được xây dựng từ trước.

Vì vậy, khả năng suy luận của agent chỉ có ý nghĩa khi tri thức của nó phản ánh đúng thế giới thực. Nếu thông tin đầu vào bị sai hoặc các quy luật được xây dựng không chính xác, agent vẫn có thể suy luận rất logic nhưng lại đưa ra một kết luận hoàn toàn sai trong thực tế.

Nói cách khác: Suy luận đúng không đồng nghĩa với kết luận đúng nếu tri thức ban đầu đã sai.

Càng lưu trữ nhiều tri thức càng tốt

Một suy nghĩ khác khá phổ biến là: nếu agent biết càng nhiều thứ thì chắc chắn nó sẽ càng thông minh hơn.

Trên thực tế, mọi thứ luôn có sự đánh đổi.

Một cách biểu diễn tri thức đơn giản sẽ giúp việc suy luận diễn ra nhanh hơn, nhưng lại khó mô tả được những tình huống phức tạp của thế giới thực. Ngược lại, một cách biểu diễn tri thức càng chi tiết và mạnh mẽ thì agent càng có khả năng mô tả thế giới tốt hơn, nhưng việc suy luận cũng sẽ trở nên khó khăn và tốn nhiều tài nguyên tính toán hơn. Ví dụ:

  • Liệt kê từng trường hợp cụ thể thì đơn giản nhưng rất dài dòng.
  • Sử dụng các quy luật tổng quát như First-Order Logic sẽ linh hoạt hơn rất nhiều.
  • Tuy nhiên, việc suy luận trên những quy luật phức tạp này cũng đòi hỏi nhiều phép tính hơn.

Vì vậy, trong AI không tồn tại một cách biểu diễn tri thức nào là "tốt nhất cho mọi trường hợp". Điều quan trọng là phải lựa chọn cách biểu diễn phù hợp với bài toán đang cần giải quyết.

Kết luận

Hành trình xây dựng một hệ thống có khả năng suy luận thực chất bắt đầu từ một câu hỏi rất đơn giản: điều gì khiến một cỗ máy trở nên thông minh?

Câu trả lời hóa ra không nằm ở việc cung cấp cho nó thật nhiều dữ liệu. Một hệ thống thông minh cần biết mình đang hiểu thế giới theo cách nào, biết mình có thể suy ra được điều gì từ những gì đã biết và biết rằng những kết luận mà mình tạo ra thực sự là đúng.

Knowledge Representation giúp máy tính hiểu thế giới, Inference giúp nó khám phá những tri thức mới còn Proof System giúp đảm bảo rằng những bước suy luận của nó được thực hiện một cách chính xác và đáng tin cậy. Khi được kết hợp lại với nhau, chúng tạo nên nền móng của Knowledge-based Agent và nhiều công nghệ quan trọng trong lĩnh vực Automated Reasoning ngày nay.

Có lẽ điều thú vị nhất là mặc dù chúng ta thường nghĩ rằng AI hiện đại bắt đầu từ Machine Learning hay các Large Language Models, nhưng rất nhiều ý tưởng nền tảng của nó lại được hình thành từ những câu hỏi đã tồn tại từ rất lâu:

  • Máy tính hiểu thế giới như thế nào?
  • Điều gì khiến một lập luận trở nên đúng?
  • Và làm thế nào để một cỗ máy có thể tự mình suy luận về thế giới?

Hành trình đi tìm câu trả lời cho những câu hỏi ấy vẫn đang tiếp tục và đang hiện diện trong rất nhiều công nghệ hiện đại như Automated Reasoning, Formal Verification, SAT/SMT Solver, Knowledge Graph, AI Agent và Neuro-symbolic AI. Có lẽ, đó cũng chính là một trong những hành trình thú vị nhất của khoa học máy tính: hành trình biến dữ liệu thành tri thức, biến tri thức thành khả năng suy luận và cuối cùng biến khả năng suy luận thành những quyết định có ý nghĩa.

--------------------------------------

Recommended Books

·         Cambridge University Press. An Introduction toFormal Logic 2e (2020)

·         Dover Publications. Logic for ComputerScience_ Foundations of Automatic Theorem -- Dover Books on Computer Science,2, 2015

·         Prentice Hall. Artificial Intelligence_ AModern Approach 4th (2020)

·         Springer. Introduction to Mathematical Logic 3rd (1987)

·         Springer. Mathematical Logic for Computer Science 3e(2012)

Comments

Popular posts from this blog

Ngôn Ngữ Của Suy Luận: Logic Đã Dạy Máy Tính Hiểu Thế Giới Như Thế Nào?

ChatGPT có thể trả lời những câu hỏi phức tạp, các AI Agent có thể tự động sử dụng công cụ để hoàn thành công việc và nhiều hệ thống AI ngày nay đã có khả năng lập kế hoạch hay đưa ra quyết định. Nhưng có lẽ một câu hỏi thú vị hơn lại ít khi được nhắc đến: Làm thế nào để một cỗ máy có thể suy luận? Và bằng cách nào máy tính có thể biết rằng kết luận mà nó vừa tạo ra thực sự là đúng? Hóa ra, câu trả lời cho những câu hỏi này không bắt đầu từ Machine Learning hay các Large Language Models. Nó bắt đầu từ một ý tưởng đã xuất hiện từ rất lâu: Logic. Trước khi có thể suy luận về thế giới, máy tính phải học được ngôn ngữ để mô tả thế giới đó. Nó cần biết đâu là đối tượng, đâu là thuộc tính, đâu là những quy luật tổng quát đang chi phối chúng và bằng cách nào những quy luật đó có thể được sử dụng để tạo ra những kết luận mới. Logic, First-order Logic và Predicate Logic chính là những viên gạch đầu tiên của hành trình ấy. Chúng ta sẽ cùng khám phá cách Logic đã dạy máy tính học cách hiểu thế gi...

Cạm bẫy Serverless: Liệu có thực sự giúp bạn tiết kiệm chi phí?

Trong nhiều năm, việc xây dựng và vận hành ứng dụng luôn gắn liền với quản lý máy chủ, cấu hình hệ điều hành, triển khai phần mềm và xử lý các vấn đề về mở rộng hệ thống. Tuy nhiên, sự phát triển của điện toán đám mây đã tạo ra một mô hình mới mang tên Serverless, cho phép lập trình viên tập trung vào việc viết mã thay vì quản trị hạ tầng. Các nền tảng như AWS Lambda, Azure Functions hay Google Cloud Functions giúp ứng dụng tự động mở rộng theo nhu cầu thực tế, đồng thời áp dụng mô hình tính phí dựa trên mức sử dụng. Điều này không chỉ giúp giảm chi phí vận hành mà còn tăng tốc độ phát triển sản phẩm. Chúng ta sẽ tìm hiểu Serverless là gì, cách nó hoạt động, những lợi ích nổi bật, các hạn chế cần lưu ý và những trường hợp phù hợp để áp dụng trong thực tế. Serverless là gì? Serverless là mô hình điện toán đám mây cho phép lập trình viên xây dựng và chạy ứng dụng mà không cần trực tiếp quản lý máy chủ. Serverless không phải là "không có máy chủ" Một trong những hiểu...

Hiểu bản chất Reinforcement Learning (Học tăng cường) qua giải thích về cách AI tự học

Nếu học có giám sát giúp AI học từ những đáp án đã biết trước, còn học không giám sát giúp AI tự khám phá cấu trúc của dữ liệu, thì học tăng cường (Reinforcement Learning - RL) lại đi theo một hướng hoàn toàn khác: AI học bằng chính trải nghiệm của mình. Thay vì được hướng dẫn từng bước, tác nhân (agent) liên tục tương tác với môi trường, thử nhiều hành động khác nhau và nhận phần thưởng hoặc hình phạt. Sau hàng nghìn, thậm chí hàng triệu lần thử nghiệm, AI dần học được chiến lược tối ưu để đạt mục tiêu. Chúng ta sẽ cùng tìm hiểu bản chất của học tăng cường, các thành phần quan trọng như Agent, Environment, Reward, Action và Observation, đồng thời minh họa bằng ví dụ trực quan để thấy AI thực sự "học" như thế nào. 1. Học có giám sát (Supervised learning) Học có giám sát (Supervised learning) là lĩnh vực được nghiên cứu kỹ lưỡng và nổi tiếng nhất trong học máy. Câu hỏi cốt lõi mà nó giải quyết là: Làm thế nào để xây dựng một hàm số có khả năng tự động ánh xạ (map) một đầ...