Regularisasi Neural Network dengan Mixup

Sebuah neural network dapat menyesuaikan diri dengan contoh training-nya sambil tetap berperilaku tidak terduga di ruang di antara contoh-contoh tersebut. Jika dua input yang berdekatan berasal dari kelas berbeda, training standar memberi tahu model apa yang harus dilakukan pada titik ujung, tetapi sering kali hanya memberi sedikit informasi tentang titik-titik di antaranya.

Mixup mengubah sinyal training tersebut. Alih-alih berlatih hanya pada contoh individual, mixup membuat contoh sintetis dengan menginterpolasi pasangan input beserta labelnya. Model kemudian diminta menghasilkan prediksi campuran yang sesuai. Ini bertindak sebagai regularizer karena membatasi bagaimana prediksi boleh berubah di antara contoh training.

Idenya sederhana, tetapi penggunaan yang baik memerlukan pemahaman terhadap asumsi yang tersembunyi di balik interpolasi. Artikel ini membangun mixup dari kasus dua contoh, menjelaskan arti soft target, dan menunjukkan kapan metode ini berguna atau menyesatkan.

Mulai dengan dua contoh training

Misalkan sebuah classifier membedakan dua kelas gambar, cat dan dog. Representasikan label sebagai vektor one-hot:

cat -> [1, 0]
dog -> [0, 1]

Training standar dapat mengambil gambar kucing x_cat dan mengoptimalkan model menuju [1, 0], lalu mengambil gambar anjing x_dog dan mengoptimalkannya menuju [0, 1].

Mixup dapat memilih koefisien lambda = 0.7 dan membuat pasangan training baru:

mixed input = 0.7 * x_cat + 0.3 * x_dog
mixed label = 0.7 * [1, 0] + 0.3 * [0, 1]
            = [0.7, 0.3]

Input yang dihasilkan adalah campuran numerik kedua gambar. Targetnya tidak menyatakan bahwa gambar sintetis tersebut memiliki kelas ground-truth baru. Target itu memberi tahu optimizer bahwa, untuk titik yang dibangun ini, output yang diinginkan harus mencerminkan interpolasi yang sama dengan yang digunakan untuk membuat input.

Perbedaan ini penting. Mixup adalah prosedur training, bukan klaim bahwa data yang muncul secara alami harus berisi kucing 70% dan anjing 30% secara literal.

Aturan mixup adalah kombinasi konveks

Untuk dua contoh training (x_i, y_i) dan (x_j, y_j), mixup membangun:

x_mix = lambda * x_i + (1 - lambda) * x_j
y_mix = lambda * y_i + (1 - lambda) * y_j

dengan lambda antara 0 dan 1. Karena koefisiennya non-negatif dan berjumlah satu, kedua campuran tersebut merupakan kombinasi konveks.

Metode mixup asli mengambil sampel lambda dari distribusi Beta simetris:

lambda ~ Beta(alpha, alpha)

Hyperparameter alpha mengendalikan seberapa kuat contoh training dicampur. Ketika alpha kecil dan positif, sampel dari distribusi ini cenderung berada lebih dekat ke 0 atau 1, sehingga banyak contoh sintetis tetap dekat dengan salah satu titik ujung. Nilai yang lebih besar menempatkan lebih banyak probabilitas menjauh dari titik ujung, menghasilkan interpolasi yang rata-rata lebih kuat.

Anda tidak perlu menafsirkan alpha sebagai ukuran universal kekuatan regularisasi. Rentang yang berguna bergantung pada representasi data, model, task, dan pilihan training lainnya. Perlakukan ini sebagai hyperparameter yang perlu divalidasi, bukan konstanta untuk disalin dari sistem lain.

Mengapa mencampur label merupakan bagian dari metode

Mencampur input tanpa mencampur target menciptakan masalah pembelajaran yang berbeda.

Kembali ke contoh 70% kucing dan 30% anjing. Jika input campuran diberi hard label [1, 0], optimizer akan diberi tahu bahwa seluruh interpolasi harus dianggap sebagai kucing biasa. Jika pengambilan sampel acak lain menetapkan campuran yang berdekatan sebagai dog, target training dapat berubah tajam meskipun input hanya berubah sedikit.

Soft target [0.7, 0.3] menghindari kontradiksi khusus tersebut. Saat interpolasi bergerak dari satu titik ujung ke titik lainnya, target juga bergerak secara kontinu:

lambda = 1.00 -> [1.00, 0.00]
lambda = 0.75 -> [0.75, 0.25]
lambda = 0.50 -> [0.50, 0.50]
lambda = 0.25 -> [0.25, 0.75]
lambda = 0.00 -> [0.00, 1.00]

Dengan loss seperti cross-entropy yang menerima target probabilitas, model diberi penalti berdasarkan target campuran ini, bukan satu hard class.

Efek praktisnya adalah objective training kini mencegah perubahan tajam yang arbitrer di sepanjang segmen garis hasil sampling di antara contoh. Inilah mental model utama mixup: menambahkan batasan perilaku di antara titik yang diamati, bukan sekadar menduplikasi atau mengganggu setiap titik secara independen.

Apa yang diubah mixup pada distribusi training

Empirical risk minimization biasa berlatih pada contoh yang diamati. Mixup berlatih pada distribusi yang dibangun di sekitar dan di antara contoh tersebut.

Ini lebih dari image augmentation biasa seperti crop atau flip. Crop umumnya berusaha mempertahankan label semantik asli. Mixup sengaja mengubah input sekaligus target.

Pertimbangkan minibatch yang berisi empat contoh:

inputs:  A  B  C  D
labels:  a  b  c  d

Implementasi sederhana dapat mengacak batch untuk mendapatkan pasangan:

partners: C  A  D  B

Kemudian setiap posisi memperoleh interpolasinya sendiri:

A with C
B with A
C with D
D with B

Secara konseptual, training menjadi:

sample minibatch
choose partner examples
sample interpolation coefficients
mix inputs
mix targets with the same coefficients
compute predictions on mixed inputs
compute loss against mixed targets
update model

Implementasi production berbeda dalam hal apakah satu koefisien digunakan bersama di seluruh batch, diambil per contoh, atau disesuaikan dengan bentuk data. Itu adalah pilihan implementasi di sekitar aturan inti; bukan jaminan dari metode itu sendiri.

Mixup melakukan regularisasi dengan membatasi perilaku interpolasi

Neural network yang fleksibel dapat memberikan label yang benar pada titik training sambil membentuk decision surface yang rumit di sekitarnya. Akurasi training saja tidak membatasi setiap wilayah di antara contoh.

Mixup menambahkan titik perantara hasil sampling dan meminta model menghasilkan target perantara di sana. Ini mendorong perilaku yang lebih mulus dan lebih mendekati linear di sepanjang arah tertentu yang dibentuk oleh pasangan contoh training.

Pemilihan kata penting: mixup tidak membuat neural network menjadi linear secara global. Mixup membatasi perilaku di sepanjang interpolasi yang diambil sebagai sampel, dan efeknya bergantung pada contoh mana yang dipasangkan serta seberapa kuat pencampurannya.

Ini juga menjelaskan mengapa mixup berbeda dari sekadar menurunkan kapasitas model. Model yang lebih kecil membatasi kumpulan fungsi yang dapat direpresentasikan network di mana pun. Mixup mengubah objective training dengan menambahkan batasan terstruktur pada titik sintetis tanpa mengubah arsitektur.

Asumsi utamanya dapat salah

Mixup paling intuitif ketika interpolasi dalam representasi input sesuai dengan jalur yang bermakna untuk task tersebut. Asumsi ini tidak dijamin benar.

Untuk gambar yang direpresentasikan sebagai array pixel ternormalisasi, kombinasi konveks terdefinisi dengan baik: pixel yang bersesuaian dicampur secara numerik. Gambar hasilnya mungkin tampak seperti tumpang tindih transparan, tetapi model tetap dapat menerima batasan training yang koheren di antara dua contoh.

Untuk input lain, interpolasi langsung dapat tidak masuk akal. Token ID adalah identifier diskret, sehingga merata-ratakan token ID 120 dengan token ID 300 tidak menghasilkan token yang secara semantik berada di tengah keduanya. Kode fitur kategorikal memiliki masalah yang sama ketika nilai numeriknya merupakan identifier arbitrer, bukan kuantitas.

Bahkan dengan fitur kontinu, interpolasi dapat menciptakan sampel yang mustahil. Misalkan sebuah feature vector mengodekan pengukuran fisik yang nilai validnya mengikuti constraint. Garis lurus di antara dua observasi valid dapat melewati wilayah yang tidak mungkin terjadi dalam sistem nyata. Training berat pada titik tersebut dapat menanamkan inductive bias yang salah.

Sebelum menggunakan mixup, ajukan pertanyaan konkret: apakah interpolasi garis lurus dalam representasi ini mendefinisikan batasan training yang berguna? Jika jawabannya tidak jelas, pencampuran yang lebih kuat tidak otomatis lebih baik.

Workflow klasifikasi yang praktis

Mixup paling mudah dievaluasi sebagai satu perubahan training terhadap baseline yang bersih.

Pertama, latih model secara normal dan biarkan validation serta test set tidak berubah. Kemudian aktifkan mixup hanya untuk batch training. Bandingkan metric yang penting bagi aplikasi, bukan hanya training loss.

