Terjemahan buku Andrew Un, Passion for Machine Learning, Bab 15-19

bab sebelumnya


15. Evaluasi simultan beberapa ide selama analisis kesalahan


Tim Anda memiliki beberapa ide tentang cara meningkatkan pengidentifikasi kucing di aplikasi Anda:


  • Selesaikan masalah yang algoritma Anda tetapkan untuk kucing
  • Selesaikan masalah dengan fakta bahwa algoritme Anda mengenali kucing liar besar (singa, macan kumbang, dll.) Sebagai hewan peliharaan
  • Meningkatkan kinerja sistem pada gambar fuzzy
  • ...

Anda dapat menghargai semua ide ini secara bersamaan. Biasanya saya membuat tabel khusus dan mengisinya untuk sekitar 100 kasus klasifikasi yang salah dari sampel validasi (dev). Saya juga membuat komentar singkat yang dapat membantu saya mengingat contoh-contoh spesifik setelahnya. Untuk menggambarkan proses ini, mari kita lihat tabel pivot yang dapat Anda buat dari sekumpulan contoh sampel validasi (dev) Anda


GambarAnjingKucing besarFuzzyKomentar
1xPit bull yang tidak biasa
2
3xxLeo foto diambil di kebun binatang pada hari hujan
4xPanther di belakang pohon
Bagikan (%)25%50%50%

Gambar 3 di tabel berlaku untuk kucing besar dan kucing berbulu halus. Karena itu, karena kita dapat mengaitkan satu gambar dengan beberapa kategori kesalahan, persentase total pada garis bawah tidak dibatasi hingga 100%.


Terlepas dari kenyataan bahwa pada awal pekerjaan Anda dapat membuat serangkaian kategori kesalahan tertentu (Anjing, Kucing besar, gambar Fuzzy) dalam proses pengelompokan kesalahan klasifikasi secara manual ke dalam kategori ini, Anda dapat memutuskan untuk menambah jenis kesalahan baru. Sebagai contoh, misalkan Anda melihat selusin gambar dan memutuskan bahwa banyak kesalahan dilakukan oleh classifier pada gambar Instagram yang diberi kode warna. Anda dapat mengulangi tabel, menambahkan kolom "Instagram" ke dalamnya, dan mengklasifikasi ulang kesalahan berdasarkan kategori ini. Dengan memeriksa secara manual contoh di mana algoritme salah dan bertanya pada diri sendiri bagaimana Anda, sebagai orang, dapat menandai gambar dengan benar, Anda akan dapat melihat kategori kesalahan baru dan, mungkin, terinspirasi untuk menemukan solusi baru.


Kategori kesalahan yang paling berguna adalah yang Anda punya ide untuk memperbaiki sistem. Misalnya, menambahkan kategori "Instagram" akan sangat berguna jika Anda memiliki ide bagaimana menghapus filter dan mengembalikan gambar asli. Tetapi Anda tidak boleh membatasi diri Anda hanya pada kategori-kategori kesalahan yang Anda punya resep untuk menghilangkannya; Tujuan dari proses analisis kesalahan adalah untuk mengembangkan intuisi Anda ketika memilih area fokus yang paling menjanjikan.


Analisis kesalahan adalah proses berulang. Jangan khawatir jika Anda memulainya tanpa membuat satu kategori. Setelah melihat beberapa gambar, Anda akan memiliki beberapa ide untuk mengelompokkan kesalahan. Setelah mengelompokkan beberapa gambar secara manual, Anda mungkin ingin menambahkan kategori baru dan meninjau kesalahan klasifikasi berdasarkan kategori yang baru ditambahkan, dan seterusnya.


Misalkan Anda telah menyelesaikan analisis kesalahan dari 100 contoh sampel validasi yang diklasifikasikan secara keliru dan memperoleh yang berikut:


GambarAnjingKucing besarFuzzyKomentar
1XPit bull yang tidak biasa
2X
3XXLeo foto diambil di kebun binatang pada hari hujan
4XPanther di belakang pohon
...............
Bagikan (%)8%43%61%

Sekarang Anda tahu bahwa mengerjakan proyek untuk menghilangkan klasifikasi anjing yang keliru karena kucing, paling tidak, akan menghilangkan 8% kesalahan. Bekerja pada Kucing Besar atau pada Gambar Fuzzy akan membantu menyingkirkan jumlah kesalahan yang jauh lebih besar. Karena itu, Anda dapat memilih salah satu dari dua kategori ini dan fokus pada mereka. Jika tim Anda memiliki cukup banyak orang untuk bekerja di beberapa area secara bersamaan, Anda dapat meminta beberapa insinyur untuk menangani kucing besar, memusatkan seluruh upaya pada gambar fuzzy.


Analisis kesalahan tidak menyediakan rumus matematika yang keras yang memberi tahu Anda tugas mana yang Anda perlukan untuk menetapkan prioritas tertinggi. Anda juga harus mengkorelasikan kemajuan yang dibuat dari bekerja pada berbagai kategori kesalahan dan upaya yang perlu dilakukan untuk pekerjaan ini.


16. Menghapus validasi dan menguji sampel dari contoh yang salah label


Saat menganalisis kesalahan, Anda mungkin memperhatikan bahwa beberapa contoh dalam sampel validasi Anda diberi label yang salah (ditetapkan ke kelas yang salah). Ketika saya mengatakan "salah label," maksud saya bahwa gambar sudah diklasifikasikan secara salah ketika ditandai oleh seseorang sebelum algoritma mendeteksi ini. Yaitu, ketika menandai contoh (x, y) untuk y, nilai yang salah ditunjukkan. Sebagai contoh, anggaplah beberapa gambar di mana tidak ada kucing yang secara keliru diberi label mengandung kucing dan sebaliknya. Jika Anda menduga bahwa persentase contoh yang diberi label keliru adalah signifikan, tambahkan kategori yang sesuai untuk melacak contoh yang berlabel salah:


GambarAnjingKucing besarFuzzyKesalahan markupKomentar
..................
98XDilabeli dengan keliru sebagai kucing di latar belakang
99X
100XCat yang dicat (tidak asli)
Bagikan (%)8%43%61%6%

Apakah Anda perlu memperbaiki data yang ditandai dengan salah dalam sampel validasi Anda? Biarkan saya mengingatkan Anda bahwa tugas menggunakan sampel validasi adalah untuk membantu Anda dengan cepat mengevaluasi algoritma sehingga Anda dapat memutuskan apakah algoritma A lebih baik daripada B. Jika proporsi sampel validasi yang ditandai dengan salah mencegah Anda membuat penilaian seperti itu, maka masuk akal untuk menghabiskan waktu koreksi kesalahan dalam penandaan sampel validasi.


Misalnya, bayangkan bahwa akurasi yang ditampilkan oleh klasifikasi Anda adalah sebagai berikut:


  • Keakuratan keseluruhan sampel validasi ............. ..90% (total kesalahan 10%)
  • Kesalahan yang terkait dengan kesalahan markup …………… ..0.6% (6% dari total kesalahan dalam sampel validasi)
  • Kesalahan karena alasan lain ................. 9,4% (94% dari total kesalahan dalam sampel validasi)

Di sini, kesalahan 0,6% karena pelabelan yang salah mungkin tidak cukup signifikan sehubungan dengan kesalahan 9,4% yang bisa Anda tingkatkan. Koreksi manual terhadap kesalahan markup dari sampel validasi tidak akan berlebihan, tetapi koreksinya tidak penting karena tidak masalah jika total kesalahan nyata sistem Anda adalah 9,4% atau 10%


Misalkan Anda meningkatkan klasifikasi kucing Anda dan telah mencapai metrik akurasi berikut:


  • Keakuratan keseluruhan sampel validasi ............. ..98% (total kesalahan 2%)
  • Kesalahan yang terkait dengan kesalahan markup …………… ..0.6% (30% dari total kesalahan dalam sampel validasi)
  • Kesalahan karena alasan lain ................. 1.4% (70% dari total kesalahan dalam sampel validasi)

30% kesalahan Anda disebabkan oleh penandaan gambar sampel validasi yang salah, bagian ini memberikan kontribusi signifikan terhadap kesalahan keseluruhan dalam menilai keakuratan sistem Anda. Dalam hal ini, ada baiknya meningkatkan penandaan sampel validasi. Menghilangkan contoh berlabel salah akan membantu Anda mengetahui di mana kesalahan klasifikasi Anda lebih dekat ke 1,4% atau 2%. Ada perbedaan relatif yang signifikan antara 1,4 dan 2.


