การส่งเสริมการเรียนรู้ของเครื่อง: ฟังก์ชัน ประเภท และคุณลักษณะคืออะไร

เผยแพร่แล้ว: 2020-05-29

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

สารบัญ

Boosting ในการเรียนรู้ของเครื่องคืออะไร?

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

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

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

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

ดังนั้น ในกรณีนี้ เรามีตัวแยกประเภทห้าตัว โดยตัวแยกประเภทสามตัวทำเครื่องหมายอีเมลว่าเป็น 'สแปม' ดังนั้น เราจะพิจารณาว่าเป็นอีเมล 'สแปม' โดยค่าเริ่มต้น เนื่องจากคลาสนี้มีคะแนนเสียงที่สูงกว่า 'ไม่ใช่สแปม' หมวดหมู่.

ตัวอย่างนี้คือเพื่อให้คุณทราบว่าอัลกอริธึมการเพิ่มประสิทธิภาพคืออะไร พวกมันซับซ้อนกว่านี้

ดูที่: 25 คำถามและคำตอบสำหรับการสัมภาษณ์การเรียนรู้ของเครื่อง

พวกเขาทำงานอย่างไร

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

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

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

เรียนรู้เพิ่มเติม: 5 แอปพลิเคชั่นสุดล้ำของการเรียนรู้ของเครื่อง

อัลกอริธึมการเพิ่มประสิทธิภาพประเภทต่างๆ

อัลกอริธึมการบูสต์สามารถใช้เอ็นจิ้นพื้นฐานได้หลายประเภท รวมถึง margin-maximizers ตราประทับการตัดสินใจ และอื่นๆ โดยพื้นฐานแล้วอัลกอริธึมการเพิ่มประสิทธิภาพการเรียนรู้ของเครื่องมีสามประเภท:

  1. Adaptive Boosting (เรียกอีกอย่างว่า AdaBoosta)
  2. ไล่โทนสี
  3. XGBoost

เราจะพูดถึงสองข้อแรกคือ AdaBoost และ Gradient Boosting โดยสังเขปในบทความนี้ XGBoost เป็นหัวข้อที่ซับซ้อนกว่ามาก ซึ่งเราจะพูดถึงในบทความอื่น

1. Adaptive Boosting

สมมติว่าคุณมีกล่องที่มีข้อดีห้าข้อและข้อเสียห้าข้อ งานของคุณคือจัดประเภทและใส่ไว้ในตารางต่างๆ

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

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

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

คุณสามารถใช้ตราประทับการตัดสินใจรวมถึงอัลกอริธึม Machine Learning อื่นๆ กับ Adaboost

นี่คือตัวอย่างของ AdaBoost ใน Python:

จาก sklearn.ensemble นำเข้า AdaBoostClassifier

จาก sklearn.datasets นำเข้า make_classification

X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,

n_redundant=0, n_repeated=0, random_state=102)

clf = AdaBoostClassifier(n_estimators=4, random_state=0, algorithm='SAMME')

clf.fit(X, Y)

2. การเร่งไล่ระดับ

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

มันสร้างผู้เรียนพื้นฐานใหม่ที่สามารถสัมพันธ์กับการไล่ระดับเชิงลบของฟังก์ชันการสูญเสียและที่เชื่อมต่อกับทั้งระบบ ใน Python คุณจะต้องใช้ Gradient Tree Boosting (เรียกอีกอย่างว่า GBRT) คุณสามารถใช้สำหรับการจัดหมวดหมู่และปัญหาการถดถอย

ต่อไปนี้คือตัวอย่างการเร่งต้นไม้แบบไล่ระดับใน Python:

จาก sklearn.ensemble นำเข้า GradientBoostingRegressor

model = GradientBoostingRegressor(n_estimators=3,learning_rate=1)

รุ่นพอดี(X,Y)

#สำหรับการจัดหมวดหมู่

จาก sklearn.ensemble นำเข้า GradientBoostingClassifier

รุ่น = GradientBoostingClassifier()

รุ่นพอดี(X,Y)

คุณสมบัติของการส่งเสริมในการเรียนรู้ของเครื่อง

การบูสต์มีข้อดีหลายประการ และเช่นเดียวกับอัลกอริธึมอื่น ๆ มันมีข้อจำกัดเช่นกัน:

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

อ่านเพิ่มเติม: แนวคิดโครงการการเรียนรู้ของเครื่องสำหรับผู้เริ่มต้น

จะไปจากที่นี่ที่ไหน?

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

นอกจากนี้เรายังกล่าวถึงประเภทต่างๆ เราพบข้อมูลเกี่ยวกับ AdaBoost และ Gradient Boosting ในขณะที่แชร์ตัวอย่างด้วยเช่นกัน หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT- สถานะศิษย์เก่า B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ฉันจะกำหนดการส่งเสริมในการเรียนรู้ของเครื่องด้วยคำศัพท์ง่ายๆ ได้อย่างไร

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

อัลกอริทึมการเพิ่มประสิทธิภาพทำงานอย่างไร

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

อัลกอริธึมการบูสต์ประเภทต่าง ๆ และคุณลักษณะมีอะไรบ้าง

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