Ini adalah artikel kedua dengan terjemahan setiap bab dari buku Andrew Un, Passion for Machine Learning. Anda dapat membaca terjemahan dari bab-bab sebelumnya di
sini .
Artikel ini akan fokus pada pembelajaran mendalam end-to-end, serta penulis buku akan berbagi beberapa cara menganalisis kesalahan algoritma pembelajaran.
Pembelajaran mendalam end-to-end
Bab 47. Pertumbuhan pembelajaran ujung ke ujung
Misalkan Anda ingin membuat sistem untuk memeriksa ulasan produk di Internet, yang secara otomatis akan memberi tahu Anda jika penulis review menyukai produk ini atau tidak. Misalnya, Anda berharap untuk mengenali ulasan berikut ini sebagai sangat positif:
dan berikut ini sangat negatif:
- "Pel ini berkualitas buruk, maaf soal pembelian"
Masalah mengenali opini positif dan negatif disebut "klasifikasi suasana hati". Untuk membuat sistem ini, Anda dapat membangun "jalur pipa" dari dua komponen:
- Parser : Suatu sistem yang membubuhi keterangan teks dengan informasi, mengidentifikasi kata-kata yang paling penting. 1 Misalnya, Anda dapat menggunakan parser untuk menunjukkan semua kata sifat dan kata benda. Oleh karena itu, Anda akan menerima teks beranotasi berikut:
1 Sebenarnya, parser membuat anotasi teks jauh lebih kaya daripada yang dijelaskan, tetapi deskripsi yang disederhanakan ini akan cukup untuk menjelaskan pembelajaran mendalam dari ujung ke ujung.
- Sentiment Classifier : algoritma pembelajaran yang mengambil input teks beranotasi dan memprediksi mood umumnya. Anotasi Parser dapat sangat membantu algoritme ini: dengan memberi bobot lebih pada kata sifat, algoritme Anda dapat dengan cepat diingat dengan memproses kata-kata penting seperti "luar biasa" dan mengabaikan kata-kata yang kurang penting seperti "ini."
Kami dapat memvisualisasikan saluran pipa ini dari dua komponen sebagai berikut:
Baru-baru ini, ada kecenderungan untuk mengganti pipa dengan algoritma pembelajaran tunggal. Algoritme pembelajaran ujung-ke-ujung untuk tugas ini hanya akan mengambil teks asli dan mentah, "Ini pel yang hebat!"
Jaringan saraf umumnya digunakan dalam sistem pembelajaran ujung ke ujung. Istilah "pass-through" mengacu pada fakta bahwa kami meminta algoritma pembelajaran untuk langsung dari input ke hasil yang diinginkan. Artinya, algoritma pembelajaran secara langsung menghubungkan "ujung input" dari sistem dengan "ujung keluaran".
Dalam tugas di mana ada banyak data, sistem end-to-end sangat sukses. Tetapi mereka tidak selalu merupakan pilihan yang baik. Beberapa bab berikutnya akan memberikan lebih banyak contoh sistem lintas sektoral, serta kiat tentang kapan dan kapan tidak menggunakannya.
Bab 48. Contoh-Contoh Selanjutnya dari Pembelajaran Lintas Sektoral
Bayangkan Anda ingin membuat sistem pengenalan ucapan. Anda dapat membangun sistem tiga komponen:
Komponen bekerja sebagai berikut:
- Fungsi komputasi: mengambil fitur yang dirancang secara manual, seperti MFCC ( Koefisien cepstrum frekuensi-Mel ), yang mencoba menangkap konten pernyataan sambil mengabaikan properti yang kurang penting seperti pitch dalam dinamika.
- Pengenalan Fonem: Beberapa ahli bahasa percaya bahwa ada unit dasar suara yang disebut "fonem". Misalnya, bunyi awal "k" di "keep" adalah fonem yang sama dengan bunyi "c" di "cake". Sistem ini berusaha mengenali fonem individu dalam rekaman audio.
- End Recognizer: mengambil urutan fonem yang dikenali dan mencoba menghubungkannya bersama-sama menjadi catatan keluaran.
Berbeda dengan "jalur pipa" ini, sistem end-to-end dapat menerima rekaman audio pada input dan akan mencoba untuk langsung mentransfernya ke rekaman output:
Sejauh ini, kami telah menggambarkan hanya "konveyor" linear sepenuhnya dari pembelajaran mesin: output ditransmisikan secara berurutan dari satu tahap ke tahap lainnya. Tetapi konveyor bisa lebih kompleks. Misalnya, berikut adalah arsitektur sederhana untuk kendaraan tak berawak:
Konveyor ini mencakup tiga komponen: satu mendeteksi mobil lain menggunakan gambar kamera, yang kedua mendeteksi pejalan kaki, dan akhirnya, komponen terakhir menghitung jalur mobil kami untuk menghindari tabrakan dengan mobil lain dan pejalan kaki.
Tidak semua komponen dalam pipa ini akan dilatih. Misalnya, literatur tentang "merencanakan pergerakan robot" menjelaskan banyak algoritma untuk perhitungan akhir jalur mobil. Banyak dari algoritma ini tidak memerlukan pelatihan.
Sebaliknya, pendekatan ujung-ke-ujung mungkin mencoba menerima pembacaan sensor dan secara langsung memutar setir ke arah yang benar:
Meskipun pelatihan ujung ke ujung telah menghasilkan banyak keberhasilan, ini tidak selalu merupakan pendekatan terbaik. Misalnya, pengenalan ucapan ujung ke ujung bekerja dengan baik. Tetapi saya skeptis dengan pelatihan lintas cara mengemudi otonom untuk sistem tak berawak. Beberapa bab berikutnya menjelaskan alasannya.
Bab 49. Pelatihan lintas sektor: pro dan kontra
Pertimbangkan contoh sebelumnya dari pipa pengenalan suara:
Banyak bagiannya dirancang "secara manual":
- MFCC adalah serangkaian fitur audio yang dirancang khusus. Dan meskipun mereka memberikan ringkasan yang masuk akal dari semua audio yang diterima pada input, mereka juga menyederhanakan sinyal yang masuk dengan membuang beberapa informasi.
- Fonem adalah penemuan ahli bahasa. Mereka adalah representasi yang tidak sempurna dari suara-suara ucapan. Karena fonem adalah pendekatan yang buruk terhadap kenyataan, suatu algoritma yang menggunakan fonem untuk mewakili ucapan akan membatasi efektivitas seluruh sistem pengenalan wicara.
- Tanda-tanda MFCC kuat untuk properti bicara tertentu yang tidak mempengaruhi konten, seperti nada suara pembicara. Dengan demikian, mereka membantu menyederhanakan tugas untuk algoritma pembelajaran.
- Sejauh fonem merupakan representasi wicara yang masuk akal, mereka juga dapat membantu algoritma pembelajaran memahami komponen suara dasar dan, karenanya, meningkatkan efektivitasnya.
Memiliki lebih banyak komponen yang dirancang tangan paling sering memungkinkan sistem pengenalan ucapan untuk belajar dari lebih sedikit data. Pengetahuan yang diperoleh "secara manual" menggunakan MFCC dan fonem "melengkapi" pengetahuan yang diperoleh algoritma kami dari data. Ketika kita memiliki sedikit data, pengetahuan ini berguna.
Sekarang pertimbangkan sistem end-to-end:
Sistem ini tidak memiliki cukup pengetahuan yang diperoleh "secara manual". Oleh karena itu, ketika set pelatihan kecil, sistem ini dapat bekerja lebih buruk daripada conveyor yang dirancang secara manual.
Namun, ketika set pelatihan besar, tidak ada batasan karena penggunaan MFCC atau fonem. Jika algoritma pembelajaran adalah jaringan saraf yang cukup besar, dan jika dilatih pada set pelatihan yang cukup besar, ia memiliki potensi besar, dan mungkin bahkan mendekati tingkat kesalahan optimal.
Sistem ujung-ke-ujung cenderung berhasil ketika ada banyak data yang ditandai untuk kedua ujungnya - "ujung input" dan "ujung keluaran". Dalam contoh ini, kita membutuhkan seperangkat pasangan yang besar (audio dan transkripsi). Ketika data semacam ini tidak tersedia bagi Anda, dekati melalui pembelajaran dengan sangat hati-hati.
Jika Anda mengerjakan tugas pembelajaran mesin di mana set pelatihan sangat kecil, maka sebagian besar informasi yang akan tersedia untuk algoritme Anda akan diperoleh berkat pengertian manusiawi Anda, yaitu. dari komponen yang dirancang secara manual.
Jika Anda memilih untuk tidak menggunakan sistem end-to-end, Anda perlu memutuskan langkah apa yang akan ada dalam pipa Anda dan bagaimana mereka harus cocok bersama. Dalam bab selanjutnya, kami akan menawarkan beberapa ide untuk merancang sistem seperti itu.
Bab 50. Pemilihan Komponen Pipa: Ketersediaan Data
Ketika Anda membangun konveyor yang bukan sistem ujung ke ujung, komponen konveyor mana yang akan menjadi pilihan yang baik? Bagaimana Anda mendesain conveyor akan sangat mempengaruhi kinerja sistem secara keseluruhan. Salah satu faktor penting adalah kemampuan untuk dengan mudah mengumpulkan data untuk melatih setiap komponen.
Sebagai contoh, pertimbangkan arsitektur mengemudi otonom ini:
Anda dapat menggunakan algoritma pembelajaran mesin untuk mendeteksi mobil dan pejalan kaki. Selain itu, tidak sulit bagi mereka untuk mengumpulkan data: ada banyak set data visi komputer siap pakai dengan sejumlah besar mobil dan pejalan kaki yang ditandai. Anda juga dapat menggunakan crowdsourcing (seperti Amazon Mechanical Turk) untuk mendapatkan dataset yang lebih besar. Oleh karena itu, akan relatif mudah untuk mengumpulkan data pelatihan untuk membuat detektor mobil dan detektor pejalan kaki.
Sebaliknya, pertimbangkan sistem end-to-end yang bersih:
Untuk melatih sistem ini, kita membutuhkan sejumlah besar elemen yang sudah dipetakan (image = setir berputar ke arah yang benar). Ini adalah tugas yang sangat memakan waktu dan mahal. Untuk mengumpulkan data seperti itu, orang perlu mengendarai mobil dan merekam data tentang setiap belokan setir. Anda akan membutuhkan seluruh armada mobil yang dilengkapi khusus dan sejumlah besar jam kerja untuk mencakup berbagai situasi seluas mungkin. Ini membuat sistem ujung ke ujung sangat sulit untuk dipelajari. Jauh lebih mudah untuk mengambil serangkaian besar gambar mobil dan pejalan kaki berlabel.
Dalam arti yang lebih umum, jika ada banyak data yang tersedia untuk pelatihan modul konveyor “perantara” (seperti detektor mobil atau detektor pejalan kaki), maka Anda perlu berpikir tentang menggunakan konveyor yang terdiri dari beberapa komponen. Metode ini mungkin bekerja lebih baik, karena Anda dapat menggunakan semua data yang tersedia untuk pelatihan modul perantara.
Sampai ada lebih banyak data untuk model ujung ke ujung, saya percaya pendekatan tradisional jauh lebih menjanjikan untuk pengendaraan mandiri: arsitekturnya lebih cocok dengan ketersediaan data saat ini.
Bab 51. Memilih komponen konveyor: kesederhanaan tugas
Selain ketersediaan data, Anda juga harus mempertimbangkan faktor kedua ketika memilih komponen pipa: seberapa sederhana tugas yang diselesaikan masing-masing komponen? Anda harus mencoba memilih komponen konveyor agar mudah dibangun atau mudah dipelajari. Tetapi apa artinya komponen mudah dipelajari?
Pertimbangkan tugas-tugas pembelajaran mesin berikut, yang tercantum dalam urutan kompleksitas yang semakin meningkat:
- Definisi overexposed gambar yang disajikan (seperti pada contoh di atas).
- Menentukan apakah suatu gambar diambil di dalam atau di luar ruangan.
- Menentukan apakah ada kucing di gambar.
- Menentukan apakah ada kucing dalam gambar dengan bulu hitam dan putih.
- Penentuan apakah ada kucing siam dalam gambar (jenis kucing tertentu).
Untuk masing-masing masalah klasifikasi biner ini, Anda perlu mendapatkan gambar pada input dan output 0 atau 1. Tetapi tugas-tugas yang tercantum sebelumnya dalam daftar tampaknya jaringan saraf menjadi "lebih mudah" untuk dipelajari. Anda dapat melatih algoritme untuk tugas yang lebih sederhana dengan contoh pelatihan yang lebih sedikit.
Pada tahap pembelajaran mesin saat ini, tidak ada definisi formal yang baik tentang apa yang membuat satu tugas mudah atau sulit.
2 Dengan pertumbuhan pembelajaran yang mendalam dan jaringan saraf multilayer, kami terkadang menyebut masalah itu mudah jika dapat diselesaikan dengan langkah-langkah perhitungan yang lebih sedikit (misalnya, menggunakan jaringan saraf dengan beberapa lapisan), dan kami menyebut tugas itu sulit jika membutuhkan lebih banyak langkah komputasi (yang sesuai dengan jaringan saraf yang dalam). Tetapi ini adalah definisi informal.
2 Dalam teori informasi algoritmik, terdapat konsep kompleksitas Kolmogorov, yang menyatakan bahwa kompleksitas fungsi yang dipelajari adalah panjang dari program komputer terpendek yang dapat menghasilkan fungsi ini. Konsep teoretis ini telah menemukan beberapa aplikasi praktis dalam AI.
Jika Anda memiliki peluang untuk memecah tugas yang kompleks menjadi subtugas yang lebih sederhana, maka dengan menyandikan setiap subtugas secara akurat, Anda akan memberikan algoritma pengetahuan yang lebih penting yang dapat membantunya menyelesaikan seluruh masalah dengan lebih efisien.
Bayangkan Anda sedang merancang pendeteksi kucing siam. Berikut adalah arsitektur ujung ke ujung yang bersih:
Sebaliknya, Anda dapat menggunakan konveyor dua komponen:
Pada langkah pertama (detektor kucing), semua kucing dalam gambar akan dikenali.
Kemudian, pada langkah kedua, gambar yang dipangkas dari masing-masing kucing yang terdeteksi, satu per satu, dipindahkan ke penggolong breed. Dan akhirnya, jika ada kucing yang terdeteksi adalah kucing siam, kita mendapatkan "1" di output.
Dibandingkan dengan mengajarkan classifier murni pass-through yang hanya menggunakan tag 0/1, masing-masing dari dua komponen dalam pipa (detektor kucing dan klasifikasi breed) tampaknya lebih mudah dipelajari dan membutuhkan data yang jauh lebih sedikit.
33 Jika Anda terbiasa dengan algoritma deteksi objek yang benar-benar digunakan dalam praktik, Anda akan memahami bahwa mereka dilatih tidak hanya dengan label gambar 0/1. Sebaliknya, mereka dilatih menggunakan kerangka kerja terbatas yang disediakan sebagai bagian dari data pelatihan. Diskusi mereka berada di luar cakupan bab ini.
Dan contoh terakhir, mari kita ingat kembali pipa untuk tugas mengemudi otonom:
Menggunakan konveyor ini, Anda memberi tahu algoritma bahwa ada tiga langkah kunci dalam mengendarai mobil:
- Kenali mobil lain.
- Kenali pejalan kaki.
- Rencanakan arah pergerakan selanjutnya.
Masing-masing langkah ini adalah tugas yang lebih sederhana dan dapat dilatih tentang data yang lebih sedikit dibandingkan dengan pendekatan lintas sektoral.
Akibatnya, ketika memutuskan apa yang harus menjadi komponen dari pipeline, cobalah untuk membangun pipeline di mana setiap komponen adalah fungsi yang relatif “sederhana” yang hanya dapat dilatih pada sejumlah kecil data.
Bab 52. Belajar dengan informasi mendalam
Algoritma klasifikasi gambar mengambil input gambar X dan menghasilkan integer, yang merupakan label untuk kategori objek. Dapatkah Algoritma bukannya menghasilkan seluruh kalimat yang menggambarkan gambar?
Sebagai contoh:
Y = "Sebuah bus kuning melaju di jalan di tengah-tengah pohon dan rumput hijau."
Aplikasi tradisional mengajar dengan guru melibatkan kehadiran fungsi yang terlatih h: X → Y, di mana output (y) biasanya diwakili oleh bilangan bulat atau bilangan alami. Sebagai contoh:
Salah satu hal yang paling menarik tentang pembelajaran mendalam lintas bidang adalah memungkinkan kita untuk secara langsung belajar Y, yang jauh lebih rumit daripada angka. Dalam contoh dengan tugas deskripsi gambar yang disebutkan di atas, Anda dapat menerapkan beberapa gambar (x) ke input jaringan saraf dan mendapatkan deskripsi langsung (y) pada output.
Berikut ini beberapa contohnya:
Ini adalah tren yang berkembang dalam pembelajaran mendalam: ketika Anda memiliki pasangan berlabel (input, output) yang benar, Anda kadang-kadang dapat memilih pelatihan ujung ke ujung, bahkan jika outputnya berupa kalimat, gambar, audio atau output lainnya yang membawa lebih banyak informasi, dari sekedar nomor tag.
Analisis kesalahan parsial
Bab 53. Analisis kesalahan dalam bagian-bagian
Misalkan sistem Anda dibangun menggunakan pipa pembelajaran mesin yang canggih, dan Anda ingin meningkatkan efisiensi sistem. Bagian mana dari conveyor yang harus Anda tingkatkan? Dengan mengaitkan kesalahan pada bagian-bagian tertentu dari pipa, Anda dapat memutuskan bagaimana memprioritaskan pekerjaan Anda.
Mari kita gunakan contoh penggolong kucing Siam:
Bagian pertama, detektor kucing, mendeteksi kucing dan memotong mereka dari seluruh gambar. Bagian kedua, penggolong jenis kucing, memutuskan apakah kucing ini adalah kucing siam. Anda dapat menghabiskan waktu bertahun-tahun bekerja untuk memperbaiki salah satu dari dua komponen conveyor ini. Bagaimana Anda memutuskan komponen mana yang menjadi fokus?
Melakukan analisis kesalahan di bagian-bagian, Anda dapat mencoba untuk menghubungkan setiap kesalahan algoritma ke salah satu dari dua bagian dari pipa (dan kadang-kadang keduanya sekaligus). Sebagai contoh, algoritma salah mengklasifikasikan gambar ini sebagai tidak mengandung kucing siam (y = 0), meskipun label yang benar adalah y = 1.Mari kita periksa secara manual apa yang dilakukan algoritma di masing-masing dari dua langkah. Misalkan pendeteksi kucing siam mendeteksi kucing sebagai berikut:Ini berarti bahwa classifier breed kucing akan mendapatkan gambar ini:
Classifier breed mengklasifikasikan gambar ini dengan benar karena tidak mengandung kucing siam. Jadi, penggolong turunan kucing tidak bersalah: ia menerima banyak batu di pintu masuk dan memberikan tanda yang sangat masuk akal y = 0. Bahkan, seseorang yang mengklasifikasikan gambar yang dipangkas di atas juga akan memprediksi y = 0. Dengan demikian, Anda dapat dengan jelas mengaitkan kesalahan ini dengan detektor kucing.Di sisi lain, jika detektor kucing menampilkan kotak pembatas berikut:maka Anda akan menyimpulkan bahwa detektor kucing melakukan tugasnya dengan benar, dan kesalahan terjadi karena penggolong berkembang biak.Misalkan Anda telah melewati 100 gambar yang salah diklasifikasi dari sampel validasi dan menemukan bahwa 90 kesalahan terkait dengan detektor kucing, dan hanya 10 kesalahan yang terkait dengan klasifikasi pembiakan kucing. Anda dapat menyimpulkan dengan aman bahwa Anda harus lebih fokus pada peningkatan detektor kucing.Selain itu, Anda juga berhasil menemukan 90 contoh di mana detektor kucing mengeluarkan kotak pembatas yang salah. Anda dapat menggunakan 90 contoh ini untukanalisis yang lebih dalam tentang kesalahan pendeteksi kucing untuk melihat bagaimana memperbaikinya.Deskripsi kami tentang cara mengaitkan kesalahan ke satu bagian dari pipa sejauh ini bersifat informal: Anda melihat output dari setiap bagian dan melihat apakah Anda dapat memutuskan mana yang membuat kesalahan. Metode informal ini mungkin cukup. Namun di bab selanjutnya, Anda juga akan melihat cara yang lebih formal untuk menghubungkan kesalahan.
Bab 54. Atribusi kesalahan ke bagian tertentu
Mari kita lanjutkan dengan contoh kita:Misalkan detektor kucing menghasilkan kotak pembatas ini:Jadi, classifier breed menerima gambar yang dipangkas ini, setelah itu dikeluarkan secara salah y = 0, yaitu bahwa tidak ada kucing di gambar.Detektor kucing melakukan pekerjaan yang buruk. Sementara orang yang terlatih tidak diragukan lagi akan dapat mengenali kucing siam dalam gambar yang dipotong ini. Oleh karena itu, kami mengaitkan kesalahan ini dengan detektor kucing, atau klasifikasi breed, atau keduanya? Tidak jelas.Jika jumlah kasus kontroversial semacam itu kecil, kami dapat membuat keputusan apa pun dan mendapatkan hasil yang serupa. Tapi di sini ada tes yang lebih formal, yang memungkinkan kita untuk lebih akurat menghubungkan kesalahan ke satu bagian:- Ganti output detektor kucing dengan bingkai yang ditandai secara manual.

