
Author(s): Akhil Theerthala
Awalnya diterbitkan di Menuju AI.
Halo semuanya!
Ini adalah Akhil Theerthala. Artikel lain dalam seri MLOps telah tiba, dan saya harap Anda menikmatinya. Kami telah memeriksa fase-fase project Machine Learning, mendapatkan pandangan tingkat tinggi tentang praktik terbaik penerapan, dan sekarang menyelami praktik terbaik pemodelan. Jika Anda melewatkan artikel sebelumnya yang menjelaskan tentang pemodelan (3.1), Anda dapat membacanya di sini.
Menindaklanjuti diskusi kita sebelumnya, di sini, kita akan berbicara tentang analisis kesalahan model dan kesulitan serta praktik terbaik yang menyertainya.
Seorang pria mencoba mencari solusi. Gambar dihasilkan oleh MidJourney.
Mengapa kita bahkan membutuhkan analisis kesalahan?
Sebelum menyelam, mari kita mundur selangkah dan bertanya pada diri sendiri pertanyaan ‘mengapa’. Katakanlah kita telah melatih model pembelajaran mesin. Sekarang, entah bagaimana kita perlu mengevaluasi kinerjanya. Evaluasi ini umumnya dilakukan oleh metrik tradisional seperti akurasi, yang menentukan apakah model tersebut bernilai.
Kami biasanya tidak akan mendapatkan performa terbaik saat melatih model untuk pertama kalinya. Kami, lebih sering daripada tidak, mendapatkan model dengan kinerja buruk atau kinerja rata-rata. Jadi, bagaimana cara mengubah arsitektur asli untuk mencapai performa ideal dan membangun sesuatu yang berguna?
Analisis kesalahan membantu kami memecah kinerja model secara bermakna ke dalam kelompok yang lebih mudah dianalisis dan membantu kami menyoroti kesalahan yang paling sering serta karakteristiknya.
Untuk melihat praktik standar yang terlibat, mari kita kembali ke model transkripsi ucapan yang telah kita bahas di artikel sebelumnya. Dalam model transkripsi ucapan, kami telah melihat kebisingan dari berbagai area seperti kendaraan, orang, dll. Bagaimana kami menganalisis kinerja model dan menemukan area peningkatan?
Salah satu cara analisis adalah dengan menandai sampel secara manual di bawah kategori yang berbeda dan menemukan kelas dengan cakupan peningkatan tertinggi, misalnya melalui contoh secara manual dan menganotasinya dalam spreadsheet. Dalam proyek transkripsi ucapan ini, kami mengambil label dan prediksi untuk model kami dan mencoba mengenali jenis derau apa yang membingungkan model tersebut.
Untuk mudahnya, mari kita tandai hanya 2 jenis kebisingan, yang satu dibuat oleh mobil, dan yang lainnya adalah kebisingan yang dibuat oleh orang-orang sekitar. Kemudian, kami mendapatkan spreadsheet sebagai tabel berikut,
Contoh spreadsheet dengan tag yang menunjukkan derau yang teridentifikasi dalam klip audio.
Kami mungkin menemukan tag lain yang dapat memengaruhi kesalahan selama analisis yang bahkan belum kami pertimbangkan sebelumnya. Dalam kasus kami, beberapa kesalahan mungkin disebabkan oleh bandwidth speaker yang rendah atau dialek yang berbeda, dll. Dalam kasus tersebut, kategori baru kemudian diidentifikasi dan diberi tag yang sesuai. Hal ini ditunjukkan pada tabel berikut,
Menambahkan sumber kesalahan baru yang teridentifikasi selama analisis kesalahan.
Proses ini bertujuan untuk mengembangkan beberapa penalaran tentang apa yang menyebabkan kesalahan dan kemudian secara produktif meningkatkan algoritme berdasarkan alasan tersebut. Kami dapat mempertimbangkan beberapa metrik signifikan berikut untuk membentuk penalaran.
Berapa fraksi kesalahan yang dimiliki tag yang sesuai? Fraksi apa yang salah diklasifikasikan atau salah ditranskripsikan dari semua data dengan tag itu?
– Fraksi ini memberi kita kinerja data dalam kategori yang sesuai dan juga memberi tahu kita seberapa sulit peningkatan kinerja itu. Berapa bagian dari data yang memiliki tag itu?
– Ini memberi tahu kita betapa pentingnya contoh dengan tag dalam kumpulan data lengkap. Berapa banyak ruang untuk perbaikan yang ada pada data dengan tag itu?
– Ini didasarkan pada baseline yang kami putuskan untuk model. Dalam kasus kami, ini bisa menjadi kinerja model tingkat manusia.
Bagaimana memprioritaskan apa yang harus dikerjakan?
Satu hal umum yang kami dengar hingga saat ini adalah mengerjakan kategori dengan cakupan tertinggi untuk peningkatan. Tetapi bagaimana mengidentifikasi ruang lingkup peningkatan ini? Apakah ada aturan yang ditentukan sebelumnya untuk itu?
Jawabannya adalah TIDAK. Tidak ada aturan yang ditentukan sebelumnya untuk memutuskan apa yang harus kita kerjakan. Namun berdasarkan pertanyaan sebelumnya, kita bisa mendapatkan gambaran umum tentang apa yang bisa kita kerjakan. Jadi, untuk menggambarkan situasi dalam model di atas yang kami definisikan, mari kita perhatikan tabel berikut,
Ini adalah tabel sampel, yang mencatat jawaban untuk rangkaian pertanyaan sebelumnya.
Ruang peningkatan yang ideal memberi kita persentase peningkatan yang kita dapatkan jika kita mencoba menyamai kinerja tingkat manusia. Dalam kasus ucapan bersih, idealnya, kita dapat melihat peningkatan 1% dari 60% data yang menghasilkan peningkatan kinerja sekitar 0,6%. Demikian pula, perhitungan dilakukan untuk semua tag yang diidentifikasi. Untuk data contoh kami, ini menyarankan agar kami mengerjakan Kebisingan Orang atau Ucapan Bersih untuk meningkatkan model kami.
Kami juga dapat menambahkan kolom baru yang menunjukkan seberapa penting sebuah tag untuk model kami. Misalnya, meningkatkan performa pada sampel dengan kebisingan mobil mungkin berguna saat pelanggan target kami lebih menikmati berkendara daripada aktivitas lainnya. Dalam hal ini, kami perlu menambahkan lebih banyak data untuk kategori spesifik tersebut dan berfokus pada peningkatan performa.
Bekerja dengan Kumpulan Data Miring.
Hingga saat ini, kami telah melihat model yang dihasilkan pada kumpulan data standar. Selain itu, kami juga memiliki model di mana kami perlu mengerjakan kumpulan data miring dan melakukan analisis kesalahan. Kita mungkin mengembangkan sebuah model untuk sebuah pabrik dimana 99,7% barang yang diproduksi tidak memiliki cacat dan hanya 0,3% yang cacat. Atau kita bisa membangun sistem diagnosis medis di mana 99% pasien tidak mengidap penyakit tersebut.
Dalam kasus ini, kami tidak menggunakan akurasi. Sebagai gantinya, kami akan membuat matriks Kebingungan dan menghitung Presisi dan Ingat untuk prediksi. Matriks konfusi biasanya adalah matriks 2×2 yang umumnya memiliki prediksi model di sepanjang satu sumbu dan label sebenarnya di sepanjang sumbu lainnya. Gambar berikut menjelaskan matriks kebingungan yang khas.
Matriks kebingungan.
Dengan menggunakan nilai dalam matriks konfusi, kita juga dapat membentuk metrik yang berbeda dan menggunakannya. Beberapa metrik adalah presisi dan daya ingat.
Presisi: Proporsi prediksi benar yang benar-benar benar.
Rumus untuk Presisi.
Ingat: Proporsi prediksi sebenarnya yang benar yang diidentifikasi dengan benar.
Rumus untuk Ingat.
Karena kami harus terus-menerus memantau 2 metrik ini setiap saat, beberapa metrik campuran, yang memberi peringatan jika salah satunya tidak sesuai, ditentukan dengan menggabungkan kedua metrik ini. Salah satu metrik standar adalah skor f-beta, rata-rata harmonik tertimbang dari presisi dan daya ingat, yang mencapai nilai optimalnya pada 1 dan nilai terburuknya pada 0.
Skor f-beta yang paling umum digunakan adalah skor f-1, di mana kami memberikan bobot yang sama untuk presisi dan daya ingat.
Rumus untuk skor F1.
Sejauh ini, kami hanya melihat metrik untuk masalah klasifikasi biner. Namun ada beberapa cara berbeda untuk menggunakan metrik ini untuk metrik multi-kelas. Salah satu caranya adalah menemukan metrik secara independen untuk setiap kelas dan menggunakannya untuk mengevaluasi model, yaitu menganggap setiap kelas sebagai klasifikasi biner.
Audit Kinerja
Meskipun model berkinerja baik dalam metrik pelatihan dan analisis kesalahan, disarankan untuk melakukan satu audit kinerja akhir sebelum mengirimkannya ke produksi. Ada banyak cara audit dapat dilakukan.
Salah satu kerangka kerja untuk mengaudit model Anda adalah sebagai berikut.
Brainstorming cara model bisa salah seperti Kinerja pada himpunan bagian data, Seberapa umum kesalahan spesifik? Performa pada kelas langka, dll., Setelah mengidentifikasi kesalahan model, Anda dapat membuat metrik untuk menilai performa terhadap masalah ini. Setelah menetapkan metrik ini, kami dapat mengevaluasinya secara manual atau menggunakan alat MLOps otomatis yang berbeda untuk mengaudit kinerja ini.
Sampai saat ini, proses manual ini lebih disukai, namun belakangan ini muncul alat MLOps yang membantu kita mengidentifikasi berbagai jenis kesalahan dengan mudah. Pada akhirnya terserah preferensi pengguna.
Dengan ini, kami telah menyelesaikan analisis kesalahan model pembelajaran mesin. Sekarang, ada satu langkah terakhir yang tersisa untuk dijelajahi dalam fase pemodelan proyek, yaitu pendekatan berbasis data untuk pemodelan. Saya sedang mengerjakan artikel ini saat ini, dan Anda dapat mengharapkannya sebelum waktu yang sama, minggu depan.
Sementara itu, jika Anda ingin membaca catatan saya di CNN, Anda dapat membacanya di sini, atau jika Anda masih belum membaca catatan MLOps bagian terakhir, Anda dapat menemukannya di sini atau di tautan yang tersedia di bawah ini. Terima kasih sudah membaca!
PS Anda dapat berlangganan menggunakan tautan ini jika Anda menyukai artikel ini dan ingin diberi tahu segera setelah artikel baru dirilis.
Catatan MLOps 3.2: Analisis Kesalahan untuk model pembelajaran Mesin awalnya diterbitkan di Towards AI on Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI