🎈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:

normalized=xiμσnormalized=\frac{x_{i}-\mu }{\sigma}

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

  1. 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 🤔

  1. 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. 🤔

  1. Yüksek varyans veya yüksek yanlılık yok mu?

TADAAA işimiz bitti 🤗🎉🎊

🌞 Yazının Aslı

🧐 Referanslar

Last updated