如何为Seq2Seq模型提供多个目标?

2024-09-29 06:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在MSR-VTT数据集上做视频字幕。你知道吗

在这个数据集中,我有10000个视频,对于每个视频,我有20个不同的字幕。你知道吗

我的模型由一个seq2seq RNN组成。编码器的输入是视频特征,解码器的输入是嵌入的目标字幕,解码器的输出是预测字幕。你知道吗

我想知道使用同一视频的不同字幕是否有用。


因为我找不到明确的信息,所以我尝试对它进行基准测试

基准:

模式1:每个视频有一个字幕

我用1108个体育视频训练它,批量大小为5,超过60个时代。这种配置每个历元大约需要211秒。你知道吗

Epoch 1/60 ; Batch loss: 5.185806 ; Batch accuracy: 14.67% ; Test accuracy: 17.64%
Epoch 2/60 ; Batch loss: 4.453338 ; Batch accuracy: 18.51% ; Test accuracy: 20.15%
Epoch 3/60 ; Batch loss: 3.992785 ; Batch accuracy: 21.82% ; Test accuracy: 54.74%
...
Epoch 10/60 ; Batch loss: 2.388662 ; Batch accuracy: 59.83% ; Test accuracy: 58.30%
...
Epoch 20/60 ; Batch loss: 1.228056 ; Batch accuracy: 69.62% ; Test accuracy: 52.13%
...
Epoch 30/60 ; Batch loss: 0.739343; Batch accuracy: 84.27% ; Test accuracy: 51.37%
...
Epoch 40/60 ; Batch loss: 0.563297 ; Batch accuracy: 85.16% ; Test accuracy: 48.61%
...
Epoch 50/60 ; Batch loss: 0.452868 ; Batch accuracy: 87.68% ; Test accuracy: 56.11%
...
Epoch 60/60 ; Batch loss: 0.372100 ; Batch accuracy: 91.29% ; Test accuracy: 57.51%

模式2:每个视频有12个字幕

然后我训练了相同的1108个体育视频,批量大小为64个。
这个配置每个历元大约需要470秒。你知道吗

因为每个视频有12个字幕,所以我的数据集中的样本总数是1108*12。
这就是为什么我选择这个批量大小(64~=12*old\u batch\u size)。因此,这两个模型启动优化器的次数相同。你知道吗

Epoch 1/60 ; Batch loss: 5.356736 ; Batch accuracy: 09.00% ; Test accuracy: 20.15%
Epoch 2/60 ; Batch loss: 4.435441 ; Batch accuracy: 14.14% ; Test accuracy: 57.79%
Epoch 3/60 ; Batch loss: 4.070400 ; Batch accuracy: 70.55% ; Test accuracy: 62.52%
...
Epoch 10/60 ; Batch loss: 2.998837 ; Batch accuracy: 74.25% ; Test accuracy: 68.07%
...
Epoch 20/60 ; Batch loss: 2.253024 ; Batch accuracy: 78.94% ; Test accuracy: 65.48%
...
Epoch 30/60 ; Batch loss: 1.805156 ; Batch accuracy: 79.78% ; Test accuracy: 62.09%
...
Epoch 40/60 ; Batch loss: 1.449406 ; Batch accuracy: 82.08% ; Test accuracy: 61.10%
...
Epoch 50/60 ; Batch loss: 1.180308 ; Batch accuracy: 86.08% ; Test accuracy: 65.35%
...
Epoch 60/60 ; Batch loss: 0.989979 ; Batch accuracy: 88.45% ; Test accuracy: 63.45%

以下是我的数据集的直观表示:

Model 1 and Model 2


我如何解释这个结果?你知道吗

当我手动查看测试预测时,模型2的预测看起来比模型1的预测更准确。你知道吗

另外,一批型号为64。这意味着我可以通过选择更小的批量获得更好的结果。似乎我没有更好的模式1训练方法,因为批量已经很小了

另一方面,有较好的训练效果。。。你知道吗

我应该得出什么结论?
模型2是否不断地用新的字幕覆盖先前训练的字幕,而不是添加新的可能字幕?


Tags: 数据模型test视频batch模式基准批量
1条回答
网友
1楼 · 发布于 2024-09-29 06:27:34

我不确定我是否正确理解这一点,因为我只研究过像yolo这样的神经网络,但以下是我的理解: 你正在训练一个网络来为视频添加字幕,现在你想为每个视频添加几个字幕,对吗?我想问题是你正在用新的字幕覆盖你以前训练过的字幕,而不是添加新的可能的字幕。你知道吗

您需要从一开始就训练所有可能的字幕,但不确定您的网络架构是否支持这一点。 要让它正常工作有点复杂,因为您需要将输出与所有可能的字幕进行比较。此外,您可能需要使用20个最有可能的标题作为输出,而不是仅仅使用一个,以获得最佳的结果。 恐怕我只能提供这种想法,因为我找不到一个好的来源。你知道吗

相关问题 更多 >