Kursus
Jadi, Anda telah melatih sebuah model yang hampir sempurna pada setiap contoh pelatihan, tetapi gagal pada data baru? Kita semua pernah mengalaminya.
Itu adalah definisi tingkat tinggi dari overfitting. Model Anda tidak mempelajari pola yang sebenarnya, melainkan menghafal data pelatihan. Di lingkungan produksi dengan data baru yang belum pernah dilihat, model akan membuat prediksi yang tidak akan Anda percayai. Semakin jauh data dunia nyata menyimpang dari sampel pelatihan, semakin buruk hasilnya.
Regularisasi mengatasi hal ini dengan menambahkan penalti pada fungsi loss. Penalti tersebut menghambat model yang kompleks. Dengan kata lain, inilah mekanisme yang mencegah model Anda menyesuaikan setiap titik data dan memaksanya untuk melakukan generalisasi.
Dalam artikel ini, saya akan membahas intuisi di balik regularisasi, metode yang paling umum — L1, L2, dan Elastic Net — serta cara memilih yang tepat untuk kasus penggunaan Anda.
Jika Anda ingin memahami mengapa dan bagaimana model machine learning gagal di produksi, bacalah artikel Bias-Variance Tradeoff kami.
Apa itu Regularisasi dalam Machine Learning
Regularisasi adalah teknik yang menambahkan istilah penalti ke fungsi loss model Anda untuk mengurangi kompleksitas.
Tanpa istilah penalti ini, sebuah model cukup fleksibel untuk menyesuaikan data pelatihan sedekat yang diinginkan — termasuk noise dan outlier. Regularisasi menambahkan biaya pada fleksibilitas tersebut. Semakin kompleks model ingin menjadi, semakin tinggi penalti yang didapat.
Fungsi loss model Anda biasanya mengukur perbedaan antara nilai prediksi dan aktual. Regularisasi menambahkan istilah ekstra ke persamaan itu, yang nilainya bertambah seiring membesarnya koefisien model. Kini model harus menyeimbangkan dua tujuan yang saling bersaing: menyesuaikan data pelatihan, dan menjaga koefisien tetap kecil.
Keseimbangan itulah yang mengendalikan fleksibilitas model.
Model yang sangat fleksibel dapat membelok ke bentuk apa pun untuk menyesuaikan data pelatihan. Regularisasi menghaluskannya kembali ke bentuk yang lebih sederhana — yang lebih mungkin bertahan pada data yang belum pernah dilihat model sebelumnya.
Mengapa Regularisasi Diperlukan
Setiap model yang Anda latih berada di antara dua model yang tidak dapat digunakan: satu yang terlalu sederhana dan satu yang terlalu kompleks.
Model yang terlalu sederhana tidak “menangkap” pola nyata dalam data Anda. Ia melewatkan sinyal. Itulah underfitting — model berkinerja buruk pada data pelatihan maupun data baru.
Model yang terlalu kompleks melakukan kebalikannya. Ia menyesuaikan setiap detail dalam data pelatihan, termasuk noise. Itulah overfitting — model berkinerja sangat baik pada data pelatihan, tetapi gagal pada data baru karena menghafal hal yang keliru.
Ambil regresi polinomial sebagai contoh konkret. Polinomial derajat-3 yang dipasang pada data dengan kurva lembut kemungkinan besar akan menyesuaikan pola yang benar. Namun polinomial derajat-15 pada data yang sama akan menyebabkan overfit — kurvanya melalui setiap titik data, tetapi membuat prediksi acak di antaranya.
Bagan di bawah menunjukkan seperti apa hal tersebut dalam praktik.

Model pas vs terlalu kompleks
Inilah bias-variance tradeoff.
Model sederhana memiliki bias tinggi — membuat asumsi kuat yang melewatkan pola nyata. Model kompleks memiliki varians tinggi — terlalu sensitif terhadap sampel pelatihan spesifik yang dilihatnya, dan perubahan kecil pada data menghasilkan model yang sangat berbeda.
Regularisasi membantu Anda mendapatkan keduanya. Ia tidak menghilangkan kompleksitas, tetapi memberinya penalti. Hasilnya, model Anda memiliki peluang lebih baik untuk mempelajari sinyal yang sebenarnya.
Cara Kerja Regularisasi
Setiap model belajar dengan meminimalkan fungsi loss — ukuran seberapa salah prediksinya. Tanpa regularisasi, satu-satunya tugas model adalah meminimalkan error tersebut. Ia akan melakukan apa pun, termasuk memperbesar koefisien agar sesuai dengan data pelatihan tetapi tidak melakukan generalisasi.
Regularisasi mengubah objektifnya. Alih-alih hanya meminimalkan error, kini model meminimalkan ini:

