Aracılığıyla paylaş


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
    ...
}