0
我在多任務工作學習問題,我有3個不同的任務來解決:缺少標籤
- 多標籤分類問題
p1
我哪裏有大小s1
,其中的標籤矢量v1
每個正確的標籤有一個1,否則爲0。 - 多標籤分類問題
p2
其中我有一個大小爲s2
的標籤矢量v2
,其中每個正確的標籤有1,否則爲0。 - 單個標籤分類問題
p3
其中我有一個大小爲s3
的標籤矢量v3
,其中我有一個1表示正確的標籤,否則爲0。
我遇到的問題是,對於每個示例,我可能有一個或兩個問題的標籤未定義。比如我可以有:
v1 = [0,1,1,0]
v2 = [1,0,1,0,0,1]
v3 = [0,0,0]
其中v3
標籤丟失。我的問題是如何阻止缺少標籤的問題backprop,以便網絡的權重不更新丟失的數據?
現在我的代碼看起來是這樣的:
target1 = tf.cast(labels['1'], tf.float32)
loss1 = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(
labels=target1, logits=logits1))
target2 = tf.cast(labels['2'], tf.float32)
loss2 = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(
labels=target2, logits=logits2))
target3 = tf.cast(labels['3'], tf.float32)
loss3 = tf.reduce_mean(
tf.nn.softmax_cross_entropy_with_logits(
labels=target3, logits=logits3))
loss = loss1 + loss2 + loss3
train_op = tf.train.AdamOptimizer().minimize(
loss, global_step=global_step)
我的想法是在0每個例如設置的重量缺少標籤,但我真的不知道這是否是一個可行的解決方案特別是在我得到滿批的情況下,只有缺少問題的標籤。
我可以用缺失值填充向量爲-1或其他任何東西,如果這可以幫助!
非常感謝!
如果沒有標籤,爲什麼在訓練集中的輸入是完全的?這種媒介沒有學習。在開始之前從訓練集中刪除這些。 – Prune
它是一個多達德網絡。這意味着我可以爲兩個任務分配一個標籤,而不是第三個標籤,因此我不想將其刪除,因爲它會爲三個任務中的兩個帶來信息! –
我明白了;任務不是獨立的。 – Prune