1

這些天我研究了一些關於RNN和老師強迫的事情。但有一點我不明白。讀數和教師強迫的原則是什麼?通過將輸出與此步驟的輸入一起使用,或者將輸出用作此步驟的單元狀態,我們如何能夠將RNN的輸出(或地面實況)從前一時間步驟反饋回當前時間步驟?我讀過一些論文,但仍困惑着我。(╯□╰)o。希望有人能爲我解答。讀數和老師強迫的原則是什麼?

回答

2

老師強迫是使用基礎事實作爲每個時間步的輸入而不是網絡輸出的行爲,下面是描述情況的一些僞代碼。

x = inputs --> [0:n] 
y = expected_outputs --> [1:n+1] 
out = network_outputs --> [1:n+1] 


teacher_forcing(): 
    for step in sequence: 
     out[step+1] = cell(x[step]) 

正如你所看到的,而不是在以前的時間步長作爲輸入它,而不是提供地面實況餵養網絡的輸出。

它最初的動機是避免BPTT(通過時間反向傳播)不包含隱藏到隱藏連接的模型,例如GRU(門控循環單元)。

它也可以用於訓練制度,這個想法是,從火車開始到結束,你慢慢減少教師強迫的數量。這已被證明對網絡具有正常的影響。連接here的論文有進一步閱讀或者Deep Learning Book也不錯。

+0

你能說教學強制只是一個前饋神經網絡嗎? – Shaowu

+0

否,因爲信息仍然流經經常性連接,前饋網絡沒有經常性連接 – Oliver

+0

但假設x_ {i + 1} = F(x_i),F是我有的遞歸神經網絡模型,如果您展開一個標準遞歸神經網絡分解爲多個前饋神經網絡,並且同時使用教師強制來訓練該RNN,這整個過程是不是會精確地訓練前饋神經網絡?無論如何,你是否同意老師強迫只是在暫時意義上將訓練過程進行了平滑? – Shaowu