簡體   English   中英

用一個任務訓練一個 model 並用另一個任務測試它?

[英]Train a model with a task and test it with another task?

我的數據框由 3000 個樣本、n 個特征和兩個目標列組成,如下所示:

mydata:
       id,   f1, f2, ..., fn, target1, target2
       01,   23, 32, ..., 44,   0    ,  1
       02,   10, 52, ..., 11,   1    ,  2
       03,   66, 15, ..., 65,   1    ,  0
                     ...
       2000, 76, 32, ..., 17,   0    ,  1

在這里,我有一個多任務學習問題(我在這個領域很新),我想用target1訓練一個模型/網絡並用target2測試它。

如果我們將target1target2視為任務,它們可能是相關的任務,但我們不知道有多少。 所以,我想看看我們可以使用多少由task1( target1 )訓練的model來預測task2( target2 )。

看來,這是不可能的,因為target1是二進制 class(0 和 1),但target2有兩個以上的值(0,1 和 2)。 有沒有辦法處理這個問題?

這不是多任務學習,而是遷移學習。 如果您已經訓練 model 來預測target1target2 ,那將是多任務學習。

是的,有辦法處理這個問題。 model 的最后一層只是從上一層計算最終 label 的分類器頭。 您可以將前一層的 output 視為數據點的嵌入,並使用此表示來訓練/微調另一個 model。 但是,您必須插入另一個頭,因為您現在有三個類。

所以在偽代碼中,你需要類似的東西

model = remove_last_layer(model)
model.add(<your new classification head outputting 3 classes>)
model.train()

然后,您可以將此方法與基線進行比較,在基線上您從頭開始訓練target2以分析這兩個任務之間的遷移學習。

暫無
暫無

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

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