🎈NN Uygulama İp Uçları
📈 Veri Normalleştirme
Veri Hazırlama'nın bir parçasıdır
Elimizde, hepsi pozitif ya da negatif olan bir özellik varsa bu, bunları içeren katmandaki düğümler için öğrenmeyi zorlaştıracaktır. Sigmoid aktivasyon fonksiyonunu izleyenler gibi zikzak yapmak zorunda kalacaklar.
Verilerimizi sıfıra yakın bir ortalama olacak şekilde dönüştürürsek, hem pozitif değerlerin hem de negatif değerlerin olduğundan emin olacağız.
Formül:
Fayda: Bu, Maliyet Fonksiyonunun J optimizasyonunu hem daha hızlı hem de daha kolay yapar 😋
🚩 NN'i uygulamadan önce iyi düşünülmesi gerekenler
Katman sayısı, gizli birimlerin sayısı, öğrenme hızı, aktivasyon fonksiyonları...
İlk seferinde hepsini doğru seçmek çok zor, bu yüzden bunu iteratif bir süreç olarak ele almamız lazım.
Fikir ➡ Kod ➡ Deney ➡ Fikir 🔁
Yani burada mesele, bu döngüde nasıl verimli bir şekilde dolaşılacağıdır 🤔
👷♀️ Eğitim, Doğrulama ve Test Verilerinin Ayrılması
İyi bir değerlendirme için veri setini aşağıdaki gibi bölmek iyidir:
Kısım | Açıklama |
Eğitim Seti (Training Set) | Modeli eğitmek için kullanılır |
Doğrulama Seti (Development (Validation) Set) | Model hiper-parametrelerini ayarlarken yansız (unbiased) bir değerlendirme yapmak için kullanılır |
Test Seti | Son modelin yansız bir değerlendirmesini sağlamak için kullanılır |
🤓 Eğitim Seti
Modeli eğitmek için kullandığımız gerçek veri seti (NN durumunda ağırlık ve yanlılık).
Model bu verilerden görür ve öğrenir 👶
😐 Doğrulama Seti
Model hiper-parametrelerini ayarlarken eğitim setine uygun bir modelin yansız bir değerlendirmesini sağlamak için kullanılan veri örneği. Doğrulama setindeki beceri, model konfigürasyonuna dahil edildiğinden değerlendirme daha yanlı hale gelir.
Model bu verileri görür, ancak bunlarda asla öğrenmez 👨🚀
🧐 Test Seti
Eğitim setine uygun son bir modelin yansız bir değerlendirmesini sağlamak için kullanılan veri örneği. Modeli değerlendirmek için kullanılan altın standardı sağlar 🌟.
Uygulama Notu: Test seti, gerçek dünyada kullanıldığında modelin karşılaşacağı çeşitli sınıfları kapsayan dikkatlice örneklenmiş verileri içermelidir 🚩🚩🚩❗❗❗
Sadece model tamamen eğitildiğinde kullanılır 👨🎓
😕 Yanlılık (Bias) / Varyans (Variance)
🕹 Yanlılık
Yanlılık, tahmin edilen değerlerin gerçek değerlerden ne kadar uzak olduğunu gösteren bir kavramdır. Ortalama öngörülen değerler gerçek değerlerden uzaksa yanlılık yüksektir.
Yüksek yanlılığa sahip olmak, modelin çok basit olduğunu ve verilerin karmaşıklığını yakalamadığını Eksik öğrendiğini (underfitting) ve bu nedenle verilere uygun olmadığını gösterir. 🤕
🕹 Varyans
Varyans, belirli bir veri noktası için model tahmininin değişkenliği veya bize verilerimizin yayılmasını söyleyen bir değerdir.
Varyansı yüksek olan model, daha önce görmediği verilerde genelleme yapamamaktadır.
Yüksek varyansa sahip olmak algoritmanın eğitim verilerindeki rastgele gürültüyü modellediğini ve verileri aşırı öğrendiğini (overfitting) gösterir. 🤓
👀 Varyans / Yanlılık Görselleştirilmesi
↘ Modeli Uygularken..
İstenilen performansı elde edemezsek modelimizi geliştirmek için şu soruları sormamız gerekir:
Aşağıdaki çözümlerin performansını doğrulama seti üzerinden kontrol ediyoruz
Yüksek yanlılık var mıdır? varsa, bu bir eğitim problemidir, yapılabilecekler:
Daha büyük bir ağ dene
Daha uzun eğit
Daha iyi optimizasyon algoritması dene
Başka bir NN mimarisini dene
Bunun yapısal bir sorun olduğunu söyleyebiliriz 🤔
Yüksek varyans var mıdır? varsa, doğrulama seti performans problemidir, yapılabilecekler:
Daha fazla veri kullan
Düzenlileştirme (Regularization) yap
L2, dropout, data augmentation
Belki veri ya da algoritmik bir problem olduğunu söyleyebiliriz. 🤔
Yüksek varyans veya yüksek yanlılık yok mu?
TADAAA işimiz bitti 🤗🎉🎊
🌞 Yazının Aslı
🧐 Referanslar
Last updated