Jika Anda membaca blog ini, Anda mungkin tertarik untuk membuat model machine learning (ML) khusus. Saya baru saja menjalani prosesnya sendiri, membuat detektor anjing khusus untuk dipakai bersama Codelab, Membuat aplikasi web pendeteksi objek khusus dengan MediaPipe. Seperti setiap tugas coding baru, proses ini membutuhkan beberapa kali uji coba untuk mengetahui apa yang saya lakukan selama prosesnya. Untuk meminimalkan error dalam pengalaman "uji coba" Anda, saya dengan senang hati membagikan lima hal yang dapat diambil dari pengalaman pelatihan model saya.
Mempersiapkan data Anda untuk pelatihan akan terlihat berbeda tergantung pada tipe model yang disesuaikan. Secara umum, ada langkah untuk mengumpulkan data dan langkah untuk membuat anotasi data.
Menemukan cukup titik data yang paling merepresentasikan kasus penggunaan Anda merupakan sebuah tantangan. Pertama, Anda harus memastikan bahwa Anda memiliki hak untuk menggunakan semua gambar atau teks yang Anda sertakan dalam data. Periksa lisensi data Anda sebelum melakukan pelatihan. Salah satu cara untuk mengatasi hal ini adalah dengan menyediakan data Anda sendiri. Kebetulan saya memiliki ratusan foto anjing saya, jadi memilih foto tersebut untuk detektor objek saya sangatlah mudah. Anda juga bisa mencari set data yang ada di Kaggle. Ada begitu banyak pilihan di Kaggle yang mencakup berbagai macam kasus penggunaan. Jika beruntung, Anda akan menemukan set data yang sesuai dengan kebutuhan Anda dan mungkin sudah memiliki anotasi!
MediaPipe Model Maker menerima data dengan setiap input memiliki file XML yang sesuai yang mencantumkan anotasinya. Misalnya:
Ada beberapa program software yang bisa membantu dengan anotasi. Hal ini sangat berguna ketika Anda perlu menyoroti area gambar tertentu. Sebagian program software didesain untuk memungkinkan kolaborasi–UI yang intuitif dan petunjuk untuk anotator yang berarti Anda bisa meminta bantuan orang lain. Opsi open source yang sering dipakai adalah Label Studio, yang saya gunakan untuk membuat anotasi gambar saya.
Jadi, bersiaplah karena langkah ini akan memakan waktu lama, tetapi ingatlah bahwa ini akan memakan waktu lebih lama dari yang Anda perkirakan.
Jika Anda sama seperti saya, Anda pasti memiliki ide yang luar biasa besar untuk model khusus pertama Anda. Anjing saya, Ben, adalah inspirasi untuk model pertama saya. Dia berasal dari tempat penyelamatan golden retriever lokal, tetapi ketika saya melakukan tes DNA, ternyata dia 0% golden retriever! Ide pertama saya adalah membuat detektor golden retriever – solusi yang bisa memberi tahu Anda apakah seekor anjing adalah "golden retriever" atau "bukan golden retriever". Saya pikir akan menyenangkan melihat apa yang dipikirkan model tentang Ben, tetapi saya segera menyadari bahwa saya harus mengumpulkan lebih banyak gambar anjing selain yang saya miliki agar saya dapat menjalankan model tersebut pada anjing lain juga. Dan, saya harus memastikan bahwa model ini dapat secara akurat mengidentifikasi golden retriever dari semua warna. Setelah berjam-jam melakukan upaya ini, saya menyadari Saya harus menyederhanakannya. Saat itulah saya memutuskan untuk mencoba solusi untuk ketiga anjing saya. Saya memiliki banyak foto yang bisa dipilih, jadi saya memilih foto terbaik yang menunjukkan anjing-anjing ini secara detail. Ini adalah solusi yang jauh lebih berhasil, dan merupakan bukti konsep yang bagus untuk model golden retriever saya, karena saya menolak untuk meninggalkan ide tersebut.
Inilah beberapa cara untuk menyederhanakan model khusus pertama Anda:
Jadi, ketika sampai pada pengalaman pelatihan ML pertama Anda, ingatlah untuk sederhanakan, sederhanakan, sederhanakan.
Sederhanakan.
Sederhanakan.
Meskipun saya ingin mengatakan dengan percaya diri bahwa Anda akan mendapatkan hasil yang tepat dari model pada saat pertama kali Anda melatihnya, itu kemungkinan besar tidak akan terjadi. Meluangkan waktu Anda untuk memilih contoh data dan anotasi sudah pasti akan meningkatkan keberhasilan Anda, tetapi ada begitu banyak faktor yang bisa mengubah perilaku model. Anda mungkin menemukan bahwa Anda perlu memulai dengan arsitektur model yang berbeda untuk mencapai akurasi yang diinginkan. Atau, Anda dapat mencoba pembagian data pelatihan dan validasi yang berbeda. Anda mungkin perlu menambahkan lebih banyak contoh ke set data Anda. Untungnya, transfer learning dengan MediaPipe Model Maker umumnya membutuhkan waktu beberapa menit, sehingga Anda dapat mengerjakan iterasi baru secara cepat.
Setelah selesai melatih model, Anda mungkin sangat bersemangat dan ingin segera menambahkannya ke aplikasi Anda. Namun, saya menganjurkan Anda untuk mencoba model terlebih dahulu di MediaPipe Studio untuk beberapa alasan:
Dengan MediaPipe Studio, saya dapat dengan cepat mencoba ambang batas skor yang berbeda pada berbagai gambar untuk menentukan ambang batas yang harus saya gunakan dalam aplikasi. Saya juga mengeliminasi aplikasi web saya sebagai faktor dalam performa ini.
Setelah mengumpulkan data yang berkualitas, menyederhanakan kasus penggunaan, pelatihan, dan pembuatan prototipe, Anda mungkin merasa bahwa Anda perlu mengulangi siklus untuk mendapatkan hasil yang tepat. Jika hal itu terjadi, pilih satu bagian saja dari proses yang perlu diubah, dan lakukan perubahan kecil. Dalam kasus saya, banyak foto anjing yang diambil pada sofa biru yang sama. Jika model mulai terbiasa dengan sofa ini, karena sering berada dalam kotak pembatas, maka itu bisa memengaruhi caranya mengategorikan gambar ketika anjing tidak berada di sofa. Daripada membuang semua foto sofa, saya hanya menghapus beberapa foto dan menambahkan sekitar 10 foto lagi untuk setiap anjing saat mereka tidak berada di sofa. Ini sangat meningkatkan hasil saya. Jika Anda mencoba membuat perubahan besar secara langsung, Anda mungkin akan memunculkan masalah baru, alih-alih menyelesaikannya.
Dengan memperhatikan semua tips ini, sekaranglah saatnya bagi Anda untuk menyesuaikan solusi ML Anda sendiri! Anda bisa menyesuaikan model klasifikasi gambar, pengenalan gestur, klasifikasi teks, atau deteksi objek untuk digunakan di MediaPipe Tasks.
Jika Anda ingin membagikan pembelajaran dari pelatihan model pertama Anda, posting detailnya di LinkedIn bersama dengan link ke postingan blog ini, lalu tag saya. Saya tidak sabar melihat apa yang Anda pelajari dan apa yang akan Anda bangun!