Pendekatan Data-Centric untuk pemodelan Machine learning. – Menuju AI

Pendekatan Data-Centric untuk pemodelan Machine learning.  – Menuju AI

Author(s): Akhil Theerthala

Awalnya diterbitkan di Menuju AI.

MLOps 3.3: Pendekatan Data-Centric untuk Pemodelan Pembelajaran Mesin

Halo semuanya! Ini adalah Akhil Theerthala, dengan angsuran lain dari seri MLOps saya. Menengok kembali catatan lama saya, menulis ulang, dan membacanya dengan mata segar merupakan pengalaman belajar yang luar biasa. Setiap kali Anda mengunjungi kembali catatan itu, saya harap Anda tersentak oleh antusiasme yang sama seperti yang saya rasakan saat menulisnya.

Sejauh ini dalam seri ini, kita telah melihat berbagai fase proyek pembelajaran mesin dan mendapatkan ikhtisar penerapan dan pemodelan. Ini adalah artikel terakhir dalam seri Pemodelan, di mana kami memperluas pendekatan “Data-sentris” untuk pemodelan dan mendapatkan ikhtisar tingkat tinggi tentang apa yang kami lakukan secara berbeda dalam pendekatan ini.

Mari kita ingat dulu apa itu pandangan model-sentris dan data-sentris. Pendekatan data-centric umumnya berfokus pada pemahaman dan optimalisasi kualitas, relevansi, dan representasi data yang digunakan untuk melatih model. Sebaliknya, proses model-sentris lebih berfokus pada desain dan optimalisasi model itu sendiri daripada data yang digunakan untuk itu.

Tujuan akhir dari kedua pendekatan tersebut adalah sama, yaitu membuat atau membuat model bekerja lebih baik pada data yang tidak terlihat. Namun, mari kita lihat domain yang menggunakan metode tersebut. Kami dapat dengan cepat mengidentifikasi bahwa penelitian akademik umumnya dilakukan dengan pendekatan model-sentris, sedangkan lingkungan produksi cenderung mengikuti pendekatan data-sentris.

Satu hal penting yang perlu diingat adalah kita dapat mengklasifikasikan data menjadi dua kategori utama, terstruktur dan tidak terstruktur. Data tidak terstruktur mewakili gambar, teks, audio, dll., sedangkan data terstruktur mewakili database, spreadsheet, atau data serupa. Metode yang digunakan dalam pendekatan data-sentris berbeda untuk kedua jenis data tersebut. Oleh karena itu kita akan melihat mereka secara terpisah. Pertama, mari kita lihat metode terkenal untuk data tidak terstruktur, “Augmentasi Data”.

Representasi sederhana dan imajinatif dari pemodelan data-sentris. Gambar dihasilkan menggunakan Midjourney.

Perlunya augmentasi data

Salah satu cara untuk meningkatkan kualitas dataset disebut augmentasi data. Dalam metode ini, kami menggunakan data yang ada, mengubahnya sedikit atau menambahkan beberapa noise dan menggunakannya sebagai input untuk model bersama dengan data asli.

Untuk memahami metode ini, mari kita ambil contoh sistem pengenalan suara. Kami dapat menemukan banyak jenis kebisingan untuk input ucapan apa pun. Misalnya, kita dapat memperhatikan,

Kebisingan kendaraan (mobil/kereta api/pesawat dll.), Suara orang lain Musik latar Kebisingan khusus lokasi (perpustakaan/kafe/restoran) Kebisingan mesin dll.,

Sekarang, dalam daftar yang disebutkan, ada jenis suara yang serupa dan berbeda. Tujuan awal kami adalah untuk memastikan bahwa performa model identik dengan level manusia atau lebih baik.

Untuk mengevaluasi apa yang meningkatkan model kami, pertama-tama kami perlu melihat di mana ada peluang tinggi untuk peningkatan model. Pertimbangkan grafik berikut untuk tujuan itu, di mana kami mengevaluasi kinerja model pada sumbu Y dan sumbu X yang memiliki jenis derau berbeda berdasarkan asumsi kesamaan derau.

Performa vs sekumpulan kemungkinan noise untuk mengidentifikasi area peningkatan maksimum.

Kami berasumsi bahwa kebisingan berdasarkan lokasi lebih mirip satu sama lain daripada kebisingan kendaraan. Karenanya, kami mewakili mereka jauh dari satu sama lain di sumbu. Setelah ini, kita dapat melihat kinerja HLP dan model pada input ini dan mengidentifikasi bahwa kita dapat meningkatkan model ketika kita memiliki lebih banyak input di kafe atau restoran.

