Grid-search approach and k-fold cross-validation

เรื่องของ Grid-search ในแง่ของการประยุกต์ใช้กับ Support Vector Machine(SVM) โดยส่วนมากจะเป็นการหาค่า Initial parameters ( https://goo.gl/ahu4vs ) เพื่อนำมาใช้ในการ Train โมเดล ยกตัวอย่างใน RBF Kernel function ที่มี Initial parameters ที่จำเป็นจะต้องกำหนดค่าอยู่ 3 ตัว ( https://goo.gl/T9PLZd) แต่โดยส่วนมากค่า insensitive loss function จะไม่ค่อยมีการปรับมากนัก ในงานวิจัยบางอัน ก็จะให้ค่านี้เป็นค่าเริ่มต้นที่ library กำหนดมา ตัวแปรหรือ parameter อีกสองตัวคือ standard deviation และ regularization parameter จะใช้วิธี Grid-search ในการหาค่าที่เหมาะสม โดยประยุกต์ใช้ร่วมกับ k-fold cross-validation( https://goo.gl/McuswQ)

วิธีการทำก็อาศัยหลักการที่ว่า ลองจับคู่ค่า Initial parameters ทั้งสองตัวแล้วใช้ k-fold cross-validation เพื่อแบ่งตัว Train และตัว Test แล้วดำเนินการ Iterationไปจำนวน k ครั้งจากนั้นก็คำนวนหาค่า accuracy เฉลี่ย และเก็บค่านี้เป็นค่า accuracy ของคู่ Initial parameters นี้ จากนั้นก็ดำเนินการจับคู่ parameters ทั้งสองใหม่อีกครั้ง แล้วดำเนินการตามเดิม เมื่อจับคู่ Initial parameters ครบหมดแล้ว ก็จะได้ค่า accuracy จากหลายๆ คู่ Initial parameters จากนั้นคู่ Initial parameters ที่ให้ accuracy สูงสุดก็ถือได้ว่าเป็นค่าที่เหมาะสมที่สุดสำหรับข้อมูลชุดนี้

ภาพข้างบนเป็นการยกตัวอย่างข้อมูลชุดหนึ่งที่นำมาทำ Grid-search และในการทดลองนักวิจัยใช้การเปลี่ยนแปลงแบบ exponentially growing sequences กับ Initial parameters ทั้งสอง โดยค่า accuracy สูงสุดที่ได้จากข้อมูลชุดนี้คือ 77.6% ที่ (2^(3.25),2^(-5.25)) ของ C และ อีกหนึ่งparameter ตามลำดับ(gamma)

หากพิจารณาให้ดีๆ แล้ว การทำ Grid-search ก็เป็นวิธีการในการหาค่าที่เหมาะสมเพื่อจะนำไปใช้ต่อในงานต่างๆ ได้ เพราะฉะนั้นวิธีการนี้ก็สามารถประยุกต์ใช้ได้กับหลายๆประเภทงาน แต่เมื่อนำ Grid-search และ k-fold cross-validation มาทำงานร่วมกัน ก็ถือได้ว่ามีความซับซ้อนในการทำงาน ใช้เวลาประมาณผลพอสมควร ในหลายๆงานวิจัยก็จะมีตีพิมพ์การปรับปรุงพัฒนา Grid-search ด้วยเหมือนกัน

อ้างอิง:

HSU C.-W., CHANG C.-C., LIN C.-J. 2008. A practical guide to support vector classification