Cara kerja regularisasi
Istilah penalti adalah fungsi dari koefisien model. Koefisien yang besar meningkatkan penalti. Untuk menjaga total biaya tetap rendah, model dipaksa menjaga koefisiennya kecil — yang berarti solusi yang lebih sederhana dan lebih mudah digeneralisasi.
Simbol λ (lambda) mengendalikan seberapa besar pengaruh penalti. λ yang lebih tinggi memberikan tekanan lebih besar pada model untuk tetap sederhana. λ yang lebih rendah memungkinkan model lebih fokus menyesuaikan data. Anda akan melihat cara men-tune ini di bagian Memilih Kekuatan Regularisasi di bawah.
Jenis Regularisasi dalam Machine Learning
Ada beberapa cara untuk memberi penalti pada kompleksitas model. Masing-masing memberi tekanan pada koefisien dengan cara yang berbeda, sehingga cocok untuk situasi yang berbeda.
Regularisasi L2 (Regresi Ridge)
Regularisasi L2 memberikan penalti pada nilai kuadrat setiap koefisien. Semakin besar suatu koefisien, semakin besar kontribusinya terhadap penalti — dan semakin keras model berusaha mengecilkannya.

Regularisasi L2
Kata kuncinya adalah mengecilkan. L2 mendorong semua koefisien ke arah nol, tetapi tidak pernah benar-benar mencapai nol. Setiap fitur tetap ada di model, hanya bobotnya yang lebih kecil. Itu membuat Ridge menjadi pilihan awal yang baik saat Anda yakin sebagian besar fitur relevan dan Anda menginginkan model yang stabil serta mudah dikendalikan.
Regularisasi L1 (Regresi Lasso)
Regularisasi L1 memberikan penalti pada nilai absolut setiap koefisien, alih-alih kuadratnya.

Regularisasi L1
Perbedaan kecil itu berdampak besar. L1 dapat mendorong koefisien hingga tepat nol, yang berarti menghapus fitur dari model. Anda bisa menganggapnya sebagai seleksi fitur otomatis. Dengan kata lain, regularisasi Lasso dapat menyederhanakan model Anda dengan menghapus fitur-fitur.
Regularisasi L1 vs. L2
Perbedaan intinya terletak pada sparsite. L1 menghasilkan model yang sparse — hanya sebagian fitur yang lolos. L2 menghasilkan model yang dense — semua fitur tetap ada, dengan bobot yang lebih kecil.
Itu memengaruhi interpretabilitas juga. Model Lasso dengan 5 fitur aktif lebih mudah dijelaskan dibanding model Ridge dengan 50 fitur yang semuanya memberi kontribusi sedikit. Namun Ridge cenderung lebih stabil ketika fitur-fitur saling berkorelasi, karena ia menyebarkan bobot di antara fitur-fitur tersebut alih-alih secara sewenang-wenang memilih satu.
Berikut gambaran singkat perbedaannya:

Regularisasi L1 versus L2
Jika Anda ingin melihat perbandingannya di Python, tutorial Lasso dan Ridge Regression di Python kami siap membantu.
Regularisasi Elastic Net
Elastic Net menggabungkan L1 dan L2 menjadi satu istilah penalti.

