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

**การแทนความรู้** () เป็นสาขาหลักที่สำคัญที่สุด สาขาหนึ่งของปัญญาประดิษฐ์ ถึงแม้ว่าเราไม่สามารถนิยามคำว่า ความรู้ และ ความฉลาด ได้อย่างรัดกุมหรือสมบูรณ์ แต่มนุษย์เราโดยส่วนใหญ่ ตระหนักเป็นอย่างดีว่า ความรู้กับความฉลาด เป็นสองสิ่ง ที่มีความสัมพันธ์ และความขึ้นต่อกัน สูงมาก การพัฒนาสร้างสติปัญญาเทียม ให้ฉลาดเทียบเคียงได้กับมนุษย์ จึงมีความจำเป็นอย่างมาก ที่จะต้องออกแบบความรู้ของเครื่องจักรให้ ***ดีและมีประสิทธิภาพ***

## ความหมายของการแทนความรู้
การแทนความรู้ คือ การนำเสนอความรู้ ให้อยู่ในรูปที่เครื่องจักรสามารถนำไปใช้ได้ เนื่องจากมนุษย์แทนความรู้โดยใช้ภาษา (language) นักวิจัยสาขาปัญญาประดิษฐ์ จึงได้สร้างภาษาสำหรับแทนความรู้ขึ้นมาเช่นเดียวกัน ภาษาที่ใช้แทนความรู้มีมากมายหลายวิธีในปัญญาประดิษฐ์ ซึ่งโดยปกติแล้วคำว่าภาษาที่แทนความรู้ได้ดี ประกอบไปด้วยลักษณะที่พอสรุปได้ดังนี้

# สามารถแทนความรู้ที่ซับซ้อนได้ (language is expressive)
# ความรู้ที่ถูกแทนควรอยู่ในรูปแบบที่กระชับ ประหยัดหน่วยความจำ (language is compact)
# ความรู้สามารถถูกนำไปใช้คิดหาเหตุผลหรืออนุมาน (inference) เพื่อใช้ในปัญหาต่างๆ ได้โดยง่าย (language is convenient for automated reasoning)
# สามารถเรียนรู้ความรู้ใหม่ๆ ด้วยเทคนิคการเรียนรู้ของเครื่อง ให้อยู่ในรูปภาษาที่เราใช้ได้โดยง่าย (language is convenient for automated learning)

ไม่มีภาษาใดในปัจจุบัน ที่นักวิจัยทุกคนยอมรับว่า ดีที่สุดในวงการวิจัยปัญญาประดิษฐ์ โดยภาษาที่ใช้ในการแทนความรู้แต่ละภาษา จะมี “ศักยภาพในการแทนความรู้” หรือ “ความสามารถในการแสดงความรู้ของภาษา” (expressiveness) ได้ในระดับที่ต่างกัน นั่นคือความรู้บางประเภทที่มีความซับซ้อน จะไม่สามารถนำเสนอสู่เครื่องจักรที่ใช้ภาษาง่ายเกินไปได้ แต่การแทนความรู้ที่ซับซ้อนเกินไป ก็จะถูกนำไปใช้งาน และเรียนรู้ได้ยาก นั่นคือในสถานการณ์ทั่วไป ผู้ใช้งานต้องเผชิญกับทางเลือก (dilemma/tradeoff) ว่า ต้องการนำเสนอความรู้ ในรูปแบบที่ซับซ้อนได้ดี [1. และ 2.] หรือว่าต้องการใช้งานความรู้นั้นได้อย่างสะดวก [3. และ 4.]. ในบทความนี้ จะนำเสนอเฉพาะประเด็น 1. และ 2. เท่านั้น ส่วนรายละเอียดของประเด็น 3. และ 4. สามารถดูได้ที่หัวข้อ การให้เหตุผลของเครื่อง และ การเรียนรู้ของเครื่อง

## ชนิดของการแทนความรู้
ในการอ่านหัวข้อนี้ถ้าผู้อ่านมีความรู้เรื่องโมเดลเชิงวัตถุ (object-oriented model) จะสามารถเข้าใจได้ดี เพราะเราสามารถมองความรู้ให้อยู่ในรูปของวัตถุและความสัมพันธ์ระหว่างวัตถุได้

