Praktik terbaik

Halaman ini menjelaskan praktik terbaik dalam menyiapkan data, mengevaluasi model, dan meningkatkan performa model.

Menyiapkan data Anda

  • Data yang digunakan untuk pelatihan harus semirip mungkin dengan data yang ingin digunakan untuk membuat prediksi. Misalnya, jika dalam kasus penggunaan Anda terdapat video buram dengan resolusi rendah (seperti rekaman video kamera keamanan), data pelatihan Anda harus menyertakan video yang buram dan beresolusi rendah. Secara umum, Anda juga harus mempertimbangkan untuk menyediakan beberapa sudut, resolusi, dan latar belakang untuk video pelatihan.
  • Data pelatihan Anda harus memenuhi persyaratan minimal tertentu:

    • Jumlah minimum kotak pembatas per label adalah 10.
    • Label Anda harus berupa string yang valid (tanpa koma).
    • Semua frame video harus memiliki stempel waktu yang valid.
    • Semua URI video dalam CSV Anda harus disimpan di bucket Cloud Storage yang dapat diakses.
  • Semakin banyak data pelatihan dan pengujian yang Anda miliki, semakin baik. Semakin kuat modelnya, semakin banyak data yang dibutuhkan.

  • Jumlah data yang diperlukan untuk melatih model yang baik bergantung pada berbagai faktor:

    • Jumlah kelas. Makin unik class yang Anda miliki, semakin banyak sampel per class yang diperlukan.

    • Anda akan memiliki sekitar 100 frame video pelatihan per label. Dalam setiap frame, semua objek dalam label yang diinginkan harus diberi label.

    • Kompleksitas atau keberagaman kelas. Jaringan neural dapat dengan cepat membedakan antara kucing dan burung, tetapi akan membutuhkan lebih banyak sampel untuk mengklasifikasikan 30 spesies burung berbeda dengan benar.

    • Beberapa kualitas gambar mungkin hilang selama proses normalisasi frame untuk resolusi frame video yang lebih besar dari 1024 piksel kali 1024 piksel.

  • Hindari melatih model dengan data yang sangat tidak seimbang. Di banyak kasus, jumlah sampel per kelas tidak sama. Ketika perbedaannya tidak besar, itu tidak terlalu buruk. Namun, ketika ada ketidakseimbangan yang lebih besar—misalnya, beberapa class hadir lebih dari 10 kali lebih sering daripada yang lain—ini akan menjadi masalah.

Untuk mempelajari lebih lanjut, lihat informasi tentang menyiapkan data Anda.

Memisahkan data Anda

Dalam machine learning, Anda biasanya membagi set data menjadi tiga subset terpisah: set data pelatihan, set data validasi, dan set data pengujian. Set data pelatihan digunakan untuk membangun model. Model ini mencoba beberapa algoritma dan parameter saat mencari pola dalam data pelatihan. Saat mengidentifikasi pola, model akan menggunakan set data validasi untuk menguji algoritma dan polanya. Algoritma dan pola dengan performa terbaik dipilih dari yang diidentifikasi selama tahap pelatihan.

Setelah teridentifikasi algoritma dan pola dengan performa terbaik, keduanya diuji untuk mengetahui tingkat, kualitas, dan akurasi error menggunakan set data pengujian. Anda harus memiliki set data pengujian terpisah yang dapat digunakan untuk menguji model secara independen.

Validasi dan set data pengujian digunakan untuk menghindari bias dalam model. Selama tahap validasi, parameter model yang optimal digunakan, yang dapat menghasilkan metrik yang bias. Penggunaan set data uji untuk menilai kualitas model setelah tahap validasi akan memberikan penilaian kualitas model yang tidak bias.

Gunakan praktik terbaik berikut saat memisahkan data:

  • Sebaiknya semua set data (disebut juga pemisahan set data) mewakili populasi yang sama, memiliki video serupa, dengan distribusi label yang serupa.

    Saat Anda memberikan data, AutoML Video Object Tracking dapat otomatis membaginya menjadi set data pelatihan, validasi, dan pengujian. Anda juga dapat menetapkan label pemisahan latihan sendiri. Perhatikan bahwa saat AutoML Video Object Tracking menghasilkan pemisahan pelatihan, validasi, dan pengujian dari file CSV, fitur ini akan beroperasi di tingkat video. Semua label dari satu video hanya dapat termasuk ke dalam salah satu dari tiga {i>dataset<i} tersebut. Oleh karena itu, hanya direkomendasikan untuk memiliki sedikit video jika videonya berbeda atau jika distribusi labelnya tidak sama di antara video tersebut.

    Misalnya, jika Anda hanya memiliki 3 video dengan ribuan segmen video yang dianotasi di dalamnya, tetapi beberapa class hanya ada dalam masing-masing video, hal ini dapat terjadi bahwa model tidak dilatih untuk beberapa label, sehingga dapat melewatkan label tersebut selama prediksi.

  • Hindari kebocoran data. Kebocoran data terjadi saat algoritma dapat menggunakan informasi yang seharusnya tidak digunakan selama pelatihan model, dan informasi itu tidak akan tersedia selama prediksi di masa mendatang. Hal ini dapat menyebabkan hasil yang terlalu optimis pada set data pelatihan, validasi, dan pengujian; tetapi mungkin tidak berperforma baik saat diminta untuk membuat prediksi data yang tidak terlihat pada masa mendatang.

    Beberapa contoh kebocoran meliputi: bias berdasarkan sudut pandang kamera atau kondisi cahaya (pagi/malam); bias terhadap video yang memiliki komentator dan yang tidak memiliki komentator; bias yang didasarkan pada video dengan label tertentu yang berasal dari wilayah, kelompok bahasa, komentator tertentu, atau yang menyertakan logo yang sama.

    Untuk menghindari kebocoran data, lakukan hal berikut:

    • Memiliki kumpulan video dan sampel frame video yang beragam.
    • Tinjau video untuk memastikan tidak ada petunjuk tersembunyi (misalnya, video dengan sampel positif diambil pada siang hari, sedangkan video dengan sampel negatif diambil pada pagi hari).

Untuk mempelajari lebih lanjut, lihat informasi tentang menyiapkan data Anda.

Contoh sumber data

Untuk contoh sumber data, lihat set data deteksi video berikut yang tersedia untuk publik:

  • YouTube-BB: Set Data Deteksi Objek Video (5, 6 Juta Kotak Pembatas,240.000 Video, 23 jenis objek)
  • ImageNet-VID: Tantangan Deteksi Objek Video Imagenet (30 kategori tingkat dasar)

Melatih model Anda

Data yang sama dapat digunakan untuk melatih model yang berbeda dan untuk menghasilkan jenis prediksi yang berbeda, tergantung pada apa yang Anda butuhkan. Selain itu, melatih model yang sama pada data yang sama dapat memberikan hasil yang sedikit berbeda. Pelatihan model jaringan neural melibatkan operasi acak, sehingga kita tidak dapat menjamin akan melatih model yang sama persis dengan input yang sama, dan prediksinya mungkin sedikit berbeda.

Untuk mempelajari lebih lanjut, baca informasi mengenai cara mengelola model.

Mengevaluasi model Anda

Setelah model selesai dilatih, Anda dapat mengevaluasi performanya pada set data validasi dan pengujian atau pada set data baru Anda sendiri.

Konsep dan metrik evaluasi pelacakan objek yang umum meliputi:

  • Intersection over union (IOU) mengukur tumpang-tindih antara dua kotak pembatas, yang biasanya antara kebenaran dasar dan prediksi. Anda dapat menggunakannya untuk mengukur seberapa banyak kotak pembatas yang diprediksi tumpang-tindih dengan kebenaran dasar.
  • Area di Bawah Kurva Presisi/Perolehan (AuPRC), juga dikenal sebagai presisi rata-rata (AP). Nilai ini merupakan integral dari nilai presisi pada rentang nilai recall. Cara ini paling baik ditafsirkan untuk masalah biner.
  • Presisi rata-rata (mAP atau MAP) dapat dianggap sebagai rata-rata metrik presisi rata-rata (AP) pada beberapa class atau label. Terkadang, mAP dan AP digunakan secara bergantian.
  • Untuk masalah biner dan multi-class, Anda juga dapat memeriksa presisi dan perolehan pada berbagai batas skor keyakinan secara independen.
  • Jika tidak ada terlalu banyak label multi-class, Anda dapat memeriksa matriks konfusi yang menunjukkan label mana yang tidak ada.

Tidak semua metrik dapat digunakan untuk berbagai masalah pelacakan objek video. Misalnya, pemahaman intuitif tentang presisi dan penarikan dari masalah pelacakan objek menjadi lebih ambigu ketika mempertimbangkan beberapa class (masalah kelas jamak) atau jika ada beberapa label yang valid per sampel (masalah multi-label). Khusus untuk kasus selanjutnya, tidak ada metrik tunggal yang diterapkan dengan baik. Namun, Anda dapat mempertimbangkan metrik Presisi Rata-Rata untuk keputusan evaluasi.

