Bagaimana cara menghasilkan dataset sintetis menggunakan model pembelajaran mesin yang dipelajari dengan dataset asli?

19

Secara umum, model pembelajaran mesin dibangun di atas kumpulan data. Saya ingin tahu apakah ada cara untuk menghasilkan set data sintetik menggunakan model pembelajaran mesin terlatih yang mempertahankan karakteristik dataset asli?

[data asli -> model pembelajaran mesin bangun -> gunakan model ml untuk menghasilkan data sintetis .... !!!]

Apa itu mungkin ? Tolong tunjukkan saya ke sumber terkait jika memungkinkan.

Hadooper
sumber

Jawaban:

27

Pendekatan umum adalah melakukan analisis statistik tradisional pada set data Anda untuk menentukan proses acak multidimensi yang akan menghasilkan data dengan karakteristik statistik yang sama. Kelebihan dari pendekatan ini adalah bahwa data sintetis Anda tidak tergantung pada model ML Anda, tetapi secara statistik "dekat" dengan data Anda. (lihat di bawah untuk pembahasan alternatif Anda)

Intinya, Anda memperkirakan distribusi probabilitas multivarian yang terkait dengan proses. Setelah memperkirakan distribusi, Anda dapat menghasilkan data sintetis melalui metode Monte Carlo atau metode pengambilan sampel berulang yang serupa. Jika data Anda menyerupai beberapa distribusi parametrik (misalnya lognormal) maka pendekatan ini mudah dan dapat diandalkan. Bagian yang sulit adalah memperkirakan ketergantungan antar variabel. Lihat: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis .

Jika data Anda tidak teratur, maka metode non-parametrik lebih mudah dan mungkin lebih kuat. Estimasi kepadatan kernal multivarian adalah metode yang dapat diakses dan menarik bagi orang-orang dengan latar belakang ML. Untuk pengenalan umum dan tautan ke metode tertentu, lihat: https://en.wikipedia.org/wiki/Nonparametric_statistics .

Untuk memvalidasi bahwa proses ini bekerja untuk Anda, Anda kembali melalui proses pembelajaran mesin dengan data yang disintesis, dan Anda harus berakhir dengan model yang cukup dekat dengan aslinya. Demikian juga, jika Anda memasukkan data yang disintesis ke dalam model ML Anda, Anda harus mendapatkan output yang memiliki distribusi yang sama dengan output asli Anda.

Sebaliknya, Anda mengusulkan ini:

[data asli -> model pembelajaran mesin bangun -> gunakan model ml untuk menghasilkan data sintetis .... !!!]

Ini mencapai sesuatu yang berbeda dari metode yang baru saja saya jelaskan. Ini akan memecahkan masalah terbalik : "input apa yang dapat menghasilkan set output model apa pun yang diberikan". Kecuali jika model ML Anda terlalu pas untuk data asli Anda, data yang disintesis ini tidak akan terlihat seperti data asli Anda dalam segala hal, atau bahkan sebagian besar.

Pertimbangkan model regresi linier. Model regresi linier yang sama dapat memiliki kecocokan identik dengan data yang memiliki karakteristik yang sangat berbeda. Demonstrasi terkenal ini adalah melalui kuartet Anscombe .

Keempat set identik ketika diperiksa menggunakan statistik ringkasan sederhana, tetapi sangat bervariasi ketika digambarkan

Pikir saya tidak punya referensi, saya percaya masalah ini juga dapat muncul dalam regresi logistik, model linier umum, SVM, dan K-means clustering.

Ada beberapa jenis model ML (misalnya pohon keputusan) di mana dimungkinkan untuk membalikkan mereka untuk menghasilkan data sintetis, meskipun itu memerlukan beberapa pekerjaan. Lihat: Menghasilkan Data Sintetis untuk Mencocokkan Pola Penambangan Data .

MrMeritology
sumber
saatnya membaca lebih lanjut tentang Monte-Carlo dan analisis statistik multidimensi ... terima kasih atas penjelasan yang bagus .. !!!
Hadooper
2

Ada pendekatan yang sangat umum untuk menangani dataset yang tidak seimbang, yang disebut SMOTE, yang menghasilkan sampel sintetis dari kelas minoritas. Ini bekerja dengan mengganggu sampel minoritas menggunakan perbedaan dengan tetangganya (dikalikan dengan beberapa angka acak antara 0 dan 1)

Berikut ini kutipan dari makalah aslinya:

Sampel sintetis dihasilkan dengan cara berikut: Ambil perbedaan antara vektor fitur (sampel) yang dipertimbangkan dan tetangga terdekatnya. Lipat gandakan perbedaan ini dengan angka acak antara 0 dan 1, dan tambahkan ke vektor fitur yang dipertimbangkan.

Anda dapat menemukan informasi lebih lanjut di sini .

AlexPnt
sumber
1

Augmentasi data adalah proses pembuatan sampel secara sintetis berdasarkan data yang ada. Data yang ada sedikit terganggu untuk menghasilkan data baru yang mempertahankan banyak properti data asli. Misalnya, jika datanya adalah gambar. Pixel gambar dapat ditukar. Banyak contoh teknik augmentasi data dapat ditemukan di sini .

Brian Spiering
sumber