Regularisasi Elastic Net
Idenya adalah mendapatkan yang terbaik dari keduanya: seleksi fitur dari L1 dan stabilitas dari L2. Ini berguna saat Anda memiliki fitur-fitur yang berkorelasi dan tetap ingin beberapa di antaranya disisihkan. Lasso saja cenderung memilih satu fitur dari kelompok yang berkorelasi dan mengabaikan sisanya. Elastic Net lebih mungkin mempertahankan beberapa di antaranya sambil tetap menghapus yang tidak relevan.
Regularisasi pada Berbagai Model
Regularisasi muncul di banyak model machine learning, tetapi dalam bentuk yang berbeda. Berikut penjelasannya.
Regresi linear adalah tempat kebanyakan orang pertama kali melihat regularisasi. Saat Anda menambahkan regularisasi L2 ke regresi linear, Anda mendapatkan regularisasi Ridge. Demikian pula, menambahkan L1 menghasilkan regresi Lasso. Matematikanya sama seperti yang dijelaskan di atas — sebuah istilah penalti ditambahkan ke loss least squares.
Regresi logistik bekerja dengan cara yang sama. Fungsi loss-nya berbeda — cross-entropy alih-alih error kuadrat — tetapi istilah penaltinya identik. Sebagian besar pustaka machine learning menerapkan regularisasi L2 ke regresi logistik secara default, itulah sebabnya Anda akan melihat parameter bernama C di scikit-learn. Itu adalah kebalikan dari λ, jadi C yang lebih kecil berarti regularisasi lebih kuat.
Jaringan saraf menggunakan beberapa pendekatan berbeda:
- Weight decay: regularisasi L2 yang diterapkan pada bobot jaringan — bekerja dengan cara yang sama, hanya skalanya jauh lebih besar
- Dropout: Selama pelatihan, secara acak menonaktifkan sebagian neuron di setiap lintasan, yang mencegah jaringan terlalu bergantung pada satu jalur melalui lapisan.
Keduanya mengurangi overfitting, tetapi melalui cara yang berbeda.
Model berbasis pohon tidak menggunakan penalti loss sama sekali. Sebagai gantinya, mereka mengendalikan kompleksitas melalui pruning — membatasi seberapa dalam pohon dapat tumbuh, atau menghapus cabang yang tidak cukup meningkatkan prediksi untuk membenarkan keberadaannya. Hyperparameter seperti max_depth dan min_samples_split di scikit-learn adalah parameter regularisasi, meskipun tidak disebut demikian.
Regularisasi dan Bias-Variance Tradeoff
Regularisasi adalah soal kompromi.
Saat Anda menambahkan istilah penalti, Anda membatasi apa yang dapat dilakukan model. Ia tidak lagi dapat menyesuaikan data pelatihan sedekat yang diinginkan. Kendala itu memperkenalkan bias — model membuat asumsi yang sedikit keliru secara desain, karena Anda memintanya untuk tetap sederhana.
Namun kendala yang sama mengurangi varians. Model yang tidak dapat menyesuaikan setiap titik data menjadi kurang sensitif terhadap sampel spesifik yang dilatih. Saat Anda melatihnya pada dataset yang sedikit berbeda, Anda akan mendapatkan hasil yang serupa. Stabilitas itulah yang benar-benar Anda inginkan, sehingga model Anda tidak gagal di produksi.
Tanpa regularisasi, Anda mendapatkan model yang sangat fleksibel dengan bias rendah (membuat sedikit asumsi dan menyesuaikan data pelatihan dengan baik) dan varians tinggi (perubahan kecil dalam data pelatihan menghasilkan model yang sangat berbeda, yang berarti tidak dapat dipercaya pada data baru).
Regularisasi adalah tentang menggeser keseimbangan. Sedikit lebih banyak bias ditukar dengan jauh lebih sedikit varians biasanya menghasilkan kinerja yang lebih baik pada data yang belum pernah dilihat model. Itulah komprominya, dan hampir selalu layak dilakukan.
Memilih Kekuatan Regularisasi
Sebagai praktisi machine learning, Anda harus menetapkan kekuatan regularisasi setelah memilih jenis regularisasi.
Kekuatan itu dikendalikan oleh sebuah hyperparameter — biasanya disebut lambda (λ) dalam notasi matematika, atau alpha di scikit-learn. Itu adalah pengali di depan istilah penalti. Saat Anda mengubahnya, Anda mengubah seberapa keras model didorong menuju kesederhanaan.
Jika Anda salah menentukan — ke arah mana pun — Anda akan mengalami masalah di produksi:
- Terlalu rendah: penalti terlalu lemah untuk berdampak. Model mengalami overfit, sama saja seperti tanpa regularisasi.
- Terlalu tinggi: penalti menjadi faktor dominan. Model terlalu dibatasi sehingga tidak dapat memahami pola nyata dalam data. Itulah underfitting.
Nilai yang tepat berada di antara keduanya, dan tidak ada jawaban universal. Itu bergantung pada data, model, dan seberapa banyak noise yang Anda hadapi.
Cara standar untuk menemukannya adalah cross-validation. Anda membagi data pelatihan menjadi beberapa fold, melatih model pada setiap kombinasi fold, dan mengukur performa validasi di berbagai nilai alpha. Nilai yang memberikan skor validasi rata-rata terbaik adalah yang Anda gunakan.
Di scikit-learn, RidgeCV dan LassoCV dapat melakukan ini secara otomatis — keduanya menjalankan cross-validation pada kisi nilai alpha dan memilih yang terbaik untuk Anda.
from sklearn.linear_model import RidgeCV
model = RidgeCV(alphas=[0.01, 0.1, 1.0, 10.0], cv=5)
model.fit(X_train, y_train)
print(model.alpha_)
Nilai alpha yang dicetak akan menunjukkan nilai terbaik yang ditemukan oleh cross-validation. Mulailah dengan rentang nilai yang luas, lalu persempit setelah Anda tahu di mana kisaran optimalnya.
Kesimpulan
Regularisasi adalah cara untuk mencegah model menjadi terlalu “pintar” hingga merugikan dirinya sendiri.
Ia memberi penalti pada kompleksitas, yang memaksa model menemukan solusi yang melakukan generalisasi alih-alih sekadar menghafal data pelatihan. L2 akan mempertahankan semua fitur Anda dan mengurangi pengaruhnya. L1 akan menghapus fitur yang tidak relevan. Elastic Net menggabungkan keduanya. Dan di seluruh model linear, regresi logistik, jaringan saraf, dan model ansambel, gagasan yang sama muncul dalam berbagai bentuk, dan tidak selalu disebut “regularisasi.”
Yang paling penting adalah teknik yang Anda pilih dan kekuatan yang Anda tetapkan. Jadi, yang harus Anda lakukan adalah bereksperimen. Cobalah pendekatan berbeda dengan nilai parameter yang berbeda. Jangan hanya memilih satu lalu lanjut.
Data Anda akan memberi tahu apa yang berhasil.
Jika Anda ingin melihat lebih banyak teknik regularisasi secara langsung, daftar di jalur Machine Learning Scientist in Python kami. Tersedia 85 jam materi yang akan mempersiapkan Anda untuk bekerja.
FAQs
Apa itu regularisasi dalam machine learning?
Regularisasi adalah teknik yang menambahkan istilah penalti ke fungsi loss model untuk mengurangi kompleksitas. Teknik ini mencegah overfitting dengan memaksa model menjaga koefisiennya tetap kecil, yang menghasilkan solusi lebih sederhana dan lebih mudah digeneralisasi ke data baru.
Kapan saya harus menggunakan regularisasi?
Gunakan regularisasi kapan pun model Anda berkinerja baik pada data pelatihan tetapi buruk pada data validasi atau uji — kesenjangan itu adalah tanda overfitting. Ini juga praktik standar yang baik saat Anda bekerja dengan data berdimensi tinggi atau dataset di mana jumlah fitur mendekati atau melebihi jumlah sampel.
Apakah regularisasi selalu meningkatkan kinerja model?
Tidak selalu. Jika model Anda sudah underfitting, menambahkan regularisasi akan memperburuk keadaan dengan mendorongnya menuju solusi yang lebih sederhana lagi. Tujuannya adalah menemukan keseimbangan yang tepat — regularisasi membantu saat model Anda terlalu kompleks, bukan saat terlalu sederhana.
Apa perbedaan antara alpha dalam Lasso dan C dalam regresi logistik?
Keduanya mengendalikan kekuatan regularisasi, tetapi bekerja ke arah yang berlawanan. alpha dalam Lasso menskalakan penalti — nilai yang lebih tinggi berarti regularisasi lebih kuat. C dalam regresi logistik scikit-learn adalah kebalikan dari kekuatan penalti, sehingga C yang lebih kecil berarti regularisasi lebih kuat. Jika Anda beralih di antara keduanya, ingat bahwa meningkatkan alpha dan menurunkan C memiliki efek yang sama.
Bisakah saya menggunakan regularisasi L1 dan L2 secara bersamaan?
Ya — itulah yang dilakukan Elastic Net. Ia menggabungkan kedua istilah penalti ke dalam satu objektif, sehingga Anda mendapatkan seleksi fitur ala L1 dan stabilitas ala L2 secara bersamaan. Ini berguna saat Anda memiliki fitur yang berkorelasi dan tetap ingin ada pemangkasan, karena Lasso saja cenderung secara sewenang-wenang menjatuhkan semua kecuali satu fitur dari kelompok yang berkorelasi.

