การเพิ่มการไล่ระดับสี (หน่วยที่ไม่บังคับ)

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

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

ในทางที่เป็นทางการ เมื่อทราบฟังก์ชันการสูญเสีย $L(y,p)$ โดยที่ $y$ คือป้ายกำกับและ $p$ คือการคาดการณ์ คำตอบจำลอง $z_i$ ที่ใช้ฝึกโมเดลที่มีประสิทธิภาพต่ำในขั้นตอนที่ $i$ คือ

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

where:

  • $F_i$ คือการคาดการณ์ของโมเดลที่มีประสิทธิภาพ

ตัวอย่างก่อนหน้านี้เป็นปัญหาการถดถอย: วัตถุประสงค์คือคาดการณ์ค่าตัวเลข ในกรณีของการถดถอย ข้อผิดพลาดกำลังสองเป็นฟังก์ชันการสูญเสียที่พบบ่อย ดังนี้

$$ L(y,p) = (y - p)^2 $$

ในกรณีนี้ การไล่สีจะเป็นดังนี้

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = -2(y - p) = 2 \ \text{signed error} $$

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

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

วิธีนิวตันเป็นวิธีการเพิ่มประสิทธิภาพ เช่น การลดเชิงลาด อย่างไรก็ตาม วิธีนิวตันแตกต่างจากการลดเชิงลาดที่ใช้เพียงอนุพันธ์ของฟังก์ชันเพื่อเพิ่มประสิทธิภาพ เนื่องจากจะใช้ทั้งอนุพันธ์ (อนุพันธ์อันดับแรก) และอนุพันธ์อันดับที่ 2 ของฟังก์ชันเพื่อเพิ่มประสิทธิภาพ

ขั้นตอนของวิธีการลดเชิงลาดมีดังนี้

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

และวิธีการของนิวตันมีดังนี้

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

คุณอาจผสานรวมวิธีการของนิวตันเข้ากับการฝึกต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient ได้ 2 วิธีดังนี้

  1. เมื่อฝึกต้นไม้แล้ว ระบบจะใช้ขั้นตอนของนิวตันกับใบแต่ละใบและลบล้างค่าของใบนั้น โครงสร้างต้นไม้จะยังคงเดิม มีเพียงค่าระดับล่างเท่านั้นที่จะเปลี่ยนแปลง
  2. ในระหว่างการเติบโตของต้นไม้ ระบบจะเลือกเงื่อนไขตามคะแนนที่มีองค์ประกอบของสูตรของนิวตัน โครงสร้างของต้นไม้ได้รับผลกระทบ
รหัส YDF
ใน YDF ให้ทำดังนี้
  • YDF ใช้ขั้นตอนของนิวตันกับใบ (ตัวเลือก 1) เสมอ
  • คุณเปิดใช้ตัวเลือกที่ 2 ได้ด้วย use_hessian_gain=True