วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2553

เทคโนโลยี หุ่นยนต์ฉลาด : วิธีวิวัฒนาการทางพันธุกรรม

หุ่นยนต์ทุกตัวในโลกประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์ ฮาร์ดแวร์เป็นส่วนประกอบของหุ่นยนต์ที่มองเห็นจับต้องได้และ ยังสามารถถูกแบ่งย่อยออกไปอีกได้เป็นฮาร์ดแวร์ทางกล เช่น โครงร่าง กลไกการเคลื่อนที่ เฟือง ล้อ สายพาน แบริ่ง เพลา เป็นต้น และฮาร์ดแวร์ทางไฟฟ้า เช่น มอเตอร์ วงจรขับ วงจรอินเตอร์เฟส เซ็นเซอร์ต่างๆ วงจรจัดการสัญญาณ คอมพิวเตอร์ เป็นต้น ซอฟต์แวร์เป็นส่วนของโปรแกรมที่ใช้ในการบังคับหุ่นยนต์ให้ทำงานตามวัตถุประสงค์ ความสามารถของหุ่นยนต์ถูกจำกัดโดยส่วนของฮาร์ดแวร์ แต่ความฉลาดของหุ่นยนต์นั้นขึ้นอยู่กับส่วนของซอฟต์แวร์นี้โดยตรง ในตอนนี้ผู้เขียนจะแนะนำเทคโนโลยีหุ่นยนต์ฉลาดต่างๆ ที่ถูกโปรแกรมลงบนตัวหุ่นยนต์ ในอดีตหุ่นยนต์จะมีความฉลาดเพียงแค่การทำงานตามคำสั่งที่โปรแกรมไว้ตามขั้นตอน (sequence) อย่างชัดเจน ต่อมาโปรแกรมเหล่านี้มีความหลากหลายมากขึ้นโดยการเพิ่มในส่วนของการทำซ้ำ (loop) และการตัดสินใจ (condition) เข้าไป การโปรแกรมในลักษณะนี้สามารถแก้ปัญหาของหุ่นยนต์ที่ถูกนำไปใช้จริงในโรงงานอุตสาหกรรมส่วนใหญ่ได้เกือบทั้งหมด อย่างไรก็ตามในปัจจุบันหุ่นยนต์ถูกนำไปใช้ในสภาพการทำงานที่หลากหลายมากขึ้นในสิ่งแวดล้อมที่ไม่รู้ล่วงหน้า รวมถึงมีการปฏิสัมพันธ์กับมนุษย์มากขึ้นทำให้การโปรแกรมตามขั้นตอนทำไม่ได้ หรือทำได้ไม่สะดวกเนื่องจากต้องเสียเวลาทดสอบเหตุการณ์ทุกเหตุการณ์ตามลำดับขั้น ทำให้เริ่มมีการโปรแกรมหุ่นยนต์ในแนวทางใหม่ใน ลักษณะที่หุ่นยนต์จะทำงานตามเหตุการณ์ที่มากระตุ้น (event based programming) การโปรแกรมในลักษณะนี้ถูกสนับสนุนเป็นอย่างดีโดยตัวแปรภาษาเชิงวัตถุ (object oriented compiler) ที่เป็นที่นิยมกันอย่างมากหลังจากการปฏิวัติระบบปฏิบัติการจากดอสมาเป็นวินโดว์สในปัจจุบัน ปัญญาประดิษฐ์ (artificial intelligence) เป็นศาสตร์ในการคิดคำนวณที่ทำให้ระบบที่เกี่ยวข้อง (ในที่นี้คือหุ่นยนต์) สามารถรับรู้ ให้เหตุผลและตัดสินใจกระทำการใดๆ ได้ดังเช่นมนุษย์ ปัญญาประดิษฐ์ถูกศึกษาและยกย่องเป็นอย่างมากโดยนักวิทยาการคอมพิวเตอร์ (computer science) โดยหวังจะทำให้คอมพิวเตอร์มีความฉลาดเทียบเท่ามนุษย์ในอนาคตอันใกล้ นักวิทยาการคอมพิวเตอร์พยายามที่จะรวมหลายๆ สิ่งให้อยู่ภายใต้ศาสตร์ของปัญญาประดิษฐ์ ทำให้ปัจจุบันนี้ปัญญาประดิษฐ์ถูกนำมาใช้หลากหลายมากไม่ว่าจะเป็น; การจับคู่ความสัมพันธ์ (describe and match) ถูกนำมาใช้ในหุ่นยนต์ในการวิเคราะห์หารูปแบบที่คล้ายกันของข้อมูลจากเซ็นเซอร์หรือภาพถ่าย; การแบ่งย่อยปัญหาใหญ่ให้เป็นปัญหาเล็ก (problem reduction) การหาคำตอบแบบง่าย การหาคำตอบจากข้อมูลที่มีอยู่ และการหาคำตอบที่ดีที่สุด (blind, heuristic, and optimal searches) ซึ่งถูกนำมาใช้ในการวางแผนการทำงานหรือการเคลื่อนที่ของหุ่นยนต์ การเล่นเกม (adversarial search) ถูกนำมาใช้ในการเอาชนะเกมการแข่งขันที่มีคู่ต่อสู้ ดังที่เห็นเป็นข่าวว่าหุ่นยนต์สามารถเอา ชนะแชมป์หมากรุกโลกได้; การสรุปหาเหตุผลจากข้อมูลกฎเกณฑ์ต่าง ๆ ที่มีอยู่ (rule based deduction) ที่สามารถนำไปสร้างหุ่นยนต์ผู้เชี่ยวชาญในความรู้เฉพาะด้าน (expert system); การแปลความหมายประโยคและการโต้ตอบการสนทนา (knowledge capture) ที่ทำให้หุ่นยนต์สามารถเข้าใจและพูดโต้ตอบกับมนุษย์ได้ การหาขอบเขตของตัวเลขและสัญลักษณ์ (numerical and symbolic constraint) ตรรกวิทยา (logic) ที่นำไปใช้ในการหาขอบเขตความสัมพันธ์ของข้อมูลที่หุ่นยนต์ตรวจจับจากเซ็นเซอร์ เป็นต้น รูปแบบของปัญญาประดิษฐ์ที่ถูกนำไปใช้มากที่สุดในหุ่นยนต์นั้นเป็นรูปแบบของการตัดสินใจทำงานโดยอาศัยสภาพเหตุการณ์ที่ตรวจจับได้โดยเซ็นเซอร์ ซึ่งการตัดสินใจทำงานจะต้องขึ้นอยู่กับระดับความสำคัญของเหตุการณ์ รวมถึงลำดับของเหตุการณ์จากอดีตจนถึงปัจจุบัน ยิ่งโปรแกรมสภาพเหตุการณ์ต่าง ๆ มากที่หุ่นยนต์อาจจะเจอและมีความละเอียดมากก็ยิ่งจะทำให้หุ่นยนต์ฉลาดมากยิ่งขึ้น โครงข่ายประสาท (neural network) เป็นอีกเทคโนโลยีหนึ่งที่ใช้การเรียนรู้ (learning) ในการหาความสัมพันธ์ระหว่างข้อมูลขาเข้าและขาออกของระบบที่ไม่รู้จักมาก่อน (system identification) และยังนำไปใช้ในการจัดกลุ่มรูปแบบ (pattern classification) หรือหารูปแบบที่คล้ายกัน (pattern recognition) โครงข่ายประสาทเลียนแบบการเรียนรู้ในสมองของมนุษย์และสัตว์ ซึ่งเซลล์สมอง (neuron) จะมีส่วนที่รับสัญญาณไฟฟ้าจากประสาทสัมผัส (dendrite) แล้วนำมารวมกันและแปรสภาพสัญญาณที่ตัวเซลล์สมองก่อนที่จะส่งสัญญาณไฟฟ้าไปที่เซลล์สมองอื่น ๆ ผ่าน (axon) จุดเชื่อมต่อระหว่าง axon ของเซลล์หนึ่งกับ dendrite ของอีกเซลล์หนึ่งเรียกว่า synapse เป็นจุดที่ทำหน้าที่คล้ายอุปกรณ์ขยายลดสัญญาณ ซึ่งสัดส่วนในการขยายลดสัญญาณนี้จะเปลี่ยนแปลงตามการเรียนรู้ โครงข่ายระบบประสาทสามารถถูกโปรแกรมบนตัวหุ่นยนต์เพื่อให้เกิดการเรียนรู้โดยการบอกหุ่นยนต์ว่า การตัดสินใจทำงานที่ผ่านมาดีหรือไม่ดีขนาดใด ถ้าคิดเป็นคะแนนแล้วหุ่นยนต์จะได้เท่าไร จากขั้นตอนของการเรียนรู้เช่นนี้จะทำให้หุ่นยนต์ที่ไม่ฉลาดในตอนแรก สามารถตัดสินใจแก้ปัญหาได้จากประสบการณ์การเรียนรู้ โครงข่ายประสาทถูกนำไปใช้มากในหุ่นยนต์ใน การวิเคราะห์หาคู่ หรือความหมายของสัญญาณภาพที่ได้จากระบบกล้อง (machine vision) ทำให้หุ่นยนต์สามารถรู้ได้ว่าขณะนี้เคลื่อนที่ถึงทางแยกหรือทางตรง ทำให้แขนหุ่นยนต์สามารถเลือกจับชิ้นงานที่กำหนดไว้ล่วงหน้าบนสายพานเคลื่อนที่ได้อย่างถูกต้อง ปัจจุบันนี้สามารถทำให้หุ่นยนต์สามารถจดจำแยกแยะหน้าคน ลายนิ้วมือ เสียงพูดได้อีกด้วย ฟัซซี (fuzzy) ถูกใช้ในการเพิ่มมูลค่าให้แก่เครื่องใช้ไฟฟ้าต่างๆ ไม่ว่าจะเป็นเครื่องซักผ้า เครื่องปรับอากาศ หม้อหุงข้าว และอุปกรณ์อื่นๆ อีกมากมาย ทฤษฎีฟัซซีเกิดมาบนโลกอันเนื่องมาจากความไม่ชัดเจนของภาษาพูด เช่น มากหรือน้อย สูงหรือต่ำ ดำหรือขาว ดีหรือเลว เร็วหรือช้า ถูกหรือผิด เป็นต้น แทนที่จะบอกว่ามีปริมาณมากหรือน้อยเท่านั้น แต่หากบอกไปว่ามีปริมาณมากขนาดใด ซึ่งขนาดนี้คือองศาความมากหาก 0 แสดงถึงไม่มีเลย 1 จะแสดงถึงมีมากเต็มที่ ดังนั้น 0.75 จะแสดงว่ามีค่อนข้างมาก 0.1 แสดงว่าเกือบจะไม่มีเป็นต้น ฟัซซีได้รับความสนใจเป็นอย่างมากหลังจากถูกนำมาใช้จริงในการบังคับรถไฟฟ้าให้จอดที่สถานีได้เป็นอย่างดีที่เมืองเซนไดประเทศญี่ปุ่น ฟัซซีถูกนำมาใช้ในวงการหุ่นยนต์ในการควบคุมหุ่นยนต์ตามความรู้สึก หรือประสบการณ์ของผู้ออกแบบระบบควบคุม ตัวอย่างเช่นในการเคลื่อนที่หลบหลีกสิ่งกีดขวางเพื่อเคลื่อนเข้าหาเป้าหมายของหุ่นยนต์นั้น หุ่นยนต์อาจจะใช้เซ็นเซอร์วัดระยะต่างๆ เช่น โซนาร์ หรือ ภาพจากกล้องเป็นต้น เพื่อตรวจดูว่าระยะถึงสิ่งกีดขวางนั้นใกล้หรือไกลขนาดใด สิ่งกีดขวางอยู่ซ้ายหรือขวาเท่าไร เป้าหมายอยู่ใกล้หรือไกล อยู่ซ้ายหรือขวา ขนาดเท่าไรเมื่อเทียบกับหุ่นยนต์ หลังจากนั้นในการควบคุมความเร็วและทิศทางของหุ่นยนต์นั้น ผู้ออกแบบจะตั้งกฎเกณฑ์ทางฟัซซี (fuzzy if-then rule) เช่น หากสิ่งกีดขวางอยู่ทางซ้ายปานกลางและระยะทางใกล้มาก ดังนั้นหุ่นยนต์จะต้องเคลื่อนที่หลบไปทางขวาระดับปานกลางด้วยความเร็วสูง หรือ หากสิ่งกีดขวางอยู่ทางด้านหน้าตรงและระยะทางไกลมาก ดังนั้นหุ่นยนต์จะต้องเคลื่อนที่ไปทางซ้ายเล็กน้อยด้วยความเร็วปานกลาง เป็นต้น จุดแข็งอีกอย่างของการควบคุมแบบฟัซซี คือ ไม่ต้องการแบบจำลองทางคณิตศาสตร์ (model) ของระบบที่ถูกควบคุมดังเช่นการควบคุมแบบอื่นๆ ซึ่งในทางปฏิบัติแล้วการหาแบบจำลองทำได้ยากและถึงได้ก็มักไม่ละเอียดเพียงพอ วิธีวิวัฒนาการทางพันธุกรรม (genetic algorithm) เป็นเทคโนโลยีที่เลียนแบบทฤษฎีวิวัฒนาการทางพันธุกรรมของชาร์ลส ดาร์วิน โดยที่โครโมโซมจะมีวิวัฒนาการเปลี่ยนแปลงตลอดเวลา โดยการเปลี่ยนแปลงข้อมูลในยีน (mutation) รวมถึงการแลกเปลี่ยนยีนระหว่างโครโมโซมพ่อแม่ (crossover) ผลลัพธ์คือโครโมโซมลูกที่ดีขึ้นหรือแย่ลง โดยเลียนแบบการเลือกโครโมโซมตามธรรมชาติ ทำให้โครโมโซมที่ดีมีโอกาสสูงที่จะถูกเลือกให้ดำรงชีวิตอยู่ได้ต่อไป ขณะที่โครโมโซมที่ไม่ดีมีโอกาสน้อยในการถูกเลือก ดังนั้นโครโมโซมลูกหลานที่เกิดขึ้นจึงมีแนวโน้มที่จะเป็นโครโมโซมที่ดี นักหุ่นยนต์สามารถนำทฤษฎีมาใช้ในการหาเส้นทางการเคลื่อนที่ที่ดีที่สุด สั้นที่สุด ใช้พลังงานน้อยที่สุด รวมทั้งนำทฤษฎีนี้มาสร้างโปรแกรมหุ่นยนต์เองโดยอัตโนมัติ (genetic programming) โดยที่นักหุ่นยนต์ไม่ต้องโปรแกรมการทำงานล่วงหน้า แต่โปรแกรมการวิวัฒนาการของโปรแกรมหุ่นยนต์เท่านั้น แล้วให้หุ่นยนต์มีวิวัฒนาการเอง ถึงแม้ว่าผลที่ได้ในปัจจุบันจะมีความสามารถเทียบไม่ได้เลยกับการโปรแกรมหุ่นยนต์แบบเดิมโดยตรง แต่ในอนาคตหากคอมพิวเตอร์มีความสามารถมากขึ้น ทำให้นักหุ่นยนต์สามารถกำหนดโครโมโซมของโปรแกรมที่ยาวขึ้นซับซ้อนขึ้นประสิทธิภาพของโปรแกรมลักษณะนี้ก็จะดีมากขึ้นเป็นเงาตามตัว และนักหุ่นยนต์อาจจะเจอรูปแบบของหุ่นยนต์ที่ทำงานแบบที่คาดไม่ถึงก็เป็นได้ ช่วง 2 อาทิตย์หน้านี้ ผู้เขียนได้ลาพักร้อนจากเอไอทีไปญี่ปุ่นพร้อมครอบครัว โดยตั้งใจจะไปเยี่ยมชมซุ้มหุ่นยนต์ (robot pavilion) ในงานเอ็กซ์โป (Expo 2005) ที่เมืองนาโกยานี้ด้วย แล้วจะนำข้อมูลที่มีประโยชน์มาฝากครับ เดือนหน้าพบกันในตอน หุ่นยนต์เด่นเอ็กซ์โป 2005


อ้างอิงจาก http://pirun.ku.ac.th/~b5013435/page1.html

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

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