การเพิ่มระดับความลาดชันเป็นเหมือนการไล่ระดับสี


9

ฉันกำลังอ่านรายการ Wikipedia ที่เป็นประโยชน์เกี่ยวกับการเพิ่มการไล่ระดับสี ( https://en.wikipedia.org/wiki/Gradient_boosting ) และพยายามเข้าใจว่า / ทำไมเราสามารถประมาณส่วนที่เหลือโดยขั้นบันไดที่ลาดชัน (หรือที่เรียกว่าการไล่ระดับสีเทียม) ) ทุกคนสามารถให้สัญชาตญาณการเชื่อมโยงที่ลาดชัน / คล้ายกับของที่เหลือได้อย่างไร ช่วยชื่นชมมาก!

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


11

สมมติว่าเราอยู่ในสถานการณ์ต่อไปนี้ เรามีข้อมูลซึ่งแต่ละสามารถเป็นตัวเลขหรือเวกเตอร์ได้และเราต้องการพิจารณาฟังก์ชันที่ใกล้เคียงกับความสัมพันธ์ในแง่ที่ว่ากำลังสองน้อยที่สุด ข้อผิดพลาด:{xi,yi}xiff(xi)yi

12i(yif(xi))2

เล็ก.

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

L(f;y)=12(yf)2

จากนั้นใช้การไล่ระดับสีด้วยความเคารพต่อการทำนาย

fL(f;y)=fy

จากนั้นการไล่ระดับสีอัปเดตเริ่มต้นจากค่าเริ่มต้นที่คือy0

y1=y0f(y0,y)=y0(y0y)=y

ดังนั้นเราจึงกู้คืนการทำนายที่สมบูรณ์แบบของเราในขั้นตอนไล่ระดับสีด้วยการตั้งค่านี้ซึ่งดีมาก!

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

ความคิดที่ยิ่งใหญ่คือการอ่อนตัวอย่างL L

Startด้วยการเดาเริ่มต้นที่เกือบทุกฟังก์ชันคงที่แบบง่ายสิ่งนี้ถูกกำหนดทุกที่ ตอนนี้สร้างชุดข้อมูลการทำงานใหม่โดยการประเมินความลาดชันของฟังก์ชั่นการสูญเสียที่ข้อมูลการฝึกอบรมโดยใช้การเดาเริ่มต้นสำหรับ :ff(x)=f0f

W={xi,f0y}

Now approximate Lโดยการปรับเรียนอ่อนแอWบอกว่าเราจะได้รับประมาณL เราได้รับส่วนขยายของข้อมูลทั่วทั้งโดเมนในรูปแบบของแม้ว่าเราจะสูญเสียความแม่นยำที่จุดฝึกอบรมเนื่องจากเรามีผู้เรียนขนาดเล็กWFLWF(X)

Finallyใช้แทนในการไล่ระดับสีของทั่วทั้งโดเมน:FLf0

f1(x)=f0(x)F(x)

เราออกมาได้การประมาณใหม่ของดีกว่าเล็กน้อย เริ่มต้นใหม่ด้วยและวนซ้ำจนกว่าจะพอใจf1ff0f1

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


ข้าคิดว่ามันดี สิ่งเดียวที่ควรทราบคือถ้าคุณต้องการเพิ่มเพื่อลดการสูญเสียทวินามจากนั้นการไล่ระดับสีที่เราขยายจะลดลงอีกต่อไป เกี่ยวข้องกับการตกค้างอย่างเป็นธรรมชาติ
iyilog(pi)+(1yi)log(1pi)
Matthew Drury

ขอบคุณ Matthew สิ่งหนึ่งที่ฉันพยายามทำให้หัวของฉัน ในวรรณคดีมักกล่าวว่าการอัพเดทรูปแบบคือ F (m + 1) = F (m) +โดยที่ h (m) เป็นผู้เรียนที่อ่อนแอ ถ้าฉันกำลังคิดแบบจำลองแบบอิงทรี - หมายความว่าสำหรับการถดถอยและการจัดหมวดหมู่เราจริง ๆ แล้วอัปเดตการทำนายของเราสำหรับชุดข้อมูลที่กำหนดโดยการเพิ่มผลลัพธ์ของทั้งสองแบบง่ายๆ มันยังใช้งานได้ถ้าเราพยายามที่จะจำแนกไบนารีนี้ หรือเครื่องหมาย + ไม่ควรตีความอย่างแท้จริง? αmh(m)
Wouter

เครื่องหมายบวกนั้นค่อนข้างแท้จริง แต่สำหรับผู้เรียนที่อ่อนแอโดยใช้ต้นไม้การทำนายแบบจำลองควรถูกตีความว่าเป็นค่าเฉลี่ยถ่วงน้ำหนักในใบไม้แม้ในกรณีที่ต้นไม้นั้นเหมาะสมกับข้อมูลทวินาม โปรดทราบว่าในการส่งเสริมเรามักจะไม่เหมาะสมกับข้อมูลทวินามเรามีความเหมาะสมกับการไล่ระดับสีของความน่าจะเป็นที่ประเมินจากการคาดการณ์ขั้นตอนก่อนหน้าซึ่งจะไม่ได้รับค่า0,1
Matthew Drury

1
@ MatthewDury ฉันคิดว่าในวรรณกรรมหลายเล่มเราไม่ได้อัปเดตโดยตรงกับด้วยแต่ด้วยโดยที่จาก 0 ถึง 1 คืออัตราการเรียนรู้ f1f0F(x)f0αF(x)α
Haitao Du

@ hxd1011 ใช่มันถูกต้องและสำคัญมากสำหรับการใช้การไล่ระดับสีอย่างประสบความสำเร็จ
Matthew Drury
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.