ศักยภาพในการแทนความรู้ที่ซับซ้อนของภาษามีสองประเด็นหลักที่ต้องพิจารณาดังนี้

### ความสามารถในการแทนความรู้เกี่ยวกับวัตถุและความสัมพันธ์ประเภทเดียวกัน
โดยประเด็นแรกคือ *ภาษานั้นแสดงความรู้เกี่ยวกับคุณสมบัติต่างๆ ของวัตถุและความสัมพันธ์ระหว่างวัตถุได้ดีแค่ไหน* โดยภาษาที่ดีควรจะความรู้ประเภทเดียวกันของวัตถุหรือความสัมพันธ์ประเภทเดียวกันได้อย่างประหยัด โดยเฉพาะกรณีที่เราพิจารณาโดเมนของวัตถุที่เป็นอนันต์(infinitely many objects) เช่น ความรู้เกี่ยวกับคณิตศาสตร์ที่มีวัตถุคือตัวเลขนั้น บางภาษาสามารถใช้ตัวอักขระจำนวนจำกัด (finite) เพื่อแทนความรู้ที่เป็นอนันต์ได้ ตัวอย่างของความรู้ประเภทนี้คือกฎการสลับที่ของการบวกของตัวเลขซึ่งเราสามารถเขียนให้อยู่ในรูปภาษาพีชคณิตอย่างง่ายได้สั้นๆ ดังนี้
 a+b = b+a 
นั่นคือเราสามารถแทน a และ b ด้วยตัวเลขใดๆในโดเมนที่พิจารณาก็ได้ ซึ่งตัวเลขทั้งหมด ในโดเมนจะมีคุณสมบัติการสลับที่นี้ทั้งหมด โดยไม่ว่าเราจะพิจารณาโดเมนของจำนวนจริง จำนวนเต็ม หรือจำนวนเชิงซ้อนก็ตามจะมีคุณสมบัติการสลับที่ที่ว่านี้ จะเห็นว่าในที่นี้เราใช้เพียง 7 อักขระแทนความรู้มากมายมหาศาล แทนที่จะเป็น
 1+2 = 2+1, 1+3 = 3+1, 2+3+ 3+2, ... 

### ความสามารถในการแทนความรู้ที่ไม่แน่นอน
ประเด็นนี้พิจารณาว่า *ภาษานั้นสามารถแสดง[[ความรู้ที่ไม่แน่นอน]] (uncertainty in knowledge) ได้หรือไม่* โดยความรู้ที่ไม่แน่นอนอาจเกิดได้จากหลายสาเหตุ (Ruhla, 1992) เช่น
# ความไม่แน่นอนเกิดจากการชั่ง, การตวง หรือการวัดของเรามีความคลาดเคลื่อน (error in measurement)
# ความไม่แน่นอนเกิดจากความรู้ของเราไม่สมบูรณ์ (ignorance/incomplete knowledge)
# เราไม่มี*[[แบบจำลองทางวิทยาศาสตร์|โมเดล]]ความรู้ที่สมบูรณ์* (หมายถึงสามารถทำนายได้ถูกต้อง 100%) เกี่ยวกับสภาพแวดล้อม เช่น ในปัจจุบันเราไม่สามารถทำนายสภาพดินฟ้าอากาศล่วงหน้าได้สมบูรณ์แบบไม่ว่าเราจะมีข้อมูลเกี่ยวกับดินฟ้าอากาศในปัจจุบันมากแค่ไหนก็ตาม อย่างไรก็ตามเราก็ยังสามารถนำข้อมูลที่เรามีทั้งหมดมาหาเหตุผลที่เหมาะสมหรืออนุมานเพื่อทำนายสภาพดินฟ้าอากาศที่น่าจะเป็นในวันรุ่งขึ้นได้อยู่ดี และนี่คือพลังของภาษาที่สามารถใส่ความรู้ที่ไม่จำเป็นต้องถูกต้อง 100% ได้
# เราไม่สามารถสังเกตสิ่งที่ปรากฏทั้งหมดในธรรมชาติได้แม้ว่าเราจะมีโมเดลความรู้ที่สมบูรณ์ (หรือสมมุติว่าสมบูรณ์) ก็ตาม เนื่องจากสิ่งที่ปรากฏทั้งหมดในธรรมชาติมีมากมายมหาศาล เช่น ทฤษฎีจลนศาสตร์ของแก๊สที่ถูกคิดค้นโดยเจมส์ คล๊าก แมกซ์เวลล์ได้แสดงความรู้เกี่ยวกับความเร็วเฉลี่ยของแก๊สและพลังงานเฉลี่ยในรูปทฤษฎีความน่าจะเป็น
# ความไม่แน่นอนเกิดจากความอ่อนไหวต่อสภาวะเบื้องต้น (sensitivity to initial conditions) ในระบบพลวัต เช่น ปรากฏการณ์เคออส ซึ่งถูกค้นพบโดยอองรี ปวงกาเร
# ความไม่แน่นอนเกิดจากธรรมชาติโดยตรง เช่น ความรู้เกี่ยวกับทฤษฎีควอนตัมที่เชื่อว่าถูกต้องในวิทยาศาสตร์ปัจจุบัน

### ประเภทของการแทนความรู้ในงานวิจัยปัจจุบัน
ด้วยเหตุนี้เราจึงพอจะแบ่งประเภทของภาษาที่ใช้แสดงความรู้ได้เป็น 4 ประเภทคือ
* ความรู้ที่แสดงความรู้จำนวนอนันต์ได้ก็ต่อเมื่ออักขระมีจำนวนอนันต์ และไม่สามารถแทนความรู้ที่มีความไม่แน่นอนได้ เช่น ตรรกศาสตร์แบบฉบับ, การเรียนรู้ต้นไม้ตัดสินใจ, หรือ ออโตมาตาสถานะจำกัด
* ความรู้ที่แสดงความรู้จำนวนอนันต์ได้ก็ต่อเมื่ออักขระมีจำนวนอนันต์ แต่สามารถแทนความรู้ที่มีความไม่แน่นอนได้ เช่น ตรรกศาสตร์คลุมเครือ, เครือข่ายเบย์
* ความรู้ที่แสดงความรู้จำนวนอนันต์ได้โดยอักขระจำนวนจำกัด แต่ไม่สามารถแทนความรู้ที่มีความไม่แน่นอนได้ (หรือไม่สามารถแทนได้อย่างมีประสิทธิภาพโดยธรรมชาติของภาษา) เช่น ตรรกศาสตร์อันดับหนึ่ง (หรือ ตรรกศาสตร์ภาคแสดงในศัพท์บัญญัติ )
* ความรู้ที่แสดงความรู้จำนวนอนันต์ได้โดยอักขระจำนวนจำกัด และสามารถแทนความรู้ที่มีความไม่แน่นอนได้

โดยความรู้ประเภทสุดท้ายนี้มีศักยภาพของภาษาสูงมากซึ่งก็ทำให้การใช้มันซับซ้อนมากไปด้วย งานวิจัยในช่วงห้าปีหลังก็เริ่มมาสร้างภาษาที่สามารถแสดงความรู้ประเภทสุดท้ายนี้กันอย่างคึกคัก (ดูเว็บไซต์ของ PLM - Probabilistic Logical Models)

## อ้างอิง

* Stuart J. Russell, Peter Norvig (2003) "Artificial Intelligence: A Modern Approach" (2nd Edition), Prentice Hall, New Jersey, ISBN 0137903952.
* Charle Ruhla. "The Physics of Chance: From Blaise Pascal to Niels Bohr". Oxford University Press (December 1, 1992).

## ดูเพิ่ม
* ปัญญาประดิษฐ์
* การเรียนรู้ของเครื่อง

## แหล่งข้อมูลอื่น
* Probabilistic-Logical Model Repository

หมวดหมู่:การให้เหตุผล
หมวดหมู่:แบบจำลองทางวิทยาศาสตร์
การแทนความรู้
หมวดหมู่:ปัญญาประดิษฐ์