threshold) then output เท่านั้นเอง .. สิ่งสำคัญคือเราต้องรู้ค่า weight และ threshold สำหรับสิ่งที่เราต้องการให้คอมพิวเตอร์รู้จำ ซึ่งเราไม่รู้ว่ามันมีค่าเท่าไหร่แน่ แต่เราสามารถกำหนดให้คอมพิวเตอร์ปรับค่าเหล่านั้นได้โดยการสอนให้มันรู้จัก pattern ของสิ่งที่เราต้องการให้มันรู้จำ เรียกว่า "back propagation" ซึ่งเป็นกระบวนการย้อนกลับของการรู้จำ .. หลักการคือเรากำหนด ค่า output ที่ถูกต้องให้กับ pattern ของสิ่งที่เราต้องการให้มันรู้จำหลายๆ แบบ แล้วคำนวณหา error ของ output ที่ได้จากการคำนวณด้วยคอมพิวเตอร์เทียบกับ output ที่ถูกต้อง แล้วนำค่า error ไปปรับ weight / threshold .. การสอนต้องทำซ้ำๆ หลายครั้ง และจำเป็นต้องสอนให้คอมพิวเตอร์รู้จัก pattern หลายๆ แบบของสิ่งๆ เดียว (ถ้าเป็นบ้านก็คือ ให้มันรู้จักบ้านหลายๆ แบบ หลายๆ ทรง) ยิ่งสอนมากเท่าไหร่ weight และ threshold ก็จะมีความถูกต้องมากขึ้น อย่างเช่นจะรู้จำรูปสามเหลี่ยม กับรูปสี่เหลี่ยม เราอาจแบ่ง input เป็น 9 ตัวคือเป็นตาราง 3x3 ถ้าวาดรูปสี่เหลี่ยมหรือสามเหลี่ยมให้เต็มกรอบ 3x3 พอดี สี่เหลี่ยมจะมีส่วนของขอบอยู่ในช่อง 1,2,3,4,6,7,8,9 มากกว่าใช่มั้ย ..อ้า..งั้นเราก็ให้น้ำหนักตรงช่องเหล่านี้มากๆ หน่อย ถ้ามีเส้นขีดผ่านก็เอามาคูณกับน้ำหนักแล้วก็เอามารวมกัน ตั้งค่าให้พอเหมาะก็จะสามารถแยกแยะระหว่างสี่เหลี่ยมกับสามเหลี่ยมได้..อันนี้คือหลักการของ neural network Cognitive Sciences ไม่ได้พูดกันแต่เรื่องของภาพ แต่จะรวมทั้งเสียง ลักษณะที่เป็น pattern อื่นๆ รวมทั้งการรับรู้ภาษาของมนุษย์ด้วย งานที่นำ Cognitive Science ไปประยุกต์ก็มีพวก Voice Recognition, Optical Character Recognition (OCR) หรือ Handwriting Recognition Expert System ทีนี้มาเรื่อง Expert System กันบ้าง .. เป้าหมายตัวนี้เป็นเรื่องการทำให้คอมพิวเตอร์ฉลาดได้..ทำให้มันเรียนรู้เอง (Self-learning) ได้ เอาเรื่องทฤษฎีซักเล็กน้อยนะครับ ถ้าเราแบ่งระดับของความรู้ (knowledge) ตามความลึกหรือความซับซ้อนจะแบ่งออกได้ 3 ระดับ คือ "Deep Knowledge" เป็นความรู้พื้นฐานที่ถือว่าลึกที่สุด ได้จากการศึกษาข้อเท็จจริง กฏ และ ทฤษฎีต่างๆ เช่นการที่เราคำนวณเลขเป็น บวก ลบ คูณ หารได้ การที่เราคำนวณตามกฏของนิวตันได้ อันนี้เกิดจาก deep knowledge ซึ่งหาได้จากการศึกษาในตำรา และห้องเรียนเป็นส่วนใหญ่ อันที่สองคือ "Domain Knowledge" เป็นความรู้ระดับกลางๆ ในเรื่องของวิธีการและการปฏิบัติเฉพาะทาง ส่วนสุดท้ายคือ "Surface Knowledge" หรือ "Shallow Knowledge" เป็นความรู้ที่ได้จากประสบการณ์ อันที่สามนี่แหละที่สำคัญ เพราะสองอันแรกที่มันสามารถจะถ่ายทอดได้ง่ายและรับรู้ได้ง่าย deep และ domain knowledge จะเป็นพื้นฐานในการรองรับเรื่องของประสบการณ์และเหตุผล ซึ่งเราสามารถจะใส่หรือ encode ลงไปในเครื่องคอมพิวเตอร์ได้ง่าย แต่สิ่งที่ทำให้คนกับคอมพิวเตอร์ต่างกันคือตัว surface knowledge เพราะว่าคอมพิวเตอร์มันทำงานตามที่เราโปรแกรมเท่านั้น มันเก็บประสบการณ์เองไม่เป็น อันนี้คือจุดที่ทำให้เกิด Expert Systems ขึ้นมา.. หลายคนอาจสงสัยว่าทำไมถึงเรียกว่า Expert System ทั้งที่เราจะใช้ knowledge ที่อยู่ตื้นที่สุด ? ...คำตอบก็มาจากเรื่องของประสบการณ์นั้นแหละครับ คือผู้ที่มี surface knowledge อยู่มากกว่า หรือมีประสบการณ์มากกว่า คือผู้ที่สามารถแก้ปัญหาเฉพาะทางได้ดีกว่าคนที่ไม่มี ยกตัวอย่างเช่น คนที่เป็นหมอ เริ่มต้นการเรียนหมอคือการใส่ deep และ domain knowledge ให้ผู้เรียน แต่ละโรคเป็นยังไง เชื้อโรคไหนทำให้เป็นอะไร อันนี้คือ deep และ domain knowledge แต่พอเรียนไปเค้าต้องฝึกให้เอา deep และ domain knowledge มาใช้ ซึ่งก็คือการฝึกประสบการณ์ให้เกิด surface knowledge นั่นเอง.. อันนี้เป็นเหตุผลที่ว่าทำไมหมออายุน้อยๆ กับหมออายุมากๆ มีความเชี่ยวชาญต่างกันทั้งที่เรียนหนังสือเล่มเดียวกัน หรือเราอาจเปรียนเทียบให้ใกล้ตัวขึ้นนะ เป็นการเขียนโปรแกรมภาษา C/C++ ที่คุณเรียนในห้องเรียนเป็นวิธีการโปรแกรมนั้นคือ deep และ domain knowledge แต่เรียนในห้องเรียนอย่างเดียวจะเขียนโปรแกรมเก่งมั้ยล่ะครับ.. ก็คงยากหน่อย .. อยากเขียนเป็น เขียนเก่งก็ต้องฝึกเขียนกันใช่มั้ยครับ ? .. ยิ่งเขียนมากมีประสบการณ์มากก็เขียนได้ดี และเก่งขึ้น อันนี้คือการเป็นผู้เชี่ยวชาญ ทีนี้จะทำให้คอมพิวเตอร์กลายเป็นผู้เชี่ยวชาญได้ยังไง ??? .. ก็ต้องทำให้มันมีประสบการณ์ไงครับ โดยการดึงเอาประสบการณ์จากผู้เชี่ยวชาญจริงๆ ที่เป็นมนุษย์ให้ได้มากที่สุด แล้วก็ encode ลงในคอมพิวเตอร์ จากนั้นก็ทำส่วนของการใช้ประสบการณ์ตรงนี้ขึ้นมา เนื่องจากเราเอาประสบการณ์ที่เป็นความรู้ลงไปเก็บในเครื่อง Expert Systems จึงเรียกอีกอย่างว่า "Knowledge-Based System" และทฤษฎีที่เป็นตัวรองรับ Expert system ก็เรียกว่า "Knowledge Engineering" ...อุวะ..ชื่อเท่ห์ชะมัด อย่างไรก็ตาม การเก็บประสบการณ์ (Knowledge Acquisition) ไม่ใช่เรื่องง่ายๆ เหมือนการบันทึกข้อมูลทั่วไป เพราะประสบการณ์มีการเก็บในตัวคนอย่างซับซ้อนมาก การดึงเอาออกมาก็เป็นการยากแล้ว ผมยกตัวอย่างแบบนี้ สมมติเราจะข้ามถนนที่มีรถกำลังวิ่งใกล้เข้ามา.. เราต้องวัดระยะว่ารถอยู่ห่างกี่เมตรรึเปล่า ? ต้องคำนวณมั้ยว่ารถเร็วเท่านี้ ถนนกว้างขนาดนี้ เราวิ่งได้เร็วสุดเท่านี้ จะข้ามทันมัย ?? .. เราคงไม่ได้ทำแบบนี้ใช่มั้ยครับ (หรือมีใครทำ ??) .. แล้วทำไมเราถึงข้ามถนนได้โดยปลอดภัย ? ทั้งที่การข้ามถนนเป็นเรื่องออกจะคอขาดบาดตาย ทำไมเราไม่คิดหรือคำนวณให้มั่นใจ ? .. คำตอบ.. เพราะเราเรียนรู้จากประสบการณ์ไงครับ.. เราฝึกข้ามถนนตั้งแต่เด็ก ตั้งแต่ถูกจูงมือข้ามถนน ซ้ำๆ ไม่รู้กี่ร้อยหน จนมันฝังในหัวไปแล้ว .. แต่เราอธิบายได้มั้ยครับว่าทำไมถึงตัดสินใจข้าม หรือไม่ข้ามถนน ? เพราะอะไรกันแน่ ? เราแก้ปัญหาได้ แต่กลับบอกไม่ได้ว่าทำไม .. มหัศจรรย์อีกแล้ว ไม่รู้รอดจากรถชนได้ไง (- -') .. เพราะว่าเราหาเหตุผลที่แท้จริงไม่ได้นั่นล่ะครับคือความยากใน Knowledge Acquisition ปัจจุบันใน Knowledge Engineering นิยมที่จะเก็บข้อมูลนี้เป็นกฏ(rules) ในรูปของ IF-THEN .."ถ้า .. แล้ว... " เพราะมัน encode ได้ง่าย อย่างหมอวิเคราะห์โรคเพื่อรักษา เค้าจะดูอาการที่ปรากฏเป็นหลัก เพราะไม่สามารถจะระบุได้ 100% ว่าผู้ป่วยเป็นโรคอะไร แต่ "ถ้ามีอาการ X ก็น่าจะเป็นโรค Y นะ อ้อถ้าเป็นโรค Y ก็กินยา Z นะ " อันนี้คือประสบการณ์เหมือนกัน เพราะถ้าอ่านแต่ตำราก็จะไม่มีทางจะยืนยันได้หรอกว่าผู้ป่วยเป็นอาการ X อยู่ตอนนี้ คนที่เคยเห็นเคยประสบจริงๆ ถึงจะบอกได้..คนที่ตรวจบ่อยๆ ฟังเสียงลมหายใจในปอดคนป่วยบ่อยๆ หรือคลำหาก้อนเนื้อที่ผิดปกติบ่อยๆ ถึงจะชี้ชัดถึงอาการได้ถูกต้องมากกว่า หรือข้ามถนนก็เหมือนกัน ถ้าถนนกว้างประมาณนี้ รถวิ่งประมาณนี้ งั้นข้ามได้ ประสบการณ์เท่านั้นที่จะบอกว่า "ประมาณนี้" คือเท่าไหร่ .. ในการแก้ปัญหาจริงๆ แล้วอาจจะมี IF-THEN นี่เป็นหลายร้อยหลายพันอันเลย ..อย่างระบบ common sense ของมนุษย์มีการวิจัยกันว่ามี IF-THEN ไม่น้อยกว่า 2 ล้านอัน...เค้าเรียก IF-THEN แต่ละอันว่าเป็น กฏ (Rule) และเรียก X, Y, Z ว่าเป็นข้อเท็จจริง (facts) เมื่อข้อเท็จจริงปรากฏขึ้นในกฏใดก็จะทำให้เกิดผลลัพธ์ออกมาตามที่กฏนั้นระบุไว้ และนั่นก็คือคำตอบของปัญหา Expert system ในปัจจุบันนี้ที่ใช้งานกันแล้วก็มีเรื่องของหมอนี่แหละครับ เห็นทำเป็น CD ขายกันเลยนะ ใส่อาการที่เห็นเข้าไปแล้วมันจะวิเคราะห์ว่าเป็นโรคอะไร ต้องกินยาอะไรได้ อีกอันนึงก็คือการทำให้คอมฯ เข้าใจภาษามนุษย์...อ้อ มีอีกอันที่ดังๆ ก็คือ Deep Blue เครื่อง IBM RISC/6000 ที่ออกแบบมาแข่งหมากรุกกับ Garry Kasparov แชมป์โลกหมากรุกหลายสมัย Deep Blue เก็บฐานข้อมูลการเดินหมากจากการแข่งขันหมากรุกจำนวนมหาศาลไว้ และอาศัยการ search และวิเคราะห์ทางสถิติเป็นหลัก ผลก็คือ Deep Blue แพ้ Kasparov ราบคาบ .. ปีต่อมาหลังจากแพ้ Kasparov ทีม Deep Blue พัฒนาระบบใหม่ในชื่อ Deeper Blue ทำเป็น Expert System เลย โดยมีนักเล่นหมากรุกระดับ Grand Master (เก่งโคตรๆ) มาเป็นผู้ช่วย ผลก็คือ Deeper Blue เอาชนะแชมป์โลกที่เป็นมนุษย์ได้ .. Deeper Blue วิเคราะห์การเดินหมากในกระดานสุดท้ายของ Kasparov แล้วให้คำตอบได้ว่า จากฐานข้อมูลการเดินหมากที่เก็บใน Deeper Blue มีเพียง 3 กระดานเท่านั้นที่เดินเหมือนกับหมากที่ Kasparov เดินพลาด ทั้งสามกระดานก็แพ้หมด .. ทีม Deeper Blue มองอนาคตไว้ว่าถ้าสามารถทำให้คอมพิวเตอร์คำนวณได้เร็วพอ ดึง knowledge ได้เร็วพอ อีกหน่อยไปหาหมอ..หมอจะตรวจดูอาการ แล้วคีย์เข้าคอมพิวเตอร์ จากนั้นคอมพิวเตอร์จะหาส่วนผสมของตัวยาในการรักษาอาการที่เกิดขึ้นทั้งหมดที่คีย์ไป พร้อมทั้งผลิตออกเป็นยาใส่ขวดให้เสร็จสรรพ ผู้ป่วยก็จะได้ยาในการรักษาอาการนั้นๆ อย่างถูกต้องตรงเป๊ะตามอาการและไม่เกิดผลข้างเคียง...อะไรจะปานนั้น ก่อนจะจบ..แถมเรื่องการ implement ของ AI ...สำหรับ Cognitive Science จะเป็นภาษาทั่วไป เช่น C/C++ ทำนองนี้.. เท่าที่รู้ยังไม่มีภาษาที่เป็นภาษาเฉพาะครับ แต่ Expert System มีมากมายหลายภาษา เช่น LISP, PROLOG, CLIPS นอกจากภาษายังมีตัวช่วยสร้างระบบอีกต่างหากเรียกว่าเป็น Expert System Shell เช่น ExSys, KPWin, VPExpert มีเวอร์ชันบน Windows ด้วย พวก shell นี่ใช้ง่ายแล้วทำงานได้ไม่เลว หน้าจอก็จัดได้ตามใจเรา ทำเสร็จก็กลายเป็น Expert System Application ได้เลยทีเดียว ...ถ้าสนใจก็ลองหา download มาใช้ดูก็ได้ ผมเคยเอาภาษา LISP, PROLOG, CLIPS และ ExSys เก็บไว้อยู่แถวๆ ที่ภาควิชาฯ นั่นล่ะ .. แต่โปรแกรมยังไง..อันนี้ไปหา deep/domain knowledge กันเอาเอง...หึหึหึ -------------------------------------------------------------------------------- References Dentcho N. Batanov, Assoc. Prof., Developement of Knowledge-Based System, Lecture notes, Asian Institute of Technology, Sep. 1997 Wilas Wuwongse, Assoc. Prof., Knowledge Engineering, Lecture notes, Asian Institute of Technology, Sep. 1997 R. Sadananda, Prof., Artificial Intelligence, Lecture notes, Asian Institute of Technology, Jan. 1998 Kevin Knight, Artificial Intelligence, McGraw Hill" />
อ่านไม่ไหวว่ะ Posted by : ง่วงนอน , Date : 2006-10-09 , Time : 13:59:33 , From IP : 172.29.3.195 |
555 สงสัยต้องทำนำเสนอเป็นตอนๆ Posted by : delpiero , Date : 2006-10-09 , Time : 22:28:45 , From IP : 61.7.158.161 |
ความเห็นจาก Social Network : Facebook |
|
>>>>> Page loaded: 0.003 seconds. <<<<< |