สร้างปัญหาใหม่ เพื่อแก้ปัญหาเก่า

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

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

เดี๋ยวนี้มีการนำ “ความน่าจะเป็น” เข้ามาช่วยแก้ปัญหาทางด้านปัญญาประดิษฐ์มากขึ้น โดยโมเดลหรืออัลกอริทึมที่มักจะถูกนำเสนอ ส่วนใหญ่จะเน้นการหาความน่าจะเป็นในเส้นทางการตัดสินใจทั้งหมด

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

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

ยกตัวอย่างเช่น การใช้ Hidden Markov Model ในการแก้ปัญหา Speech Recognition เพื่อค้นหาเส้นทางที่จะให้ความน่าจะเป็นที่มีค่ามากที่สุด ระหว่าง Hidden States (ป้ายคำ) และ Observation States (คลื่นเสียงซึ่งผ่านการ Overlap Window, ผ่านการเข้า Hamming Window และ ผ่านการประมาณพันธะเชิงเส้น เพื่อหาสัมประสิทธิ์บ่งจำเพาะช่วงเสียง ซึ่งเป็นตัวแปร 10 – 15 ตัว สำหรับแทนเอกลักษณ์ของช่วงคลื่นเสียงนั้น ๆ)

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

Speech Recognition <- Hidden Markov Model <- Viterbi Algorithm

บางครั้ง การแก้ปัญหาของปัญหาก็ไม่ได้เกิดขึ้นแค่ 2 จังหวะ แต่อาจจะเกิดขึ้น 3 จังหวะ เช่น การใช้ Neural Network เพื่อมาแก้ปัญหา Pattern Recognition ซึ่งการทำให้ Neural Network เรียนรู้คำตอบที่เหมาะสม เราก็จำเป็นต้องป้อนค่ากลับให้กับ Neural Network แต่ตัว Neural Network เองก็มีปัญหาในการป้อนกลับค่าเหมือนกัน เพราะยิ่งมีเส้นโครงข่ายและลำดับชั้นใน Neural Network มากเท่าไหร่ ก็ยิ่งต้องใช้เวลาในการคำนวณเพื่อป้อนกลับค่ามากเท่านั้น ดังนั้น จึงมีคนคิดจะประยุกต์ใช้ Genetic Algorithm เพื่อช่วยเฟ้นสุ่มเส้นทางที่เหมาะสมในการป้อนค่ากลับ (เส้นไหนมันไม่จำเป็นใช้ ก็ไม่ต้องเสียเวลาไปป้อนค่ากลับให้มัน)

Pattern Recognition <- Neural Network <- Backpropagation <- Genetic Algorithm

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

Related Posts

ใส่ความเห็น

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