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

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