Susun proyek pembelajaran mesin Anda untuk menciptakan hasil nyata dan meningkatkan efisiensi tim

AI kini ada di pikiran semua orang. Perusahaan-perusahaan mapan mulai melakukan disrupsi dan melakukan perubahan yang sangat lambat menuju organisasi berbasis data, sementara perusahaan rintisan perlu menerapkan strategi data yang jelas dan efisien agar tetap relevan.

Meskipun kebutuhan untuk memiliki strategi data kini diterima secara luas di perusahaan kecil dan besar, tantangan yang sama tetap ada: bagaimana menyusun dan mengelola proyek pembelajaran mesin?

Artikel ini menawarkan kerangka kerja untuk membantu Anda mengelola proyek pembelajaran mesin. Tentu saja, Anda harus menyesuaikannya dengan kebutuhan spesifik perusahaan Anda, namun ini akan membawa Anda ke arah yang benar.

Untuk tutorial video langsung tentang pembelajaran mesin, pembelajaran mendalam, dan kecerdasan buatan, lihat saluran YouTube saya.

Mengapa saya memerlukan strategi AI?

Tentu saja, kita harus memulai dengan mengapa. Mengapa penting untuk mengembangkan strategi AI dalam perusahaan?

Masalah dalam proyek pembelajaran mesin adalah ada banyak cara untuk meningkatkan kinerja model:

  • Kumpulkan lebih banyak data
  • Latih algoritme untuk waktu yang lebih lama
  • Ubah arsitektur model
  • Dapatkan set pelatihan yang lebih beragam

Namun, menerapkan strategi yang salah dapat mengakibatkan hilangnya waktu dan uang. Anda mungkin menghabiskan waktu enam bulan untuk mengumpulkan lebih banyak data untuk pelatihan, hanya untuk menyadari bahwa hal tersebut hampir tidak meningkatkan model Anda. Demikian pula, Anda dapat melatih model Anda secara membabi buta lebih lama (dan membayar waktu komputasi tambahan) dan tidak melihat peningkatan sama sekali.

Oleh karena itu pentingnya strategi AI yang terdefinisi dengan baik. Ini akan membantu membuat tim lebih efisien dan meningkatkan ROI proyek AI Anda.

Ortogonalisasi

Praktisi pembelajaran mesin yang paling efektif memiliki pandangan yang jelas tentang apa yang harus disesuaikan untuk mencapai hasil yang lebih baik.

Ortogonalisasi mengacu pada memiliki kontrol dengan fungsi yang sangat spesifik.

Misalnya kursi kantor memiliki tuas untuk menaikkan dan menurunkannya, sedangkan roda pada kursi membuatnya bergerak secara horizontal. Dalam hal ini tuas merupakan pengatur yang berfungsi untuk menaikkan dan menurunkan kursi. Roda-roda tersebut membentuk suatu pengatur yang berfungsi menggerakkan kursi secara horizontal.

Oleh karena itu, pengendalian ini dikatakan ortogonal: menggelindingkan kursi dengan rodanya tidak akan menurunkannya, seperti halnya menarik tuas kursi tidak akan membuatnya bergerak mundur.

Konsep yang sama harus diterapkan pada proyek pembelajaran mesin. Modifikasi tunggal pada proyek harus berdampak pada satu aspek. Jika tidak, Anda akan mengalami kemajuan dalam suatu bidang, namun akan menurunkan kinerja di bidang lain, dan proyek akan terhenti.

Bagaimana hal ini diterjemahkan ke dalam proyek AI?

Pertama, kita harus mempertimbangkan rantai asumsi dalam pembelajaran mesin.

Rantai asumsi dalam pembelajaran mesin

Diasumsikan bahwa jika model berperforma baik di set pelatihan, maka model akan berperforma baik di set pengembangan, kemudian berperforma baik di set pengujian, dan kemudian berperforma baik di dunia nyata.

Ini adalah daftar asumsi yang cukup umum di seluruh proyek AI. Sekarang, model manakah yang tidak berkinerja baik dalam salah satu situasi ini?

  • Set pelatihan: melatih jaringan yang lebih besar atau mengubah algoritme pengoptimalan
  • Set pengembangan: gunakan regularisasi atau set pelatihan yang lebih besar
  • Set pengujian: gunakan set pengembang yang lebih besar
  • Dunia nyata: Ubah distribusi set pengembang (lebih lanjut tentang itu nanti) atau ubah fungsi biaya

Daftar di atas memberikan kontrol ortogonal yang jelas untuk meningkatkan model dalam situasi yang sangat spesifik. Setelah model Anda berperforma baik di satu set, lanjutkan untuk meningkatkannya di set lainnya.

Sekarang, bagaimana Anda tahu apakah model Anda berperforma baik?

Menyiapkan tujuan

Seperti diuraikan di atas, Anda memerlukan sasaran yang jelas untuk menentukan apakah suatu model berkinerja baik. Oleh karena itu pentingnya menetapkan metrik evaluasi, serta memenuhi dan mengoptimalkan metrik.

Metrik evaluasi nomor tunggal

Memiliki metrik evaluasi tunggal memungkinkan penilaian suatu algoritma lebih cepat.

