พื้นฐาน AI

Gradient Boosting คืออะไร?

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

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

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

ประเด็นสำคัญ

  • Gradient boosting เป็นการทำ gradient descent ในฟังก์ชัน: ผู้เรียนแต่ละตัวทำให้ชุดโมเดลเคลื่อนที่ไปสู่การสูญเสียที่ต่ำลง
  • อัตราการเรียนรู้และจำนวนต้นไม้ทำการแลกเปลี่ยนระหว่างขนาดก้าวกับความยาวของโมเดล
  • ความลึกของต้นไม้ควบคุมความซับซ้อนของปฏิสัมพันธ์; การสุ่มตัวอย่างและการทำ regularization สามารถลดการ overfitting ได้
  • XGBoost, LightGBM และ CatBoost เป็นการนำไปใช้ที่เกี่ยวข้องกันโดยมีวิศวกรรมและการจัดการคุณลักษณะเชิงหมวดหมู่ที่แตกต่างกัน
What is Gradient Boosting? diagram showing initial model, calculate gradient, fit small tree, scale update, add to ensemble, validate
แต่ละต้นไม้แก้ไขชุดโมเดลปัจจุบัน; การหยุดก่อนกำหนดช่วยจำกัดรอบที่ไม่จำเป็น

การแก้ไขข้อผิดพลาดแบบต่อเนื่อง

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

สำหรับการถดถอยด้วยค่าความคลาดเคลื่อนกำลังสอง, กราดิเอนท์ลบคือส่วนเหลือ ซึ่งทำให้กระบวนการเข้าใจง่าย ฟังก์ชันเสียที่สามารถทำอนุพันธ์ได้อื่น ๆ จะสร้าง pseudo-residuals ที่แตกต่างกันสำหรับการจำแนก, การถดถอยที่ทนทาน หรือการจัดอันดับ

อัตราการเรียนรู้, ความลึกของต้นไม้และจำนวนรอบ

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

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

การทำ regularization และการสุ่มตัวอย่าง

การสุ่มตัวอย่างแถวทำให้เกิดความสุ่มและสามารถลดความแปรปรวนได้ การสุ่มตัวอย่างคอลัมน์จำกัดการพึ่งพาคุณลักษณะเดียวกันซ้ำ ๆ การลงโทษ L1/L2, ขนาดใบไม้ขั้นต่ำ, เกณฑ์การแยกที่ให้กำไรและความลึกสูงสุดจำกัดต้นไม้แต่ละต้น

การทำ regularization ไม่สามารถแก้ไขการรั่วไหลของเป้าหมายหรือการแบ่งข้อมูลที่ไม่เป็นตัวแทนได้ การควบคุม Overfitting ต้องเริ่มจากกระบวนการข้อมูล

XGBoost, LightGBM และ CatBoost

XGBoost ได้นำเสนอระบบการบูสต์ต้นไม้ที่ทำ regularization ได้อย่างขยายขนาดด้วยอัลกอริธึมที่รับรู้ความพรุน (sparsity) LightGBM ใช้เทคนิคฮิสโตแกรมและการเจริญเติบโตแบบใบไม้เพื่อประสิทธิภาพ CatBoost รวมเทคนิคแบบจัดลำดับที่ออกแบบมาเพื่อลดการรั่วไหลของเป้าหมายเมื่อจัดการกับคุณลักษณะเชิงหมวดหมู่

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

การประเมินผลและการตีความ

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

การพึ่งพาแบบส่วนหนึ่ง (Partial dependence), ผลกระทบท้องถิ่นที่สะสม (accumulated local effects) และการอธิบายแบบ SHAP สามารถช่วยตรวจสอบพฤติกรรมได้ แต่คุณลักษณะที่มีความสัมพันธ์กันทำให้การตีความซับซ้อน โมเดลเชิงเส้นหรือโมเดลโมโนโทนที่ง่ายกว่าอาจเหมาะสมเมื่อข้อจำกัดด้านนโยบายหรือการอธิบายเป็นหลัก

ต้นไม้ต่อเนื่องและการแก้ไขส่วนเหลือ

