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:
Fayda: Bu, Maliyet Fonksiyonunun J optimizasyonunu hem daha hızlı hem de daha kolay yapar 😋
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 🤔
İ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
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 👶
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 👨🚀
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 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, 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. 🤓
İ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 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 🤗🎉🎊
Burada 🐾