อ่าน 13 นาที
การเพิ่มประสิทธิภาพแบบไล่ระดับ
การเพิ่มประสิทธิภาพแบบไล่ระดับ (Gradient boosting)เป็น เทคนิค การเรียนรู้ของเครื่องที่ใช้การเพิ่มประสิทธิภาพในพื้นที่ฟังก์ชัน โดยมีเป้าหมายคือค่าตกค้างเทียม...
การเพิ่มประสิทธิภาพแบบไล่ระดับ
| ส่วนหนึ่งของชุดบทความเกี่ยวกับ |
| การเรียนรู้ของเครื่องจักรและการขุดข้อมูล |
|---|
การเพิ่มประสิทธิภาพแบบไล่ระดับ (Gradient boosting)เป็น เทคนิค การเรียนรู้ของเครื่องที่ใช้การเพิ่มประสิทธิภาพในพื้นที่ฟังก์ชัน โดยมีเป้าหมายคือค่าตกค้างเทียม (pseudo-residuals)แทนที่จะเป็นค่าตกค้าง (residuals)เหมือนในการเพิ่มประสิทธิภาพแบบดั้งเดิม เทคนิคนี้สร้างแบบจำลองการทำนายในรูปแบบของแบบจำลองการทำนายแบบอ่อน (weak prediction models) จำนวนมาก กล่าวคือ แบบจำลองที่ตั้งสมมติฐานเกี่ยวกับข้อมูลน้อยมาก ซึ่งโดยทั่วไปจะเป็นต้นไม้ตัดสินใจ แบบง่ายๆ [ 1 ] [ 2 ]เมื่อต้นไม้ตัดสินใจเป็นตัวเรียนรู้แบบอ่อน อัลกอริทึมที่ได้จะเรียกว่า ต้นไม้เพิ่มประสิทธิภาพแบบไล่ระดับ (gradient-boosted trees) ซึ่งมักจะมีประสิทธิภาพดีกว่าป่าสุ่ม (random forest ) [ 1 ]เช่นเดียวกับ วิธี การเพิ่มประสิทธิภาพ อื่นๆ แบบจำลองต้นไม้เพิ่มประสิทธิภาพแบบไล่ระดับจะถูกสร้างขึ้นเป็นขั้นตอน แต่จะทำให้วิธีการอื่นๆ เป็นแบบทั่วไปมากขึ้นโดยอนุญาตให้ปรับฟังก์ชันการสูญเสียที่สามารถหาอนุพันธ์ ได้ ตามอำเภอใจ
ประวัติศาสตร์
แนวคิดของการเพิ่มประสิทธิภาพแบบไล่ระดับ (gradient boosting) มีต้นกำเนิดมาจากการสังเกตของLeo Breimanที่ว่าการเพิ่มประสิทธิภาพสามารถตีความได้ว่าเป็นอัลกอริธึมการปรับให้เหมาะสมบนฟังก์ชันต้นทุนที่เหมาะสม[ 3 ]ต่อมาได้มีการพัฒนาอัลกอริธึมการเพิ่มประสิทธิภาพแบบไล่ระดับการถดถอยที่ชัดเจนโดยJerome H. Friedman [ 4 ] [ 2 ] (ในปี 1999 และต่อมาในปี 2001) พร้อมกับมุมมองการเพิ่มประสิทธิภาพแบบไล่ระดับฟังก์ชันทั่วไปของ Llew Mason, Jonathan Baxter, Peter Bartlett และ Marcus Frean [ 5 ] [ 6 ] เอกสารสองฉบับหลังนี้ได้นำเสนอมุมมองของอัลกอริธึมการเพิ่มประสิทธิภาพในฐานะ อัลกอริธึม การไล่ระดับฟังก์ชันแบบวนซ้ำ นั่นคือ อัลกอริธึมที่ปรับฟังก์ชันต้นทุนให้เหมาะสมเหนือพื้นที่ฟังก์ชันโดยการเลือกฟังก์ชัน (สมมติฐานที่อ่อนแอ) ที่ชี้ไปในทิศทางการไล่ระดับเชิงลบแบบวนซ้ำ มุมมองการไล่ระดับฟังก์ชันของการเพิ่มประสิทธิภาพนี้ได้นำไปสู่การพัฒนาอัลกอริธึมการเพิ่มประสิทธิภาพในหลายด้านของการเรียนรู้ของเครื่องและสถิตินอกเหนือจากการถดถอยและการจำแนกประเภท
การแนะนำตัวอย่างไม่เป็นทางการ
(ส่วนนี้เป็นไปตามคำอธิบายของเฉิงหลี่[ 7 ] )
เช่นเดียวกับวิธีการบูสติ้งอื่นๆ การบูสติ้งแบบไล่ระดับ (Gradient Boosting) จะรวม "ผู้เรียน" ที่อ่อนแอเข้าด้วยกันเป็นผู้เรียนที่แข็งแกร่งเพียงคนเดียวอย่างต่อเนื่อง วิธีที่ง่ายที่สุดในการอธิบายคือใน บริบทของการถดถอยกำลัง สองน้อยที่สุด (Least-squares regression ) ซึ่งเป้าหมายคือการสอนแบบจำลองให้ทำนายค่าในรูปแบบโดยการลดค่าความคลาดเคลื่อนกำลังสองเฉลี่ย (Mean Squared Error) ให้เหลือน้อยที่สุด โดยที่ คือดัชนีของชุดข้อมูลฝึกฝนที่มีขนาดเท่ากับค่าจริงของตัวแปรเอาต์พุต:
- ค่าที่คาดการณ์ไว้
- ค่าที่สังเกตได้
- ขนาดของกลุ่มตัวอย่าง กล่าวคือ จำนวนการสังเกตใน
หากอัลกอริทึมมีหลายขั้นตอน ในแต่ละขั้นตอน( ) สมมติว่ามีแบบจำลองที่ไม่สมบูรณ์(สำหรับค่าต่ำแบบจำลองนี้อาจทำนายได้ง่ายๆว่าเป็น ค่าเฉลี่ยของ) เพื่อปรับปรุงอัลกอริทึมของเราควรเพิ่มตัวประมาณค่าใหม่บางอย่างดังนั้น
หรือเทียบเท่ากัน
ดังนั้น การเพิ่มประสิทธิภาพแบบไล่ระดับ (gradient boosting) จะปรับให้เข้ากับค่าความคลาดเคลื่อน (residual ) เช่นเดียวกับการเพิ่มประสิทธิภาพแบบอื่นๆ แต่ละวิธีพยายามแก้ไขข้อผิดพลาดของวิธีก่อนหน้าการขยายแนวคิดนี้ไปยังฟังก์ชันความสูญเสียอื่นๆ นอกเหนือจากความคลาดเคลื่อนกำลังสอง และไปยังปัญหาการจำแนกและการจัดอันดับมาจากการสังเกตว่าค่าความคลาดเคลื่อนสำหรับแบบจำลองที่กำหนดนั้นเป็นสัดส่วนกับค่าลบของไล่ระดับของ ฟังก์ชัน ความสูญเสียความคลาดเคลื่อนกำลังสองเฉลี่ย (MSE) (เมื่อเทียบกับ):
ดังนั้น การเพิ่มประสิทธิภาพด้วยการไล่ระดับ (gradient boosting) สามารถขยายไปสู่ ขั้นตอนวิธี ไล่ระดับแบบลดระดับ (gradient descent ) ได้ โดยการแทนที่ค่าความสูญเสียและค่าไล่ระดับของมันด้วยค่าอื่น
อัลกอริทึม
ปัญหา การเรียนรู้แบบมีผู้กำกับดูแลจำนวนมากเกี่ยวข้องกับตัวแปรเอาต์พุตyและเวกเตอร์ของตัวแปรอินพุตxซึ่งมีความสัมพันธ์กันด้วยการแจกแจงความน่าจะเป็นบางอย่าง เป้าหมายคือการหาฟังก์ชันที่ประมาณค่าตัวแปรเอาต์พุตจากค่าของตัวแปรอินพุตได้ดีที่สุด ซึ่งทำได้โดยการแนะนำฟังก์ชันความสูญเสียและลดค่าคาดหวังของฟังก์ชันนั้นให้เหลือน้อยที่สุด:
วิธีการบูสติ้งแบบไล่ระดับ (Gradient Boosting) สมมติว่า yเป็นค่าจริงโดยจะหาค่าประมาณในรูปแบบผลรวมถ่วงน้ำหนักของฟังก์ชันMจากคลาสใดคลาสหนึ่งซึ่งเรียกว่าตัวเรียนรู้พื้นฐาน (หรือ ตัวเรียนรู้ แบบอ่อน ):
น้ำหนักอยู่ที่ขั้นตอนใดโดยปกติแล้วเราจะได้รับชุดข้อมูลฝึกฝนที่มีค่าx ที่ทราบ และค่าy ที่สอดคล้องกัน ตาม หลักการ ลดความเสี่ยงเชิงประจักษ์วิธีการนี้พยายามหาค่าประมาณที่ลดค่าเฉลี่ยของฟังก์ชันความสูญเสียในชุดข้อมูลฝึกฝนให้เหลือน้อยที่สุด กล่าวคือ ลดความเสี่ยงเชิงประจักษ์ให้เหลือน้อยที่สุด โดยเริ่มต้นจากแบบจำลองที่ประกอบด้วยฟังก์ชันคงที่และขยายแบบจำลองนั้นทีละน้อยใน ลักษณะ โลภ :
สำหรับโดยที่เป็นฟังก์ชันผู้เรียนพื้นฐาน
น่าเสียดายที่การเลือกฟังก์ชันที่ดีที่สุดในแต่ละขั้นตอนสำหรับฟังก์ชันการสูญเสียL ใดๆ นั้นเป็นปัญหาการหาค่าเหมาะสมที่สุดที่ไม่สามารถคำนวณได้โดยทั่วไป ดังนั้นเราจึงจำกัดวิธีการของเราไว้ที่เวอร์ชันที่ง่ายขึ้นของปัญหานี้ แนวคิดคือการใช้ ขั้นตอน การลดลงที่ชันที่สุดกับปัญหาการลดค่านี้ (การไล่ระดับฟังก์ชัน) แนวคิดพื้นฐานคือการหาค่าต่ำสุดเฉพาะที่ของฟังก์ชันการสูญเสียโดยการวนซ้ำบนในความเป็นจริง ทิศทางการลดลงสูงสุดเฉพาะที่ของฟังก์ชันการสูญเสียคือการไล่ระดับเชิงลบ[ 8 ]ดังนั้น การเคลื่อนที่เพียงเล็กน้อยเพื่อให้การประมาณเชิงเส้นยังคงใช้ได้:
โดยที่. สำหรับค่าเล็ก ๆสิ่งนี้หมายความว่า.
การพิสูจน์รูปแบบเชิงฟังก์ชันของอนุพันธ์ |
|---|
| เพื่อพิสูจน์สิ่งต่อไปนี้ ให้พิจารณาวัตถุประสงค์ ทำการขยายอนุกรมเทย์เลอร์รอบจุดคงที่จนถึงอันดับแรก เมื่อทำการหาอนุพันธ์เทียบกับ จะเหลือเพียงอนุพันธ์ของพจน์ที่สองเท่านั้น นี่คือทิศทางของการเพิ่มขึ้นที่ชันที่สุด ดังนั้นเราจึงต้องเคลื่อนที่ไปในทิศทางตรงกันข้าม (เช่น ทิศทางลบ) เพื่อที่จะเคลื่อนที่ไปในทิศทางของการลดลงที่ชันที่สุด |
นอกจากนี้ เราสามารถปรับให้เหมาะสมที่สุดได้โดยการหาค่าที่ทำให้ฟังก์ชันความสูญเสียมีค่าต่ำสุด:
หากเราพิจารณากรณีต่อเนื่อง กล่าวคือ โดยที่เป็นเซตของฟังก์ชันที่หาอนุพันธ์ได้โดยพลการบนเราจะปรับปรุงแบบจำลองตามสมการต่อไปนี้
โดยที่ความยาวขั้นตอนถูกกำหนดเป็น ในกรณีแบบไม่ต่อเนื่อง อย่างไรก็ตาม กล่าวคือเมื่อเซตมีจำนวนจำกัด เราจะเลือกฟังก์ชันผู้สมัครhที่ใกล้เคียงที่สุดกับเกรเดียนต์ของLซึ่งสัมประสิทธิ์γสามารถคำนวณได้โดยใช้การค้นหาเส้นบนสมการข้างต้น โปรดทราบว่าวิธีการนี้เป็นฮิวริสติก ดังนั้นจึงไม่ได้ให้คำตอบที่แน่นอนสำหรับปัญหาที่กำหนด แต่เป็นการประมาณค่า ในรหัสเทียม วิธีการเพิ่มประสิทธิภาพเกรเดียนต์ทั่วไปคือ: [ 4 ] [ 1 ]
อินพุต: ชุดข้อมูลฝึกฝนฟังก์ชันความสูญเสียที่สามารถหาอนุพันธ์ได้จำนวนรอบการทำซ้ำ M
อัลกอริทึม:
- กำหนดค่าเริ่มต้นให้กับโมเดลด้วยค่าคงที่:
- สำหรับm = 1 ถึงM :
- คำนวณค่าที่เรียกว่าค่าตกค้างเทียม (pseudo-residuals ):
- สร้างแบบจำลองพื้นฐาน (หรือแบบจำลองอ่อน เช่น ต้นไม้) ที่มีคุณสมบัติปิดภายใต้การปรับขนาดไปยังค่าตกค้างเทียม กล่าวคือ ฝึกฝนแบบจำลองนั้นโดยใช้ชุดข้อมูลฝึกฝน
- คำนวณตัวคูณโดยการแก้ปัญหาการหาค่าเหมาะสมที่สุดแบบหนึ่งมิติ ดังต่อไปนี้:
- อัปเดตโมเดล:
- คำนวณค่าที่เรียกว่าค่าตกค้างเทียม (pseudo-residuals ):
- เอาต์พุต
การเพิ่มประสิทธิภาพต้นไม้แบบไล่ระดับ
โดยทั่วไปแล้ว Gradient boosting จะใช้กับต้นไม้ตัดสินใจ (โดยเฉพาะCARTs ) ที่มีขนาดคงที่เป็นตัวเรียนรู้พื้นฐาน สำหรับกรณีพิเศษนี้ Friedman เสนอการปรับเปลี่ยนวิธีการ Gradient boosting ซึ่งช่วยปรับปรุงคุณภาพความเหมาะสมของตัวเรียนรู้พื้นฐานแต่ละตัว
การเพิ่มประสิทธิภาพการไล่ระดับทั่วไปในขั้นตอนที่mจะทำการปรับต้นไม้ตัดสินใจให้เข้ากับค่าตกค้างเทียม ให้เป็นจำนวนใบของต้นไม้ ต้นไม้จะแบ่งพื้นที่อินพุตออกเป็นส่วนๆ ที่ไม่ซ้ำกันและทำนายค่าคงที่ในแต่ละส่วน โดยใช้สัญกรณ์ตัวบ่งชี้ผลลัพธ์ของสำหรับอินพุตxสามารถเขียนได้เป็นผลรวม:
ค่าที่คาดการณ์ในภูมิภาคอยู่ที่ใด[ 9 ]
จากนั้นค่าสัมประสิทธิ์จะถูกคูณด้วยค่าบางค่าซึ่งเลือกโดยใช้การค้นหาแบบเส้นตรง เพื่อลดฟังก์ชันความสูญเสียให้เหลือน้อยที่สุด และแบบจำลองจะได้รับการปรับปรุงดังต่อไปนี้:
ฟรีดแมนเสนอให้ปรับเปลี่ยนอัลกอริธึมนี้ โดยเลือกค่าที่เหมาะสมที่สุดแยกกันสำหรับแต่ละส่วนของต้นไม้ แทนที่จะเลือกค่าเดียวสำหรับทั้งต้นไม้ เขาเรียกอัลกอริธึมที่ปรับเปลี่ยนแล้วนี้ว่า "TreeBoost" จากนั้นค่าสัมประสิทธิ์จากขั้นตอนการปรับต้นไม้สามารถถูกละทิ้งไปได้ และกฎการปรับปรุงแบบจำลองจะกลายเป็น:
เมื่อค่าความคลาดเคลื่อนเป็นค่าความคลาดเคลื่อนกำลังสองเฉลี่ย (MSE) ค่าสัมประสิทธิ์จะตรงกับค่าสัมประสิทธิ์ของกระบวนการสร้างแผนภูมิต้นไม้
ขนาดต้นไม้
จำนวนโหนดปลายสุดในต้นไม้เป็นพารามิเตอร์ที่ควบคุมระดับปฏิสัมพันธ์ สูงสุดที่อนุญาต ระหว่างตัวแปรในแบบจำลอง หากใช้( decision stumps ) จะไม่อนุญาตให้มีปฏิสัมพันธ์ระหว่างตัวแปร แต่หากใช้แบบจำลองอาจรวมผลกระทบของปฏิสัมพันธ์ระหว่างตัวแปรได้มากถึงสองตัว และอื่นๆสามารถปรับค่าให้เหมาะสมกับชุดข้อมูลที่มีอยู่ได้
Hastie et al. [ 1 ]แสดงความคิดเห็นว่าโดยทั่วไปแล้วทำงานได้ดีสำหรับการเพิ่มพลังและผลลัพธ์ค่อนข้างไม่ไวต่อการเลือกในช่วงนี้ไม่เพียงพอสำหรับการใช้งานหลายอย่าง และไม่น่าจะจำเป็น
การทำให้เป็นระเบียบ
การปรับโมเดลให้เข้ากับชุดข้อมูลฝึกฝนมากเกินไปอาจทำให้ความสามารถในการสรุปผลของโมเดลลดลง กล่าวคือ ประสิทธิภาพในการจำลองตัวอย่างที่ไม่เคยเห็นมาก่อน จะลดลง เทคนิค การปรับให้เป็นระเบียบ (regularization techniques) หลายอย่างช่วยลดผลกระทบจากภาวะ โอเวอร์ฟิตติ้งนี้ได้โดยการจำกัดขั้นตอนการปรับโมเดลให้เข้ากับชุดข้อมูลฝึกฝน
พารามิเตอร์การปรับค่าความสม่ำเสมอตามธรรมชาติอย่างหนึ่งคือจำนวนรอบการทำซ้ำของ Gradient Boosting M (เช่น จำนวนโมเดลพื้นฐาน) การเพิ่มค่าM จะช่วยลดข้อผิดพลาดในชุดข้อมูลฝึกฝน แต่จะเพิ่มความเสี่ยงต่อการเกิด Overfitting ค่า Mที่เหมาะสมมักจะถูกเลือกโดยการตรวจสอบข้อผิดพลาดในการทำนายในชุดข้อมูลตรวจสอบความถูกต้องแยกต่างหาก
พารามิเตอร์การปรับค่าอีกตัวหนึ่งสำหรับ Tree Boosting คือ ความลึกของต้นไม้ ยิ่งค่านี้สูงเท่าไร โอกาสที่โมเดลจะเกิดการโอเวอร์ฟิตกับข้อมูลฝึกฝนก็จะยิ่งมากขึ้นเท่านั้น
การหดตัว
ส่วนสำคัญของ Gradient Boosting คือการปรับค่าให้เป็นระเบียบด้วยการลดขนาด (Regularization by Shrinkage) ซึ่งใช้กฎการอัปเดตที่ปรับเปลี่ยน:
โดยที่พารามิเตอร์นี้ เรียกว่า "อัตราการเรียนรู้"
จากประสบการณ์พบว่าการใช้อัตราการเรียนรู้ ขนาดเล็ก (เช่น) ส่งผลให้ความสามารถในการสรุปผลของโมเดลดีขึ้นอย่างมากเมื่อเทียบกับการเพิ่มประสิทธิภาพแบบไล่ระดับโดยไม่ต้องลดขนาด ( ) [ 1 ]อย่างไรก็ตาม วิธีนี้ต้องแลกมาด้วยเวลาในการคำนวณ ที่เพิ่มขึ้น ทั้งในระหว่างการฝึกอบรมและการสอบถาม : อัตราการเรียนรู้ที่ต่ำกว่าต้องใช้การวนซ้ำมากขึ้น
การเพิ่มประสิทธิภาพการไล่ระดับแบบสุ่ม
หลังจากมีการนำ gradient boosting มาใช้ไม่นาน Friedman ได้เสนอการปรับเปลี่ยนเล็กน้อยให้กับอัลกอริทึม โดยได้รับแรงบันดาลใจจาก วิธี การ bootstrap aggregation ("bagging") ของBreiman [ 2 ]โดยเฉพาะอย่างยิ่ง เขาเสนอว่าในแต่ละรอบของการทำงานของอัลกอริทึม ควรสร้างตัวเรียนรู้พื้นฐานบนตัวอย่างย่อยของชุดข้อมูลฝึกฝนที่สุ่มเลือกมาโดยไม่มีการแทนที่[ 10 ] Friedman สังเกตเห็นการปรับปรุงอย่างมากในความแม่นยำของ gradient boosting ด้วยการปรับเปลี่ยนนี้
ขนาดของกลุ่มตัวอย่างย่อยเป็นเศษส่วนคงที่ของขนาดชุดฝึกอบรม เมื่ออัลกอริทึมจะเป็นแบบกำหนดและเหมือนกับที่อธิบายไว้ข้างต้น ค่าที่เล็กกว่าของจะนำความสุ่มเข้ามาในอัลกอริทึมและช่วยป้องกันการโอเวอร์ฟิตติ้งโดยทำหน้าที่เป็นเหมือนการปรับค่าให้เป็นระเบียบอัลกอริทึมยังทำงานได้เร็วขึ้นด้วย เนื่องจากต้นไม้การถดถอยต้องได้รับการปรับให้เข้ากับชุดข้อมูลที่เล็กลงในแต่ละรอบ Friedman [ 2 ]พบว่านำไปสู่ผลลัพธ์ที่ดีสำหรับชุดฝึกอบรมขนาดเล็กและขนาดปานกลาง ดังนั้นโดยทั่วไปจึงตั้งค่า เป็น 0.5 ซึ่งหมายความว่าครึ่งหนึ่งของชุดฝึกอบรมจะถูกใช้เพื่อสร้างผู้เรียนพื้นฐานแต่ละตัว[ 11 ]
นอกจากนี้ เช่นเดียวกับการสุ่มตัวอย่างย่อย การสุ่มตัวอย่างย่อยช่วยให้สามารถกำหนดข้อผิดพลาดนอกถุงของการปรับปรุงประสิทธิภาพการทำนายโดยการประเมินการทำนายบนข้อมูลสังเกตการณ์ที่ไม่ได้ใช้ในการสร้างผู้เรียนฐานถัดไป การประมาณค่านอกถุงช่วยหลีกเลี่ยงความจำเป็นในการใช้ชุดข้อมูลตรวจสอบอิสระ แต่มักจะประเมินการปรับปรุงประสิทธิภาพที่แท้จริงและจำนวนรอบการทำซ้ำที่เหมาะสมต่ำกว่าความเป็นจริง[ 12 ] [ 13 ]
จำนวนการสังเกตในใบไม้
การใช้งาน Gradient Tree Boosting มักใช้การควบคุมแบบ Regularization โดยการจำกัดจำนวนข้อมูลขั้นต่ำในโหนดปลายสุดของต้นไม้ โดยใช้ในกระบวนการสร้างต้นไม้ด้วยการละเว้นการแยกใดๆ ที่นำไปสู่โหนดที่มีจำนวนข้อมูลน้อยกว่าจำนวนที่กำหนดไว้ในชุดข้อมูลฝึกฝน
การกำหนดขีดจำกัดนี้ช่วยลดความผันแปรในการคาดการณ์ที่ระดับใบไม้ได้
ค่าปรับความซับซ้อน
เทคนิคการควบคุมที่มีประโยชน์อีกอย่างหนึ่งสำหรับโมเดลบูสต์เกรเดียนต์คือการลงโทษความซับซ้อนของมัน[ 14 ]สำหรับต้นไม้บูสต์เกรเดียนต์ ความซับซ้อนของโมเดลสามารถกำหนดได้เป็นสัดส่วนของจำนวนใบในต้นไม้ การเพิ่มประสิทธิภาพร่วมกันของการสูญเสียและความซับซ้อนของโมเดลสอดคล้องกับอัลกอริทึมการตัดแต่งหลังเพื่อลบกิ่งที่ไม่สามารถลดการสูญเสียลงตามเกณฑ์ที่กำหนด
สามารถใช้ การควบคุมประเภทอื่น เช่นการลงโทษค่าใบ เพื่อหลีกเลี่ยงการโอเวอร์ฟิตติ้งได้ เช่นกัน [ 15 ]
การใช้งาน
การเพิ่มประสิทธิภาพแบบไล่ระดับ (Gradient boosting) สามารถนำมาใช้ในด้านการเรียนรู้เพื่อจัดอันดับได้เครื่องมือค้นหาเว็บเชิงพาณิชย์Yahoo [ 16 ]และYandex [ 17 ]ใช้การเพิ่มประสิทธิภาพแบบไล่ระดับในรูปแบบต่างๆ ในเครื่องมือจัดอันดับที่เรียนรู้ด้วยเครื่องจักร การเพิ่มประสิทธิภาพแบบไล่ระดับยังถูกนำมาใช้ในฟิสิกส์พลังงานสูงในการวิเคราะห์ข้อมูล ที่เครื่องเร่งอนุภาคขนาดใหญ่ (LHC) เครือข่ายประสาทเทียมเชิงลึก (DNN) ที่ใช้การเพิ่มประสิทธิภาพแบบไล่ระดับประสบความสำเร็จในการจำลองผลลัพธ์ของวิธีการวิเคราะห์ที่ไม่ใช่การเรียนรู้ด้วยเครื่องจักรบนชุดข้อมูลที่ใช้ในการค้นพบอนุภาค ฮิ กส์[ 18 ]ต้นไม้ตัดสินใจแบบเพิ่มประสิทธิภาพแบบไล่ระดับยังถูกนำไปใช้ในการศึกษาโลกและธรณีวิทยา เช่น การประเมินคุณภาพของแหล่งกักเก็บหินทราย[ 19 ]
ชื่อ
วิธีการนี้มีชื่อเรียกหลากหลาย Friedman แนะนำเทคนิคการถดถอยของเขาในชื่อ "Gradient Boosting Machine" (GBM) [ 4 ] Mason, Baxter และคณะ อธิบายกลุ่มนามธรรมทั่วไปของอัลกอริทึมในชื่อ "functional gradient boosting" [ 5 ] [ 6 ] Friedman และคณะ อธิบายความก้าวหน้าของโมเดล gradient boosted ในชื่อ Multiple Additive Regression Trees (MART) [ 20 ] Elith และคณะ อธิบายแนวทางดังกล่าวในชื่อ "Boosted Regression Trees" (BRT) [ 21 ]
การใช้งานแบบโอเพนซอร์สที่เป็นที่นิยมสำหรับRเรียกมันว่า "Generalized Boosting Model" [ 12 ]อย่างไรก็ตาม แพ็กเกจที่ขยายงานนี้ใช้ BRT [ 22 ]อีกชื่อหนึ่งคือ TreeNet ตามการใช้งานเชิงพาณิชย์ในช่วงแรกจาก Dan Steinberg ของ Salford System ซึ่งเป็นหนึ่งในนักวิจัยที่บุกเบิกการใช้วิธีการแบบต้นไม้[ 23 ]
การจัดอันดับความสำคัญของฟีเจอร์
การเพิ่มประสิทธิภาพแบบไล่ระดับสามารถใช้สำหรับการจัดอันดับความสำคัญของฟีเจอร์ ซึ่งโดยปกติจะขึ้นอยู่กับการรวมฟังก์ชันความสำคัญของผู้เรียนพื้นฐาน[ 24 ]ตัวอย่างเช่น หากมีการพัฒนาอัลกอริทึมต้นไม้เพิ่มประสิทธิภาพแบบไล่ระดับโดยใช้ต้นไม้ตัดสินใจ ตามเอนโทรปี อัลกอริทึมแบบรวมจะจัดอันดับความสำคัญของฟีเจอร์ตามเอนโทรปีเช่นกัน โดยมีข้อแม้ว่าค่าเฉลี่ยจะกระจายไปทั่วผู้เรียนพื้นฐานทั้งหมด[ 24 ] [ 1 ]
ข้อเสีย
แม้ว่าการบูสติ้งจะช่วยเพิ่มความแม่นยำของตัวเรียนรู้พื้นฐาน เช่น ต้นไม้ตัดสินใจหรือการถดถอยเชิงเส้น แต่ก็ต้องแลกมาด้วยความเข้าใจง่ายและการตีความได้ยาก[ 24 ] [ 25 ]ตัวอย่างเช่น การติดตามเส้นทางที่ต้นไม้ตัดสินใจใช้ในการตัดสินใจนั้นเป็นเรื่องง่ายและเข้าใจได้เอง แต่การติดตามเส้นทางของต้นไม้หลายร้อยหรือหลายพันต้นนั้นยากกว่ามาก เพื่อให้ได้ทั้งประสิทธิภาพและการตีความ เทคนิคการบีบอัดโมเดลบางอย่างจึงอนุญาตให้แปลง XGBoost เป็นต้นไม้ตัดสินใจ "เกิดใหม่" ต้นเดียวที่ประมาณฟังก์ชันการตัดสินใจเดียวกัน[ 26 ]นอกจากนี้ การใช้งานอาจยากขึ้นเนื่องจากความต้องการการคำนวณที่สูงขึ้น
ดูเพิ่มเติม
อ่านเพิ่มเติม
- Boehmke, Bradley; Greenwell, Brandon (2019). "Gradient Boosting". Hands-On Machine Learning with R. Chapman & Hall. หน้า 221–245 . ISBN 978-1-138-49568-5.
ลิงก์ภายนอก
- วิธีอธิบาย Gradient Boosting
- ต้นไม้การถดถอยแบบเพิ่มประสิทธิภาพด้วยเกรเดียนต์
- ไลท์จีบีเอ็ม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเพิ่มประสิทธิภาพแบบไล่ระดับ
การเพิ่มประสิทธิภาพแบบไล่ระดับ (Gradient boosting)เป็น เทคนิค การเรียนรู้ของเครื่องที่ใช้การเพิ่มประสิทธิภาพในพื้นที่ฟังก์ชัน โดยมีเป้าหมายคือค่าตกค้างเทียม...
ประวัติศาสตร์
แนวคิดของการเพิ่มประสิทธิภาพแบบไล่ระดับ (gradient boosting) มีต้นกำเนิดมาจากการสังเกตของ Leo Breiman ที่ว่าการเพิ่มประสิทธิภาพสามารถตีความได้ว่าเป็นอัลกอริธึมการปรับให้เหมาะสมบนฟังก์ชันต้นทุนที่เหมาะสม [ 3 ]...
การแนะนำตัวอย่างไม่เป็นทางการ
(ส่วนนี้เป็นไปตามคำอธิบายของเฉิงหลี่ [ 7 ] )
อัลกอริทึม
ปัญหา การเรียนรู้แบบมีผู้กำกับดูแล จำนวนมากเกี่ยวข้องกับตัวแปรเอาต์พุต y และเวกเตอร์ของตัวแปรอินพุต x ซึ่งมีความสัมพันธ์กันด้วยการแจกแจงความน่าจะเป็นบางอย่าง เป้าหมายคือการหาฟังก์ชันที่ประมาณค่าตัวแปรเอาต์พุตจากค่าของตัวแปรอินพุตได้ดีที่สุด...