Gradient boosting สร้างโมเดลแบบบวกกันโดยเพิ่มผู้เรียนอ่อนหนึ่งตัวต่อครั้ง ต้นไม้ใหม่แต่ละต้นประมาณค่ากราดิเอนท์ลบของฟังก์ชันเสียที่เลือกตามการทำนายปัจจุบัน—ส่วนเหลือสำหรับการถดถอยด้วยค่าความคลาดเคลื่อนกำลังสองและสัญญาณข้อผิดพลาดที่แปลงแล้วสำหรับการจำแนก อัตราการเรียนรู้ปรับสเกลการมีส่วนร่วมของแต่ละต้นไม้ ในขณะที่ความลึกของต้นไม้ควบคุมปฏิสัมพันธ์ ต้นไม้ตื้นหลายต้นสามารถจับความสัมพันธ์เชิงไม่เชิงเส้นที่ซับซ้อนได้ แตกต่างจาก bagging ที่ต้นไม้เป็นอิสระและพร้อมกัน วิธีนี้ทำให้การฟิตดีขึ้นแต่ทำให้โมเดลไวต่อสัญญาณรบกวน, การรั่วไหลและการปรับจูน

การนำไปใช้เช่น gradient-boosted decision trees ใช้การหดตัว, การสุ่มตัวอย่างแถวและคุณลักษณะ, การแยกแบบฮิสโตแกรม, การทำ regularization และการจัดการค่าที่ขาดหายอย่างมีประสิทธิภาพ XGBoost ใช้ข้อมูลระดับสองและการลงโทษอย่างชัดเจน; LightGBM เติบโตแบบใบไม้และใช้เทคนิคฮิสโตแกรมและการสุ่มตัวอย่าง; CatBoost จัดการตัวแปรเชิงหมวดหมู่ด้วยสถิติแบบจัดลำดับที่ออกแบบเพื่อลดการรั่วไหลของเป้าหมาย ค่าเริ่มต้นและการจัดการหมวดหมู่ของพวกเขาต่างกัน การเตรียมข้อมูลและการค้นหาพารามิเตอร์ควรทำภายในชุดฝึกโดยเฉพาะเมื่อมีการเข้ารหัสเป้าหมาย

การปรับจูน, การตีความ, และการประเมินผล

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

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

การดำเนินการในผลิตภัณฑ์

ทำการซีเรียลไลซ์พายป์ไลน์คุณลักษณะทั้งหมด, การแมปหมวดหมู่, โมเดล, และค่าเกณฑ์ ตรวจสอบการทำนายข้ามเวอร์ชันของไลบรารีหรือคอมไพเลอร์และวัดความหน่วงที่จำนวนต้นไม้และขนาดแบชที่เป็นจริง ตรวจสอบสคีม่า, การขาดข้อมูล, การเปลี่ยนแปลงของหมวดหมู่, การกระจายคะแนน, การปรับเทียบ, และผลลัพธ์ หมวดหมู่ใหม่และระบบต้นทางที่เปลี่ยนแปลงอาจทำให้ตัวอย่างไหลเข้าสาขาที่ไม่ตั้งใจ เก็บหลักฐานการย้อนกลับและการฝึกใหม่ Gradient boosting มีประสิทธิภาพสำหรับข้อมูลเชิงโครงสร้าง แต่ความแม่นยำของมันขึ้นกับความหมายของคุณลักษณะที่เสถียร, การตรวจสอบที่ไม่มีการรั่วไหล, และการควบคุมการดำเนินงานรอบชุดโมเดลที่ซับซ้อน

ตัวอย่างการทำงาน: gradient boosting สำหรับการคัดกรองเคลม

บริษัทประกันภัยใช้ต้นไม้บูสต์เพื่อจัดลำดับความสำคัญของเคลมสำหรับการตรวจสอบโดยผู้เชี่ยวชาญ ไม่ได้เพื่อปฏิเสธการชำระเงิน คุณลักษณะจำกัดอยู่ที่ข้อมูลที่มีในขั้นตอนรับข้อมูล การเข้ารหัสเชิงหมวดหมู่ทำภายในพับข้อมูล และเคลมถูกแบ่งตามลูกค้าและเวลา มีการเปรียบเทียบฐานโลจิสติกที่ทำ regularization กับไลบรารีบูสต์หลายตัว รายงานการประเมินแสดงค่า recall ที่ความจุของผู้ตรวจสอบ, การปรับเทียบ, ภาระงานเท็จ, เวลาในการประมวลผล, และข้อผิดพลาดตามประเภทของเคลมและกลุ่มที่ได้รับผลกระทบที่เกี่ยวข้อง

