我应该使用什么损失函数来对seq2seq RNN模型进行评分?
我正在研究Cho 2014论文,该论文介绍了用于seq2seq建模的编码器-解码器体系结构。 在本文中,他们似乎使用给定输入(或负对数似然)的输出概率作为长度为M的输入和长度为N的输出y的损失函数:xxxMMMyyyNNN P(y1,…,yN|x1,…,xM)=P(y1|x1,…,xm)P(y2|y1,x1,…,xm)…P(yN|y1,…,yN−1,x1,…,xm)P(y1,…,yN|x1,…,xM)=P(y1|x1,…,xm)P(y2|y1,x1,…,xm)…P(yN|y1,…,yN−1,x1,…,xm)P(y_1, …, y_N | x_1, …, x_M) = P(y_1 | x_1, …, x_m) P(y_2 | y_1, x_1, …, x_m) \dots P(y_N | y_1, …, y_N-1, x_1, …, x_m) 但是,我认为将其用作损失函数会遇到一些问题: 似乎假设教师在训练期间是强迫的(即,不是使用解码器的位置猜测作为下一次迭代的输入,而是使用已知标记。 它不会惩罚长序列。由于概率是输出的到N,因此如果解码器生成更长的序列,则第一个N之后的所有内容都不会计入损失。111NNNNNN 如果模型预测字符串尽头的早期令牌,则损失函数仍需要步-这意味着我们将基于未经训练的模型“流形”生成输出。这似乎草率。NNN 这些顾虑是否有效?如果是这样,那么向更高级的损失功能迈进了吗?