Tidak jarang gambar yang diberi label salah validasi atau sampel uji mulai menarik perhatian Anda hanya setelah sistem Anda meningkat begitu banyak sehingga tingkat kesalahan yang terkait dengan contoh yang salah akan meningkat sehubungan dengan kesalahan total dalam sampel ini.


Bab selanjutnya menjelaskan bagaimana Anda dapat meningkatkan kategori kesalahan seperti Anjing, Kucing Besar, dan Fuzzy saat bekerja pada peningkatan algoritma. Dalam bab ini, Anda belajar bahwa Anda dapat mengurangi kesalahan yang terkait dengan kategori "Kesalahan Layout" dan meningkatkan kualitas dengan meningkatkan markup data.


Apa pun pendekatan yang Anda gunakan untuk menandai sampel validasi, jangan lupa menerapkannya pada tata letak sampel uji, sehingga validasi dan sampel uji Anda akan memiliki distribusi yang sama. Menerapkan pendekatan yang sama untuk validasi dan sampel uji, Anda akan mencegah masalah yang kita bahas pada Bab 6 ketika tim Anda mengoptimalkan kualitas algoritma dalam sampel validasi dan kemudian menyadari bahwa kualitas ini dievaluasi berdasarkan perbedaan dari sampel uji validasi.


Jika Anda memutuskan untuk meningkatkan markup Anda, pertimbangkan untuk memeriksa ulang. Periksa markup contoh yang diklasifikasikan oleh sistem Anda salah dan markup contoh yang diklasifikasikan dengan benar. Mungkin saja markup awal dan algoritma pembelajaran Anda salah pada contoh yang sama. Jika Anda hanya memperbaiki markup dari contoh-contoh di mana sistem Anda membuat kesalahan dalam klasifikasi, Anda dapat memperkenalkan kesalahan sistematis dalam penilaian Anda. Jika Anda mengambil 1000 contoh sampel validasi, dan jika classifier Anda menunjukkan akurasi 98,0%, lebih mudah untuk memeriksa 20 contoh yang diklasifikasikan secara salah dari 980 contoh yang diklasifikasikan dengan benar. Karena kenyataan bahwa dalam praktiknya lebih mudah untuk memeriksa hanya contoh yang salah klasifikasi, dalam beberapa kasus kesalahan sistematis dapat merambah ke dalam sampel validasi. Kesalahan semacam itu diperbolehkan jika Anda hanya tertarik mengembangkan aplikasi, tetapi akan menjadi masalah jika Anda berencana untuk menggunakan hasil Anda dalam artikel penelitian akademis atau perlu pengukuran keakuratan algoritma pada sampel uji yang sepenuhnya bebas dari kesalahan sistematis.


17. Jika Anda memiliki sampel validasi yang besar, bagilah menjadi dua contoh, dan pertimbangkan hanya satu saja.


Misalkan Anda memiliki sampel validasi besar yang terdiri dari 5000 contoh di mana tingkat kesalahan adalah 20%. Dengan demikian, algoritma Anda tidak mengklasifikasikan dengan benar sekitar 1000 gambar validasi. Penilaian manual terhadap 1000 gambar akan memakan waktu lama, jadi kami mungkin memutuskan untuk tidak menggunakan semuanya untuk tujuan analisis kesalahan.


Dalam hal ini, saya pasti akan membagi sampel validasi menjadi dua sub-sampel, satu di antaranya akan Anda amati, dan yang lainnya tidak. Anda cenderung melatih ulang pada bagian yang akan Anda analisis secara manual. Anda dapat menggunakan bagian yang tidak Anda gunakan untuk analisis manual untuk mengkonfigurasi parameter model.


mata


Mari kita lanjutkan contoh kita yang dijelaskan di atas, di mana algoritma salah mengklasifikasikan 1000 contoh dari 5000 yang merupakan sampel validasi. Bayangkan Anda ingin mengambil 100 kesalahan untuk analisis (10% dari semua kesalahan dalam sampel validasi). Kita perlu memilih secara acak 10% dari contoh dari sampel validasi dan menyusun darinya “ Eyeball dev set ” ( Eyeball dev set ), kami menamainya sehingga kami selalu ingat bahwa kami mempelajari contoh-contoh ini dengan mata kepala sendiri.


