ฝึกโมเดลคุณภาพสูงอย่างง่ายดายด้วยการปรับไฮเปอร์พารามิเตอร์อัตโนมัติ
การแนะนำ
เมื่อฝึกโมเดลการเรียนรู้เชิงลึกที่ซับซ้อน จะมีรายการไฮเปอร์พารามิเตอร์มากมายที่จำเป็นต้องตั้งค่าและปรับแต่งเพื่อให้ได้ประสิทธิภาพสูงสุด ไฮเปอร์พารามิเตอร์เหล่านี้รวมถึงอัตราการเรียนรู้ ขนาดภาพ ขนาดแบตช์ จำนวนยุค ฯลฯ ไฮเปอร์พารามิเตอร์จำนวนมากทำให้ยากสำหรับผู้ใช้ในการตัดสินใจว่าจะมุ่งเน้นไปที่พารามิเตอร์ใด นอกจากนี้ พารามิเตอร์เหล่านี้บางส่วนเป็นพารามิเตอร์เฉพาะรุ่น และไม่ส่งผลต่อประสิทธิภาพของโมเดลอย่างเท่าเทียมกัน ทำให้ผู้ใช้มีความท้าทายมากขึ้น ด้วยเหตุนี้ จึงต้องใช้เวลา ความพยายาม และทรัพยากรอย่างมากในการปรับแต่งไฮเปอร์พารามิเตอร์เหล่านี้เพื่อให้ได้โมเดลที่เหมาะสมที่สุด
ในบล็อกโพสต์นี้ เราจะกล่าวถึงวิธีที่ "AutoML สำหรับรูปภาพ" สามารถปรับแต่งและรับโมเดลที่เหมาะสมที่สุดโดยอัตโนมัติตามงบประมาณที่ระบุผ่านการทดลองใช้จำนวนสูงสุด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ AutoML สำหรับรูปภาพ คุณสามารถดู "ประกาศเกี่ยวกับความพร้อมใช้งานทั่วไป", "เอกสารประกอบ" อย่างเป็นทางการ และ "สมุดบันทึก GitHub"
การปรับแต่งไฮเปอร์พารามิเตอร์ด้วย AutoML สำหรับรูปภาพ
การปรับไฮเปอร์พารามิเตอร์ ประกอบด้วยการค้นหาชุดของค่าไฮเปอร์พารามิเตอร์ที่เหมาะสมที่สุดจากสเปซของไฮเปอร์พารามิเตอร์ที่เป็นไปได้ การปรับแต่งไฮเปอร์พารามิเตอร์บน "AzureML" ทำงานโดยการรันการทดลองหลายครั้งโดยเป็นส่วนหนึ่งของงานการฝึกอบรมสำหรับการกำหนดค่าไฮเปอร์พารามิเตอร์แต่ละรายการ ต่อไปนี้คือตัวอย่างเกี่ยวกับวิธีการกวาดล้างไฮเปอร์พารามิเตอร์บางส่วนด้วยตนเองโดยใช้ AutoML สำหรับรูปภาพสำหรับรุ่นที่แตกต่างกันสองรุ่น
image_object_detection_job = automl.image_object_detection( compute="gpu-cluster", experiment_name="image-object-detection-sweep", training_data=training_data, validation_data=validation_data, ) # Configure search space for hyperparameter tuning image_object_detection_job.extend_search_space( [ SearchSpace( model_name=Choice(["yolov5"]), learning_rate=Uniform(0.0001, 0.01), model_size=Choice(["small", "medium"]), # model-specific ), SearchSpace( model_name=Choice(["fasterrcnn_resnet50_fpn"]), learning_rate=Uniform(0.0001, 0.001), optimizer=Choice(["sgd", "adam", "adamw"]), min_size=Choice([600, 800]), # model-specific ), ] ) # Configure number of trials image_object_detection_job.set_limits( max_trials=10, max_concurrent_trials=5 ) # Submit job to AzureML Workspace client.jobs.create_or_update(image_object_detection_job)
ผู้ใช้จำเป็นต้องจัดเตรียมพื้นที่การค้นหา อัลกอริธึมการสุ่มตัวอย่าง และขีดจำกัดของงาน: จะมีการทดลองใช้จำนวนการทดลอง (การกำหนดค่าตัวอย่าง) กี่ครั้ง
ในแนวทางนี้ ผู้ใช้จะมีการควบคุมและความยืดหยุ่นมากขึ้น แต่ก็เป็นความรับผิดชอบของผู้ใช้เช่นกันในการกำหนดและเลือกไฮเปอร์พารามิเตอร์ที่จะปรับแต่ง ซึ่งต้องใช้ความเข้าใจอย่างลึกซึ้งเกี่ยวกับไฮเปอร์พารามิเตอร์ ความเชี่ยวชาญในด้านนั้น และข้อมูลเชิงลึกว่าพารามิเตอร์ใดมีความสำคัญมากที่สุด บ่อยครั้งไม่มีพื้นฐานที่ชัดเจนให้เปรียบเทียบ และการค้นหาชุดไฮเปอร์พารามิเตอร์ที่เหมาะสมที่สุดกลายเป็นส่วนที่ใช้เวลาและค่าใช้จ่ายสูงที่สุดในการฝึกโมเดลที่เหมาะสมที่สุด
ขอแนะนำโหมดอัตโนมัติ
โหมดอัตโนมัติจะเลือกไฮเปอร์พารามิเตอร์ของโมเดลโดยอัตโนมัติ (ขนาดแบทช์ อัตราการเรียนรู้ จำนวนยุค ฯลฯ) โดยกำหนดงบประมาณในรูปแบบของจำนวนการทดลองใช้สูงสุด คุณลักษณะนี้ช่วยให้ผู้ใช้ที่มีประสบการณ์น้อยสามารถสร้างแบบจำลองคุณภาพดีได้โดยไม่ต้องปรับแต่งไฮเปอร์พารามิเตอร์ด้วยตนเอง และนักวิทยาศาสตร์ข้อมูลที่มีประสบการณ์มากขึ้นจะช่วยประหยัดเวลา/ความพยายามในการสร้างพื้นฐานที่แข็งแกร่งสำหรับการทดลอง
นี่คือตัวอย่างวิธีที่คุณสามารถเรียกใช้โหมดอัตโนมัติโดยใช้ AutoML สำหรับรูปภาพ:
image_object_detection_job = automl.image_object_detection( compute="gpu-cluster", experiment_name="image-object-detection-automode", training_data=training_data, validation_data=validation_data, ) # Configure number of trials image_object_detection_job.set_limits( max_trials=10, max_concurrent_trials=5 ) # Submit job to AzureML workspace client.jobs.create_or_update(image_object_detection_job)
ข้อดีของโหมดอัตโนมัติ
- ผู้ใช้สามารถสร้างพื้นฐานที่แข็งแกร่งได้โดยใช้ความพยายามเพียงเล็กน้อยหรือไม่ต้องทำอะไรเลย
- ผู้ใช้ไม่จำเป็นต้องระบุรายละเอียดใดๆ เกี่ยวกับพื้นที่เพื่อค้นหา อัลกอริธึมพื้นฐานจะกำหนดขอบเขตของพื้นที่ไฮเปอร์พารามิเตอร์ที่จะกวาดโดยอัตโนมัติ
- โหมดอัตโนมัติปรับให้เข้ากับฮาร์ดแวร์ ("อินสแตนซ์การประมวลผล AzureML" หรือ "คลัสเตอร์") ที่ผู้ใช้เลือก โดยจะกำหนดขนาดแบตช์ ความละเอียด ฯลฯ ตามหน่วยความจำที่มีอยู่ในคอมพิวเตอร์ เพื่อไม่ให้งานฝึกอบรมส่งผลให้หน่วยความจำไม่เพียงพอ
การทดลอง
เราทำการทดลองอย่างกว้างขวาง แต่เพื่อความกระชับ เราเลือกที่จะนำเสนอเฉพาะชุดข้อมูลด้านล่างสำหรับการจำแนกประเภทและการตรวจจับวัตถุ โหมดอัตโนมัติยังถูกเปรียบเทียบกับแพลตฟอร์มของคู่แข่งสองแพลตฟอร์มด้วย เราเลือกชุดข้อมูลที่มีลักษณะแตกต่างกันในแง่ของจำนวนคลาส ขนาดวัตถุ ความละเอียดของภาพ ฯลฯ ผลลัพธ์ทั้งหมดที่รายงานอยู่ในชุดข้อมูลทดสอบ
การตรวจจับวัตถุ
สำหรับงานนี้ เราเลือกชุดข้อมูลต่อไปนี้:
- VisDrone 2019: ชุดข้อมูลที่มีรูปภาพ/วิดีโอจากโดรน
- KITTI: ชุดข้อมูลภาพ Street View ที่ใช้ในการขับขี่อัตโนมัติ
- VOC 2012: ชุดข้อมูลที่มีวัตถุจากสถานการณ์จริงจากวัตถุประเภทต่างๆ
- หมวกนิรภัย: ประกอบด้วยรูปภาพอุปกรณ์ความปลอดภัยส่วนบุคคล
จากรูปที่ 1–4 ข้างต้น เราสามารถสรุปได้ว่าเมื่อเราเพิ่มงบประมาณ โหมดอัตโนมัติจะปรับปรุง mAP ของโมเดล แต่จะสูงขึ้นในภายหลัง ด้วยการเพิ่มงบประมาณจาก 7$ เป็น 141$ mAP เพิ่มขึ้น 13% สำหรับ VisDrone 2019 และด้วยการเพิ่มงบประมาณจาก 5$ เป็น 52$ ชุดข้อมูล VOC ก็เพิ่มขึ้น 4% ซึ่งสามารถทำได้โดยไม่ต้องอาศัยเวลาหรือความพยายามจากนักวิทยาศาสตร์ข้อมูลหรือวิศวกร
สำหรับการเปรียบเทียบกับคู่แข่ง มีการกำหนดงบประมาณเพื่อให้ได้ตัวชี้วัดที่ดีที่สุดสำหรับคู่แข่ง
โหมดอัตโนมัติมีประสิทธิภาพเหนือกว่าคู่แข่งรายที่ 1 อย่างมากด้วยงบประมาณเท่ากัน ในขณะที่สำหรับคู่แข่งรายที่ 2 นั้น โหมดอัตโนมัติตามหลังประมาณ 1% สำหรับหมวกนิรภัย และ 0.1% สำหรับชุดข้อมูล VOC ด้วยงบประมาณเท่ากัน แต่มีประสิทธิภาพเหนือกว่าชุดข้อมูล VisDrone และ Kitti
การจัดหมวดหมู่รูปภาพ
สำหรับงานนี้ เราเลือกชุดข้อมูลต่อไปนี้:
- MIT Indoors: ชุดข้อมูลสำหรับการจดจำฉากในอาคาร
- Deep Fashion: ชุดข้อมูลเสื้อผ้าขนาดใหญ่สำหรับอีคอมเมิร์ซ
- Deep Weeds: ชุดข้อมูลที่มีรูปภาพพันธุ์วัชพืช
เช่นเดียวกับการตรวจจับวัตถุ เราพบว่าความแม่นยำของแบบจำลองเพิ่มขึ้น ~2% โดยการเพิ่มงบประมาณจาก 3$ เป็น 62$ สำหรับ Deep Fashion และ 1$ เป็น 36$ สำหรับ MIT Indoors สำหรับงานจำแนกประเภทรูปภาพ
เมื่อเปรียบเทียบกับคู่แข่ง โหมดอัตโนมัติมีประสิทธิภาพเหนือกว่าคู่แข่ง 1 อย่างมากด้วยงบประมาณเท่ากัน ในขณะที่คู่แข่ง 2 โหมดอัตโนมัติตามหลัง 0.2% สำหรับ Deep Weeds แต่มีประสิทธิภาพเหนือกว่าชุดข้อมูล MIT Indoors และ Deep Fashion
บทสรุป
เราพบว่าโหมดอัตโนมัติใน AutoML สำหรับรูปภาพเป็นคุณสมบัติที่ช่วยให้นักวิทยาศาสตร์ข้อมูลและวิศวกร ML ใช้ชีวิตได้ง่ายขึ้นอย่างมาก โดยนำเสนอโมเดลคุณภาพสูง และลดความจำเป็นในการปรับแต่งไฮเปอร์พารามิเตอร์ด้วยตนเอง โปรดลองดูและแจ้งให้เราทราบว่าคุณคิดอย่างไร!
ตัวอย่างสมุดบันทึก
การตรวจจับวัตถุรูปภาพ
การจัดหมวดหมู่หลายคลาสรูปภาพ
การจัดหมวดหมู่หลายป้ายกำกับรูปภาพ
การแบ่งส่วนอินสแตนซ์รูปภาพ
ตัวอย่าง CLI
การตรวจจับวัตถุรูปภาพ
การจัดหมวดหมู่หลายคลาสรูปภาพ
การจัดหมวดหมู่หลายป้ายกำกับรูปภาพ
การแบ่งส่วนอินสแตนซ์รูปภาพ
ทรัพยากร
- AzureML: ตั้งค่า AutoML สำหรับคอมพิวเตอร์วิทัศน์
- บทช่วยสอน: AutoML- ฝึกโมเดลการตรวจจับวัตถุ
- AzureML: ฝึกวัตถุขนาดเล็กในภาพ
- AzureML: เตรียมข้อมูลสำหรับงานคอมพิวเตอร์วิทัศน์
- Azure AutoML สำหรับรูปภาพ: ระดับพื้นฐานและอื่นๆ สำหรับรุ่น Computer Vision
ขอขอบคุณเป็นพิเศษสำหรับ Mercy Ranjit, Rupal Jain, YiYou Lin!