หน่วยก่อนหน้าได้แนะนำโมเดลต่อไปนี้ ซึ่งจัดหมวดหมู่ต้นไม้จำนวนมากในชุดทดสอบไม่ถูกต้อง
รูปที่ 16 โมเดลที่ซับซ้อนซึ่งทำงานผิดปกติจากหน่วยก่อนหน้า
โมเดลก่อนหน้ามีรูปร่างที่ซับซ้อนจำนวนมาก รูปแบบที่เรียบง่ายกว่าจะจัดการข้อมูลใหม่ได้ดีกว่าไหม สมมติว่าคุณแทนที่โมเดลที่ซับซ้อนด้วยโมเดลที่ง่ายดายอย่างไม่น่าเชื่อ ซึ่งเป็นเส้นตรง
รูปที่ 17 โมเดลที่เรียบง่ายกว่ามาก
โมเดลแบบง่ายทํานายข้อมูลใหม่ได้ดีกว่าโมเดลที่ซับซ้อน กล่าวคือ โมเดลแบบง่ายทําการคาดการณ์ในชุดทดสอบได้ดีกว่าโมเดลที่ซับซ้อน
ความเรียบง่ายได้เอาชนะความซับซ้อนมาอย่างยาวนาน อันที่จริงแล้ว ความนิยมในความเรียบง่ายมีมาตั้งแต่สมัยกรีกโบราณ หลายศตวรรษต่อมา ฟรานซิสกันยุคศตวรรษที่ 14 ชื่อ William of Occam ได้กำหนดความชอบความเรียบง่ายไว้ในปรัชญาที่เรียกว่ามีดโกนของ Occam ปรัชญานี้ยังคงเป็นหลักการพื้นฐานที่สำคัญของวิทยาศาสตร์หลายแขนง ซึ่งรวมถึงแมชชีนเลิร์นนิง
หมายเหตุ: โดยทั่วไปแล้ว โมเดลที่ซับซ้อนจะมีประสิทธิภาพดีกว่าโมเดลที่เรียบง่ายในชุดข้อมูลการฝึก
อย่างไรก็ตาม โมเดลที่เรียบง่ายมักจะมีประสิทธิภาพดีกว่าโมเดลที่ซับซ้อนในชุดทดสอบ (ซึ่งสำคัญกว่า)
แบบฝึกหัด: ทดสอบความเข้าใจ
คุณกำลังพัฒนาสมการฟิสิกส์ สูตรใดต่อไปนี้สอดคล้องกับ Occam's Razor มากกว่า
สูตรที่มีตัวแปร 3 รายการ
ตัวแปร 3 รายการเหมาะสําหรับ Occam มากกว่าตัวแปร 12 รายการ
สูตรที่มีตัวแปร 12 รายการ
ตัวแปร 12 รายการดูซับซ้อนเกินไปไหม
สูตรฟิสิกส์ที่มีชื่อเสียงที่สุด 2 สูตรตลอดกาล (F=ma และ E=mc2 ) แต่ละสูตรมีตัวแปรเพียง 3 ตัว
คุณอยู่ในโปรเจ็กต์แมชชีนเลิร์นนิงใหม่ล่าสุดและกำลังจะเลือกฟีเจอร์แรก คุณควรเลือกฟีเจอร์กี่รายการ
เลือกฟีเจอร์ 1-3 รายการที่ดูเหมือนจะมีความสามารถในการคาดการณ์สูง
คุณควรเริ่มไปป์ไลน์การเก็บรวบรวมข้อมูลด้วยฟีเจอร์เพียง 1-2 รายการ ซึ่งจะช่วยให้คุณยืนยันว่าโมเดล ML ทํางานตามที่คาดไว้
นอกจากนี้ เมื่อสร้างเส้นฐานจากฟีเจอร์ 2-3 รายการ คุณก็จะรู้สึกว่ากำลังก้าวหน้า
เลือกฟีเจอร์ 4-6 รายการที่ดูเหมือนจะมีความสามารถในการคาดการณ์สูง
คุณอาจใช้ฟีเจอร์จำนวนมากนี้ในท้ายที่สุด แต่ก็ยังดีกว่าที่จะเริ่มต้นด้วยจำนวนที่น้อยกว่า โดยทั่วไปแล้ว ฟีเจอร์ที่น้อยลงมักจะหมายถึงความซับซ้อนที่ไม่จำเป็นน้อยลงด้วย
เลือกฟีเจอร์ให้ได้มากที่สุดเพื่อให้เริ่มสังเกตได้ว่าฟีเจอร์ใดมีความสามารถในการคาดการณ์ได้ดีที่สุด
เริ่มต้นจากสิ่งเล็กๆ ฟีเจอร์ใหม่ทุกรายการจะเพิ่มมิติข้อมูลใหม่ลงในชุดข้อมูลการฝึก เมื่อมิติข้อมูลเพิ่มขึ้น ปริมาณของพื้นที่ทำงานจะเพิ่มขึ้นอย่างรวดเร็วจนทำให้ข้อมูลการฝึกที่มีอยู่มีจำนวนน้อย ยิ่งข้อมูลมีน้อยเท่าใด โมเดลก็ยิ่งเรียนรู้ความสัมพันธ์ระหว่างฟีเจอร์ที่มีความสําคัญจริงกับป้ายกำกับได้ยากขึ้นเท่านั้น ปรากฏการณ์นี้เรียกว่า "คำสาปของมิติข้อมูล"
การทำให้ถูกต้อง
โมเดลแมชชีนเลิร์นนิงต้องบรรลุเป้าหมาย 2 ประการที่ขัดแย้งกันพร้อมกัน ดังนี้
ปรับให้พอดีกับข้อมูล
ปรับข้อมูลให้เรียบง่ายที่สุด
วิธีหนึ่งในการทำให้โมเดลเรียบง่ายคือลงโทษโมเดลที่ซับซ้อน กล่าวคือ บังคับให้โมเดลเรียบง่ายขึ้นระหว่างการฝึก การลดคะแนนโมเดลที่ซับซ้อนเป็นรูปแบบหนึ่งของการปรับให้เหมาะสม
การเปรียบเทียบการปรับให้เหมาะสม:
สมมติว่านักเรียนทุกคนในห้องบรรยายมีกริ่งเล็กๆ ที่ให้เสียงรบกวนอาจารย์
นักเรียนจะกดกริ่งทุกครั้งที่การบรรยายของอาจารย์ซับซ้อนเกินไป อาจารย์จึงต้องลดความซับซ้อนของบทบรรยาย
ศาสตราจารย์จะบ่นว่า "เมื่อฉันทำให้เข้าใจง่าย ฉันจะไม่แม่นยำพอ"
นักเรียนอาจโต้กลับว่า "เป้าหมายเดียวคืออธิบายให้เข้าใจง่ายๆ" กริ่งเตือนจะค่อยๆ ฝึกให้ศาสตราจารย์บรรยายอย่างง่ายอย่างเหมาะสม แม้ว่าการบรรยายที่ง่ายขึ้นจะยังไม่แม่นยำมากพอก็ตาม
การสูญเสียและความซับซ้อน
จนถึงตอนนี้ หลักสูตรนี้แนะนําว่าเป้าหมายเดียวในการฝึกคือเพื่อลดความสูญเสีย ซึ่งก็คือ
$$\text{minimize(loss)}$$
ดังที่คุณเห็น โมเดลที่มุ่งเน้นที่การลดการสูญเสียเพียงอย่างเดียวมีแนวโน้มที่จะพอดีเกินไป
อัลกอริทึมการเพิ่มประสิทธิภาพการฝึกที่ดีขึ้นจะลดการสูญเสียและความซับซ้อนบางอย่าง ดังนี้
$$\text{minimize(loss + complexity)}$$
แต่โดยทั่วไปแล้ว ข้อมูลสูญหายและความซับซ้อนมักมีความสัมพันธ์แบบผกผัน เมื่อความซับซ้อนเพิ่มขึ้น โอกาสที่จะสูญเสียก็จะลดลง เมื่อความซับซ้อนลดลง การสูญเสียจะเพิ่มขึ้น
คุณควรหาจุดกึ่งกลางที่เหมาะสมซึ่งโมเดลจะคาดการณ์ได้ดีทั้งกับข้อมูลการฝึกและข้อมูลในโลกแห่งความเป็นจริง
กล่าวคือ โมเดลควรหาจุดสมดุลที่เหมาะสมระหว่างการสูญเสียกับความซับซ้อน
ความซับซ้อนคืออะไร
คุณได้ดูวิธีต่างๆ ในการวัดผลความสูญเสียแล้ว คุณจะวัดความซับซ้อนได้อย่างไร เริ่มการสํารวจผ่านแบบฝึกหัดต่อไปนี้
แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ
จนถึงตอนนี้ เรายังไม่ค่อยแน่ใจเกี่ยวกับความซับซ้อน จริงๆ คุณคิดว่าแนวคิดใดต่อไปนี้จะเป็นเมตริกความซับซ้อนที่เหมาะสม
ความซับซ้อนคือฟังก์ชันของน้ำหนักของโมเดล
ความซับซ้อนคือฟังก์ชันของค่าน้ำหนักของโมเดลยกกำลัง 2
ความซับซ้อนคือฟังก์ชันของความลำเอียงของฟีเจอร์ทั้งหมดในโมเดล
ความลำเอียงไม่ได้วัดความซับซ้อน