Jadi, untuk meningkatkan performa model pada input ini, kami memerlukan lebih banyak data jika terdapat noise semacam ini. Namun, mengambil semua pengaturan mikrofon dan pindah ke kafe yang berbeda di wilayah Anda tidaklah praktis. Di sinilah peran augmentasi data dimulai.

Catatan: Dalam data yang tidak terstruktur, ketika kinerja dalam satu jenis derau meningkat, ada kemungkinan kecil bahwa kinerja derau lain akan turun, tetapi ada peluang bagus bahwa kinerja pada derau yang relatif dekat akan meningkat.

Augmentasi Data

Ini adalah salah satu cara efisien untuk mendapatkan lebih banyak data untuk data yang tidak terstruktur. Dalam Augmentasi Data, kami mengubah data asli dengan menambahkan beberapa noise atau beberapa transformasi dengan tujuan (a.) membuat contoh realistis di mana algoritme berkinerja buruk dan (b.) manusia melakukannya dengan baik.

Namun, ada parameter berbeda yang perlu kita pertimbangkan sebelum menambah data. Untuk pengenalan ucapan, salah satu parameternya adalah volume kebisingan. Kami tidak dapat memilih parameter berdasarkan pendekatan coba-coba karena akan sangat tidak efisien dan memakan waktu; karenanya, kami memastikan bahwa data melewati beberapa daftar periksa sebelum melatih model.

Berikut adalah contoh daftar periksa yang mungkin berguna:

Apakah itu terdengar realistis? Apakah pemetaan x→y tepat? (pelabelan dan dapatkah manusia mengenali ucapan?) Apakah algoritme saat ini berkinerja buruk?

Untuk gambar, augmentasi meliputi langkah-langkah seperti,

Mengubah kecerahan/kontras gambar. Rotasi acak subjek dalam rentang sudut. Edit gambar secara artifisial menggunakan alat eksternal seperti photoshop. Kami juga dapat menggunakan model kompleks seperti GAN untuk menghasilkan gambar yang diinginkan, yang biasanya berlebihan.

Bisakah menambahkan lebih banyak data merusak kinerja?

Bisakah menambahkan lebih banyak data merusak kinerja?

Untuk menjawab pertanyaan ini, pertama-tama kita perlu mengingat mengapa kita menambahkan data ke model. Kami menambahkan data karena model yang kami definisikan memiliki bias yang tinggi, dan model tersebut tidak dapat memberikan hasil yang baik dengan data yang ada. Dalam hal ini, kami menambahkan lebih banyak data untuk menurunkan bias.

Sekarang kita telah mencapai bias rendah dan masih menambahkan data, kita harus berhati-hati dengan data apa yang kita tambahkan. Misalnya, dalam tugas multi-kelas, kata pengenalan ucapan sebelumnya, kami mencoba menambahkan data ke satu kelas tertentu, misalnya suara kafe, sehingga jumlah suara kebisingan kafe yang ada meningkat dari 10–20% dari data hingga 40-50% dari data. Sisa data tidak cukup besar untuk menjaga agar model tidak bingung, dan menambahkan data akan merusak model. Jadi kita harus lebih berhati-hati saat menambahkan data.

Selain itu, hanya ada contoh khusus kasus di mana pemetaan input-output dari 2 kelas berbeda sangat dekat satu sama lain, yang bahkan membingungkan manusia. Pertimbangkan ‘l’ (L) kecil dan kapital I (i) dalam beberapa font umum, seperti Arial, untuk referensi. Ini bagus untuk model teks, tetapi dikatakan bahwa kami entah bagaimana bekerja dengan gambar yang berisi teks, dan kami perlu membantu model membedakan keduanya. Kasus lainnya adalah antara 1 dan Is yang ambigu, seperti yang ditunjukkan pada gambar berikut.

1s dan Apakah kebingungan. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Pendekatan Data-Centric untuk masalah data terstruktur.

Untuk masalah data terstruktur, seringkali sulit untuk menambahkan contoh baru. Sebagai gantinya, kami mencoba dan menambahkan fitur baru ke data yang ada. Ini dapat diilustrasikan dengan lebih baik dengan sebuah contoh.

Mari kita definisikan model pembelajaran mesin yang menggunakan data pengguna dan data restoran terdekat sebagai input, dan tujuannya adalah untuk merekomendasikan restoran yang sesuai kepada pengguna. Mari ikuti pendekatan pemfilteran kolaboratif untuk melakukannya. Rekomendasi dibuat berdasarkan identifikasi kelompok pengguna yang serupa dan merekomendasikan restoran berdasarkan peringkat yang lain.

