Lecture 03 学习讲义
正文
工具
按问题查找
视觉与语言图像怎样约束一句新生成的描述?

训练前缀、EOS 与 PAD:损失究竟算在哪些位置

独立阅读
课堂上下文:从哪个问题来

先沿画面指出视觉特征进入哪里,再指出已有文字与下一词目标。连续说明展开 shifted target、EOS、PAD 和实际生成,LAB13 提供已保存的实验结果。理解本页可先把文字预测器作为输入输出模块;整数移位只演示目标构造,完整图像描述还需要图像条件与实际生成。

假设一条参考句为 a red square,词序列写成 [BOS,a,red,square,EOS]。训练输入去掉最后一项,目标去掉第一项。两者一一对齐:

已允许看到的文字 当前目标
BOS a
BOS a red
BOS a red square
BOS a red square EOS

如果批中还有更长句子,就给短句末尾补 PAD,使张量长度一致。PAD 只是存储约定,不是要生成的文字;EOS 却是有效的停止目标。掩掉 PAD 时把 EOS 一起掩掉,会抹去何时结束的监督。

词损失可写为 L=−∑i,tmitlog⁡pθ(yit∣Ii,yi,<t)/∑i,tmitL=-\sum_{i,t}m_{it}\log p_\theta(y_{it}\mid I_i,y_{i,<t})/\sum_{i,t}m_{it},其中 mit=1m_{it}=1 表示目标不是 PAD。分母按有效词计数,不按补齐后的格数计数。LAB13 的 prefix=Y[:,:-1]、targets=Y[:,1:] 和 ignore_index=PAD 对应这三个选择。

训练时喂真实前缀叫 teacher forcing。推理时前缀来自模型自己:若先误说 blue,后续就必须在 blue 的条件下继续,不能偷偷换回 red。因此保留集的逐词交叉熵与自由生成的整句正确率要分别读;两者评价的输入条件不同。

继续阅读与实验