คลังเก็บป้ายกำกับ: HMM

การปรับปรุงประสิทธิภาพของ Hidden Markov Models

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

ส่วนตัวผมเองก็รู้ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์เพียงไม่กี่เรื่องครับ ดังนั้น ก็เลยต้องเลือกทบทวนวรรณกรรมในหัวข้อที่ตนเองถนัดที่สุด นั่นคือ แบบจำลองทางสถิติที่ชื่อว่า Hidden Markov Models และเพื่อให้ไม่เป็นการเสียเวลา มาลองอ่านงานทบทวนวรรณกรรมฉบับร่างของผมดูกันครับ

ทบทวนวรรณกรรม

นับตั้งแต่งานวิจัย Hidden Markov Model [1][2][3][4] ซึ่งเป็นโมเดลที่เหมาะกับการอนุมานความน่าจะเป็นของลำดับที่ซ่อนอยู่ โดยการวิเคราะห์จากลำดับที่สังเกตได้ ๆ ถูกตีพิมพ์เผยแพร่ออกสู่สาธารณชน และ มีงานวิจัย [5][6][7] ที่ได้บุกเบิกนำ Hidden Markov Models มาปรับใช้สำหรับงานด้าน Speech Recognition เพื่อเปรียบเทียบระหว่างเสียงพูดกับชุดข้อความอย่างมีประสิทธิภาพ ก็ได้ทำให้ Hidden Markov Models กลายเป็นโมเดลที่ถูกประยุกต์ใช้อย่างกว้างขวาง ในการแก้ปัญหาต่าง ๆ ที่เกี่ยวกับการอนุมานความน่าจะเป็นของลำดับที่ซ่อนอยู่ โดยการวิเคราะห์จากลำดับที่สังเกตได้ เช่น งานวิจัย [8] การจับคู่สายรหัสพันธุกรรม ซึ่งเป็นงานด้าน Bioinformatics, งานวิจัย [9] [10][11] การจับคู่ระหว่างข้อความกับรูปแบบของการวาดมือ ซึ่งเป็นงานด้าน Gesture Recognition, งานวิจัย [12] การหาทิศทางเดินให้กับหุ่นยนต์ในสภาพแวดล้อมปิดในอาคาร ซึ่งเป็นงานด้าน Robotics, งานวิจัย [13] [14] [15] ตรวจสอบการบุกรุกระบบคอมพิวเตอร์ ซึ่งเป็นงานด้าน Computer Security เป็นต้น

โดยพื้นฐานแล้วถ้าเราไม่สนใจประสิทธิภาพในการคำนวณ เราจะพบว่า Hidden Markov Models เป็นโมเดลที่ใช้ประโยชน์ได้ดีและไม่มีปัญหา แต่หากเราสนใจประสิทธิภาพในการคำนวณ เราจะพบว่า Hidden Markov Models มีปัญหาพื้นฐานอยู่ 3 ข้อ อันได้แก่ 1) การหาผลรวมสุทธิของความน่าจะเป็นของโมเดล เมื่อเทียบกับลำดับที่สังเกตได้, 2) การหาลำดับที่ถูกซ่อนในโมเดล ซึ่งให้ค่าความเป็นไปได้สูงสุด เมื่อเทียบกับลำดับที่สังเกตได้ และ 3) การปรับค่าพารามิเตอร์ในโมเดล เพื่อให้โมเดลมีผลรวมสุทธิของความน่าจะเป็นเพิ่มขึ้น

อ่านเพิ่มเติม การปรับปรุงประสิทธิภาพของ Hidden Markov Models

พื้นฐานของปัญญาประดิษฐ์ ต้องเน้นที่ Graph

โดยส่วนตัวแล้ว ถ้าเป็นเรื่องของปัญญาประดิษฐ์ ผมจะสนใจเรียนรู้เฉพาะแต่ Hidden Markov Model, Ant Colony Optimization และ Neural Network และมีสิ่งหนึ่งที่ผมเห็นว่ามันมีอะไรที่เกี่ยวข้องกันระหว่าง 3 อย่างนี้ ซึ่งสิ่งนั้นก็คือ พวกมันล้วนแสดงผล, มีพฤติกรรม และมีกลไกเหมือนกับ Graph ดังภาพข้างล่างนี้

พื้นฐานคือกราฟ

ดังนั้น ถ้าอยากจะเข้าใจพวกมันอย่างถ่องแท้ ก็หลีกหนีไม่พ้นที่จะต้องเข้าใจ “ทฤษฎี Graph” ให้ได้อย่างถ่องแท้เช่นเดียวกัน!!!

ถ้าไม่เข้าใจทฤษฎี Graph ก็ไปต่อในขั้นที่สูงกว่าไม่ได้ครับ

