Boosting ในแมชชีนเลิร์นนิงคืออะไร

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

เหตุใด Boosting จึงมีความสำคัญ

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

โปรแกรมเรียนรู้ที่อ่อนแอ

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

โปรแกรมเรียนรู้ที่แข็งแกร่ง

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

ซีรีส์การสัมมนาผ่านเว็บเกี่ยวกับอัลกอริทึมในตัวของ Amazon SageMaker: XGBoost

Boosting ทำงานอย่างไร

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

ต้นไม้ตัดสินใจ

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

วิธีการ Ensemble ของ Boosting

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

ความแตกต่างของ Boosting เมื่อเทียบกับ Bagging

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

การฝึกฝนใน Boosting เป็นอย่างไร

วิธีการฝึกฝนแตกต่างกันไปโดยขึ้นอยู่กับประเภทของกระบวนการ Boosting ที่เรียกว่าอัลกอริทึม Boosting อย่างไรก็ตาม อัลกอริทึมใช้ขั้นตอนทั่วไปต่อไปนี้เพื่อฝึกฝนโมเดล Boosting:

ขั้นตอนที่ 1

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

ขั้นตอนที่ 2

อัลกอริทึม Boosting จะประเมินการทำนายของโมเดลและเพิ่มน้ำหนักของตัวอย่างด้วยข้อผิดพลาดที่มีนัยสำคัญมากขึ้น นอกจากนี้ยังกำหนดน้ำหนักตามประสิทธิภาพของโมเดลอีกด้วย โดยโมเดลที่ให้ผลการทำนายที่ยอดเยี่ยมจะมีอิทธิพลอย่างมากต่อการตัดสินใจขั้นสุดท้าย

ขั้นตอนที่ 3

อัลกอริทึมจะส่งข้อมูลถ่วงน้ำหนักไปยังต้นไม้ตัดสินใจถัดไป

ขั้นตอนที่ 4

อัลกอริทึมจะทำซ้ำขั้นตอนที่ 2 และ 3 จนกว่ากรณีตัวอย่างของข้อผิดพลาดในการฝึกฝนจะต่ำกว่าเกณฑ์ที่กำหนด

Boosting มีประเภทใดบ้าง

Boosting มี 3 ประเภทหลักดังต่อไปนี้:

Adaptive Boosting

Adaptive Boosting (AdaBoost) เป็นหนึ่งในโมเดล Boosting แรกสุดที่พัฒนาขึ้น ซึ่งจะปรับตัวและพยายามแก้ไขตัวเองในทุกๆ กระบวนการ Boosting ที่ทำซ้ำ 

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

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

Gradient Boosting

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

Extreme Gradient Boosting

Extreme Gradient Boosting (XGBoost) ปรับปรุง Gradient Boosting ในแง่ของความเร็วและขนาดในการคำนวณในหลากหลากหลายวิธี XGBoost ใช้แกนประมวลผลหลายแกนบน CPU เพื่อให้การเรียนรู้เกิดขึ้นพร้อมกันระหว่างการฝึกฝน โดยเป็นอัลกอริทึม Boosting ที่สามารถรองรับชุดข้อมูลจำนวนมาก ทำให้เหมาะเป็นอย่างยิ่งสำหรับแอปพลิเคชัน Big Data ซึ่งคุณสมบัติหลักของ XGBoost คือการทำงานแบบขนานกัน การประมวลผลแบบกระจาย การปรับแคชให้เหมาะสม และการประมวลผลนอกแกนประมวลผล

Boosting มีข้อดีใดบ้าง

Boosting มีข้อดีที่สำคัญดังต่อไปนี้:

การใช้งานที่ง่ายดาย

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

การลดอคติ

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

ประสิทธิภาพการคำนวณ

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

Boosting มีอุปสรรคใดบ้าง

ข้อจำกัดทั่วไปของโหมด Boosting มีดังต่อไปนี้:

ความเสี่ยงต่อข้อมูลค่าผิดปกติ

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

การใช้งานแบบเรียลไทม์

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

AWS สามารถช่วยคุณกับ Boosting ได้อย่างไร

บริการระบบเครือข่ายของ AWS ได้รับการออกแบบมาเพื่อให้องค์กรมี:

Amazon SageMaker

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

Amazon SageMaker Autopilot

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

Amazon SageMaker Debugger

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

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

เริ่มต้นใช้งาน Amazon SageMaker ด้วยการสร้างบัญชี AWS วันนี้

ขั้นตอนถัดไปสำหรับ AWS Machine Learning

Standard Product Icons (Features) Squid Ink
ดูแหล่งข้อมูลที่เกี่ยวข้องกับผลิตภัณฑ์เพิ่มเติม
เรียนรู้เพิ่มเติมเกี่ยวกับบริการแมชชีนเลิร์นนิง 
Sign up for a free account
ดูบริการแมชชีนเลิร์นนิงฟรี

เข้าถึงบริการแมชชีนเลิร์นนิงฟรีได้ทันทีด้วย AWS Free Tier

ดูบริการแมชชีนเลิร์นนิงฟรี 
Standard Product Icons (Start Building) Squid Ink
เริ่มต้นการสร้างใน Console

เริ่มต้นสร้างด้วย SageMaker ใน AWS Management Console

ลงชื่อสมัครใช้งาน