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

มาศึกษาทฤษฎี Logic กันเถอะ -- ขั้นแนะนำตัว

อย่างที่ตั้งใจไว้ว่า อยากให้บล็อกนี้เผยแพร่ความรู้เกี่ยวกับคอมพิวเตอร์ ซึ่งมีเรื่องให้เขียนมากมายหลายอย่าง ทั้งทางด้านเทคนิคและด้านทฤษฎี แต่ก็ค่อนข้างจะใช้เวลามากอยู่สักหน่อยสำหรับการรวบรวมสิ่งที่จะเขียนและพยายามสื่อให้เข้าใจง่ายๆ ดังนั้นนานๆถึงจะมีออกมาสักที คงไม่ว่ากันนะคะ ^^

คนที่สนใจด้านระบบปัญญาประดิษฐ์ก็คงจะคุ้นเคยกับทฤษฎีคณิตศาสตร์จำพวก Linear Algebra กันดี วันนี้อยากจะแนะนำทฤษฎีคณิตศาสตร์อีกกลุ่มที่ถูกนำมาใช้ในระบบปัญญาประดิษฐ์ซึ่งก็คือ Mathematical Logic (นอกจากเรียกว่า Mathematical Logic ยังเรียกได้ว่า Symbolic Logic หรือ Formal Logic) หรือตรรกศาสตร์ที่เราเคยเรียนกันสมัยมัธยมนี่ล่ะค่ะ

สำหรับวันนี้คงจะเกริ่นนำให้รู้จักกันก่อนว่า ทำไมทฤษฎีตรรกศาสตร์ถึงเข้ามามีบทบาทนักหนา ก่อนอื่นอยากให้ทำความรู้จักกับงานด้านปัญญาประดิษฐ์ (Artificial Intelligence , AI) กันก่อนค่ะ งานด้านนี้ คืองานที่เราต้องการทำให้เครื่องจักร (machine) สามารถที่จะพัฒนาการเรียนรู้ของตนเอง เพิ่มโอกาสให้มันทำงานได้สำเร็จมากยิ่งขึ้น พูดง่ายๆ(ตามประสาความเข้าใจของตัวเอง) คือทำให้ machine มันฉลาดขึ้นน่ะค่ะ เพราะปกติมันไม่มีสมองเหมือนมนุษย์

ทีนี้การจะทำให้ machine ฉลาดขึ้นเนี่ยก็มีมากมายหลายวิธี และหนึ่งในวิธีที่มีการนำเอา Logic เข้ามาใช้ก็คือการทำระบบตัดสินใจแบบมีเหตุผล (reasoning) ทีนี้การจะทำให้ machine มีเหตุผลก็ต้องมีวิธีการคิดเสียก่อน ซึ่งนักทฤษฎีทั้งหลายใช้แนวคิดว่า คนเราเนี่ยไม่ว่าจะตัดสินใจอะไรก็ตามอยู่บนพื้นฐานของเหตุผลเสมอ ถึงแม้ว่าจะตัดสินใจเร็วมากเสียจนเหมือนไม่ได้คิดหาเหตุผลแต่จริงๆแล้วก็คิดมาแล้ว
(บางคนอาจจะนึกเถียงในใจว่า ตอนที่ใช้อารมณ์มากกว่าเหตุผลก็มีนะ อย่างเช่นคุณผู้ชายที่ชอบว่าผู้หญิงทั้งหลาย แต่ machine ไม่มีอารมณ์เพราะฉะนั้นเราจะไม่มองจุดนั้นนะคะ)

จากแนวคิดนี้แหละค่ะ เราก็จะทำให้ machine มีเหตุมีผลกับเค้าบ้าง ด้วยการจำลองแบบการคิดอย่างมีเหตุผลของมนุษย์ใส่เข้าไปใน machine ค่ะ โดยที่ machine จะต้องมีความรู้พื้นฐาน (knowledge) ก่อนแล้วก็เอาไปประมวลผลตามวิธีการต่างๆก่อนที่จะสร้างออกมาให้เกิดความรู้ใหม่ (new knowledge)

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

ดังนั้นที่เราจะนำเอามาเขียนในคราวต่อไปก็คือ ทฤษฎีที่แสดงให้เห็นว่าเราจะเอาความรู้ทั่วๆไปมาเก็บในรูปแบบที่ machine เอามาประมวลผลเพื่อหาเหตุผลได้อย่างไร ซึ่งวิธีการหาเหตุผลที่จะแนะนำกันก็คือ  deduction หรือ deductive reasoning เป็นการหาเหตุผลในแบบ จาก general case -> specific case คือถ้าหากว่าข้อมูลพื้นฐาน(หรือความเชื่อ) ที่ machine มีนั้นเป็นจริง มีกฎของความจริงอยู่ก็เป็นไปตามนั้น เราก็จะหาข้อสรุปได้ว่าสิ่งที่คาดไว้น่าจะเป็นจริง พูดง่ายๆ(ภาษาเราเอง) ก็คือ เรามีความเชื่ออยู่ ถ้าหากว่าข้อมูลที่เรามีนั้นเป็นไปตามความเชื่อนั้นจริง สิ่งที่เราสงสัยก็น่าจะเป็นจริงตามความเชื่อนั้น
ตัวอย่างเช่น
                 เราเชื่อว่า ถ้าเป็นนกแล้วจะสามารถบินได้
                 เรามีข้อมูลว่า นางแอ่นเป็นนก แน่นอนว่านางแอ่นก็บินได้จริง
                 ดังนั้นถ้าเรารู้ว่า นางนวลเป็นนก เราสงสัยว่านางนวลจะบินได้หรือไม่
                 เราก็จะได้ข้อสรุปว่า นางนวลบินได้
                 เพราะเราหาข้อสรุปโดยอ้างอิงจากความเชื่อที่มี และก็ข้อมูลที่มีที่เป็นจริง

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

หนังสือด้าน Mathematical Logic มีเยอะมาก สนใจจะอ่านเล่มไหนก็ได้ค่ะ เลือกเล่มที่ถูกใจได้เลย ส่วนตัวเราอ่านเล่ม Symbolic Logic จำชื่อผู้แต่งไม่ได้ เพราะว่าอ.ที่ปรึกษาแนะนำมาน่ะค่ะ แล้วก็ต่อจากนั้นก็อ่าน Logic programming and Prolog เล่มนี้อ่านเพราะว่าจะได้เรียนรู้ว่าจากทฤษฎี เขานำเอาไปเขียนเป็นภาษาสำหรับเขียนโปรแกรมให้เราใช้งานอย่างไรนะคะ

ปล. ใช้คำว่าเครื่องจักร เพราะว่าจะได้หมายถึงได้กว้างๆ ไม่ต้องเจาะจงแค่คอมพิวเตอร์อย่างเดียว อุปกรณ์ระบบฝังตัว ฯลฯ ก็นับรวมนะคะ

อย่าเพิ่งร้องยี้กันนะคะ เพราะว่าทฤษฎี logic ไม่ได้ยากขนาดนั้น ตอนเรียนม.4 ตรรกศาสตร์ง่ายยังไง ก็ง่ายอย่างนั้นแหละค่ะ(ถ้าไม่ prove) ฮ่าๆๆๆ กล้าพูดเนอะ

คนที่สนใจศึกษา แนะนำว่า อ่านบล็อกใหม่ที่เราโพสดีกว่านะคะ ที่นี่ โพสอันนี้นานแล้ว ความรู้เราก็ยังไม่ค่อยดีเท่าไหร่ (ปัจจุบันก็ไม่ได้ดีนักนะคะ ฮ่าๆๆๆ)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น