Latih model berkualitas tinggi dengan mudah menggunakan Penyetelan Hyperparameter Otomatis

Perkenalan

Saat melatih model pembelajaran mendalam yang kompleks, ada banyak sekali daftar hyperparameter yang perlu disetel dan disesuaikan untuk mendapatkan performa optimal. Hyperparameter ini mencakup kecepatan pembelajaran, ukuran gambar, ukuran batch, jumlah epoch, dll. Banyaknya jumlah hyperparameter menyulitkan pengguna untuk memutuskan mana yang akan menjadi fokus. Selain itu, beberapa parameter ini bersifat khusus untuk model dan tidak memberikan kontribusi yang sama terhadap performa model sehingga lebih menantang bagi pengguna. Akibatnya, diperlukan banyak waktu, tenaga, dan sumber daya untuk menyempurnakan hyperparameter ini guna mendapatkan model yang optimal.

Dalam postingan blog ini kami akan membahas bagaimana AutoML untuk Gambar dapat secara otomatis menyetel dan mendapatkan model optimal dengan anggaran yang ditentukan melalui jumlah uji coba maksimal. Untuk informasi lebih lanjut tentang AutoML untuk Gambar, Anda dapat melihat Pengumuman Ketersediaan Umum, dokumentasi resmi, dan notebook github.

Penyetelan Hyperparameter dengan AutoML untuk Gambar

Penyetelan hiperparameter terdiri dari pencarian sekumpulan nilai hyperparameter optimal dari ruang hyperparameter yang mungkin. Penyetelan hyperparameter di AzureML bekerja dengan menjalankan beberapa uji coba sebagai bagian dari tugas pelatihan untuk setiap konfigurasi hyperparameter. Berikut adalah contoh cara menyapu beberapa hyperparameter secara manual menggunakan AutoML untuk Gambar untuk dua model berbeda.

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)

Pengguna perlu menyediakan ruang pencarian, algoritma pengambilan sampel, dan batasan pekerjaan: berapa banyak uji coba (konfigurasi sampel) yang akan dicoba.

Dalam pendekatan ini, pengguna memiliki lebih banyak kontrol dan fleksibilitas, namun pengguna juga bertanggung jawab untuk menentukan dan memilih hyperparameter mana yang akan disesuaikan. Hal ini memerlukan pemahaman mendalam tentang hyperparameter, keahlian di bidangnya, dan wawasan tentang parameter mana yang paling penting. Seringkali tidak ada dasar yang kuat untuk dibandingkan dan mencari kumpulan hyperparameter yang optimal akhirnya menjadi bagian yang paling memakan waktu dan mahal dalam melatih model yang optimal.

Memperkenalkan Mode Otomatis

Automode secara otomatis memilih hyperparameter model (ukuran batch, kecepatan pembelajaran, jumlah periode, dll.) dengan anggaran dalam bentuk jumlah uji coba maksimum. Fitur ini memungkinkan pengguna yang kurang berpengalaman untuk menghasilkan model berkualitas baik tanpa melakukan penyetelan hyperparameter manual, dan data scientist yang lebih berpengalaman dapat menghemat waktu/usaha dalam membangun dasar yang kuat untuk eksperimen.

Berikut ini contoh bagaimana Anda dapat menjalankan Automode menggunakan AutoML untuk Gambar:

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)

Keuntungan dari Mode Otomatis

  1. Pengguna dapat menghasilkan dasar yang kuat dengan sedikit atau tanpa usaha.
  2. Pengguna tidak perlu memberikan detail apa pun tentang ruang yang akan dicari. Algoritme yang mendasarinya akan secara otomatis menentukan wilayah ruang hyperparameter yang akan disapu.
  3. Mode otomatis beradaptasi dengan perangkat keras ("Contoh komputasi AzureML" atau "kluster") yang dipilih oleh pengguna. Ini akan menentukan ukuran batch, resolusi, dll. berdasarkan memori yang tersedia pada komputasi sehingga tugas pelatihan tidak mengakibatkan kehabisan memori.

