Sıralı
İşlev dizisini, bu işlevleri birbiri ardına çağıran yeni bir işleve oluşturur ("ileriye doğru işlev bileşimi").
Sequential (arrayOfFunctions)
Parametreler
arrayOfFunctions
: bir BrainScript işlev dizisi; örneğin işleçle :
oluşturulur: (LinearLayer{1024} : Sigmoid)
Döndürülen değer
Bu işlev başka bir işlev döndürür. Bu döndürülen işlev bir bağımsız değişken alır ve verilen tüm işlevlerin girişe sırayla uygulanmasının sonucunu döndürür.
Description
Sequential()
, bir girişin katmanların ilerlemesi yoluyla yayılarak işlendiği sinir ağlarında çok yaygın bir durumu kısa bir şekilde ifade etmeye olanak tanıyan güçlü bir işlemdir.
Diğer sinir ağı araç setlerinden bunu biliyor olabilirsiniz.
Sequential()
bağımsız değişkeni olarak bir işlev dizisi alır ve bir işlevin çıkışını her seferinde bir sonrakine geçirerek bu işlevi sırayla çağıran yeni bir işlev döndürür.
Bu örneği ele alalım:
FGH = Sequential (F:G:H)
y = FGH (x)
Burada, iki nokta üst üste (:
) BrainScript'in dizileri ifade etme söz dizimidir. Örneğin, (F:G:H)
üç öğesi olan bir dizidir: F
, G
ve H
.
Örneğin Python'da bu, olarak [ F, G, H ]
yazılır.
FGH
Yukarıda tanımlanan işlev,
y = H(G(F(x)))
Bu "işlev bileşimi" olarak bilinir ve genellikle bu forma sahip olan sinir ağlarını ifade etmek için özellikle kullanışlıdır:
+-------+ +-------+ +-------+
x -->| F |-->| G |-->| H |--> y
+-------+ +-------+ +-------+
tarafından Sequential (F:G:H)
mükemmel bir şekilde ifade edilir.
Son olarak, lütfen aşağıdaki ifadenin dikkate alın:
layer1 = DenseLayer{1024}
layer2 = DenseLayer{1024}
z = Sequential (layer1 : layer2) (x)
aşağıdakilerden farklı bir anlama gelir:
layer = DenseLayer{1024}
z = Sequential (layer : layer) (x)
İkinci formda, aynı paylaşılan parametre kümesine sahip aynı işlev iki kez uygulanırken, ilkinde iki katmanın ayrı parametre kümeleri vardır.
Örnek
Konuşma tanıma üzerinde daha önceki derin sinir ağı çalışmalarında kullanılan standart 4 gizli katmanlı ileri akış ağı:
myModel = Sequential (
DenseLayer{2048, activation=Sigmoid} : # four hidden layers
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{9000, activation=Softmax} # note: last layer is a Softmax
)
features = Input{40}
p = myModel (features)