Komentar penerjemah: dari sudut pandang saya, definisi "pemilihan bola mata" sama sekali tidak terdengar harmonis (terutama dari sudut pandang bahasa Rusia). Tetapi dengan segala hormat kepada Andrew (dan dengan mempertimbangkan bahwa saya tidak menemukan sesuatu yang lebih baik), saya akan meninggalkan definisi ini


(Untuk proyek pengenalan ucapan di mana Anda akan mendengarkan klip audio, mungkin Anda akan menggunakan sesuatu seperti "sampel validasi untuk telinga"). Dengan demikian, sampel validasi bola mata terdiri dari 500 contoh, di mana seharusnya ada sekitar 100 kesalahan klasifikasi. Subsampel kedua dari sampel validasi, yang akan kita sebut set Blackbox dev , akan terdiri dari 4.500 contoh. Anda dapat menggunakan "Subsampling Kotak Hitam" untuk secara otomatis mengevaluasi kualitas pengklasifikasi, mengukur bagian kesalahan mereka. Anda juga dapat menggunakan subsampel ini untuk memilih antara algoritme atau mengonfigurasi hyperparameter. Namun, Anda harus menghindari melihat contoh-contoh subsampel ini dengan mata Anda sendiri. Kami menggunakan istilah "Kotak Hitam" karena kami akan menggunakan subsampel komponennya sebagai "kotak hitam"
sekitar penerjemah : mis. objek yang strukturnya tidak kita ketahui
untuk menilai kualitas pengklasifikasi.


gambar


Mengapa kami secara eksplisit memisahkan sampel validasi ke dalam “Sampel bola mata” dan “sampel kotak hitam”?
Karena pada titik tertentu Anda akan semakin merasakan (memahami) contoh-contoh dalam "Subsampling Eyeball", kemungkinan bahwa Anda akan berlatih ulang pada subsampel ini akan meningkat. Untuk mengendalikan pelatihan ulang, kita akan menggunakan "Black Box Subsampling". Jika Anda melihat bahwa kualitas algoritme pada Sampel Bola Mata tumbuh secara signifikan lebih cepat daripada kualitas pada Sampel Kotak Hitam, Anda tampaknya telah dilatih ulang pada Bola Mata. Dalam hal ini, Anda mungkin perlu membuang subset Eyeball yang ada dan membuat yang baru dengan memindahkan lebih banyak contoh dari Black Box ke Eyeball atau dengan mengambil bagian baru dari data yang ditandai.


Dengan demikian, membagi sampel validasi ke dalam “Sampel bola mata” dan “Sampel kotak hitam” memungkinkan Anda melihat saat ketika proses analisis kesalahan manual akan mengarahkan Anda untuk berlatih ulang pada sampel bola mata.


18 Seberapa besar Sampel Eyeball dan Sampel Kotak Hitam?


Sampel bola mata Anda harus cukup besar bagi Anda untuk menemukan kategori utama kesalahan klasifikasi untuk algoritma Anda. Jika Anda mengerjakan tugas yang bisa ditangani seseorang (seperti mengenali kucing dalam gambar), Anda bisa memberikan rekomendasi yang cukup kasar berikut ini:


  • Sampel validasi bola mata yang berisi 10 kesalahan klasifikasi Anda akan dianggap sangat kecil. Hanya memiliki 10 kesalahan, sangat sulit untuk secara akurat menilai dampak berbagai kategori kesalahan pada kualitas pengklasifikasi. Tetapi jika Anda memiliki data yang sangat sedikit dan tidak ada cara untuk menambahkan lebih banyak contoh ke sampel bola mata, itu masih lebih baik daripada tidak sama sekali dan dalam hal apapun akan membantu memprioritaskan pekerjaan pada proyek.
  • Jika pengklasifikasi Anda keliru sekitar 20 kali pada sampel bola mata, Anda dapat membuat perkiraan kasar tentang sumber kesalahan utama.
  • Dengan sekitar 50 kesalahan, Anda akan mendapatkan ide bagus tentang sumber kesalahan utama pengklasifikasi Anda.
  • Jika Anda memiliki sekitar 100 kesalahan, Anda akan mendapatkan pemahaman yang sangat baik dari mana kesalahan utama berasal. Saya bertemu orang-orang yang menganalisis secara manual bahkan lebih banyak kesalahan terkadang hingga 500. Mengapa tidak, jika Anda memiliki cukup data.

