การปรับมากเกินไป การทำให้สม่ำเสมอ และการหยุดใช้ก่อนกำหนด

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

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

ผังความสูญเสียในการฝึกและความสูญเสียในการทดสอบเทียบกับจํานวนต้นไม้การตัดสินใจ ความสูญเสียในการฝึกจะค่อยๆ ลดลงเมื่อจำนวนต้นไม้การตัดสินใจเพิ่มขึ้น อย่างไรก็ตาม อัตราความสูญเสียจากการตรวจสอบจะลดลงจนกว่าจะเหลือประมาณ 40 แผนผังการตัดสินใจเท่านั้น เมื่อใช้ Decision Tree มากกว่า 40 รายการ อัตราความสูญเสียในการทดสอบจะเพิ่มขึ้น เมื่อใช้ Decision Tree 400 รายการ ช่องว่างระหว่างความสูญเสียในการฝึกอบรมและการตรวจสอบจะมาก

รูปที่ 29 อัตราผลขาดทุนเทียบกับจํานวนแผนผังการตัดสินใจ

 

ผังความแม่นยำของการฝึกและความแม่นยำของการตรวจสอบเทียบกับจํานวนต้นไม้การตัดสินใจ ความแม่นยำของการฝึกจะค่อยๆ เพิ่มขึ้นเมื่อจำนวนต้นไม้การตัดสินใจเพิ่มขึ้น โดยถึงจุดสูงสุดเกือบ 1.0 เมื่อใช้ต้นไม้การตัดสินใจ 400 ต้น ความแม่นยำในการตรวจสอบจะเพิ่มขึ้นเป็นประมาณ 0.86 เมื่อใช้แผนภูมิการตัดสินใจ 40 รายการ จากนั้นจะค่อยๆ ลดลงเป็นประมาณ 0.83 เมื่อใช้แผนภูมิการตัดสินใจ 400 รายการ

รูปที่ 30 ความแม่นยำเทียบกับจํานวนต้นไม้การตัดสินใจ

 

พารามิเตอร์การถ่วงน้ำหนักทั่วไปสำหรับต้นไม้ที่เพิ่มประสิทธิภาพด้วย Gradient มีดังนี้

  • ความลึกสูงสุดของแผนผัง
  • อัตราการหดตัว
  • อัตราส่วนของแอตทริบิวต์ที่ทดสอบในแต่ละโหนด
  • สัมประสิทธิ์ L1 และ L2 ของความเสียหาย

โปรดทราบว่าโดยทั่วไปแล้ว ต้นไม้การตัดสินใจจะเติบโตได้น้อยกว่าโมเดล Random Forest มาก โดยค่าเริ่มต้น ต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient ใน TF-DF จะเติบโตเป็นระดับความลึก 6 เนื่องจากต้นไม้มีความลึกไม่มาก จำนวนตัวอย่างขั้นต่ำต่อใบจึงมีผลกระทบเพียงเล็กน้อยและโดยทั่วไปจะไม่ได้รับการปรับแต่ง

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

ตัวอย่างการใช้งาน

ในบทก่อนหน้า เราได้ฝึกโมเดล Random Forest กับชุดข้อมูลขนาดเล็ก ในตัวอย่างนี้ เราจะแทนที่โมเดล Random Forest ด้วยโมเดลต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

การใช้งานและข้อจำกัด

ต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient มีทั้งข้อดีและข้อเสีย

ข้อดี

  • เช่นเดียวกับต้นไม้การตัดสินใจ รูปแบบนี้รองรับฟีเจอร์ที่เป็นตัวเลขและเชิงหมวดหมู่โดยกำเนิด และมักไม่จําเป็นต้องประมวลผลฟีเจอร์ล่วงหน้า
  • ต้นไม้เพิ่มประสิทธิภาพด้วย Gradient มีไฮเปอร์พารามิเตอร์เริ่มต้นที่มักให้ผลลัพธ์ที่ยอดเยี่ยม อย่างไรก็ตาม การปรับแต่งไฮเปอร์พารามิเตอร์เหล่านั้นจะช่วยปรับปรุงโมเดลได้อย่างมาก
  • โดยทั่วไปแล้ว โมเดลต้นไม้ที่เพิ่มประสิทธิภาพด้วย Gradient Boosting จะมีขนาดเล็ก (จำนวนโหนดและหน่วยความจำ) และทำงานได้เร็ว (มักจะใช้เวลาเพียง 1-2 µs / ตัวอย่าง)

ข้อเสีย

  • ต้องฝึกต้นไม้การตัดสินใจตามลําดับ ซึ่งอาจทําให้การฝึกช้าลงอย่างมาก อย่างไรก็ตาม การที่ต้นไม้การตัดสินใจมีขนาดเล็กลงก็ช่วยลดความช้าในการฝึกได้บ้าง
  • เช่นเดียวกับ Random Forest ต้นไม้เพิ่มประสิทธิภาพด้วยอนุพันธ์จะไม่สามารถเรียนรู้และใช้การนําเสนอภายในซ้ำได้ ต้นไม้การตัดสินใจแต่ละต้น (และแต่ละสาขาของต้นไม้การตัดสินใจแต่ละต้น) ต้องเรียนรู้รูปแบบชุดข้อมูลอีกครั้ง ในชุดข้อมูลบางชุด โดยเฉพาะชุดข้อมูลที่มีข้อมูลที่ไม่มีโครงสร้าง (เช่น รูปภาพ ข้อความ) จะทำให้ Gradient Boosted Tree แสดงผลลัพธ์ได้แย่กว่าวิธีการอื่นๆ