Monday, June 21, 2021

การสร้างแบบจำลองเพื่อจำแนกเสียงการเต้นของหัวใจ (Modelling of Heart Sound Audio Classification)

 

บทนำ

ปัจจุบันเทคโนโลยี Machine Learning มีการพัฒนาไปมาก จากการสร้างแบบจำลองเพื่อ

การจำแนกรูปภาพ (Image Classification) จนถึงปัจจุบันถึงการจำแนกเสียง 

(Audio Classification) การสร้างแบบจำลองเพื่อการจำแนกรูปภาพ ได้ถูกนำไปประยุกต์

ในการสร้าง mobile app เพื่อช่วยในการวินิจฉัยโรค เช่น การสร้าง app เพื่อการตรวจหาเชื้อมาลาเรีย  เชื้อวัณโรค รวมถึงการช่วยการตรวจวินิจฉัยโรคผิวหนัง  


ส่วนการสร้างแบบจำลองเพื่อการจำแนกเสียงนั้นยังเป็นสิ่งใหม่ที่น่าสนใจและตื่นเต้น และ

ยังเปิดช่องทางใหม่ๆ ในการประยุกต์ใช้ทางด้านการแพทย์และสาธารณสุข ในบทความนี้

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

ไปใช้สำหรับการสร้าง mobile app ในอนาคต โดยหากสามารถสร้าง app ดังกล่าว จะ

ช่วยให้การจำแนกเสียงการเต้นหัวใจที่ผิดปกติหรือปกติ สามารถทำได้ง่ายโดยไม่ต้องใช้

ผู้เชี่ยวชาญโรคหัวใจ


วิธีการและข้อมูลที่ใช้

วิธีการในการสร้างแบบจำลองได้ใช้เทคโนโลยี TensorFlow Lite Model Maker ในการ

ทดลองนี้ และยังใช้เทคนิค Transfer Learning โดยการนำแบบจำลองที่ถูกฝึกมาแล้วคือ

 YAMNet มาฝึกซ้ำในข้อมูลที่ต้องการจะทำ วิธีนี้จะช่วยลดระยะเวลาการฝึกเพื่อให้แบบจำลอง

เรียนรู้ไปได้มาก 


ข้อมูลเสียงการเต้นของหัวใจได้มาจาก Physionet Challenge Dataset 2016 ซึ่งประกอบ

ไปด้วยไฟล์เสียงจำนวน 3,240 ไฟล์ แยกเป็นเสียงผิดปกติ (abnormal) 665 ไฟล์ และปกติ

 (normal) 2,575 ไฟล์


การ Training ทำโดยแบ่งข้อมูลข้างต้นแบบสุ่มออกเป็นสามกลุ่ม กลุ่มแรกสำหรับ Training 

กลุ่มที่สองสำหรับ Validation และกลุ่มที่สามสำหรับ  Testing  ในอัตราส่วน  80:10:10  

หลังจากนั้นทำการ Training  โดยใช้ข้อมูลในกลุ่มที่หนึ่งและสอง ฝึกซ้ำจำนวน 100 epochs 

โดยใช้ batch size ขนาด 128 หลังจากนั้นจึงนำแบบจำลองที่ผ่านการฝึกแล้วมาทดสอบ

กับกลุ่มที่สามเพื่อหาความแม่นตรง และทำ Confusiton matrix 


ผลที่ได้

แบบจำลองที่ได้ ถูกทดสอบกับข้อมูลในกลุ่มที่สามหรือกลุ่มทดสอบ พบว่า ได้ค่า loss  เท่ากับ

 0.2488 และค่า acc เท่ากับ 0.8911 หรือค่า accuracy เท่ากับ 89.11% และการทำ 

Confusion matrix ได้ผลดังรูป

 


นั่นคือได้ค่า Precision ของ Abnormal เท่ากับ 77% และค่า Negative Predictive Value

 เท่ากับ 93%

 

Source code