- Lewati gambar yang dipangkas yang sesuai melalui klasifikasi breed. Jika penggolong breed masih tidak mengklasifikasikan gambar dengan benar, atribut kesalahan ke penggolong breed. Kalau tidak, atribut kesalahan ke detektor kucing.
Dengan kata lain, lakukan percobaan di mana Anda mengirimkan data ideal ke input dari rock classifier. Dalam hal ini, 2 opsi dimungkinkan:- Bahkan dengan kerangka yang ideal, penggolong berkembang biak keliru y = 0. Dalam hal ini, penggolong tidak diragukan lagi yang harus disalahkan.
- Setelah menerima kerangka yang ideal, penggolong berkembang biak dengan benar y = 1. Ini menunjukkan bahwa jika hanya detektor kucing yang menghasilkan kotak pembatas yang lebih sempurna, maka kesimpulan umum sistem akan benar. Jadi, kami mengaitkan kesalahan dengan detektor kucing.
Setelah melakukan analisis gambar yang salah klasifikasi dari sampel validasi, kini Anda dapat dengan jelas mengaitkan setiap kesalahan dengan satu komponen. Ini memungkinkan Anda untuk memperkirakan proporsi kesalahan yang terkait dengan setiap komponen pipa, dan, karenanya, memutuskan apa yang menjadi fokus perhatian Anda.
Bab 55. Kasus Utama Kesalahan Mengaitkan
Berikut adalah langkah-langkah umum untuk mengaitkan kesalahan. Misalkan pipa memiliki tiga tahap A, B dan C, di mana A diumpankan langsung ke B dan B diumpankan langsung ke C.Untuk setiap kesalahan yang dibuat sistem pada sampel validasi:- Cobalah untuk secara manual mengganti output tahap A dengan output "ideal" (yaitu, kotak ikatan "ideal" untuk kucing) dan lanjutkan dengan sisa conveyor B, C dengan output seperti itu. Jika algoritma sekarang menghasilkan hasil yang benar, ini menunjukkan bahwa hanya tahap A yang harus meningkatkan output sendiri agar seluruh algoritma bekerja dengan benar. Dengan demikian, Anda dapat menghubungkan kesalahan ini ke komponen A. Jika tidak, lanjutkan ke langkah 2.
- Coba ganti secara manual output tahap B dengan output "sempurna". Jika keseluruhan algoritma mulai bekerja dengan benar, maka atribut kesalahan ke komponen B. Jika tidak, lanjutkan ke langkah 3.
- Mengaitkan kesalahan ke komponen C.
Lihatlah contoh yang lebih kompleks:Drone Anda menggunakan conveyor ini. Bagaimana, menggunakan analisis kesalahan sedikit demi sedikit, untuk menentukan komponen mana yang menjadi fokus?Anda dapat menandai komponen sebagai berikut:- A. Kenali mobil.
- B. Kenali pejalan kaki.
- C. Rencanakan jalannya.
Mengikuti prosedur yang dijelaskan di atas, anggaplah Anda menguji mobil Anda di tempat latihan tertutup dan temukan suatu kasus di mana mobil memilih manuver ke arah yang lebih tajam daripada yang dilakukan oleh pengemudi berpengalaman. Dalam dunia mengemudi tanpa awak, peristiwa semacam itu biasanya disebut skrip. Dalam hal ini:- A ( ) «» (.. ). B C , C ( ) «» A. , , A , . A. 2.
- B ( ) «» . , B. 3.
- C.
Komponen pipa pembelajaran mesin harus disusun sesuai dengan grafik asiklik terarah (DAG), yang berarti bahwa Anda harus dapat menghitungnya dalam urutan tetap dari kiri ke kanan, dan komponen yang lebih baru hanya bergantung pada output dari komponen sebelumnya. Selamasusunan komponen dalam urutan A → B → C sesuai dengan urutan DAG, analisis kesalahan akan dilanjutkan dengan benar.Anda bisa mendapatkan hasil yang sedikit berbeda jika Anda menukar A dan B:- A. Kenali pejalan kaki (sebelumnya dikenal sebagai mobil)
- B. Mengenali mobil (sebelumnya dikenal sebagai pejalan kaki)
- C. Rencanakan jalur mobil Anda
Tetapi hasil analisis ini akan tetap benar dan memberikan panduan yang baik tentang apa yang harus Anda fokuskan.
Bab 56. Analisis kesalahan dalam bagian-bagian dan perbandingan dengan efisiensi di tingkat manusia
Melakukan analisis kesalahan dalam algoritma pembelajaran mirip dengan menggunakan ilmu data untuk menganalisis kesalahan sistem ML untuk mendapatkan ide tentang apa yang harus dilakukan selanjutnya. Dalam kebanyakan kasus, analisis kesalahan sedikit demi sedikit akan memberi tahu kita komponen mana yang layak untuk ditingkatkan di atas segalanya.Katakanlah Anda memiliki beberapa dataset tentang pelanggan yang membeli sesuatu di situs web. Seorang ilmuwan data dapat menganalisis data dengan berbagai cara. Dia dapat membuat banyak kesimpulan berbeda tentang apakah situs harus menaikkan harga, tentang nilai pelanggan yang diperoleh melalui berbagai kampanye pemasaran dan sebagainya. Tidak ada satu pun cara "benar" untuk menganalisis set data, ada banyak ide berguna yang mungkin muncul. Demikian pula, tidak ada satu cara "benar" untuk menganalisis kesalahan. Dalam bab-bab ini, Anda mempelajari beberapa pola desain paling umum untuk mendapatkan informasi yang berguna tentang sistem ML Anda, tetapi Anda juga dapat dengan bebas bereksperimen dengan metode analisis kesalahan lainnya.Kembali ke aplikasi kendaraan tak berawak, di mana algoritma deteksi mobil menampilkan lokasi (dan mungkin kecepatan) mobil terdekat, algoritma deteksi pejalan kaki menampilkan lokasi pejalan kaki terdekat, dan kedua output ini akhirnya digunakan untuk merencanakan jalur untuk mobil.Untuk men-debug pipa ini dan tidak secara ketat mengikuti prosedur yang Anda lihat di bab sebelumnya, Anda bisa mengajukan pertanyaan berikut:- Seberapa jauh algoritma pengenalan mobil dari efisiensi manusia dalam memecahkan masalah yang sama?
- Seberapa jauh algoritma pengenalan pejalan kaki dari kinerja manusia dalam memecahkan masalah yang sama?
- ? , , ( ). , « » , ?
Jika Anda menemukan bahwa salah satu komponen sistem jauh dari efisiensi manusia, maka Anda akan memiliki peluang yang baik untuk fokus pada peningkatan efektivitas komponen ini.Banyak proses analisis kesalahan berfungsi lebih baik ketika kami mencoba mengotomatisasi sesuatu yang dapat dilakukan seseorang, jadi kami membandingkan hasilnya dengan hasil seseorang. Sebagian besar contoh kami sebelumnya memiliki asumsi implisit ini. Jika Anda sedang membangun sistem ML di mana keluar akhir atau beberapa komponen perantara melakukan hal-hal yang bahkan orang tidak dapat melakukannya dengan baik, maka beberapa prosedur ini tidak akan berlaku.Ini adalah keuntungan lain dari menyelesaikan masalah yang dapat diselesaikan orang - Anda memiliki alat analisis kesalahan yang lebih kuat, dan karenanya, Anda dapat lebih memprioritaskan pekerjaan tim Anda secara lebih efisien.
Bab 57. Deteksi Kesalahan dalam Pipeline ML
Bagaimana jika masing-masing komponen konveyor ML Anda menunjukkan efisiensi di tingkat manusia atau sedikit lebih rendah, tetapi konveyor umum jauh tidak sesuai dengan tingkat manusia? Biasanya ini berarti bahwa conveyor memiliki kekurangan dan perlu dirancang ulang. Analisis kesalahan juga dapat membantu Anda mengetahui apakah pipa Anda perlu dirancang ulang.Dalam bab sebelumnya, kami mengajukan pertanyaan: apakah masing-masing dari tiga komponen menunjukkan efisiensi pada tingkat manusia? Misalkan jawaban untuk ketiga pertanyaan itu adalah ya. Lalu:- , , () .
- , , () .
- , , , , , ( ).
Namun demikian, kendaraan Anda yang tak berawak berhasil mengemudi secara signifikan lebih buruk daripada seseorang. Artinya, orang yang memiliki akses ke gambar dari kamera dapat merencanakan jalur mobil jauh lebih baik. Kesimpulan apa yang bisa Anda buat?Satu-satunya kesimpulan yang mungkin adalah bahwa saluran pipa ML Anda tidak dirancang dengan benar. Dalam hal ini, komponen yang merencanakan jalur mobil berfungsi dengan baik serta memungkinkan data masuk yang tidak mengandung informasi yang cukup. Anda harus bertanya pada diri sendiri informasi lain apa yang tidak ada dalam output dari dua komponen sebelumnya yang diperlukan untuk perencanaan jalur mobil yang sangat baik. Dengan kata lain, informasi apa yang digunakan oleh pengemudi berpengalaman?Misalkan Anda mengerti bahwa pengemudi manusia juga perlu melihat marka jalan. Ini menunjukkan bahwa Anda harus merekayasa balik pipa sebagai berikut: 44 , , . «Task simplicity», 51, , . « » — , / .
Pada akhirnya, jika Anda berpikir bahwa saluran pipa Anda secara keseluruhan tidak akan dapat mencapai efisiensi manusia, bahkan jika setiap komponen individu memiliki efisiensi di tingkat manusia (ingat bahwa Anda membandingkan dengan orang yang memiliki data input yang sama dengan komponen) , maka konveyor tersebut memiliki kelemahan dan harus dirancang ulang.Kesimpulan
Bab 58. Bangun Tim Super, Bagikan Pengetahuan Ini dengan Kawan-kawan
Selamat telah menyelesaikan buku ini!Dalam bab 2, kami berbicara tentang bagaimana buku ini dapat membantu Anda menjadi superhero di tim Anda.Satu-satunya hal yang bisa lebih baik daripada menjadi pahlawan super adalah menjadi bagian dari tim pahlawan super. Saya harap Anda berbagi salinan buku ini dengan teman dan rekan setim Anda dan membantu menciptakan pahlawan super lainnya!