Misalkan tingkat kesalahan klasifikasi Anda adalah 5%. Untuk memperoleh dengan yakin sekitar 100 contoh yang salah pada sampel bola mata, sampel ini harus berisi sekitar 2000 contoh (sejak 0,05 * 2000 = 100). Semakin kecil tingkat kesalahan pengklasifikasi Anda, semakin besar sampel bola mata yang dibutuhkan untuk mendapatkan sampel kesalahan yang cukup besar untuk dianalisis.


Jika Anda mengerjakan tugas yang sulit bagi orang-orang untuk mengklasifikasikan contoh dengan benar, maka latihan untuk memeriksa sampel validasi bola mata tidak akan sangat berguna, karena sulit untuk memahami mengapa algoritme tidak dapat dengan benar mengklasifikasikan contoh. Dalam hal ini, Anda dapat melewati pengaturan Pengambilan Sampel Bola Mata. Kami akan membahas rekomendasi untuk proyek-proyek tersebut di bab-bab berikut.


Dan bagaimana dengan “Pengambilan Sampel Kotak Hitam”? Kami telah menyebutkan bahwa dalam kasus umum, sampel validasi berisi 1000 - 10.000 contoh. Untuk melengkapi pernyataan ini, sampel validasi kotak hitam 1.000 hingga 10.000 contoh biasanya (sering) memberi Anda cukup data untuk mengonfigurasi hyperparameters dan memilih di antara model, tetapi jika Anda mengambil lebih banyak data untuk memilih kotak hitam, itu tidak akan menjadi lebih buruk. Pilihan 100 kotak hitam tentu saja tidak cukup, tetapi masih akan bermanfaat (lebih baik daripada tidak sama sekali).


Jika Anda memiliki sampel validasi kecil, itu mungkin tidak memiliki cukup data untuk memisahkannya menjadi sampel bola mata dan kotak hitam sehingga keduanya cukup besar dan dapat melayani tujuan yang dijelaskan di atas. Dalam hal ini, Anda mungkin harus menggunakan seluruh sampel validasi Anda sebagai sampel bola mata.
Artinya, Anda akan memeriksa secara manual semua data dari sampel validasi.


Saya percaya bahwa memilih bola mata lebih penting daripada memilih kotak hitam (dengan asumsi bahwa Anda sedang mengerjakan masalah di mana orang pandai mendefinisikan kelas dan memeriksa contoh secara manual akan membantu Anda mendapatkan gambaran tentang data Anda). Jika Anda hanya memiliki pilihan bola mata yang tersedia, Anda dapat mengerjakan analisis kesalahan, pemilihan model dan pengaturan hiperparameter hanya dengan menggunakannya. Kerugian bekerja hanya dengan pemilihan bola mata adalah bahwa dalam kasus ini risiko melatih kembali model dalam sampel validasi meningkat.


Jika Anda memiliki banyak data yang Anda inginkan, ukuran sampel bola mata akan ditentukan terutama oleh berapa banyak waktu yang dapat Anda curahkan untuk analisis data manual. Sebagai contoh, saya jarang bertemu seseorang yang secara manual akan menganalisis lebih dari 1000 kesalahan.


19 Kesimpulan: Analisis Kesalahan Dasar


  • Saat Anda memulai proyek baru, terutama di area di mana Anda bukan seorang ahli, sangat sulit untuk menyarankan arah yang paling efektif untuk upaya Anda
  • Karena itu, jangan langsung mencoba merancang dan membangun sistem yang sempurna. Alih-alih, bangun dan latih sistem yang sederhana secepat mungkin - mungkin dalam beberapa hari. Kemudian gunakan analisis kesalahan untuk membantu Anda menentukan area kerja yang paling efektif dan kemudian secara iteratif meningkatkan algoritma Anda berdasarkan ini.
  • , 100 , , . , .
  • , , . , , .
  • Sampel validasi bola mata harus cukup besar sehingga jumlah kesalahan dalam algoritme Anda cukup untuk analisis manual. Sampel validasi kotak hitam 1000-10000 contoh biasanya cukup untuk pengembangan aplikasi.
  • Jika sampel validasi Anda tidak cukup besar untuk membaginya menjadi sampel bola mata dan sampel kotak hitam, cukup gunakan sampel Validasi Bola Mata untuk menganalisis secara manual kesalahan, pilih model, dan konfigurasikan hyperparameters.

kelanjutan

Source: https://habr.com/ru/post/id419885/


All Articles