วันอาทิตย์ที่ 31 มีนาคม พ.ศ. 2556

มาศึกษาทฤษฎี Logic กันเถอะ -- ขั้น Propositional Logic (1)

วันนี้เหม็นกลิ่นน้ำส้มสายชูควันไม้มาก คือว่าที่ห้องเนี่ยจะมี "มด" มาเที่ยวหาตลอด ไม่ว่าจะย้ายไปอยู่ที่ไหนก็ตาม รักกันมาก เอาแป้งฝุ่นโรยก็ป้องกันได้สักพัก พอแป้งเริ่มเกาะตัวไม่เป็นผง พี่มดทั้งหลายก็เดินข้ามกันหน้าตาเฉย เลยต้องลองของเล่นใหม่ น้ำส้มสายชูควันไม้เอามาฉีดตามทางเดินพี่ๆเค้าแหละค่ะ เพราะว่าเราไม่อยากฆ่าให้ตายก็เลยต้องใช้วิธีนี้ เลยทำเอาเรามึนหัวไปซะนานจนต้องนอนกลางวันไปหลายชั่วโมง ตื่นมาก็ตาลายอ่านหนังสือไม่ได้ อิอิ (ข้ออ้างชัดๆ)

โพสอันนี้เก่าแล้ว เราอธิบายก็ไม่ค่อยละเอียดไม่ดีเท่าไหร่ แนะนำว่าคนที่สนใจศึกษาเริ่มอ่าน ที่นี่ ดีกว่าค่ะ โพสอันนี้ถ้าเอาไว้ใช้อ้างอิงตามหนังสือก็พอได้อยู่ แต่จะไม่เข้าใจภาพรวมนัก

สำหรับใครที่หลงเข้ามาหน้านี้ แนะนำให้อ่านทฤษฎี Logic ขั้นแนะนำตัว ก่อนนะคะ เรามาต่อกันเลยดีกว่า จากที่เรารู้แล้วว่าจุดประสงค์เราคือจะทำให้ machine สามารถคิดแบบมีเหตุมีผลได้  ถ้าเราดูจากตัวอย่างที่แล้วเนี่ย เรามีข้อมูล(knowledge) อยู่ที่ว่า "ถ้าเป็นนก แล้วจะบินได้" แล้วเราก็มีความจริง (fact) ที่ว่า "นางนวลเป็นนก" เราก็เลยสรุปเอาว่า "นางนวลบินได้" เพราะเราสรุปตามความเชื่อที่เรามี

ทีนี้ปัญหาใหญ่ก็คือ แล้วจะเก็บข้อมูลเหล่านี้ยังไงล่ะ เพื่อที่จะได้นำเอามาประมวลผลในกฎหรือข้อมูลความเชื่อที่เรามีได้ สำหรับรูปแบบง่ายที่สุดของแบบฟอร์มที่ใช้ก็คือ Propositional Logic ค่ะ ต่อจากนี้ไปจะขออธิบายทฤษฎีของ Propositional Logic แล้วนะคะ จะพยายามอธิบายเป็นทีละคำศัพท์ไปค่ะ

เราคงอยากที่จะเขียนกฎที่ใช้ประมวลผลหาข้อสรุปจากข้อมูลจนได้มาว่า "นกนางนวลบินได้" แต่ว่าเราจะเขียนอย่างนั้นใน machine ได้อย่างไร ปัญหาหลักคือประโยคเหล่านั้นจะเก็บอย่างไร ต่อจากนี้จะอธิบายรูปแบบการเก็บข้อมูล Well-formed formulas หรือ formulas ของ Propositional Logic นะคะ แต่จะเริ่มอธิบายจากหน่วยย่อยๆก่อน


Proposition คือประโยคบอกเล่า (declarative sentence) ที่มีค่าเป็นแค่จริง (true) หรือเท็จ (false) อย่างใดอย่างหนึ่ง ตัวอย่างเช่น  Humidity is highและ Temperature is high. และ One feels comfortable.

ทีนี้เราก็ใช้สัญลักษณ์แทน proposition เพราะต่อไปเราจะต้องนำมันไปใช้อีกใช่มั้ยคะ ก็นิยมจะใช้ตัวอักษรภาษาอังกฤษพิมพ์ใหญ่แทนแต่ละ proposition ค่ะ เช่น P, Q, R ,S ,...
ดังนั้นเราก็จะได้ว่า 
≜  Humidity is high

≜  Temperature is high

≜  One feels comfortable. 


สัญลักษณ์  (denote) หมายถึงเรากำหนดให้ สัญลักษณ์แทนประโยคอะไรนะคะ

Atomic formulus หรือ atoms คือ proposition ต่างๆนี่แหละค่ะ (แต่มองในรูปแบบของสัญลักษณ์ P, Q, R,...)

Logical Connectives คือตัวกระทำการต่างๆ มี 5 ชนิด คือ not, and , or , if...then, if and only if ดังรูปค่ะ
Compound Proposition คือการนำเอา proposition ที่เรามี มากระทำกันผ่าน logical connective นอกจากนี้เรายังสามารถนำ compound proposition มากระทำกับ logical connective ซ้ำได้อีกทำให้เกิด compound proposition ที่ซับซ้อนขึ้นเรื่อยๆได้ค่ะ ตัวอย่างเช่น เรามีประโยคว่า

If the humidity is high and the temperature is high , then one does not feel comfortable 

เรามี proposition ทั้ง 3 อันด้านบนแล้ว เราก็จะนำมาใช้กระทำกับ logical connective เพื่อเขียนแทนประโยคนี้ ได้ดังนี้  If P and Q , then R
เมื่อเรารู้จักหน่วยย่อยๆทั้งหมดแล้วทีนี้ก็ถึงเวลาที่จะต้องมารู้จักกับ formulas แล้วล่ะค่ะ นิยามของ formulas มีดังนี้
Definition : Well-formed formulas, or formulas  for short, in the propositional logic are defined recursively as follows:

  1. An atom is a formula.
  2. If G is a formula, then (~G)   is a formula.
  3. If G and H are formulas, then   (G H) ,(G H) , (G H) ,and (G H) are formulas.
  4. All formulas are generated by applying the above rules

สรุปจากนิยามง่ายๆนะคะ ก็คือ เราถือว่า atom อย่างเดียวก็เป็น formula หรือถ้าเรา ~ atom ก็เป็น formula เช่นกัน (proposition) หรือเราจะเอามันไปทำกับ logical connectives ก็เป็น formula (compound proposition)

ตัวอย่าง ถ้าอย่างเขียนว่า (P∨) อย่างนี้ไม่เป็น formula  เพื่อป้องกันความสับสน ถึงจะเขียนโดยไม่มี ( ) ก็ยังเป็น formula อยู่ เช่น  P∨Q 
ถ้าไม่มี () ต้องคำนึงถึงลำดับความสำคัญของ logical connective ด้วย ซึ่งเราจะเรียงความสำคัญจากน้อยไปมาก (ซ้ายไปขวา) ดังต่อไปนี้      ∧   ~

สุดท้ายของวันนี้ก็คือเรื่องการกำหนดค่าความจริงให้กับ formulas ของเรา ตรงนี้เหมือนกับที่เราเรียนตรรกศาสตร์ม. 4 เลยค่ะ ขอสรุปเป็นดังตารางข้างล่างนะคะ
G
H
~G
G H
G H
G H
G H
T
T
F
T
T
T
T
T
F
F
F
T
F
F
F
T
T
F
T
T
F
F
F
T
F
F
T
T


แปลให้ฟังง่ายๆก็คือ ถ้าเราให้ G เป็น T และให้ H เป็น T แล้ว เราหา G H ค่าความจริงของมันจะเป็น T

เอาล่ะค่ะ คิดว่าวันนี้เนื้อหายาวมากแล้ว ทีนี้ก็รู้จักรูปแบบการเก็บข้อมูลในแบบที่ง่ายที่สุดคือ propositional logic กันไปแล้ว คงพอจะมองเห็นแล้วใช่มั้ยคะว่าต่อไป machine จะเอาไปคิดหาเหตุผลได้อย่างไร ไว้โอกาสหน้ามีเวลาว่าง ตาลายเมื่อไหร่ จะมาเขียนต่อนะคะ บ๊ายบาย

2 ความคิดเห็น:

  1. อาจารย์คับ ผมขอขโมยความคิดอาจารย์ได้ม่ะคับ แล้วอีกอันอาจารย์ช่วยลงวิชาเอไอ เยอะๆนะคับ อยากลองทำดูมั้งครับ

    ตอบลบ
  2. อย่าเรียกว่าขโมยความคิดเลย ถ้าช่วยให้เกิดไอเดียอะไรได้บ้าง ยินดีเสมอเลยจ้า ส่วนเรื่องบล็อกเกี่ยวกับ AI นี่จะพยายามน๊า ต้องใช้เวลาเขียนนานกว่าปกติ อีกอย่างเราก็ไม่ใช่เซียนทางนี้ด้วย :)

    ตอบลบ