TỔNG QUAN VỀ CÔNG NGHỆ HỆ CHUYÊN GIA
Thiết kế của một HCG dựa trên luật: (Rule–Based ES) Hình 6_1 cho thấy các module quan trọng nhất tạo nên một hệ chuyên gia dựa trên luật. Người dùng tương tác với hệ chuyên gia thông qua một giao diện người dùng (user ...
Thiết kế của một HCG dựa trên luật: (Rule–Based ES)
Hình 6_1 cho thấy các module quan trọng nhất tạo nên một hệ chuyên gia dựa trên luật. Người dùng tương tác với hệ chuyên gia thông qua một giao diện người dùng (user interface), giao diện này đơn giản hóa việc giao tiếp và che giấu phần lớn sự phức tạp của hệ thống (ví dụ như cấu trúc bên trong của cơ sở các luật). Các hệ chuyên gia sử dụng một số lượng phong phú các kiểu giao diện, bao gồm hỏi và trả lời, điều khiển bởi trình đơn, ngôn ngữ tự nhiên, hay đồ họa,… Việc quyết định sử dụng giao diện như thế nào là sự thỏa hiệp giữa nhu cầu của người dùng với những đòi hỏi của cơ sở tri thức và hệ suy diễn.
Trái tim của hệ chuyên gia là cơ sở tri thức tổng quát (general knowledge base), chứa tri thức giải quyết vấn đề của một ứng dụng cụ thể. Trong một hệ chuyên gia dựa trên luật tri thức này được biểu diễn dưới dạng các luật if… then…. Cơ sở tri thức bao gồm tri thức tổng quát (general knowledge) cũng như thông tin của một tình huống cụ thể (case-specific).
Hình 6_1. Kiến trúc của một hệ chuyên gia tiêu biểu.
Động cơ suy diễn (inference engine) áp dụng tri thức cho việc giải quyết các bài toán thực tế. Về căn bản nó là một trình thông dịch cho cơ sở tri thức. Trong hệ sinh (production system), động cơ suy diễn thực hiện chu trình điều khiển nhận dạng – hành động (recognize-act control cycle). Việc tách biệt cơ sở tri thức ra khỏi động cơ suy diễn là rất quan trọng vì nhiều lý do:
- Sự tách biệt của tri thức dùng để giải quyết vấn đề và động cơ suy diễn sẽ tạo điều kiện cho việc biểu diễn tri thức theo một cách tự nhiên hơn. Ví dụ, các luật if…then… gần gũi với cách con người mô tả những kỹ thuật giải quyết vấn đề của họ hơn so với một chương trình đưa luôn tri thức này vào phần mã máy tính cấp thấp.
- Bởi vì cơ sở tri thức được cách ly khỏi các cấu trúc điều khiển cấp thấp của chương trình, các nhà xây dựng HCG có thể tập trung một cách trực tiếp vào việc nắm bắt và tổ chức GQVĐ hơn là phải thực hiện trên các chi tiết của việc cài đặt vào máy tính.
- Sự phân chia tri thức và điều khiển cho phép thay đổi một phần cơ sở tri thức mà không tạo ra các hiệu ứng lề trên các phần khác của chương trình.
- Sự tách biệt này cũng cho phép một phần mềm điều khiển và giao tiếp có thể được sử dụng cho nhiều hệ thống khác nhau. Một trình cốt lõi của HCG (expert system shell) có tất cả các thành phần của hình 61, trừ phần cơ sở tri thức và dữ liệu của tình huống cụ thể. Các nhà lập trình có thể sử dụng “trình cốt lõi rỗng của HCG” và tạo ra một cơ sở tri thức mới thích hợp với ứng dụng của họ. Các đường chấm chấm trong hình 6_1 biểu thị các module của trình cốt lõi.
- Như đã thảo luận trong chương 5 về hệ sinh, sự module hóa này cho phép chúng ta thử nghiệm nhiều chế độ điều khiển khác nhau trên cùng một cơ sở luật.
Một hệ con giải thích (explanation subsystem) ch phép chương trình giải thích quá trình suy luận của nó cho người dùng. Các giải thích này bao gồm các lập luận biện minh cho các kết luận của hệ thống (trả lời cho câu hỏi how), giải thích vì sao hệ thống cần dữ liệu đó (trả lời cho câu hỏi why),…
Nhiều HCG còn bao gồm một trình soạn thảo cơ sở tri thức (knowledge-base editor). Trình soạn thảo này giúp các nhà lập trình xác định và hiệu chỉnh lỗi trong quá trình làm việc của chương trình, thường là bằng cách truy xuất những thông tin cung cấp bởi hệ con giải thích. Chúng cũng có thể hỗ trợ cho việc bổ sung tri thức mới, giúp duy trì cú pháp luật chính xác, và thực hiện các kiểm tra tính nhất quán trên cơ sở tri thức đã cập nhật.
Việc sử dụng trình cốt lõi HCG có thể giúp ta giảm đáng kể thời gian thiết kế và cài đặt chương trình. Ví dụ, HCG MYCIN dùng để chẩn đoán bệnh viêm màng não xương sống và nhiễm trùng máu được phát triển trong khoảng 20 năm-người (person-year). EMYCIN (Empty MYCIN) là một trình cốt lõi của MYCIN được tạo ra bằng cách loại bỏ tri thức chuyên ngành khỏi chương trình MYCIN. Sử dụng EMYCIN, các kỹ sư tri thức đã cài đặt PUFF, một chương trình phân tích các vấn đề về phổi cho các bệnh nhân, trong khoảng 5 năm-người. Đây là một sự tiết kiệm đáng kể và là một khía cạnh quan trọng chứng tỏ sức sống trên phương diện thương mại của công nghệ hệ chuyên gia.
Đối với người lập trình, điều quan trọng là phải lựa chọn đúng trình cốt lõi HCG để phát triển một HCG mới. Các bài toán khác nhau đòi hỏi các quá trình lập luận khác nhau: tìm kiếm hướng đích so với tìm kiếm hướng dữ liệu chẳng hạn. Chiến lược điều khiển cung cấp bởi trình cốt lõi cần phải thích hợp với ứng dụng; phương pháp suy luận y học dùng cho ứng dụng PUFF rất giống với phương pháp mà HCG MYCIN sử dụng; điều đó làm cho việc sử dụng trình cốt lõi EMYCIN trở nên thích hợp. Nếu trình cốt lõi có quá trình suy luận không thích hợp, thì việc sử dụng nó có thể là một sai lầm và tệ hơn là bắt đầu từ xây dựng từ đầu.
Các vấn đề phù hợp để xây dựng HCG
Các HCG thường đòi hỏi sự đầu tư đáng kể về tiền bạc và sức lực con người. Những cố gắng để giải quyết một bài toán quá phức tạp, quá ít hiểu biết, hoặc có những yếu tố không phù hợp khác đối với công nghệ hiện tại có thể dẫn đến những thất bại hao tiền tốn của. Các nhà nghiên cứu đã xây dựng một tập hợp các chỉ dẫn có tính không hình thức cho việc xác định xem khi nào thì một bài toán thích hợp để giải quyết bằng HCG:
- Sự cần thiết phải có một giải pháp phải biện minh cho chi phí và sức lực của việc xây dựng HCG, vì nếu không đó sẽ là một sự lãng phí. Công ty máy tính DEC đã bỏ ra tiền và công sức để xây dựng HCG XCON để tự động hóa công tác tạo cấu hình cho máy tính. Kết quả, XCON đã giúp công ty tiết kiệm được tài chính và duy trì lòng tin của khách hàng. Tương tự, người ta đã cây dựng nhiều HCG trong các lĩnh vực như khai thác khoáng sản, kinh doanh quốc phòng, và y học, là những nơi tồn tại tiềm năng to lớn cho việc tiết kiệm tiền bạc, thời gian và sinh mạng con người.
- Hiểu biết chuyên môn của con người không sẵn có ở mọi nơi cần đến nó. Có rất nhiều HCG đã được xây dựng trong ngành y, vì sự chuyên môn và tính phức tạp trongkỹ thuật của y học hiện đại đã khiến cho các bác sĩ gặp nhiều khó khăn trong việc theo kịp những tiến bộ của các phương pháp chẩn đoán và điều trị. Số lượng các chuyên gia đáp ứng được các yêu cầu này rất hiếm và phải trả thù lao cao cho công việc của họ, do đó mà các hệ chuyên gia được nhìn nhận như là một cứu cánh. Nhờ có HCG, các bác sĩ ở địa phương có thể chẩn đoán và điều trị bệnh ở mức độ chuyên gia. Trong ngành địa chất, bằng cách bố trí HCG tại những nơi khai thác, nhiều vấn đề có thể được giải quyết mà không cần các chuyên gia con người phải có mặt. Tương tự, sự lãng phí những kiến thức chuyên môn có giá trị do việc chuyển đổi nhân viên hay những người sắp về hưu có thể biện minh cho việc xây dựng các hệ chuyên gia.
- Vấn đề có thể được giải quyết bằng cách sử dụng các kỹ thuật suy luận ký hiệu. Những giải pháp vấn đề không nên đòi hỏi sự khéo léo tay chân hay khả năng cảm thụ. Tuy rằng chúng ta đã có những robot và các hệ nhìn, hiện tại chúng vẫn thiếu khả năng tinh tế và linh hoạt của con người. Các hệ chuyên gia chỉ thích hợp với các vấn đề mà con người có thể giải quyết thông qua sự suy luận trên các ký hiệu.
- Phạm vi xác định vấn đề được cấu trúc tốt và không đòi hỏi sự suy luận theo lẽ thường tình (commonsense reasoning). Mặc dù các hệ chuyên gia đã được xây dựng trong nhiều lĩnh vực đòi hỏi tri thức kỹ thuật chuyên môn hóa, nhiều sự suy luận theo lẽ thường của con người vẫn nằm ngoài khả năng hiện tại của chúng. Các lĩnh vực mang tính kỹ thuật cao có ưu điểm là được hiểu biết và hình thức hóa kỹ lưỡng: các thuật ngữ được định nghĩa đấy đủ và các chủ đề đã có sẵn những mô hình khái niệm rõ ràng và cụ thể.
- Vấn đề có thể không giải quyết được bằng cách sử dụng các phương pháp tính toán truyền thống. Không nên sử dụng công nghệ HCG để “phát minh lại chiếc bánh xe” (reinvent the wheel). Nếu một bài toán có thể giải quyết một cách thỏa đáng bằng những kỹ thuật truyền thống hơn như các phương pháp số, thống kê, … thì chúng không phải là một cử ứng viên cho việc thiết kế HCG.
- Có sự hợp tác và hiểu ý nhau giữa các chuyên gia. Tri thức sử dụng bởi các chuyên gia hiếm khi tìm thấy trong các sách giáo khoa mà chỉ có được nhờ kinh nghiệm và sự đánh giá của con người khi làm việc trong lĩnh vực đó. Điều quan trọng là các chuyên gia đó sẵn sàng và có khả năng chia sẻ tri thức. Các chuyên gia có thể sẽ không hợp tác khi họ cảm thấy bị đe dọa bởi hệ thống, sợ rằng hệ thống có thể thay thế họ, hoặc nghĩa rằng đề án không thể thành công, chỉ lãng phí thời gian của họ, khi đó họ sẽ không bỏ ra thời gian và nỗ lực cần thiết.Một điều quan trọng khác là ban quản lý phải hỗ trợ dự án và chi phép các chuyên gia sử dụng thời gian làm việc chính thức của họ để cộng tác với các kỹ sư tri thức.
- Vấn đề cần giải quyết phải có kích thước và quy mô đúng mức. Vấn đề không được vượt quá khả năng của công nghệ hiện tại. Ví dụ, một chương trình cố gắng nắm bắt mọi hiểu biết chuyên môn của một bác sĩ y khoa sẽ không khả thi trong khi đó một chương trình cố vấn cho các bác sĩ trong việc sử dụng một phần nào đó của thiết bị chẩn đoán sẽ thích hợp hơn.
Mặc dù một vấn đề lớn có thể không phù hợp với giải pháp của hệ chuyên gia, ta có thể phân chia nó thành các vấn đề nhỏ hơn, độc lập nhau và phù hợp với HCG. Điều này tương ứng với chiến lược phân rã “top-down” sử dụng trong công nghệ phần mềm truyền thống. Một cách giải quyết khác là ta bắt đầu bằng một chương trình đơn giản có khả năng giải quyết một phần của vấn đề rồi từng bước tăng dần chức năng của nó để xử lý phạm vi lớn hơn của vấn đề. Chiến lược này gọi là “đường kẻ mỏng” (thin line), ám chỉ mục tiêu của nó là tạo ra một khuôn mẫu hy sinh bề rộng của khả năng ứng dụng nhằm ưu tiên việc tạo ra một lời giải đầy đủ cho tập hợp nhỏ các bài toán thử nghiệm. Kỹ thuật này tỏ ra hiệu quả để khám phá các vấn đề phức tạp và chưa được hiểu rõ. Người ta sử dụng thành công kỹ thuật này trong việc tạo ra XCON: ban đầu chương trình được thiết kế chỉ để định cấu hình cho các máy tính VAX 780; sau đó nó được mở rộng để xử lý luôn tất cả các hệ máy VAX và hệ máy PDP-11.
Qui trình công nghệ tri thức
Những người liên quan chủ yếu trong việc xây dựng một HCG là kỹ sư tri thức (knowledge engineer), chuyên gia (domain expert) và người dùng cuối (end-user).
Kỹ sư tri thức là chuyên gia về ngôn ngữ và biểu diễn trong TTNT, với nhiệm vụ chính là chọn các công cụ phần mềm và phần cứng cho đề án, giúp đỡ chuyên gia phát biểu các tri thức cần thiết, và cài đặt các tri thức đó vào một cơ sở tri thức đúng đắn và hiệu quả. Thông thường, kỹ sư tri thức này ban đầu không hiểu biết gì về lĩnh vực ứng dụng.
Chuyên gia cung cấp tri thức về lĩnh vực ứng dụng. Thông thường, đây là một người đã từng công tác trong lĩnh vực ứng dụng và hiểu biết những kỹ thuật giải quyết vấn đề của nó, chẳng hạn như các cách làm tắt, xử lý dữ liệu không chính xác, đánh giá những giải pháp cục bộ, và tất cả những kỹ năng khác chứng tỏ anh ta có đẳng cấp của một chuyên gia. Chuyên gia chịu trách nhiệm chính trong việc giải thích rõ những kỹ năng này với kỹ sư tri thức.
Trong phần lớn các ứng dụng, người dùng cuối quyết định những ràng buộc thiết kế chính. Chừng nào người dùng đó còn chưa hài lòng, thì còn phải đầu tư sức lực cho việc phát triển chương trình. Những kỹ năng và nhu cầu của người dùng cần phải xem xét trong suốt quá trình thiết kế: chương trình có làm cho công việc của người dùng dễ dàng hơn, nhanh hơn, thuận tiện hơn không? Người dùng cần sự giải thích ở mức độ nào? Môi trường làm việc của người dùng có đặt ra những hạn chế nào đó cho việc sử dụng chương trình? Ví dụ như, một giao diện đòi hỏi việc gõ bàn phím sẽ không phù hợp với thao tác trong khoang lái của một máy bay chiến đấu phản lực.
Giống như hầu hết các công việc lập trình trong TTNT, việc xây dựng HCG đòi hỏi một chu trình phát triển theo kiểu không truyền thống dựa trên một bản mẫu được tạo ra ban đầu và việc xem xét lại mã lệnh một cách tăng dần. Phương pháp lập trình này còn gọi là lập trình thăm dò (exploratory programming).
Hình 6_2. Chu trình phát triển theo kiểm thăm dò.
Hình 6_2 trình bày một lưu đồ mô tả chu trình phát triển theo kiểu lập trình thăm dò. Nói chung quá trình xây dựng hệ thống bắt đầu với việc kỹ sư tri thức cố gắng làm quen với phạm vi xác định vấn đề (problem domain). Điều này giúp ích cho việc giao tiếp với chuyên gia. Nó được thực hiện bằng những bài phỏng vấn mở đầu với chuyên gia đó, bằng sự quan sát các chuyên gia trong quá trình họ làm việc, hoặc thông qua việc đọc những tài liệu giới thiệu về lĩnh vực chuyên ngành đó. Tiếp theo kỹ sư tri thức và chuyên gia bắt đầu quá trình khai thác những tri thức giải quyết vấn đề của chuyên gia này. Công việc này được thực hiện bằng cách đưa cho chuyên gia một loạt các bài toán ví dụ và yêu cầu anh ta giải thích những kỹ thuật được sử dụng để đạt được lời giải. Trong giai đoạn này, việc sử dụng các băng video hoặc audio là rất quan trọng.
Thông thường, sẽ tốt hơn nếu kỹ sư tri thức là một người mới làm quen với lĩnh vực ứng dụng, vì những chuyên gia có thể quên đề cập đến những bước thao tác đã trở thành hiển nhiên hay thậm chí là tự động đối với họ sau nhiều năm công tác trong lĩnh vực đó. Vì vậy, các kỹ sư tri thức không biết gì về lĩnh vực này có thể sẽ phát hiện những bước nhảy cóc này, và do đó sẽ yêu cầu chuyên gia làm sáng tỏ vấn đề.
Ngay sau khi kỹ sư đã có được cái nhìn tổng quát về lĩnh vực của vấn đề và đã cùng chuyên gia giải quyết một số bài toán, anh ta sẽ bắt tay vào thiết kế hệ thống: chọn phương pháp biểu diễn tri thức, như luật hay frame chẳng hạn, xác định chiến lược tìm kiếm, tiến (forward), lùi (backward), theo chiều sâu (depth-first), tốt nhất (best-first),… và thiết kế giao diện người dùng. Sau khi triển khai thiết kế này đến mức có thể hài lòng, kỹ sư tri thức bắt đầu xây dựng một bản mẫu (prototype).
Bản mẫu này cần phải có khả năng giải quyết những bài toán trong một phạm vi nhỏ của lĩnh vực và cung cấp một nền thử nghiệm cho những xác nhận thiết kế sơ bộ. Ngay sau khi bản mẫu được cài đặt xong, kỹ sư tri thức và chuyên gia sẽ thử nghiệm và cải tiến tri thức của nó bằng cách cho nó giải quyết một số bài toán và hiệu chỉnh những khuyết điểm của nó. Sau mỗi lần như vậy, họ thường có một phiên bản chương trình sáng sủa hơn. Nếu những giả thiết trong quá trình thiết kế bản mẫu tỏ ra là đúng đắn, thì bản mẫu có thể được dùng để xây dựng hệ thống cuối cùng. Tuy nhiên, bản mẫu cũng có thể bị loại bỏ nếu nó trở nên cồng kềnh hoặc các nhà thiết kế quyết định thay đổi phương pháp tiếp cận cơ sở đối với vấn đề.
Đặc trưng lớn thứ hai của lập trình HCG là cần xem chương trình như không bao giờ “kết thúc”. Một cơ sở tri thức kiểu heuristic lớn sẽ luôn luôn có những hạn chế của nó, vì tri thức thì luôn đổi mới và vì vậy cần phải được cập nhật.
Mô hình khái niệm và vai trò của chúng trong việc thu thập tri thức
Trong HCG, tri thức đóng vai trò quyết định cho sự thành công cũng như hiệu quả giải quyết vấn đề của HCG. Tri thức này có được từ quá trình thu thập tri thức của các chuyên gia, tri thức này thường mơ hồ, không chính xác, và chỉ được phát biểu dài dòng theo từng bộ phận. Người kỹ sư tri thức có nhiệm vụ dịch những hiểu biết không hình thức này sang một ngôn ngữ hình thức thích hợp cho máy tính (xem hình 6_3). Đây là một nhiệm vụ khó khăn, tuy nhiên, khó khăn trước tiên vẫn là việc tích lũy tri thức do nhiều nguyên nhân:
- Các kỹ năng của con người có được thường thông qua thực nghiệm. Sau nhiều năm thực hành, những kỹ năng này tích hợp chặt chẽ với nhau và hoạt động ở một cấp độ vô thức cao. Vì vậy, sẽ rất khó khăn cho các chuyên gia khi phải mô tả chính xác những gì họ làm trong quá trình giải quyết vấn đề.
- Tri thức của con người thường nằm ở dạng là “biết làm thế nào” (how) để đối phó với tình huống hơn là biết cần phải khắc họa trong óc một cách lý trí xem tình huống ấy là cái gì (what). Một ví dụ dễ thấy về đặc điểm này ở người biểu diễn xe đạp một bánh: trong thực tế, một người biểu diễn thành công không thể cùng lúc giải nhiều phương trình sai phân nhằm giữ thế cân bằng; mà thực ra anh ta chỉ phối hợp có tính trực giác những cảm giác về “trọng lực”, “xung lực” và “quán tính” để tạo thành một thủ tục điều khiển thích hợp.
- Tri thức của con người không căn cứ theo sự thật, không khách quan, vì hiểu biết của con người thể hiện một mô hình của cá nhân hay cộng đồng về thế giới. Những mô hình đó bị ảnh hưởng bởi những tập quán, những quá trình xã hội, và những quá trình tiềm ẩn khác…
- Tri thức luôn luôn thay đổi. Điều đó không chỉ do các chuyên gia tiếp nhận thêm những tri thức mới, mà còn do tri thức đang tồn tại có thể trở thành mục tiêu của những cải cách triệt để.
Hệ quả là, công nghệ tri thức là một quá trình khó khăn và cần được xem xét khi kéo dài chu trình sống của bất kỳ HCG nào. Để đơn giản hóa nhiệm vụ này, người ta cài đặt một mô hình khái niệm (conceptual model) nằm giữa hiểu biết chuyên môn của con người với chương trình như trong hình 6_3. Mô hình khái niệm này thể hiện nhận thức của người kỹ sư tri thức về lĩnh vực đó, nó có thể bao gồm các từ điển dữ liệu, các biểu diễn đồ họa của không gian trạng thái và những lời bình đi kèm đều có thể là một phần của mô hình này.
Mô hình khái niệm không có tính hình thức hoặc có thể thi hành trực tiếp trên máy tính. Nó chỉ là một cấu trúc thiết kế trung gian, một mô hình mẫu để có thể bắt đầu đưa ra các ràng buộc và mã hóa các kỹ năng của con người. Nếu như kỹ sư tri thức sử dụng mô hình phép tính mệnh đề, thì nó có thể bắt đầu như một tập hợp các mạng đaon giản biểu diễn những trạng thái suy luận của người chuyên gia thông qua các tình huống giải quyết vấn đề điển hình. Chỉ sau khi được cải tiến thêm, mạng này mới trở thành các luật if… then tường minh.
Hình 6_3. Vai trò của mô hình khái niệm trong giải quyết vấn đề.