ประเด็นความเข้าใจใน Hidden Markov Models

Hidden Markov Models หรือ HMMs เป็นส่วนขยายของ Markov Models ดังนั้น เราจึงต้องศึกษา Markov Models ก่อน ทีนี้พอเราศึกษาเสร็จแล้ว เราก็จะต้องเตรียมพื้นฐานอย่างหนึ่งก่อนศึกษา Hidden Markov Models นั่นก็คือ เราต้องไปศึกษา การอนุมานแบบเบย์ หรือ Bayesian inference ซะก่อน เพราะสมการหลาย ๆ อย่างที่ใช้ใน Hidden Markov Models มันประยุกต์มาจาก Bayesian inference

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

สำหรับผู้เผยแพร่ที่ใช้รูปภาพเพื่ออธิบายความเข้าใจใน Hidden Markov Models ก็มีหลายสำนัก บางสำนักก็ใช้รูปภาพเต็มรูปแบบพร้อมพารามิเตอร์ประกอบ บางสำนักก็ใช้รูปภาพแบบง่ายสุดเพื่ออธิบาย

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

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

สำหรับประเด็นถัดไปก็เป็นเรื่องของการทำให้สมบูรณ์ โดยตัวของ Hidden Markov Models เองนั้น ไม่สามารถนำไปใช้อะไรเป็นเรื่องเป็นราวได้ จำเป็นที่จะต้องถูกนำไปใส่รายละเอียด โดยการคัดเลือกโมเดลและพารามิเตอร์ รวมทั้งใช้อัลกอริทึมต่าง ๆ เพื่อเข้ามาช่วย ดังนั้น เราจึงจำเป็นต้องศึกษาเพิ่มเติมในอัลกอริทึมต่าง ๆ ที่มีคนคิดขึ้นมาแล้ว ไม่ว่าจะเป็น Baum–Welch algorithm, Viterbi algorithm และ Forward–backward algorithm

ถ้าเราเปรียบเทียบว่า Hidden Markov Models เป็นระบบปฏิบัติการ บรรดาอัลกอริทึมต่าง ๆ อย่าง Baum–Welch algorithm, Viterbi algorithm และ Forward–backward algorithm ก็เปรียบได้กับ Device Driver ที่สร้างมาเพื่อใช้กับระบบปฏิบัติการ

ซึ่งถ้าบอกแบบนี้ก็หมายความว่า ยังมีโอกาสอีกมากมายในอนาคต ที่จะมีผู้คิดค้นวิจัยพบอัลกอริทึมใหม่ ๆ เพื่อมาใช้กับ Hidden Markov Models เหมือนกับที่มีการสร้าง Device Driver ใหม่ ๆ เพื่อมาใช้กับระบบปฏิบัติการยังไงอย่างงั้น

ส่วนประเด็นสุดท้ายเป็นเรื่องของการประยุกต์ใช้งาน Hidden Markov Models ไปยังสาขาต่าง ๆ ซึ่งปัจจุบันผู้เผยแพร่ที่ถนัดเฉพาะด้านก็จะเน้นแต่งตำราเพื่อใช้ Hidden Markov Models กับสาขาของตัวเอง โดยหนังสือที่ผมเห็นส่วนใหญ่จะเป็นการประยุกต์ทางด้าน Speech Recognition, การเงิน และ Bioinformatics

โดยสรุปแล้ว การจะทำความเข้าใจกับ Hidden Markov Models ได้ มันจึงเป็นเรื่องลำบากนิดนึง เพราะเราต้องทำความเข้าใจ 4 ลำดับอันได้แก่

  1. ทำความเข้าใจกับทฤษฎีพื้นฐานก่อนจะมาเป็น Hidden Markov Models และทฤษฎีที่เกี่ยวข้องกับมัน
  2. ทำความเข้าใจกับทฤษฎีของตัว Hidden Markov Models เอง
  3. ทำความเข้าใจกับอัลกอริทึมต่าง ๆ ที่สร้างขึ้นมาเพื่อ Hidden Markov Models ซึ่งเปรียบได้กับการทำความเข้าใจ Device Drivers ที่สร้างขึ้นมาเพื่อระบบปฏิบัติการ
  4. ทำความเข้าใจกับวิธีการในการประยุกต์ Hidden Markov Models เพื่อใช้แก้ปัญหาในเรื่องที่เราสนใจ

มันก็เลยเป็นเรื่องที่ไม่ง่าย และจึงเป็นสาเหตุว่าทำไมจึงมีงานวิจัยและวิทยานิพนธ์ในไทย ที่เกี่ยวกับ Hidden Markov Models ตีพิมพ์อยู่ไม่ถึง 50 เรื่องเท่านั้น