บริษัทหลักทรัพย์ที่ปรึกษาการลงทุน คลาสสิก ออสสิริส จำกัด

ปัจจัยที่มีผลกระทบกับผลการดำเนินงานของระบบเทรดมีอะไรกันบ้าง 2 {Overfitting}

ปัจจัยที่มีผลกระทบกับผลการดำเนินงานของระบบเทรดมีอะไรกันบ้าง 2 {Overfitting}

เผยแพร่เมื่อ วันจันทร์ที่ 11 พฤศจิกายน พ.ศ. 2562


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

แสดงการเปรียบเทียบระบบที่ underfit  optimum  และ overfit

ก่อนอื่นต้องทำความเข้าใจกับข้อมูลที่นำมาใช้กันก่อน ข้อมูลที่นักพัฒนาส่วนใหญ่ใช้กันจะเป็นข้อมูลราคา รูปแบบของราคาประกอบด้วยการเคลื่อนตัวของราคาอย่างมีรูปแบบ (Systematic Pattern) กับการเคลื่อนไหวของราคาแบบสุ่ม (Random Noise)  ดังนั้นเวลาเอาระบบมาทดสอบในช่วง Out-of-sample ผลการดำเนินการจึงแย่ลงจากช่วงที่เราทดสอบมากเพราะข้อมูลในช่วง Out-of-sample นั้นไม่ได้มี Random Noise เหมือนกับช่วง In-sample นั่นเอง  โดยทั่วไปเมื่อเราพยายามเพิ่มประสิทธิภาพของระบบเทรดในช่วง In-sample เรามักจะเอาเงื่อนไขเพิ่มเติมไปจับพวก Random Noise มากกว่า ฉะนั้นปัญหา Overfitting จึงเกิดจากการใส่เงื่อนไขการซื้อขายมากจนเกินไปเพื่อให้ระบบเทรดของเราไม่ไปจับเอา Random Noise ของข้อมูล ดังนั้นนักลงทุนท่านใดที่คิดว่าระบบเทรดต้องมีความซับซ้อนมาก ถึงจะสามารถทำกำไรได้ดีในการเทรดจริง คงต้องมีความระมัดระวังและพิจารณาในประเด็นนี้ด้วย

อีกสาเหตุของการเกิด Overfitting เกิดจากลักษณะเฉพาะของโมเดลที่ใช้ ยกตัวอย่างเช่น โครงข่ายประสาทเทียม (Neural Network)   การ Optimize โดยทั่วไปจะทำให้โมเดลเกิด Overfitting แต่การปรับแต่งกระบวนการในขั้นตอนการเรียนรู้ (Training)  เช่น การแยกข้อมูลสำหรับการฝึกและข้อมูลทดสอบออกจากกัน และการเพิ่มขนาดของข้อมูล ถ้าข้อมูลที่ใช้ฝึกและทดสอบมีปริมาณมากพอก็ช่วยลดปัญหาการเกิด Overfitting ได้

โครงสร้างของ Neural network ประกอบขึ้นจาก Node ย่อยๆรวมกัน

ส่วนประกอบของ Node

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

Srivastava, Nitish, et al. ”Dropout: a simple way to prevent neural networks from overfitting”, JMLR 2014

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

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/dropout_layer.html

เปิดบัญชี TFEX
รับสิทธิพิเศษทันที !!
Array
(
    [cooCAFXXSUAV] => cooCAFXXSUAV
    [Secure-PHPSESSID] => h7l74n733fgplsrh7qivei754d
)
		
Array
(
    [sesCAFXXSLAT] => 1732313825
    [CAFXSI18NX] => th
    [_csrf] => 6cdfab5ee186048bce046124283bb909
    [CAFXSFEREF] => https://www.caf.co.th/switcher.html?action=language&language=th&origin=https%3A%2F%2Fwww.caf.co.th%2Farticle%2Foverfitting.html
)
		
Array
(
    [content] => overfitting
)
		
Array
(
)