Lecture 033. 视觉特征怎样真正进入语言模型
3. 视觉特征怎样真正进入语言模型
按问题继续
真实CNN–GRU条件训练与greedy/beam生成、遮图/错图消融
3. 视觉特征怎样真正进入语言模型
输入是 [B,3,32,32]。两次卷积和池化产生空间特征,展平后映射为 48 维视觉向量;这里不用全局平均池化,因为“左/右”依赖空间布局。每个词嵌入为 24 维,与同一视觉向量拼接后送入共享的 GRU;视觉向量还初始化 64 维隐藏状态。输出 logits 为 [B,T,12]。
代码中的 targets=Y[:,1:] 对齐 prefix=Y[:,:-1],ignore_index=PAD 排除补齐位置。优化器同时更新 CNN、词嵌入、GRU 和输出头,没有把真实颜色或位置喂给 CNN。每个 epoch 的保留集交叉熵仍是 teacher-forced 量,因此不能替代下一节的自由生成评价。
一次真实失败也有教学意义: 首轮使用未中心化像素和 tanh 视觉投影时,模型几乎忽略图像,整句准确率为 5.56%,视觉置零结果相同;历史代码、权重和 JSON 均保留。最终结构改为输入中心化、LayerNorm/ReLU 投影并降低学习率,之后锁定新的保留集。结果支持“视觉依赖需要检验”,不支持只凭训练损失下降就宣布模型看图。