Dropout
Dropout işlevi.
Dropout (x)
Parametreler
x
: açılan öğe işlevinin uygulanacağı giriş
Not: Bırakma oranı bu işlevin parametresi değildir, bunun yerine bölümünde SGD
belirtilir.
Dönüş Değeri
Dropout()
girişe uygulanan bırakma işleminin sonucunu döndürür.
Sonuç, girişle aynı tensor boyutlarına sahiptir.
Description
İşlem, Dropout()
belirli bir olasılığa sahip girişin öğelerini rastgele seçer ve bırakma oranı olarak adlandırılır ve bunları 0 olarak ayarlar.
Bu, modellerin genelleştirilebilirliğini geliştirmek için gösterilmiştir.
CNTK uygulamasında, 0 olarak ayarlanmayan kalan değerler (1 / (1 - bırakma oranı)) ile çarpılır. Bu şekilde, açılan listeyle öğrenilen model parametreleri çıkarımda doğrudan geçerli olur. (Bu yapılmamışsa, kullanıcının çıkarımdan önce bunları el ile ölçeklendirmesi gerekir.)
Eğitiminizde açılan öğeyi etkinleştirmek için bölüme SGD
bir parametre dropoutRate
ekleyip bırakma oranını tanımlamanız gerekir.
Bu, bir eğitimi bırakmadan başlatmaya izin vermek ve ardından yaygın bir senaryo olan birkaç dönem sonra etkinleştirmek için kendi parametresi Dropout()
yerine bir bölümde gerçekleştirilirSGD
.
Bunun için, her dropoutRate
değerin belirli bir dönem için olduğu bir vektör olarak belirtilir.
Çıkarım çalıştırılırken, Dropout()
işlem girişini değiştirilmemiş olarak geçirir (işlem yapılmaz).
Örnek
Aşağıda, sona doğru bir açılan katmana sahip basit bir kıvrımlı ağ vardır:
features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)
Buna ek olarak, bölümünde karşılık gelen bir girişe SGD
ihtiyacınız vardır.
Aşağıdaki örnek, ilk 3 dönem için hiçbir bırakma kullanmamayı ve ardından %50 bırakma oranıyla devam etmek için tanımlar.
Kolaylık olması için, bu örnekte tekrarı belirtmek için yıldız işareti (*
) söz dizimi kullanılır:
SGD = {
...
dropoutRate = 0*3:0.5
...
}