Eksperimen

Kami melakukan eksperimen ekstensif, namun agar singkatnya, kami memilih untuk hanya menyajikan kumpulan data di bawah ini untuk klasifikasi dan deteksi objek. Automode juga dibandingkan dengan dua platform pesaing. Kami memilih kumpulan data yang memiliki karakteristik berbeda-beda dalam hal jumlah kelas, ukuran objek, resolusi gambar, dll. Semua hasil yang dilaporkan ada pada kumpulan data pengujian.

Deteksi Objek
Untuk tugas ini kami memilih kumpulan data berikut:

  1. VisDrone 2019: Kumpulan data yang berisi gambar/video dari drone.
  2. KITTI: Kumpulan data gambar street view yang digunakan dalam mengemudi otonom.
  3. VOC 2012: Kumpulan data yang berisi objek dari skenario realistis dari berbagai jenis objek.
  4. Helm Pengaman: Terdiri dari gambar perlengkapan keselamatan pribadi.

Dari gambar 1–4 di atas, kita dapat menyimpulkan bahwa seiring dengan meningkatnya anggaran, Automode akan meningkatkan mAP model, namun kemudian menjadi stagnan. Dengan meningkatkan anggaran dari $7 menjadi $141, mAP meningkat sebesar 13% untuk VisDrone 2019 dan dengan meningkatkan anggaran dari $5 menjadi $52, peningkatan sebesar 4% terlihat pada kumpulan data VOC. Hal ini dapat dicapai tanpa memerlukan waktu atau upaya apa pun dari ilmuwan atau insinyur data.

Untuk perbandingan dengan pesaing, anggaran ditetapkan untuk mencapai metrik terbaik bagi pesaing.

Automode secara signifikan mengungguli pesaing 1 dengan anggaran yang sama sedangkan untuk pesaing 2, Automode berada di belakang ~1% untuk Helm Pengaman dan 0,1% untuk kumpulan data VOC dengan anggaran yang sama tetapi mengungguli kumpulan data VisDrone dan Kitti.

Klasifikasi Gambar
Untuk tugas ini kami memilih kumpulan data berikut:

  1. MIT Indoors: Kumpulan data untuk pengenalan pemandangan dalam ruangan.
  2. Deep Fashion: Kumpulan data pakaian berskala besar untuk e-commerce.
  3. Deep Weeds: Kumpulan data yang berisi gambar spesies gulma.

Seperti deteksi objek, kami melihat bahwa akurasi model meningkat ~2% dengan meningkatkan anggaran dari $3 menjadi $62 untuk Deep Fashion dan $1 menjadi $36 untuk MIT Indoors untuk tugas klasifikasi gambar.

Jika dibandingkan dengan pesaing, Automode secara signifikan mengungguli pesaing 1 dengan anggaran yang sama sedangkan untuk pesaing 2, Automode tertinggal 0,2% untuk Deep Weeds tetapi mengungguli kumpulan data MIT Indoors dan Deep Fashion.

Kesimpulan

Kami menemukan bahwa Automode di AutoML untuk Gambar adalah fitur yang sangat menyederhanakan kehidupan data scientist dan teknisi ML dengan menawarkan model berkualitas tinggi dan menghilangkan kebutuhan penyetelan hyperparameter manual. Silakan mencobanya dan beri tahu kami pendapat Anda!

Contoh Buku Catatan

Deteksi Objek Gambar
Klasifikasi Multikelas Gambar
Klasifikasi Multilabel Gambar
Segmentasi Instance Gambar

Contoh CLI

Deteksi Objek Gambar
Klasifikasi Multikelas Gambar
Klasifikasi Multilabel Gambar
Segmentasi Instance Gambar

Sumber daya

Terima kasih khusus kepada Mercy Ranjit, Rupal Jain, YiYou Lin!