簡體   English   中英

如何為Seq2Seq模型提供多個目標?

[英]How to provide multiple targets to a Seq2Seq model?

我在MSR-VTT數據集上做視頻字幕。

在這個數據集中,我有10,000個視頻, 對於每個視頻,我有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_batch_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預測更准確。

另外,我在模型2中使用了64的批量大小。這意味着通過選擇較小的批量大小我可以獲得更好的結果。 由於批量大小已經非常低,我似乎無法為模式1提供更好的訓練方法

另一方面,模型1具有更好的損失和訓練准確性結果......

我應該得出什么結論?
Model 2是否經常用新的字幕覆蓋以前訓練過的字幕而不是添加新的可能字幕?

不知道我是否理解這一點,因為我只使用像yolo這樣的神經網絡,但這里是我理解的:你正在訓練網絡上的字幕視頻,現在你想要為每個視頻訓練幾個字幕嗎? 我想問題是你用新的字幕覆蓋以前訓練過的字幕,而不是添加新的可能字幕。

您需要從一開始就訓練所有可能的標題,但不確定您的網絡架構是否支持這些標題。 讓它正常工作有點復雜,因為您需要將輸出與所有可能的標題進行比較。 此外,您可能需要使用20個最可能的標題作為輸出而不是僅使用一個以獲得最佳結果。 我害怕我做的不僅僅是提供這個想法,因為我無法找到一個好的來源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM