ต้นไม้การตัดสินใจที่เพิ่มระดับการไล่ระดับสี

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

  • "อ่อน" โมเดลแมชชีนเลิร์นนิง ซึ่งโดยปกติจะเป็นแผนผังการตัดสินใจ
  • "แรง" โมเดลแมชชีนเลิร์นนิง ซึ่งประกอบด้วย

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

การไล่ระดับสีเป็นการเพิ่มสีแบบวนซ้ำ การทำซ้ำแต่ละครั้งจะเรียกใช้สูตรต่อไปนี้

\[ F_{i+1} = F_i - f_i \]

โดยมี

  • $F_i$ เป็นโมเดลที่มีประสิทธิภาพในขั้นตอนที่ $i$
  • $f_i$ เป็นโมเดลแบบอ่อนในขั้นตอนที่ $i$

การดำเนินการนี้จะทำซ้ำๆ จนกว่าเกณฑ์จะหยุดครบ เช่น ค่าสูงสุด จำนวนการทำซ้ำ หรือหากรูปแบบ (เข้มงวด) เริ่มมีการปรับมากเกินไปตามที่วัดใน ชุดข้อมูลการตรวจสอบความถูกต้องแยกต่างหาก

เรามาดูการเพิ่มการไล่ระดับสีในชุดข้อมูลการถดถอยง่ายๆ กัน ซึ่ง

  • วัตถุประสงค์คือการคาดการณ์ $y$ จาก $x$
  • โมเดลที่มีประสิทธิภาพจะเริ่มต้นให้เป็นค่าคงที่ศูนย์: $F_0(x) = 0$
# Simplified example of regressive gradient boosting.

y = ... # the labels
x = ... # the features

strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.

for i in range(num_iters):

    # Error of the strong model
    error = strong_predictions - y

    # The weak model is a decision tree (see CART chapter)
    # without pruning and a maximum depth of 3.
    weak_model = tfdf.keras.CartModel(
        task=tfdf.keras.Task.REGRESSION,
        validation_ratio=0.0,
        max_depth=3)
    weak_model.fit(x=x, y=error)

    strong_model.append(weak_model)

    weak_predictions = weak_model.predict(x)[:,0]

    strong_predictions -= weak_predictions

มาใช้รหัสนี้กับชุดข้อมูลต่อไปนี้กัน

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

รูปที่ 25 ชุดข้อมูลการถดถอยสังเคราะห์ที่มีฟีเจอร์ตัวเลข 1 รายการ

 

นี่คือ 3 พล็อตหลังจากการบูสต์การไล่ระดับสีครั้งแรก อัลกอริทึม:

3 พล็อต พล็อตแรกแสดงการคาดการณ์ของโมเดลที่ดีซึ่งก็คือ
เส้นตรงของความชัน 0 และจุดตัดแกน y 0 พล็อตที่ 2 แสดงข้อผิดพลาดของ
โมเดลแข็งแกร่ง ซึ่งเป็นชุดคลื่นไซน์ แผนภูมิที่ 3 จะแสดง
การคาดคะเนของโมเดลแบบอ่อนซึ่งเป็นชุดของกำลังสอง
คลื่น

รูปที่ 26 สามพล็อตหลังจากการทำซ้ำครั้งแรก

 

สิ่งที่ควรทราบเกี่ยวกับพล็อตในรูปที่ 26 มีดังนี้

  • พล็อตแรกแสดงการคาดการณ์ของโมเดลที่มีประสิทธิภาพ ซึ่งในปัจจุบัน 0 เสมอ
  • พล็อตที่ 2 แสดงข้อผิดพลาด ซึ่งเป็นป้ายกำกับของโมเดลที่ไม่รัดกุม
  • พล็อตที่ 3 จะแสดงโมเดลที่ไม่ปลอดภัย

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

ต่อไปนี้เป็นพล็อตเดียวกันสำหรับการปรับปรุงอัลกอริทึมอีกครั้ง

3 พล็อต พล็อตแรกแสดงการคาดการณ์ของโมเดลที่ดีซึ่งก็คือ
การผกผันกับพล็อตการคาดการณ์ของโมเดลที่อ่อนจากก่อนหน้านี้
รูป พล็อตที่ 2 แสดงข้อผิดพลาดของโมเดลที่ดีซึ่งมีเสียงดัง
ของคลื่นไซน์ พล็อตที่สามแสดงการคาดคะเนของโมเดลแบบอ่อน
เป็นสี่เหลี่ยมจัตุรัส 2 รูป
คลื่น

รูปที่ 27 3 พล็อตหลังการทำซ้ำครั้งที่ 2

 

สิ่งที่ควรทราบเกี่ยวกับพล็อตในรูปที่ 27 มีดังนี้

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

เราเรียกใช้อัลกอริทึมสำหรับการทำซ้ำอีก 8 ครั้งต่อ 8 รายการ ดังนี้

แผนภาพดังกล่าวแสดงให้เห็นภาพโมเดลที่แข็งแกร่ง ซึ่งค่อยๆ เข้าใกล้ความจริงที่เป็นภาคพื้นดินมากขึ้นเรื่อยๆ
ขณะที่การคาดการณ์ของโมเดลที่อ่อนแอจะค่อยๆ เพิ่มขึ้น
ที่อ่อนแอลง

รูปที่ 28 สามพล็อตหลังจากการทำซ้ำครั้งที่ 3 และการทำซ้ำครั้งที่ 10

 

ในรูปที่ 28 โปรดสังเกตว่าการคาดการณ์ของโมเดลที่ดีจะเริ่มมีลักษณะคล้าย พล็อตของชุดข้อมูล

ภาพเหล่านี้แสดงอัลกอริทึมการเพิ่มระดับด้วยการไล่ระดับสีโดยใช้แผนผังการตัดสินใจ ผู้เรียนที่อ่อนแอ ชุดค่าผสมนี้เรียกว่าต้นไม้ที่เพิ่มระดับ (การตัดสินใจ) การไล่ระดับสี

พล็อตก่อนหน้าแนะนำสาระสำคัญของการเพิ่มระดับสี อย่างไรก็ตาม ตัวอย่างไม่มีการดำเนินการในชีวิตจริง 2 รายการต่อไปนี้

  • ประสิทธิภาพที่ลดลง
  • การเพิ่มประสิทธิภาพค่า Leaf ด้วยขั้นตอน 1 ขั้นของวิธีการของนิวตัน

การหดตัว

โมเดลแบบอ่อน $f_i$ จะคูณด้วยค่าเล็กๆ $\nu$ (เช่น $\nu = 0.1$) ก่อนที่จะเพิ่มลงในโมเดลที่มีประสิทธิภาพ $F_i$ ค่าขนาดเล็กนี้เรียกว่า การย่อขนาด กล่าวคือ แทนที่จะดำเนินการซ้ำแต่ละครั้ง ให้ใช้องค์ประกอบต่อไปนี้ สูตร:

\[ F_{i+1} = F_i - f_i \]

การทำซ้ำแต่ละครั้งจะใช้สูตรต่อไปนี้

\[ F_{i+1} = F_i - \nu f_i \]

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

ในโค้ดข้างต้น การย่อขนาดจะใช้ได้ดังนี้

shrinkage = 0.1   # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions