มากเกินไป: ความซับซ้อนของโมเดล

หน่วยก่อนหน้าได้แนะนำโมเดลต่อไปนี้ ซึ่งจัดหมวดหมู่ต้นไม้จำนวนมากในชุดทดสอบไม่ถูกต้อง

รูปที่ 16 รูปภาพเดียวกับรูปที่ 13 นี่เป็นรูปร่างที่ซับซ้อนซึ่งจัดหมวดหมู่ต้นไม้หลายต้นไม่ถูกต้อง
รูปที่ 16 โมเดลที่ซับซ้อนซึ่งทำงานผิดปกติจากหน่วยก่อนหน้า

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

รูปที่ 17 รูปแบบเส้นตรงที่แยกต้นไม้ที่เป็นโรคออกจากต้นไม้ที่แข็งแรงได้อย่างยอดเยี่ยม
รูปที่ 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)}$$

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

ความซับซ้อนคืออะไร

คุณได้ดูวิธีต่างๆ ในการวัดผลความสูญเสียแล้ว คุณจะวัดความซับซ้อนได้อย่างไร เริ่มการสํารวจผ่านแบบฝึกหัดต่อไปนี้

แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ

จนถึงตอนนี้ เรายังไม่ค่อยแน่ใจเกี่ยวกับความซับซ้อนจริงๆ คุณคิดว่าแนวคิดใดต่อไปนี้จะเป็นเมตริกความซับซ้อนที่เหมาะสม
ความซับซ้อนคือฟังก์ชันของน้ำหนักของโมเดล
ใช่ วิธีนี้เป็นวิธีหนึ่งในการวัดความซับซ้อนของโมเดลบางรายการ เมตริกนี้เรียกว่า Regularization แบบ 1
ความซับซ้อนคือฟังก์ชันของค่าน้ำหนักของโมเดลยกกำลัง 2
ได้ คุณวัดความซับซ้อนของโมเดลบางรายการด้วยวิธีนี้ได้ เมตริกนี้เรียกว่า การถ่วงน้ำหนักแบบ L2
ความซับซ้อนคือฟังก์ชันของความลำเอียงของฟีเจอร์ทั้งหมดในโมเดล
ความลำเอียงไม่ได้วัดความซับซ้อน