An Overview of Modeling for machine learning projects – Towards AI

ML lifecycle flowchart highlighting the modelling part, which is the current focus of this article.

Author(s): Akhil Theerthala

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda membuat produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Catatan MLOps 3.1: Gambaran Umum Pemodelan untuk proyek pembelajaran mesin.

Selamat datang kembali, semuanya! Ini adalah Akhil Theerthala. Di artikel terakhir, kami telah menjelajahi praktik standar dan tantangan yang dihadapi selama fase penerapan siklus hidup Pembelajaran Mesin. Sekarang kita mundur satu langkah lagi dan mengunjungi tahap Pemodelan.

Diagram alur siklus hidup ML menyoroti bagian pemodelan, yang menjadi fokus artikel saat ini.Siklus Hidup Pembelajaran Mesin. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Bagian ini berfokus pada tantangan kritis yang dihadapi dalam mengembangkan model pembelajaran mesin, seperti menangani kumpulan data yang miring atau kasus menarik di mana model berkinerja lebih buruk setelah diterapkan meskipun memiliki skor tes yang sangat baik dan banyak masalah lainnya.

Catatan: Karena bagian ini agak panjang, saya memutuskan untuk membaginya menjadi 3 artikel berbeda. Yang pertama menjelaskan detail pengembangan model, yang lainnya menjelaskan prosedur standar yang digunakan untuk analisis kesalahan, dan yang terakhir, kita akan melihat lebih detail tentang pendekatan berbasis data untuk pemodelan.

Pendekatan Model-sentris vs. Pendekatan Data-Sentrik

Hingga baru-baru ini, ada banyak penekanan pada pemilihan model yang cocok untuk proyek pada kumpulan data tolok ukur tetap, karena sebagian besar komunitas pembelajaran mesin hanya berfokus pada penelitian. Perspektif ini disebut pengembangan AI Model-sentris. Namun, dalam beberapa hari terakhir, kami melihat pergeseran ke pendekatan lain yang disebut pengembangan AI yang berpusat pada data, di mana kami fokus pada peningkatan arsitektur model dan memastikan bahwa kami memberikan data berkualitas tinggi.

Pendekatan data-centric umumnya berfokus pada pemahaman dan optimalisasi kualitas, relevansi, dan representasi data yang digunakan untuk melatih model. Sebaliknya, pendekatan model-sentris lebih berfokus pada desain dan pengoptimalan model daripada data pelatihan.

Pada akhirnya, setiap proyek pembelajaran mesin bertujuan untuk membuat model yang dapat menggeneralisasi dengan baik ke data baru yang tidak terlihat. Mencapai ini membutuhkan pertimbangan yang cermat terhadap data, model yang digunakan, dan berbagai faktor lainnya, seperti pilihan algoritme, optimalisasi hyperparameter, serta evaluasi dan validasi model.

Satu hal yang perlu kita ingat adalah bahwa sistem AI adalah kombinasi dari model (kode) dan data yang digunakan. Satu perjalanan singkat ke GitHub memberi kami akses ke banyak model pembelajaran mesin yang dilatih secara ekstensif dan bekerja dengan baik dengan sedikit penyesuaian. Ini mengubah prioritas kami dari mengerjakan model menjadi mengoptimalkan data yang kami berikan sebagai input ke model karena pendekatan terakhir mudah dan ekonomis dalam banyak kasus.

Apa yang dimaksud dengan pengembangan model?

Kita harus ingat bahwa pengembangan model adalah masalah berulang, di mana kita men-tweak hyperparameter seperti laju pembelajaran, konstanta regularisasi, dll. Umumnya, ruang hyperparameter relatif terbatas; karenanya pada bagian ini, fokus kita akan lebih pada kode dan data.

Diagram yang menunjukkan sifat berulang dari pengembangan modelSiklus pengembangan model. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Gambar di atas menggambarkan sifat iteratif dari pengembangan model, di mana kami mengubah parameter-hiper dan cara data didefinisikan tergantung pada kinerja model pada kumpulan parameter dan data sebelumnya. Dalam setiap putaran melalui siklus, kita harus memastikan bahwa keputusan yang kita buat cukup baik untuk meningkatkan kinerja model. Setelah loop ini, kami harus membuat satu analisis audit terakhir sebelum mengirimkannya ke bagian berikutnya.

Ada 3 tahapan berbeda yang umumnya dipertimbangkan sebelum menerapkan model. Mereka,

Performa pada set data pelatihan. Performa pada set data dev/test. Kinerja dengan metrik bisnis/sasaran proyek.

Hingga baru-baru ini, hanya 2 pencapaian pertama yang biasanya dipertimbangkan, tetapi akhir-akhir ini, kami mengetahui bahwa kesalahan rangkaian pengujian yang rendah tidak cukup baik bagi model untuk bekerja dengan baik dalam produksi karena berbagai jenis tantangan yang dihadapi selama penerapan. Kami telah membahas beberapa di antaranya di artikel terakhir.

Kita juga sudah tahu tentang konsep drift/ knowledge drift problem dari artikel sebelumnya; sekarang, mari kita lihat beberapa tantangan lain yang dapat membuat kita melatih dan memikirkan kembali model kita.

Kesalahan pengujian rata-rata rendah cukup baik. Mengapa?

Salah satu metrik paling umum dan sederhana yang digunakan untuk menyelesaikan dan menerapkan model adalah kesalahan pengujian rata-rata. Namun meskipun rendah, kami dapat menemukan kasus di mana metrik ini tidak cukup. Beberapa dari kasus tersebut tercantum di bawah ini.

i) Kinerja buruk pada serangkaian contoh esensial yang tidak proporsional.

Model dengan kesalahan pengujian yang rendah dapat mengabaikan jenis atau kelas yang berbeda dalam dataset pelatihan. Untuk memahami masalah ini dengan lebih baik, mari kita lihat contoh di mana kita menggunakan model mesin telusur. Saat menggunakan model, jika kita mencari resep pai apel. Kami biasanya memaafkan model pencarian karena tidak memberi kami resep pai apel “Terbaik” saat kami melalui 2~3 hasil pencarian yang berbeda. Kueri semacam ini disebut “Kueri Informasi dan Transaksional”. Sekarang, pertimbangkan pencarian lain seperti “beranda IITKGP”; kami cenderung tidak memaafkan ketika model pencarian mengembalikan beranda IIT Bombay atau IIT Madras dan dengan cepat kehilangan kepercayaan pada mesin pencari ini. Jenis kueri ini disebut “Kueri navigasi”. Oleh karena itu, kita dapat melihat bahwa kueri Navigasi adalah sekumpulan contoh tidak proporsional yang sama pentingnya. Model dengan kesalahan rata-rata rendah pada set pengujian dapat memberikan respons yang hampir sempurna, yang cocok untuk kueri informasi, tetapi tidak cukup baik untuk kueri navigasi.

ii) Performa pada Key-slice dari kumpulan data.

Untuk memahami hal ini, mari kita pertimbangkan model persetujuan pinjaman. Untuk itu, kita perlu memastikan bahwa model tersebut mengikuti hukum atau aturan untuk berbagai jenis suku, jenis kelamin, lokasi, bahasa, dll., Atau, kita dapat mempertimbangkan model rekomendasi produk dari pengecer. Kita harus memastikan bahwa model merekomendasikan produk yang paling cocok daripada mengesampingkan merek yang kurang terkenal dan hanya merekomendasikan merek terkenal ke pengecer.

Kasus-kasus ini tidak secara eksplisit memberikan hasil yang diinginkan bahkan dengan kesalahan pengujian yang rendah. Kita perlu memastikan bahwa model memberikan hasil yang lebih baik terlepas dari irisan yang berbeda dalam kumpulan data.

iii) Dataset Miring / Kelas Langka

Dalam diagnosis medis, diperkirakan 99% pasien tidak memiliki penyakit mematikan seperti kanker paru-paru, tetapi hanya ~1% dari orang yang mengunjungi klinik yang memilikinya. Dalam hal ini, hanya memprediksi bahwa pasien tidak memiliki penyakit yang memberi kami akurasi 99%. Oleh karena itu, kita perlu memastikan model mengenali 1% kasus ini dan memberikan hasilnya berdasarkan alasan yang valid.

Jangan hanya membuang set pelatihan ke dalam model. Ambil langkah (atau beberapa langkah) mundur!

Pada fase awal perjalanan praktisi pembelajaran mesin mana pun, adalah hal yang wajar bagi kami untuk membuang data ke model dan mengharapkannya secara ajaib menghasilkan hasil berkualitas tinggi. Dan dalam beberapa kasus seperti bekerja dengan kumpulan data MNIST, mereka benar-benar melakukannya. Namun saat kami beralih ke proyek yang lebih rumit, kami mulai melihat model kami kesulitan. Atau kami tidak dapat menilai kinerja model berdasarkan kesalahannya atau metrik yang kami tentukan. Oleh karena itu, disarankan untuk mengambil beberapa langkah sebelum Anda mulai melatih model.

Langkah pertama untuk melatih model apa pun adalah menetapkan garis dasar, yang dapat digunakan untuk membandingkan dan meningkatkan model kami di atas kinerja garis dasar ini. Baseline ini bisa apa saja, model regresi linier sederhana atau sesuatu yang lebih bertarget atau kompleks seperti kinerja Tingkat Manusia, yang memberi kita apa untuk dibandingkan. Baseline ditetapkan secara berbeda untuk jenis tugas yang berbeda. Misalnya, saat kami bekerja dengan data Tidak Terstruktur seperti gambar/audio/teks, kami cenderung membandingkan kinerja dengan kinerja tingkat Manusia. Namun, dengan data terstruktur, di mana kami perlu bekerja dengan database atau spreadsheet besar, kami menggunakan baseline lain yang berbeda. Beberapa baseline standar adalah,
– Pertunjukan tingkat manusia
– Pencarian literatur untuk hasil mutakhir atau hasil sumber terbuka
– Implementasi cepat dan kotor
– Kinerja sistem lama. Setelah langkah pertama, disarankan untuk melakukan pencarian literatur cepat untuk melihat apa yang mungkin. Untuk tujuan praktis, adalah opsional untuk melihat pendekatan mutakhir. Lihat saja apa pendekatan yang masuk akal. Juga, pertimbangkan batasan penerapan jika sudah ditetapkan. Jika proyek ingin melihat apa yang mungkin, maka Anda tidak perlu fokus pada kendala penerapan. Berdasarkan pendekatan Anda sampai sekarang, coba lakukan pemeriksaan kewarasan untuk kode tersebut, seperti mencoba melakukan overfit pada kumpulan data kecil, untuk memastikannya berfungsi dengan benar. Misalnya, dalam penerapan sistem transkripsi ucapan Andrew, dia pertama kali mencoba memberi makan hanya 1 klip audio dan melatih modelnya. Dia kemudian hanya memperoleh file dengan output kosong ‘ .

Terima kasih telah membaca artikel saya dengan sabar hingga sekarang. Saya harap Anda menikmatinya. Saya mencoba untuk meningkatkan kualitas tulisan saya, tetapi seperti yang Anda lihat saya masih dalam tahap awal. Saya membutuhkan lebih banyak data dan umpan balik agar saya dapat melakukan analisis kesalahan pada keterampilan menulis saya dan melatihnya kembali.

Berbicara tentang analisis kesalahan, draf bagian selanjutnya dari artikel ini (3.2) sudah selesai dan saya sedang mengeditnya. Jadi nantikan segera!

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.1: Gambaran Umum Pemodelan untuk proyek pembelajaran mesin awalnya diterbitkan di Towards AI on Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jonathan Kelly