Deep Learning Notlarım — 2

Kerem Hallaç
3 min readMay 31, 2020

--

Merhaba, Coursera Deep Learning Specialization serisinin ikinci kursu Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization’ı tamamladım. Kursa başlamak isteyenlere içeriğiyle ilgili fikir vermesi için notlarımı bu yazımda topladım.

Setting Up Machine Learning Application

Elimizde var olan bir eğitim setini düşünelim. Bu setimizdeki verileri şu şekilde parçalara ayırırız;

Preventing Deep Neural Network from Overfitting – mc.ai
  • Traint Set: Modelimizdeki algoritmaları eğittiğimiz kısımdır.
  • Dev Set: Eğitilen modellerin hangisinin başarılı olduğu bilgisini verir.
  • Test Set: En son elimizdeki başarılı modelin ne kadar iyi çalıştığına dair yansız bir tahmin verir.

Bu 3 farklı veri setimizin oranları değişkendir. Elimizdeki data ne kadar büyükse train set’i o kadar fazla tutmamız gerekir.

Bias / Variance

Bias, modelin eğitim seti üzerindeki yanlı olma durumu. Variance ise modelin değişkenliği olarak düşünebiliriz.

Train set error ve Dev set error oranlarına göre Bias / Variance durumlarını 4 farklı ihtimal üzerinden değerlendirelim.

Train set error’a bakarak sistemimizi ne kadar iyi oturttuğumuz hakkında fikir sahibi oluruz. Bias problemimiz olup olmadığını anlarız.

Train error -> Dev error’a doğru giderek variance problemin ne kadar olduğunu tespit ederiz.

High Bias ve High Variance’ı nasıl çözeriz?

Kursta bununla ilgili çok güzel bir algoritma verilmiş;

Dropout Regularization

Ağınızdaki birimlerin rastgele saf dışı bırakılmasını sağlar. Droput’un etkisi ağırlıkları küçültmek ve overfittingi önlemeye yardımcı düzenlemeyi yapmaktır. Test aşamasında kullanılmaz.

Dezavantajı, cost func(J)’nin sürekli değişkenlik göstermesidir.

Data Augmentation

Elimizdeki var olan datasetimizin boyutunu çeşitli yöntemlerle çoğaltma tekniğidir. Örnek olarak resimlerden oluşan bir veri setindeki resimleri yatay çevirerek veya rastgele kırparak veri setimizi büyütebiliriz.

Early Stopping

Gradient descentdeki sinir ağların en iyi sonucu aldıktan sonra train işlemini durdurmaya denir. Bu sayede overfittingi azaltmış oluruz. Dezavantajı cost func(J)’ı optimize etmeyi ve overfittingi azaltmayı aynı anda yapmaya çalışır.

Normalizing Inputs

Sinir ağlarını eğitirken eğitme hızını arttırmaya yarar. 2 adımdan oluşur;

  • Ortalamalarını alıp sıfıra çekeriz
  • Variance’larını normalize ederiz.

Daha düzgün ve simetrik bir cost func(J) elde etmek için yaparız.

Mini-batch Gradient Descent

Eğitim setini daha küçük parçalara bölüp, bu küçük setlere mini-batch ismini veririz. Setimizi bütün halinde işlemek yerine bu küçük setleri sırayla işleriz. Genelde büyük eğitim setlerinde bu yöntem kullanılır.

RMSprop

Gradient Descent’i hızlandırmaya yarar. Modeldeki parametreleri günceller. Algoritmanın öğrenme hız süresi hızlanır.

Learning Rate Decay

Öğrenme oranını train işleminin sonuna doğru düşürerek sonucun etrafında daha sık dolaşmamızı sağlar.

Batch Normalization

Hiperparametrelerinizin problemi çok daha kolay aramasını, sinir ağınızın daha güçlü olmasını sağlar. Hidden layer değerlerindeki değişim miktarını kısıtlarız. Regularization etkisine sahiptir.

Softmax Regression

Logistic Regression’nın genellenmiş haline denir. Yani sınıflandırma sonucu 1–0 değil de başka ihtimallerinde olduğu durumlardır. Sonuç olarak bize her bir sonucun olma ihtimalini verir.

Yazımın amacı bu kurs serisine başlamak isteyenlere kursun içeriğiyle ilgili ön bir bilgi sunabilmekti. Serinin diğer kurslarını da bitirdikçe notlarımı paylaşacağım. ✍️

Serinin ilk kursundaki notlarım;

--

--