Lecture 03 学习讲义
正文
工具
按问题查找
Lecture 033. 视觉特征怎样真正进入语言模型

3. 视觉特征怎样真正进入语言模型

独立阅读

按问题继续

真实CNN–GRU条件训练与greedy/beam生成、遮图/错图消融

3. 视觉特征怎样真正进入语言模型

输入是 [B,3,32,32]。两次卷积和池化产生空间特征,展平后映射为 48 维视觉向量;这里不用全局平均池化,因为“左/右”依赖空间布局。每个词嵌入为 24 维,与同一视觉向量拼接后送入共享的 GRU;视觉向量还初始化 64 维隐藏状态。输出 logits 为 [B,T,12]。

L=−∑i,t1[yit≠PAD]log⁡pθ(yit∣Ii,yi,<t)∑i,t1[yit≠PAD].L=-\frac{\sum_{i,t}\mathbf 1[y_{it}\ne PAD]\log p_\theta(y_{it}\mid I_i,y_{i,<t})}{\sum_{i,t}\mathbf 1[y_{it}\ne PAD]}.

代码中的 targets=Y[:,1:] 对齐 prefix=Y[:,:-1],ignore_index=PAD 排除补齐位置。优化器同时更新 CNN、词嵌入、GRU 和输出头,没有把真实颜色或位置喂给 CNN。每个 epoch 的保留集交叉熵仍是 teacher-forced 量,因此不能替代下一节的自由生成评价。

一次真实失败也有教学意义: 首轮使用未中心化像素和 tanh 视觉投影时,模型几乎忽略图像,整句准确率为 5.56%,视觉置零结果相同;历史代码、权重和 JSON 均保留。最终结构改为输入中心化、LayerNorm/ReLU 投影并降低学习率,之后锁定新的保留集。结果支持“视觉依赖需要检验”,不支持只凭训练损失下降就宣布模型看图。