这些天我研究了一些关于RNN和教师强迫的事情。但有一点我无法弄清楚。读数和教师强制的原理是什么?我们如何通过将输出作为特征与此步骤的输入一起使用,或者使用输出作为此步骤,将RNN的输出(或基本事实)从前一时间步骤反馈回当前时间步骤细胞状态?我读了一些论文,但仍然让我感到困惑。(╯□╰)o。希望有人可以回答我。
答案 0 :(得分:4)
教师强迫是使用基础事实作为每个时间步的输入而不是网络的输出的行为,以下是一些描述情况的伪代码。
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也很好。