🎈NN Uygulama İp Uçları
Last updated
Last updated
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 😋
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 🤔
İyi bir değerlendirme için veri setini aşağıdaki gibi bölmek iyidir:
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 👶
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 👨🚀
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, 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, 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. 🤓
İ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 🤗🎉🎊
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