Zaman içinde geri yayılım - Backpropagation through time

Zaman içinde geri yayılım (BPTT), belirli tekrarlayan sinir ağları türlerinin eğitimi için gradyan tabanlı bir tekniktir . Elman ağlarını eğitmek için kullanılabilir . Algoritma bağımsız olarak çok sayıda araştırmacı tarafından türetilmiştir.

algoritma

BPTT, zaman içinde tekrarlayan bir sinir ağını açar.

Tekrarlayan bir sinir ağı için eğitim verileri, sıralı bir girdi-çıktı çiftleri dizisidir , . Gizli durum için bir başlangıç ​​değeri belirtilmelidir . Tipik olarak, bu amaç için tüm sıfırlardan oluşan bir vektör kullanılır.

BPTT, zaman içinde tekrarlayan bir sinir ağını açarak başlar. Açılmamış ağ, girdiler ve çıktılar içerir , ancak ağın her kopyası aynı parametreleri paylaşır. Ardından, tüm ağ parametrelerine göre maliyetin gradyanını bulmak için geri yayılım algoritması kullanılır.

Yinelenen bir katman ve ileri beslemeli bir katman içeren bir sinir ağı örneğini düşünün . Eğitim maliyetini tanımlamanın farklı yolları vardır, ancak toplam maliyet her zaman her bir zaman adımının maliyetlerinin ortalamasıdır. Her bir zaman adımının maliyeti ayrı ayrı hesaplanabilir. Yukarıdaki şekil , yinelenen katmanı üç zaman adımı için açarak ve ileri besleme katmanı ekleyerek zamandaki maliyetin nasıl hesaplanabileceğini gösterir . Açılmamış ağdaki her bir örnek aynı parametreleri paylaşır. Böylece her durumdaki ( ) ağırlık güncellemeleri birlikte toplanır.

sözde kod

Eğitim verilerinin giriş-çıkış çiftlerini içerdiği , ancak ağın zaman adımları için açıldığı , BPTT'nin kısaltılmış bir sürümü için sözde kod :

Back_Propagation_Through_Time(a, y)   // a[t] is the input at time t. y[t] is the output
    Unfold the network to contain k instances of f
    do until stopping criteria is met:
        x := the zero-magnitude vector // x is the current context
        for t from 0 to n − k do      // t is time. n is the length of the training sequence
            Set the network inputs to x, a[t], a[t+1], ..., a[t+k−1]
            p := forward-propagate the inputs over the whole unfolded network
            e := y[t+k] − p;           // error = target − prediction
            Back-propagate the error, e, back across the whole unfolded network
            Sum the weight changes in the k instances of f together.
            Update all the weights in f and g.
            x := f(x, a[t]);           // compute the context for the next time-step

Avantajlar

BPTT, tekrarlayan sinir ağlarının eğitimi için evrimsel optimizasyon gibi genel amaçlı optimizasyon tekniklerinden önemli ölçüde daha hızlı olma eğilimindedir .

Dezavantajları

BPTT'nin yerel optimumla ilgili sorunları var. Tekrarlayan sinir ağlarında, yerel optimumlar, ileri beslemeli sinir ağlarından çok daha önemli bir problemdir. Bu tür ağlardaki tekrarlayan geri besleme, hata yüzeyinde yerel optimumların sıklıkla ortaya çıkmasına ve hata yüzeyindeki zayıf konumlara neden olan kaotik tepkiler yaratma eğilimindedir.

Ayrıca bakınız

Referanslar