Week1
Bias and Variance


Regularization
variance → L2 and L1 Regularization



Frobenius Norm Weight decay
How regularization prevents overfitting?
How does regularization prevents overfitting lambdanın değerine göre (gerçekten büyük olması durumunda) w weight matrix i daha fazla 0 a yakın değerler içermeye başlıyor. Bu neural networkte bazı değrleri sıfırlıyor yani aynı layer sayısında ama her layerda daha az feature olan bir neural networkle karşılaşıyoruz. Daha simple bir neural networkü traşn ediyor gibi oluyoruz.

For example when activation function is tanh.
When lambda is big → W will be small → Z will be relatively small → small z values end up being nearly linear for tanh function → in the linear case overfitting will be prevented
Dropout
Dropout with some probability zeroing out some hidden layers while training → this way it makes us use a smaller network → regularization effect no dropout on the test time

Why dropout works?
With dropout inputs can be eliminated. yani o node a gelen inputlardan herhangi birine daha fazla odaklanmasını engelliyor ve weighti daha iyi dağıtabiliyor.
Farklı layerlarda farklı dropoutlar kullanılabilir. Daha az node u olan layerlarda droput kullanılmasa bile olur.

Augmentation

Early Stopping

Instead of early stopping l2 regularization can be used but L2 is costly.
Normalization
Normalization is used to speed up the training Subtract mean → move the training set until it has zero mean Normalize variances → so that x and y will reside on the same intervals

Why normalize inputs?
Normalized Loss function may results in faster gradient decrease with less steps to the minimum

Vanishing/Exploiding Gradient Problem
Özellikle deep neural networklerde daha da sıkıntılı bir problem

Solution: Better Weight Initialization
has input features. While randomly initializing weights, we normally multiply the values with 0.01. But instead multiplying with variance is better.
Farklı activation functionlar için farklı initialization stratejileri uygulanabilir. Bu aşağıdaki çözümler vanishing/exploiding gradient problemini çözüyor.

Week2: Optimization Algorithms
Daha hızlı train etmek ve daha hızlı sonuç almak adına optimization algoritmalarını kullanıyoruz.
Mini-batch







Depending on the , we average over days/units


V_0 = 0 introduces a bias that reduces the initial average values
Gradient Descent with momentum
Gradient descent update kısmında dw’yi farklı updateliyorsun.


soldaki kullanım tercih edilmeli
RMSProp
Gradient descent update ksımında dw ‘yi böleceğin bir değer hesaplıyorsun.

Adam (Adaptive moment estimation) optimizer
RMSProp + momentum = Adam


Learning Rate Decay
decay rate below becomes another hyperparameter
slowly reduce alpha


Local optima problem
When the derivative is close to 0 for a long time, it slow down the learning → plateaus most points of zero gradient in a cost function are saddle points, not local minimums

Week3: HyperParameter Tuning



Büyük dikdörtgen içinde en iyi perform eden değerleri bulduktan sonra bu noktaları merkeze alarak daha küçük bir dörtgende daha sıkı bir arama yapılabilir.
Scaling while hyperparameter tuning

mesela learning rate için arama yaparken logaritmik scale’de uniform randomized bir search yapmak daha makul..
Yani scalingde r içinbir randomiation yapmalıyız.

Aynı şekilde burada da beta değerinin 0.9 olması ile 0.999 olması arasında çok fark var. 0.9 olması son 10 günlük averagea bakılıyor olması anlamına gelirken 0.999 olması son 1000 günlük average a bakılıyor olmasına denk. Bu durumda 1 - beta üzerinden logaritmik bir randomization uygulanmalı.
Week3: Batch normalization

eğer sadece z_norm kullanacak olsak hidden unitler için tüm değerler mean 0 ve variance 1 olacaktı. ama belki onlar için farklı bir distribution olması daha anlamlı olabilri. O yüzden z_norm’u iki parametre ile linearization yaparak z_tilda hesaplıyoruz.
normalizing z (before activation) is much more preferred to normalizing a (after activation)

Because batch norm zeroes out the mean, if we use batch norm for hidden units, we dont need to learn b parameter. Instead beta parameter is enough



Week3: multiclass classification