Misalnya, penggunaan presisi dan perolehan untuk pengklasifikasi adalah hal yang umum. Namun, ada trade off antara kedua metrik ini. Sebagai gantinya, gunakan skor F1, yang merupakan rata-rata harmonik dari presisi dan perolehan. Oleh karena itu, satu metrik digunakan, dan akan lebih mudah untuk menilai kualitas model yang berbeda dan mempercepat iterasi.

Memuaskan dan mengoptimalkan metrik

Setelah Anda memiliki satu metrik evaluasi, biasanya Anda melacak metrik penting lainnya.

Misalnya, Anda mungkin ingin membuat pengklasifikasi dengan skor F1 minimal 0,90 dan waktu proses kurang dari 200 md. Dalam hal ini, skor F1 adalah metrik pengoptimalan, sedangkan waktu proses adalah metrik memuaskan.

Metrik pengoptimalan biasanya sama dengan metrik evaluasi Anda, dan Anda hanya boleh memiliki satu metrik pengoptimalan. Metrik lain yang menarik adalah metrik yang memuaskan, dan akan membantu Anda memilih model terbaik secara keseluruhan yang memenuhi metrik pengoptimalan.

Pelatihan, pengembangan dan set pengujian

Set pelatihan, pengembangan, dan pengujian telah disebutkan di atas, tetapi apakah itu benar?

Set pelatihan dan pengembangan (atau ketidaksepakatan) digunakan untuk melatih model. Set pelatihan biasanya digunakan untuk menyesuaikan model dengan data, dan set pengembangan digunakan untuk membuat prediksi dan mengubah model.

Kemudian, set pengujian adalah contoh data kehidupan nyata tempat Anda menguji algoritme untuk melihat kinerjanya.

Distribusi kereta/pengembangan/pengujian

Setelah Anda memiliki kumpulan data yang berbeda, Anda harus memastikan bahwa distribusinya mewakili data yang Anda harapkan di masa depan.

Misalnya, jika Anda ingin membuat model untuk memberi label pada gambar dari upload seluler, tidak masuk akal untuk melatih model tersebut pada gambar resolusi tinggi dari internet. Unggahan seluler cenderung memiliki resolusi lebih rendah, gambar mungkin buram, dan objek mungkin tidak berada di tengah dengan sempurna. Oleh karena itu, set train/dev/test harus berisi jenis gambar tersebut.

Selain itu, Anda ingin setiap set berasal dari distribusi yang sama. Misalnya, Anda sedang membuat model untuk memprediksi churn klien, dan 6% dari kumpulan data Anda berisi contoh churn. Kemudian, set pelatihan, pengembangan, dan pengujian Anda juga harus memiliki sekitar 6% data sebagai instance churn.

Ukuran pelatihan/pengembangan/pengujian

Seberapa besar setiap setnya?

Biasanya, pembagiannya masing-masing menjadi 60/20/20 untuk set train/dev/test. Hal ini masih berlaku jika data tidak terlalu melimpah.

Namun, jika Anda memiliki jutaan instans, pemisahan yang lebih tepat adalah 98/1/1, karena model masih dapat divalidasi pada lebih dari 10.000 titik data.

Dibandingkan dengan kinerja tingkat manusia

Baru-baru ini, kami mulai melihat berita utama yang menyatakan bahwa sistem AI mengungguli manusia atau hampir mendekati kinerja manusia.

Sayangnya, manusia sangat ahli dalam banyak tugas dan sangat sulit untuk membuat sistem AI mendekati kinerja kita. Diperlukan data dalam jumlah besar, dan performa model Anda pada akhirnya akan stabil, sehingga sulit untuk ditingkatkan.

Namun, bagaimana cara meningkatkan model?

Jika model Anda overfitting, Anda harus mengurangi varians dengan:

  • Mengumpulkan lebih banyak data
  • Regularisasi (L2, dropout, augmentasi data)
  • Ubah modelnya

Jika model Anda kurang sesuai dengan data, Anda harus mengurangi bias dengan:

  • Melatih model yang lebih besar atau lebih kompleks
  • Gunakan algoritme pengoptimalan yang lebih baik atau latih untuk waktu yang lebih lama
  • Ubah modelnya

Jika tidak ada satu pun metode di atas yang memberikan dampak signifikan, maka langkah selanjutnya adalah memberi label data oleh manusia. Meskipun mahal dan sulit, langkah ini akan membawa model Anda sedekat mungkin dengan performa tingkat manusia.

Kata-kata terakhir

Membangun sistem AI adalah proses yang berulang. Penting untuk membangun dengan cepat, menguji, dan meningkatkan. Jangan bertujuan untuk membangun sistem yang sangat kompleks pada awalnya, namun jangan membangun sesuatu yang terlalu sederhana.

Saya harap ini membantu Anda mengelola dan merencanakan proyek AI Anda dengan lebih baik. Potensi AI sangat besar di banyak industri dan memanfaatkan peluang ini sangatlah penting. Memiliki strategi AI yang jelas akan membantu Anda berselancar di tengah ombak alih-alih tenggelam.

Sumber: Deeplearning.ai