深度學習:多標籤學習-論文閱讀(CNN-RNN、Rethinking Structure)

摘要:多標籤分類問題中,要想提高預測性能,需要充分利用好標籤之間的相互依賴。文獻【1】指出可以利用RNN的中間狀態來表示標籤之間的關係,提出CNN-RNN framework來學習標籤之間的依賴關係以及樣本-標籤之間的關係,文獻【2】進一步開發RNN的記憶能力,提出Rethinking Structure學習標籤之間的關係,同時使用一種標籤敏感的代價函數進行訓練。本文對兩篇文獻的主要思想進行總結。

目錄

  1. CNN-RNN: A Unified Framework for Multi-label Image Classification
  2. Deep Learning with a Rethinking Structure for Multi-label Classification

主要參考文獻

【1】“CNN-RNN: A Unified Framework for Multi-label Image Classification”

【2】“Deep Learning with a Rethinking Structure for Multi-label Classification”

1. CNN-RNN: A Unified Framework for Multi-label Image Classification

摘要:儘管深度卷積神經網絡已經在單標籤的圖像分類任務中取得很大成功,但現實中的圖像通常是多標籤的。這意味着一個圖像會有不同的目標,場景,動作和屬性。傳統的多標籤圖像分類方法對每個標籤獨立學習一個分類器,然後通過排序或者閾值得到最終的分類結果。這些方法儘管也有用,但它們不能挖掘出標籤之間的依賴關係。本文中,我們利用RNN來處理這個問題。將其與CNN結合,我們提出的CNN-RNN結構可以學習到語義標籤的依賴性和圖片-標籤的相互關係,同時可以進行端到端的訓練。實驗中取得了當時最佳的結果。

方法:網絡結果如圖所示。
Alt

  1. 爲了分析標籤之間的高階關係,使用LSTM作爲RNN神經元。
  2. 使用CNN對圖像進行特徵提取,使用RNN對多標籤進行編碼。
  3. 訓練時,網絡輸入爲圖像和標籤,網絡輸出爲標籤。
  4. 預測時,使用束搜索對預測序列進行判斷,選擇最優解。每次搜索過程中,使用CNN進行特徵提取,將特徵和當前的標籤結合,作爲預測層的輸入,得到輸出序列,然後進行下一步地搜索。由原文公式(4),提取的特徵和標籤先通過線性變換,相加,再投影到預測層,因此第一次預測的時候不需要標籤,之後的每一次預測都用到前一次的預測結果。預測步驟如下圖所示。
    Alt
    代碼結構:
  • 兩個編碼器:CNN和RNN.
  • 一個解碼器:Dense.

然後可以像Sequence-to-Sequence那樣訓練。或者直接構造多輸入模型,預測時第一次的標籤全部取0。

2. Deep Learning with a Rethinking Structure for Multi-label Classification

摘要:多標籤分類是一類重要的機器學習問題。當處理多標籤分類問題時,能夠處理標籤之間隱藏關係的算法能獲得更好的性能,而提取標籤之間的關係是一項困難的任務。本文中,我們通過RNN的記憶結構提出一種新的深度學習方法來更好的學習標籤之間的相互關係。該結構再最終的預測前能很好的考慮不同標籤之間的關係。另外,在Rethinking的過程能容易滿足不同需求的代價函數。當然也取得了當時最佳的結果。

方法:Rethinking結構如圖所示。
在這裏插入圖片描述

  1. Rethinking結構的實現中,看作者源碼首先是將輸入向量堆成T個時間步,然後把每個時間的輸出都拼接到一起,作爲最後全連接層的輸入。
  2. 訓練過程中使用標籤敏感的代價函數,對常規的二分類代價函數用不同標籤值的損失大小進行加權。

代碼地址:https://github.com/yangarbiter/multilabel-learn.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章