ฝึกโมเดลคุณภาพสูงอย่างง่ายดายด้วยการปรับไฮเปอร์พารามิเตอร์อัตโนมัติ

การแนะนำ

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

ในบล็อกโพสต์นี้ เราจะกล่าวถึงวิธีที่ "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)

ข้อดีของโหมดอัตโนมัติ

  1. ผู้ใช้สามารถสร้างพื้นฐานที่แข็งแกร่งได้โดยใช้ความพยายามเพียงเล็กน้อยหรือไม่ต้องทำอะไรเลย
  2. ผู้ใช้ไม่จำเป็นต้องระบุรายละเอียดใดๆ เกี่ยวกับพื้นที่เพื่อค้นหา อัลกอริธึมพื้นฐานจะกำหนดขอบเขตของพื้นที่ไฮเปอร์พารามิเตอร์ที่จะกวาดโดยอัตโนมัติ
  3. โหมดอัตโนมัติปรับให้เข้ากับฮาร์ดแวร์ ("อินสแตนซ์การประมวลผล AzureML" หรือ "คลัสเตอร์") ที่ผู้ใช้เลือก โดยจะกำหนดขนาดแบตช์ ความละเอียด ฯลฯ ตามหน่วยความจำที่มีอยู่ในคอมพิวเตอร์ เพื่อไม่ให้งานฝึกอบรมส่งผลให้หน่วยความจำไม่เพียงพอ

การทดลอง

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

การตรวจจับวัตถุ
สำหรับงานนี้ เราเลือกชุดข้อมูลต่อไปนี้:

  1. VisDrone 2019: ชุดข้อมูลที่มีรูปภาพ/วิดีโอจากโดรน
  2. KITTI: ชุดข้อมูลภาพ Street View ที่ใช้ในการขับขี่อัตโนมัติ
  3. VOC 2012: ชุดข้อมูลที่มีวัตถุจากสถานการณ์จริงจากวัตถุประเภทต่างๆ
  4. หมวกนิรภัย: ประกอบด้วยรูปภาพอุปกรณ์ความปลอดภัยส่วนบุคคล

จากรูปที่ 1–4 ข้างต้น เราสามารถสรุปได้ว่าเมื่อเราเพิ่มงบประมาณ โหมดอัตโนมัติจะปรับปรุง mAP ของโมเดล แต่จะสูงขึ้นในภายหลัง ด้วยการเพิ่มงบประมาณจาก 7$ เป็น 141$ mAP เพิ่มขึ้น 13% สำหรับ VisDrone 2019 และด้วยการเพิ่มงบประมาณจาก 5$ เป็น 52$ ชุดข้อมูล VOC ก็เพิ่มขึ้น 4% ซึ่งสามารถทำได้โดยไม่ต้องอาศัยเวลาหรือความพยายามจากนักวิทยาศาสตร์ข้อมูลหรือวิศวกร

สำหรับการเปรียบเทียบกับคู่แข่ง มีการกำหนดงบประมาณเพื่อให้ได้ตัวชี้วัดที่ดีที่สุดสำหรับคู่แข่ง

โหมดอัตโนมัติมีประสิทธิภาพเหนือกว่าคู่แข่งรายที่ 1 อย่างมากด้วยงบประมาณเท่ากัน ในขณะที่สำหรับคู่แข่งรายที่ 2 นั้น โหมดอัตโนมัติตามหลังประมาณ 1% สำหรับหมวกนิรภัย และ 0.1% สำหรับชุดข้อมูล VOC ด้วยงบประมาณเท่ากัน แต่มีประสิทธิภาพเหนือกว่าชุดข้อมูล VisDrone และ Kitti

การจัดหมวดหมู่รูปภาพ
สำหรับงานนี้ เราเลือกชุดข้อมูลต่อไปนี้:

  1. MIT Indoors: ชุดข้อมูลสำหรับการจดจำฉากในอาคาร
  2. Deep Fashion: ชุดข้อมูลเสื้อผ้าขนาดใหญ่สำหรับอีคอมเมิร์ซ
  3. Deep Weeds: ชุดข้อมูลที่มีรูปภาพพันธุ์วัชพืช

เช่นเดียวกับการตรวจจับวัตถุ เราพบว่าความแม่นยำของแบบจำลองเพิ่มขึ้น ~2% โดยการเพิ่มงบประมาณจาก 3$ เป็น 62$ สำหรับ Deep Fashion และ 1$ เป็น 36$ สำหรับ MIT Indoors สำหรับงานจำแนกประเภทรูปภาพ

เมื่อเปรียบเทียบกับคู่แข่ง โหมดอัตโนมัติมีประสิทธิภาพเหนือกว่าคู่แข่ง 1 อย่างมากด้วยงบประมาณเท่ากัน ในขณะที่คู่แข่ง 2 โหมดอัตโนมัติตามหลัง 0.2% สำหรับ Deep Weeds แต่มีประสิทธิภาพเหนือกว่าชุดข้อมูล MIT Indoors และ Deep Fashion

บทสรุป

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

ตัวอย่างสมุดบันทึก

การตรวจจับวัตถุรูปภาพ
การจัดหมวดหมู่หลายคลาสรูปภาพ
การจัดหมวดหมู่หลายป้ายกำกับรูปภาพ
การแบ่งส่วนอินสแตนซ์รูปภาพ

ตัวอย่าง CLI

การตรวจจับวัตถุรูปภาพ
การจัดหมวดหมู่หลายคลาสรูปภาพ
การจัดหมวดหมู่หลายป้ายกำกับรูปภาพ
การแบ่งส่วนอินสแตนซ์รูปภาพ

ทรัพยากร

ขอขอบคุณเป็นพิเศษสำหรับ Mercy Ranjit, Rupal Jain, YiYou Lin!