Namun, perlu diingat bahwa mengevaluasi performa model berdasarkan satu angka atau metrik terlalu sederhana. Pertimbangkan untuk melihat berbagai metrik dan juga plot kurva presisi-recall untuk setiap class objek.

Berikut ini beberapa tips bermanfaat lainnya saat mengevaluasi model:

  • Perhatikan distribusi label dalam set data pelatihan dan pengujian Anda. Jika set data tidak seimbang, metrik dengan akurasi tinggi mungkin akan menyesatkan. Karena secara default setiap sampel memiliki bobot yang sama selama evaluasi, label yang lebih sering dapat memiliki lebih banyak bobot. Misalnya, jika ada 10 kali lebih banyak label positif kemudian negatif, dan jaringan memutuskan untuk hanya menetapkan semua sampel ke label positif, Anda masih dapat mencapai akurasi 91%, tetapi itu tidak berarti bahwa model yang dilatih sangat berguna.

  • Anda juga dapat mencoba menganalisis label kebenaran dan prediksi dasar, misalnya dalam skrip Python menggunakan scikit-learn. Di sana, Anda dapat melihat berbagai cara untuk menimbang label selama evaluasi: pendekatan umum mencakup rata-rata makro (metrik dihitung per kelas, lalu dirata-ratakan), dihitung (metrik dihitung per kelas, lalu dirata-ratakan berdasarkan bobot berdasarkan frekuensi setiap kelas), mikro (setiap sampel memiliki bobot yang sama, terlepas dari potensi ketidakseimbangan).

  • Proses men-debug model lebih terkait dengan men-debug data daripada model itu sendiri. Jika suatu saat model mulai bertindak secara tidak terduga saat Anda mengevaluasi performanya sebelum dan sesudah beralih ke produksi, Anda harus kembali dan memeriksa data untuk melihat bagian mana yang dapat ditingkatkan.

  • Terkadang video pengujian memiliki beberapa kasus adegan, di mana adegan baru muncul tanpa terlalu banyak keterkaitan konteks. Misalnya, dalam siaran pertandingan sepak bola langsung, tampilan kamera beralih dari tampilan vertikal ke tampilan samping. Dalam skenario seperti ini, model biasanya memerlukan 2-3 frame untuk mengikuti perubahan.

Untuk mempelajari lebih lanjut, lihat informasi tentang mengevaluasi model Anda.

Menguji model Anda

AutoML Video Object Tracking menggunakan 20% data Anda secara otomatis—atau, jika Anda memilih pembagian data sendiri, berapa pun persentase yang Anda pilih untuk digunakan—untuk menguji model tersebut.

Meningkatkan performa model

Jika Anda mendapatkan performa model awal dan ingin terus meningkatkannya, Anda dapat mencoba beberapa pendekatan berbeda:

  • Meningkatkan jumlah sampel berlabel (terutama untuk class yang kurang terwakili).
  • Beri label frame yang lebih bermakna:
    • Pilih frame untuk diberi label tempat beberapa objek muncul, bukan satu objek atau tidak ada objek.
    • Pilih frame yang berisi lebih banyak objek bergerak. Hal ini dapat memberikan informasi yang lebih sementara untuk dipelajari model selama pelatihan.
    • Pastikan semua bingkai yang dipilih diberi label dengan lengkap. Misalnya, jika melatih model deteksi kendaraan, Anda harus memberi label semua kendaraan yang dapat diamati secara visual dalam frame.
    • Jangan memilih frame di bagian paling awal video. Algoritma dapat diputar ulang guna mengambil frame untuk pelatihan guna merekam konteks gerakan. Informasi tersebut dapat hilang jika tidak ada/kurang frame di depan frame yang dipilih.
  • Periksa dengan cermat bagian mana yang berperforma model Anda kurang baik:

    • Mungkin class yang terlalu luas dan tidak mungkin untuk membaginya menjadi dua class atau lebih?
    • Atau mungkin beberapa kelas terlalu spesifik dan dapat digabungkan tanpa memengaruhi tujuan akhir project?
    • Sebaiknya beri label lebih banyak sampel, terutama untuk class yang berperforma relatif lebih buruk.
  • Mengurangi ketidakseimbangan data. Tambahkan lebih banyak sampel atau coba berpotensi mengurangi jumlah sampel class frekuensi tinggi, terutama dalam kasus ketika ada ketidakseimbangan besar, misalnya 1-ke-100 atau lebih.

  • Periksa dengan cermat dan coba hindari potensi kebocoran data.

  • Lepaskan class yang kurang penting untuk berkonsentrasi pada class yang lebih sedikit.

  • Tinjau opsi lain yang tersedia untuk Anda di halaman Dukungan.