Eksperimen yang berguna setidaknya mencatat:

  • performa validation pada contoh asli yang tidak dicampur;
  • kurva training dan validation loss;
  • error per kelas ketika sebagian kelas lebih penting daripada yang lain;
  • kualitas probabilitas jika code downstream menggunakan predicted probability;
  • perilaku terhadap corruption atau shift input nyata yang relevan bagi Anda.

Harapkan objective training terlihat berbeda. Model yang dilatih terhadap soft target campuran menyelesaikan masalah training yang lebih sulit dan telah berubah, sehingga akurasi training pada contoh campuran tidak dapat dibandingkan langsung dengan akurasi training hard-label biasa. Evaluasi model akhir pada distribusi validation asli.

Saat men-tuning alpha, mulailah dengan membandingkan sejumlah kecil setting yang masuk akal terhadap baseline tanpa mixup. Tujuannya bukan memaksimalkan seberapa aneh contoh sintetis terlihat, tetapi menemukan apakah batasan interpolasi meningkatkan perilaku yang benar-benar Anda deploy.

Kesalahan umum yang mengubah arti mixup

Mencampur input tetapi mempertahankan satu hard label

Jika Anda membuat 0.7 * x_i + 0.3 * x_j tetapi hanya mempertahankan y_i, Anda tidak lagi menerapkan objective mixup standar. Target harus menggunakan koefisien interpolasi yang sama dengan input.

Menerapkan mixup pada data validation atau test

Mixup mengubah distribusi training. Contoh validation dan test biasanya harus tetap dalam bentuk nyata agar evaluasi mengukur task yang akan dihadapi model setelah deployment.

Menganggap setiap representasi numerik dapat diinterpolasi

Tensor yang numerik tidak otomatis membuat interpolasi linear bermakna. ID, kategori terenkode, struktur graph, dan variabel fisik dengan constraint dapat memerlukan strategi augmentation berbeda atau representasi yang membuat interpolasi memiliki interpretasi yang dapat dipertahankan.

Menganggap soft target sebagai probabilitas terkalibrasi

Label campuran adalah target training yang dibangun. Target [0.7, 0.3] tidak menetapkan bahwa input sintetis memiliki probabilitas dunia nyata 70% sebagai kucing. Demikian pula, training dengan mixup tidak dengan sendirinya menjamin probabilitas terkalibrasi pada data deployment. Calibration harus dievaluasi terpisah jika aplikasi bergantung padanya.

Menyembunyikan masalah data di balik regularisasi yang lebih kuat

Jika error berasal dari contoh yang salah label, kelas yang hilang, atau train-serving mismatch, mixup tidak memperbaiki penyebab tersebut. Mixup dapat mengubah seberapa kuat contoh individual memengaruhi model, tetapi tidak dapat menciptakan informasi yang hilang atau membuat label tidak valid menjadi benar.

Kapan mixup layak diuji

Mixup adalah kandidat yang masuk akal ketika Anda memiliki supervised neural network, input berada dalam representasi di mana interpolasi cukup bermakna sebagai batasan training, dan baseline menunjukkan tanda bahwa regularisasi tambahan dapat membantu.

Mixup kurang menarik ketika input pada dasarnya diskret, ketika sampel terinterpolasi melanggar constraint domain penting, atau ketika model sudah underfitting. Dalam kasus tersebut, menambahkan batasan interpolasi dapat menyelesaikan masalah yang salah atau memperburuk masalah kapasitas yang sudah ada.

Ada pula opsi yang lebih sederhana. Jika masalahnya adalah overfitting biasa, weight decay, augmentation yang sesuai task, early stopping, atau data yang lebih representatif mungkin lebih mudah dipahami. Mixup layak digunakan ketika asumsi spesifiknya—perilaku yang berguna di antara contoh—sesuai dengan masalah.

Gunakan asumsi interpolasi sebagai aturan keputusan

Rumus mixup hanya membutuhkan dua baris. Keputusan desain yang sebenarnya adalah apakah kedua baris tersebut menyatakan hubungan yang masuk akal dalam data Anda.

Jika ya, mixup memberi cara langsung untuk memberi tahu neural network bagaimana prediksinya seharusnya berperilaku di antara contoh yang diamati. Biarkan distribusi validation tidak berubah, tuning kekuatan pencampuran berdasarkan metric yang penting, dan periksa failure alih-alih menganggap interpolasi yang lebih kuat pasti membantu.

Jika input hasil interpolasi tidak bermakna, lewati mixup atau pindahkan ide tersebut ke representasi di mana interpolasi memiliki interpretasi yang dapat dipertahankan. Regularizer ini berguna karena constraint yang diterapkannya, bukan karena mencampur tensor secara inheren menguntungkan.