Dalam pendekatan ini, kami dapat menghadapi kesulitan di banyak bidang karena kurangnya data. Model yang kami buat sebagian besar merekomendasikan berdasarkan lingkungan seseorang. Namun, ada vegetarian dan non-vegetarian di lingkungan itu.

Distribusi lokalitas vegetarian dan non-vegetarian.

Dalam kasus seperti itu, kita dapat menemukan bahwa model memprediksi restoran non-vegetarian yang terkenal menjadi pengguna vegetarian hanya karena lebih banyak orang di wilayahnya yang menilai tinggi restoran non-vegetarian tertentu. Masalah ini dapat diatasi dengan banyak cara. Salah satu caranya adalah dengan membuat data tentang vegetarian secara sintetik yang mirip dengan model pengenalan ucapan sebelumnya. Cara lain adalah mengambil lebih banyak data dari pengguna yang ada dan mencoba menemukan pola menggunakan data baru.
Untuk masalah kita, lebih praktis menggunakan metode yang terakhir, karena lebih mudah mengumpulkan lebih banyak data dari pengguna yang ada daripada membuat data baru secara sintetik untuk semua lingkungan di kota. Beberapa data baru dapat menyertakan fitur Boolean yang menunjukkan preferensi seseorang menjadi vegetarian vs non-vegetarian, atau dapat berupa fitur tentang restoran dan kinerjanya pada pilihan vegetariannya.
Sekarang kami dapat menggunakan fitur tambahan ini dan melatih model untuk merekomendasikan restoran yang lebih baik kepada pengguna vegetarian.
⚠️ Selama beberapa tahun terakhir, kami dapat mengamati pergeseran dari pemfilteran kolaboratif ke pemfilteran berbasis konten, di mana kami merekomendasikan restoran berdasarkan menu, deskripsi, dan informasi lainnya. Ini dapat membantu bahkan restoran yang relatif baru yang hampir tidak ada yang tahu.

Pelacakan Eksperimen

Saat kita menjalankan puluhan percobaan, tidak mudah untuk mengingat setiap percobaan yang telah dilakukan. Oleh karena itu, lebih baik melacak eksperimen dan hasilnya. Ada banyak aspek percobaan. Namun, melacak elemen penting dapat membantu kita menjaga kewarasan dan membantu kita dalam pengambilan keputusan. Beberapa aspek kritis (tingkat tinggi) antara lain,

Pembuatan versi algoritma/kode (menyimpan model yang dilatih) Dataset menggunakan Hasil Hyperparameters

Aspek-aspek ini dapat dilacak dalam file teks, spreadsheet, spreadsheet bersama, dan sistem pelacakan eksperimen formal lainnya (Bobot dan bias, Komet, MLflow, studio SageMaker, dll.). Pemilihan alat yang digunakan tergantung pada fitur proyek yang diinginkan. Beberapa akan,

Replikasi hasil eksperimen diberikan oleh alat Alat yang membantu kita memahami hasilnya dengan mudah. (Ringkasan metrik/analisis) Pemantauan sumber daya, Visualisasi kesalahan, dll.,

Tidak perlu menekankan alat apa yang digunakan untuk melacak eksperimen, tetapi lebih baik memiliki beberapa sistem untuk melacak eksperimen Anda.

Dengan ini, kita dapat menyimpulkan bab kita tentang fase Pemodelan proyek. Kami telah melihat prosedur standar untuk mengembangkan model pembelajaran mesin dan menemukan kekurangan dalam model menggunakan analisis kesalahan. Terakhir, kami juga telah melihat pendekatan Data-centric yang sedang tren. Melalui ini, kami memiliki banyak waktu untuk merenungkan implikasi dari berbagai aspek model dan bahaya menerapkan model tanpa mengaudit atau menerapkannya.

Selanjutnya, kita akan mundur satu langkah lagi dan melihat fase “Data” dari siklus hidup proyek Machine learning. Saya harap Anda menyukai artikel ini. Jika ya, lihat artikel lain dalam seri ini atau lainnya!

Terima kasih telah membaca sampai sekarang! Semoga harimu menyenangkan!

㊙️Jika Anda ingin segera diberi tahu setiap kali artikel dirilis dalam seri ini, Anda harus menambahkan email Anda di sini.

MLOps 3.3: Pendekatan Data-Centric untuk pemodelan Machine learning. awalnya diterbitkan di Menuju AI di Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson