1

我是一個全新的機器學習,我理解反向傳播和遞歸神經網絡的概念,但我似乎無法通過時間來掌握反向傳播。在維基百科的僞碼,通過時間反向傳播,初學者的簡單解釋

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 - 1   // 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 
     Update all the weights in the network 
     Average the weights in each instance of f together, so that each f is identical 
     x = f(x);     // compute the context for the next time-step 

所以,按照我的理解,我們在當前步驟所需的輸出,我們向前傳遞前的步驟,計算前面的步驟輸出和電流輸出之間的誤差。

我們如何更新權重?

Average the weights in each instance of f together, so that each f is identical 

這是什麼意思?

任何人都可以描述什麼BPTT是在簡單的條件給初學者一個簡單的參考?

回答

1

你展開了n時間步RNN f到純DNN,其中n是你的訓練特徵標籤序列的長度,和DNN包含fn實例。然後,您可以使用步長特徵標籤序列以標準BP訓練此DNN。在DNN中,f的每個實例都包含權重W的副本。每個將更新到不同的新W_1W_n。然後,W_1W_n的平均值是經過n步長序列訓練後的原始RNN f的新權重。培訓RNN f的整個過程是BPTT。