คำอธิบายแสดงฟิลด์ต้นทางและความไม่แน่นอนแต่ไม่ได้อธิบายเป็นสาเหตุเชิงสาเหตุของการฉ้อโกง หมวดหมู่ที่สนับสนุนต่ำและสคีมาที่ขาดหายจะนำไปสู่การตรวจสอบปกติ พายป์ไลน์คุณลักษณะทั้งหมด, โมเดล, และค่าเกณฑ์ถูกจัดเวอร์ชัน; การเฝ้าติดตามตรวจสอบการขาดข้อมูล, หมวดหมู่ใหม่, การเปลี่ยนแปลงคะแนน, การยกเว้น, และผลลัพธ์ การเปลี่ยนนโยบายหรือระบบต้นทางต้องการการประเมินใหม่ โมเดลจะถูกลบหากเพียงเปลี่ยนแปลงภาระงานหรือสร้างการตรวจสอบที่ไม่เท่าเทียมโดยไม่มีประโยชน์เชิงปฏิบัติที่ยืนยันได้

หลักฐานการนำไปใช้และความพร้อมในการดำเนินงาน

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

ก่อนเปิดใช้งาน ให้กำหนดอำนาจสำหรับการปล่อย, ข้อยกเว้น, การเปลี่ยนแปลง, การย้อนกลับ, และการยกเลิก ใช้การเปิดใช้งานเป็นขั้นตอน, รักษาการสำรองที่ปลอดภัย, และตรวจสอบการเฝ้าติดตามด้วยการฉีดความล้มเหลวอย่างตั้งใจ เทเลเมทรีการดำเนินงานควรเปิดเผยคุณภาพอินพุต, พฤติกรรมเอาต์พุต, เวอร์ชันของโมเดลหรือกฎ, สถานะของส่วนขึ้นต่อ, การยกเว้นของมนุษย์, และผลลัพธ์ที่ยืนยันโดยไม่เก็บข้อมูลที่ละเอียดอ่อนที่ไม่จำเป็น กำหนดเกณฑ์การแจ้งเตือนและเจ้าของการตอบสนอง จากนั้นตรวจสอบหลักฐานจากโลกจริงหลังการปรับใช้แทนการสันนิษฐานว่าประสิทธิภาพออฟไลน์จะคงอยู่ ประเมินใหม่เมื่อแหล่งข้อมูล, ผู้ใช้, โมเดล, ผู้จำหน่าย, นโยบาย, ฮาร์ดแวร์, หรือเป้าหมายเปลี่ยนแปลง ระบบที่ดูแลต้องมีขั้นตอนการกู้คืนที่บันทึกไว้, การเรียนรู้จากเหตุการณ์, ขั้นตอนการลบและการเก็บรักษา, และจุดชัดเจนที่ควรปิดหรือเปลี่ยนทดแทน

คำถามที่พบบ่อย

Gradient boosting คือเดียวกับ gradient descent หรือไม่?

มันใช้แนวคิดของ gradient descent ในพื้นที่ฟังก์ชัน โดยเพิ่มผู้เรียนที่ลดการสูญเสีย ผู้เรียนฐานมักเป็นต้นไม้แทนเวกเตอร์พารามิเตอร์ที่อัปเดตโดยตรง

ทำไมต้องใช้ต้นไม้ตื้นหลายต้น?

แต่ละต้นไม้ทำการแก้ไขที่จำกัด ผลรวมของพวกมันสามารถแสดงฟังก์ชันที่ซับซ้อนได้ ในขณะที่ความลึกและอัตราการเรียนรู้ควบคุมความรุนแรงของการฟิตโมเดลต่อปฏิสัมพันธ์

แหล่งอ้างอิงหลัก

นักบล็อกและโปรแกรมเมอร์ที่มีความเชี่ยวชาญใน Machine Learning และ Deep Learning หัวข้อ Daniel หวังที่จะช่วยให้ผู้อื่นใช้พลังของ AI สำหรับสิ่งที่ดี