วิธีค้นหาคำตอบที่ดีที่สุดโดยคอมพิวเตอร์

เราจะเห็นว่าทุกวันนี้เครื่องจักรที่คิดหรือตัดสินใจอะไรเองได้ เริ่มเข้ามามีบทบาทในชีวิตประจำวันเรามากขึ้นเรื่อย ๆ และการที่มันทำพฤติกรรมแบบนี้ได้ เราก็มักจะมีคำจำกัดความให้มัน เรามักจะเรียกมันว่า “ปัญญาประดิษฐ์” บ้าง หรือไม่ก็เรียกว่า “ระบบอัจฉริยะ” บ้าง อะไรประมาณนั้น

จริง ๆ แล้วเบื้องหลังของการที่มันคิดหรือตัดสินใจได้ เกิดจากปัจจัยเพียง 2 สิ่งเท่านั้น นั่นก็คือ “การคำนวณ” และ “ข้อมูล”

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

การเล่นหมากกระดานโดยคอมพิวเตอร์ เป็นตัวอย่างหนึ่งของการที่คอมพิวเตอร์คำนวณโดยใช้ข้อมูลประกอบ ว่ากันตามจริงแล้วมันก็แค่คำนวณเพื่อหาหนทางที่ให้ค่าที่เหมาะสมที่สุด อาจจะเป็นค่าที่มากที่สุด ค่าที่น้อยที่สุด ค่าเฉลี่ยที่ดีที่สุด หรือค่าที่ยอมรับได้มากที่สุดอะไรก็แล้วแต่ ซึ่งทั้งหลายทั้งปวงที่กล่าวมาก็คือการที่มันพยายามค้นหาคำตอบที่ดีที่สุดเพื่อให้มันตัดสินใจได้

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

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

ดังนั้น ในปัจจุบันจึงมีแนวทางอยู่ 3 ประการในการค้นหาคำตอบที่ดีที่สุดโดยคอมพิวเตอร์ครับ ซึ่งได้แก่

1.  การค้นหาด้วยเทคนิคปรกติ

การค้นหาด้วยเทคนิคปรกติ ก็คือการค้นหาตามหลักการพื้น ๆ ในทางคอมพิวเตอร์ทั่วไป ไม่ว่าจะเป็น

  • การค้นหาแบบดิบ ๆ ตั้งแต่ต้นจนจบ
  • การค้นหาโดยแบ่งข้อมูลเป็นส่วน ๆ
  • การค้นหาโดยการลดรูป
  • การค้นหาโดยจัดเส้นทางค้นหาเป็นแบบต้นไม้
  • การค้นหาโดยจัดเส้นทางค้นหาเป็นแบบต้นไม้แล้วให้น้ำหนัก
  • การค้นหาโดยพักคำตอบไว้ในขั้นตอนก่อนหน้า เพื่อให้ขั้นตอนถัดไปนำไปใช้ซ้ำได้

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

2.  การค้นหาด้วยเทคนิคการเดาอย่างมีเหตุผล

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

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

  • การเดาโดยเลียนแบบพฤติกรรมของธรรมชาติ เช่น เลียนแบบการวิวัฒนาการของสิ่งมีชีวิต การเลียนแบบแรงดึงดูดโน้มถ่วง
  • การเดาโดยเลียนแบบพฤติกรรมของสัตว์หรือแมลง เช่น เลียนแบบการค้นหาเหยื่อของฝูกนก เลียนแบบการหาอาหารของฝูงมด
  • การเดาโดยเลียนแบบสิ่งประดิษฐ์ที่เกิดจากมนุษย์ เช่น เลียนแบบพฤติกรรมของโลหะเมื่อร้อนแดงแล้วค่อย ๆ เย็นตัวลง

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

3.  การค้นหาโดยเทคนิคให้คอมพิวเตอร์เรียนรู้

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

การค้นหาคำตอบที่ดีที่สุดโดยเทคนิคนี้ จะคล้าย ๆ กับเทคนิคการเดาอย่างมีเหตุผลในแง่ของคำตอบ คือคำตอบที่ได้จะไม่ใช่คำตอบที่ดีที่สุดจริง ๆ แต่มันก็ดีพอที่จะยอมรับได้

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

คงอีกนานครับกว่าคอมพิวเตอร์มันจะมีชีวิตจิตใจขึ้นมาได้

Related Posts

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *