การแทนความรู้

การแทนความรู้  เป็นสาขาหลักที่สำคัญที่สุด สาขาหนึ่งของปัญญาประดิษฐ์ ถึงแม้ว่าเราไม่สามารถนิยามคำว่า ความรู้ และ ความฉลาด ได้อย่างรัดกุมหรือสมบูรณ์ แต่มนุษย์เราโดยส่วนใหญ่ ตระหนักเป็นอย่างดีว่า ความรู้กับความฉลาด เป็นสองสิ่ง ที่มีความสัมพันธ์ และความขึ้นต่อกัน สูงมาก การพัฒนาสร้างสติปัญญาเทียม ให้ฉลาดเทียบเคียงได้กับมนุษย์ จึงมีความจำเป็นอย่างมาก ที่จะต้องออกแบบความรู้ของเครื่องจักรให้ ดีและมีประสิทธิภาพ
ความหมายของการแทนความรู้.
การแทนความรู้ คือ การนำเสนอความรู้ ให้อยู่ในรูปที่เครื่องจักรสามารถนำไปใช้ได้ เนื่องจากมนุษย์แทนความรู้โดยใช้ภาษา (language) นักวิจัยสาขาปัญญาประดิษฐ์ จึงได้สร้างภาษาสำหรับแทนความรู้ขึ้นมาเช่นเดียวกัน ภาษาที่ใช้แทนความรู้มีมากมายหลายวิธีในปัญญาประดิษฐ์ ซึ่งโดยปกติแล้วคำว่าภาษาที่แทนความรู้ได้ดี ประกอบไปด้วยลักษณะที่พอสรุปได้ดังนี้
ไม่มีภาษาใดในปัจจุบัน ที่นักวิจัยทุกคนยอมรับว่า ดีที่สุดในวงการวิจัยปัญญาประดิษฐ์ โดยภาษาที่ใช้ในการแทนความรู้แต่ละภาษา จะมี “ศักยภาพในการแทนความรู้” หรือ “ความสามารถในการแสดงความรู้ของภาษา” (expressiveness) ได้ในระดับที่ต่างกัน นั่นคือความรู้บางประเภทที่มีความซับซ้อน จะไม่สามารถนำเสนอสู่เครื่องจักรที่ใช้ภาษาง่ายเกินไปได้ แต่การแทนความรู้ที่ซับซ้อนเกินไป ก็จะถูกนำไปใช้งาน และเรียนรู้ได้ยาก นั่นคือในสถานการณ์ทั่วไป ผู้ใช้งานต้องเผชิญกับทางเลือก (dilemma/tradeoff) ว่า ต้องการนำเสนอความรู้ ในรูปแบบที่ซับซ้อนได้ดี [1. และ 2.] หรือว่าต้องการใช้งานความรู้นั้นได้อย่างสะดวก [3. และ 4.]. ในบทความนี้ จะนำเสนอเฉพาะประเด็น 1. และ 2. เท่านั้น ส่วนรายละเอียดของประเด็น 3. และ 4. สามารถดูได้ที่หัวข้อ การให้เหตุผลของเครื่อง และ การเรียนรู้ของเครื่อง
ชนิดของการแทนความรู้.
ในการอ่านหัวข้อนี้ถ้าผู้อ่านมีความรู้เรื่องโมเดลเชิงวัตถุ (object-oriented model) จะสามารถเข้าใจได้ดี เพราะเราสามารถมองความรู้ให้อยู่ในรูปของวัตถุและความสัมพันธ์ระหว่างวัตถุได้
ศักยภาพในการแทนความรู้ที่ซับซ้อนของภาษามีสองประเด็นหลักที่ต้องพิจารณาดังนี้
ความสามารถในการแทนความรู้เกี่ยวกับวัตถุและความสัมพันธ์ประเภทเดียวกัน.
โดยประเด็นแรกคือ "ภาษานั้นแสดงความรู้เกี่ยวกับคุณสมบัติต่างๆ ของวัตถุและความสัมพันธ์ระหว่างวัตถุได้ดีแค่ไหน" โดยภาษาที่ดีควรจะความรู้ประเภทเดียวกันของวัตถุหรือความสัมพันธ์ประเภทเดียวกันได้อย่างประหยัด โดยเฉพาะกรณีที่เราพิจารณาโดเมนของวัตถุที่เป็นอนันต์(infinitely many objects) เช่น ความรู้เกี่ยวกับคณิตศาสตร์ที่มีวัตถุคือตัวเลขนั้น บางภาษาสามารถใช้ตัวอักขระจำนวนจำกัด (finite) เพื่อแทนความรู้ที่เป็นอนันต์ได้ ตัวอย่างของความรู้ประเภทนี้คือกฎการสลับที่ของการบวกของตัวเลขซึ่งเราสามารถเขียนให้อยู่ในรูปภาษาพีชคณิตอย่างง่ายได้สั้นๆ ดังนี้
 <math>a+b = b+a </math>
นั่นคือเราสามารถแทน <math>a</math> และ <math>b</math> ด้วยตัวเลขใดๆในโดเมนที่พิจารณาก็ได้ ซึ่งตัวเลขทั้งหมด ในโดเมนจะมีคุณสมบัติการสลับที่นี้ทั้งหมด โดยไม่ว่าเราจะพิจารณาโดเมนของจำนวนจริง จำนวนเต็ม หรือจำนวนเชิงซ้อนก็ตามจะมีคุณสมบัติการสลับที่ที่ว่านี้ จะเห็นว่าในที่นี้เราใช้เพียง 7 อักขระแทนความรู้มากมายมหาศาล แทนที่จะเป็น
<math> 1+2 = 2+1, 1+3 = 3+1, 2+3+ 3+2, ... </math>
ความสามารถในการแทนความรู้ที่ไม่แน่นอน.
ประเด็นนี้พิจารณาว่า "ภาษานั้นสามารถแสดงความรู้ที่ไม่แน่นอน (uncertainty in knowledge) ได้หรือไม่" โดยความรู้ที่ไม่แน่นอนอาจเกิดได้จากหลายสาเหตุ (Ruhla, 1992) เช่น
ประเภทของการแทนความรู้ในงานวิจัยปัจจุบัน.
ด้วยเหตุนี้เราจึงพอจะแบ่งประเภทของภาษาที่ใช้แสดงความรู้ได้เป็น 4 ประเภทคือ
โดยความรู้ประเภทสุดท้ายนี้มีศักยภาพของภาษาสูงมากซึ่งก็ทำให้การใช้มันซับซ้อนมากไปด้วย งานวิจัยในช่วงห้าปีหลังก็เริ่มมาสร้างภาษาที่สามารถแสดงความรู้ประเภทสุดท้ายนี้กันอย่างคึกคัก (ดูเว็บไซต์ของ PLM - Probabilistic Logical Models)