Regularization
Düzenlileştirmenin (regularization) makine öğreniminde aşırı öğrenmeyi nasıl önlediğini keşfet. Model genellemesini iyileştirmek için Ultralytics YOLO26 kullanarak dropout ve ağırlık azaltma (weight decay) uygulamayı öğren.
Düzenlileştirme, makine öğrenimi modellerinin aşırı karmaşık hale gelmesini önlemek ve yeni, görülmemiş verilere genelleme yeteneklerini geliştirmek için kullanılan bir dizi tekniktir. Eğitim sürecinde bir model, genellikle eğitim verileri içindeki karmaşık kalıpları öğrenerek hatasını en aza indirmeye çalışır. Ancak kısıtlamalar olmazsa, model gürültüyü ve aykırı değerleri ezberlemeye başlayabilir; bu sorun aşırı öğrenme (overfitting) olarak bilinir. Düzenlileştirme, modelin kayıp fonksiyonuna bir ceza ekleyerek uç parametre değerlerini caydırır ve algoritmayı daha pürüzsüz, daha sağlam kalıplar öğrenmeye zorlayarak bu sorunu ele alır.
Link to this sectionTemel Kavramlar ve Teknikler#
Düzenlileştirme ilkesi, genellikle en basit çözümün genellikle doğru çözüm olduğunu öne süren Occam'ın Usturası ile karşılaştırılır. Geliştiriciler, modeli kısıtlayarak verinin rastlantısal korelasyonlar yerine en önemli özelliklerine odaklanmasını sağlarlar.
Modern derin öğrenme çerçevelerinde düzenlileştirmeyi uygulamak için çeşitli yaygın yöntemler kullanılır:
- L1 ve L2 Düzenlileştirme: Bu teknikler, modelin ağırlıklarının büyüklüğüne dayalı bir ceza terimi ekler. Ridge Regresyonu veya ağırlık azalması (weight decay) olarak da bilinen L2 düzenlileştirmesi, büyük ağırlıkları ağır bir şekilde cezalandırarak bunların küçük ve yaygın olmasını teşvik eder. L1 düzenlileştirmesi veya Lasso Regresyonu ise bazı ağırlıkları sıfıra indirerek etkili bir şekilde özellik seçimi yapabilir.
- Dropout: Özellikle sinir ağlarında kullanılan bir dropout katmanı, eğitim sırasında nöronların bir yüzdesini rastgele devre dışı bırakır. Bu, ağı özellikleri tanımlamak için yedekli yollar geliştirmeye zorlayarak hiçbir tekil nöronun belirli bir tahmin için darboğaz haline gelmemesini sağlar.
- Veri Artırma (Data Augmentation): Öncelikle bir ön işleme adımı olsa da, veri artırma güçlü bir düzenlileştirici görevi görür. Veri kümesini görüntülerin değiştirilmiş versiyonlarıyla (döndürmeler, çevirmeler, renk kaymaları) yapay olarak genişleterek, model daha fazla değişkenliğe maruz kalır ve orijinal statik örnekleri ezberlemesi önlenir.
- Erken Durdurma (Early Stopping): Bu yöntem, eğitim sırasında modelin doğrulama verileri üzerindeki performansının izlenmesini içerir. Eğitim hatası azalırken doğrulama hatası artmaya başlarsa, modelin gürültüyü öğrenmesini önlemek için işlem durdurulur.
Link to this sectionGerçek Dünya Uygulamaları#
Düzenlileştirme, veri değişkenliğinin yüksek olduğu çeşitli endüstrilerde güvenilir yapay zeka sistemleri dağıtmak için vazgeçilmezdir.
-
Otonom Sürüş: Otomotiv çözümleri için yapay zeka alanında, bilgisayarlı görü modelleri yayaları ve trafik işaretlerini farklı hava koşullarında tespit etmelidir. Düzenlileştirme olmadan bir model, eğitim kümesindeki belirli ışık koşullarını ezberleyebilir ve gerçek dünyada başarısız olabilir. Ağırlık azalması gibi teknikler, tespit sisteminin yağmur, sis veya parlamaya karşı iyi genelleme yapmasını sağlar ki bu da otonom araçlarda güvenlik için kritiktir.
-
Tıbbi Görüntüleme: Tıbbi görüntü analizi gerçekleştirilirken, veri kümeleri gizlilik endişeleri veya hastalıkların nadirliği nedeniyle genellikle boyut olarak sınırlıdır. Aşırı öğrenme burada önemli bir risktir. Düzenlileştirme yöntemleri, röntgen veya MR'lardaki anormallikleri tespit etmek için eğitilen modellerin yeni hasta verileri üzerinde doğru kalmasına yardımcı olarak sağlık hizmetlerinde yapay zeka alanında daha iyi teşhis sonuçlarını destekler.
Link to this sectionPython ile Uygulama#
Modern libraries make applying regularization straightforward via hyperparameters. The following example demonstrates how to apply dropout and weight_decay when training the YOLO26 model.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train with regularization hyperparameters
# 'dropout' adds randomness, 'weight_decay' penalizes large weights to prevent overfitting
model.train(data="coco8.yaml", epochs=100, dropout=0.5, weight_decay=0.0005)Bu deneyleri yönetmek ve farklı düzenlileştirme değerlerinin performansı nasıl etkilediğini takip etmek, eğitim çalışmalarını günlüğe kaydetme ve karşılaştırma araçları sunan Ultralytics Platform aracılığıyla sorunsuz bir şekilde gerçekleştirilebilir.
Link to this sectionDüzenlileştirme ve İlgili Kavramlar#
Düzenlileştirmeyi diğer optimizasyon ve ön işleme terimlerinden ayırmak faydalıdır:
- Düzenlileştirme vs. Normalleştirme: Normalleştirme, yakınsamayı hızlandırmak için girdi verilerini standart bir aralığa ölçeklendirmeyi içerir. Yığın Normalleştirme gibi tekniklerin hafif bir düzenlileştirme etkisi olabilse de, temel amaçları öğrenme dinamiklerini stabilize etmektir; düzenlileştirme ise karmaşıklığı açıkça cezalandırır.
- Düzenlileştirme vs. Hiperparametre Ayarı: Düzenlileştirme parametreleri (dropout oranı veya L2 cezası gibi) kendi başlarına hiperparametredir. Hiperparametre ayarı, genellikle yanlılık-varyans dengesini optimize etmek için bu ayarların en uygun değerlerini arama sürecidir.
- Düzenlileştirme vs. Topluluk Öğrenmesi (Ensemble Learning): Topluluk yöntemleri, varyansı azaltmak ve genellemeyi iyileştirmek için birden fazla modelden gelen tahminleri birleştirir. Bu, düzenlileştirme ile benzer bir amaca ulaşsa da bunu tek bir modelin öğrenmesini kısıtlayarak değil, çeşitli modelleri bir araya getirerek yapar.






