🎈 NN Uygulama İp Uçları

📈 Veri Normalleştirme

Veri Hazırlama'nın bir

  • Elimizde, hepsi pozitif ya da negatif olan bir özelliğe var ise, bu, 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 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 🤔

👷‍♀️ Train / Dev / Test Ayırması

İ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 yanlılıksız (unbiased) bir değerlendirme yapmak için kullanılır

Test Seti

Son modelin yanlılıksı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 verileri görüyor ve öğreniyor 👶

😐 Doğrulama Seti

Model hiper-parametrelerini ayarlarken eğitim setine uygun bir modelin yanlılıksı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ılıklı hale gelir.

Model bu verileri görüyor, ancak bundan asla öğrenmiyor 👨‍🚀

🧐 Test Seti

Eğitim setine uygun son bir modelin yanlıksı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 gerçek değerlerden tahmin edilen değerlerin 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 verilerin üstüne 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 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