分類問題-----多標籤(multilabel)、多類別(multiclass)

2021-01-14 深度學習科研平臺

大致上,解決multilabel的方法有兩種

大致上,解決multilabel的方法有兩種

1)轉化問題。把問題轉化為一個或多個單目標分類問題,或是回歸問題。

2)算法適應。修改學習算法使得能直接處理multilabel的數據。

結論是PT3效果很好,PT4較好也應用比較廣泛,PT6由於數據不平衡(如果標籤密度太小會導致大量的-1)。


另外,以下幾個問題是需要關注和進一步研究的

Dimensionality Reduction 降維

Label Dependence 標註依賴

Active learning 主動學習

Multi-instance multi-label learning (MIML) 多實例多標籤

Multi-view learning. 多視角

Multi-task learning (MTL) 多任務

Hierarchical multi-label classification (HMC) 多層多標籤

  1、multilabel classification的用途

         多標籤分類問題很常見, 比如一部電影可以同時被分為動作片和犯罪片, 一則新聞可以同時屬於政治和法律,還有生物學中的基因功能預測問題, 場景識別問題,疾病診斷等。

  2. 單標籤分類

         在傳統的單標籤分類中,訓練集中的每一個樣本只有一個相關的標籤 l ,這個標籤來自於一個不重合的標籤集合L,|L| > 1.當|L|=2 時,這就是一個二分類問題,或文本和網頁數據的過濾(filtering)問題。當|L| > 2 時是多分類問題。

  3、多標籤分類問題的定義

        簡單的說就是同一個實例,可以有多個標籤, 或者被分為多個類。和多分類的區別是, 多分類中每個實例只有一個標籤。下面是幾個形式化的定義。

    用代表樣本空間,= 為有限標籤集合, 我們假設中的樣本實例和的一個子集相關,這個子集稱作相關標籤集。同時補集被認為與x不相關。相關標籤集L用向量標識,其中。用表示可能的標籤集。

      一個多標籤分類器h是一個映射,對每一個實例分配一個分配一個標籤子集。因此分類器h的輸出是一個向量。

  4、與多標籤分類相關/相似的問題

        一個同屬於監督學習並和多標籤分類很相關的問題就是排序問題(ranking)。排序任務是對一個標籤集排序,使得排在前面的標籤與相應實例更相關。

      在特定分類問題中,標籤屬於一個層次結構(hierarchical structure)。當數據集標籤屬於一個層次結構的時候,我們這個任務為層次分類,如果一個樣本與層次結構的多個節點相關, 那麼這個任務就被稱為層次多標籤分類。

     多實例學習(multiple-instance learning)是監督學習的一個變種,用的比較少 ,就不說了。

  5. 多標籤分類的方法

       方法基本上分為兩種,一種是將問題轉化為傳統的分類問題,二是調整現有的算法來適應多標籤的分類

       常用的轉化方法有好幾種,比如對每個實例確定或隨機的分配一個標籤,或只保留只有一個標籤的訓練樣本,然後用傳統的多分類方法去訓練。這種方法會導致訓練樣本的損失,所以不推薦使用。還可以將訓練樣本按每個標籤構造一個訓練集,每個樣本屬於或不屬於這個標籤,對每個標籤單獨訓練一個分類器,然後將多個分類器的結果合成。還有將每個多標籤單獨看做一個新標籤,在一個更多的標籤集上做多分類。當多標籤樣本比較少時,這個方法就比較受限。還有對每個有多個標籤的樣本,複製該樣本,每個樣本具有不同的標籤,加入訓練集後使用覆蓋(coverage based)分類法。

     調整的算法也比較多,比如通過調整boost kNN  SVM等實現多分類,這些調整通常也會用到上面的轉換。其中調整kNN實現的多標籤分類可以加入先驗概率,並能對輸出標籤排序。基於SVM的算法中,有人在訓練集中加入了|L|個二分類的訓練結果,然後再進行一次分類,這個方法考慮到了不同標籤之間的依賴,也是應用棧(Stacking 多個分類器的疊加)的一個特殊情況。還有人利用了相關規則挖掘的方法。

6. 評價標準

       令D表示多標籤評價數據集,有|D|個多標籤樣本。令H為一個多標籤分類器,令為有H基於的預測結果集。

     下面是幾個評價標準

      

         

           

   7、 一點感悟

         多標籤學習,還有層次結構學習等,多個標籤之間一般不是獨立(independent)的,所以好的算法要利用標籤之間的依賴

         算法訓練的時候要麼降低cost function 要麼學習貝葉斯概率,兩種方法本質一樣,但表現形式不一樣

  8.  其它

       F-measure能比較好的平衡分類器對不同類別實例不同時在不同類上的表現,因此更適合於不平衡的數據。對一個m維二元標籤向量 ,對給定的預測,F-measure定義為:

其中由定義,0/0=1

F-measure對應於精度和召回的調和平均。

scikit-learn介紹

多類分類(Multiclass classification): 表示分類任務中有多個類別, 比如對一堆水果圖片分類, 它們可能是橘子、蘋果、梨等. 多類分類是假設每個樣本都被設置了一個且僅有一個標籤: 一個水果可以是蘋果或者梨, 但是同時不可能是兩者

多標籤分類(Multilabel classification): 給每個樣本一系列的目標標籤. 可以想像成一個數據點的各屬性不是相互排斥的(一個水果既是蘋果又是梨就是相互排斥的), 比如一個文檔相關的話題. 一個文本可能被同時認為是宗教、政治、金融或者教育相關話題.

多輸出回歸(Multioutput classification): 給每個樣本一系列的目標值. 可以被想像成對每個數據點預測多個屬性, 比如在某個定位的風向和風速

多輸出-多分類分類(Multioutput-multiclass classification) 和 多任務分類(Multi-task classification):意味著一個單一的評估器需要處理多個聯合分類任務. 這是多標籤分類任務(只考慮二院分類)和多類分類任務的推廣, 輸出格式是2d陣列.

每一個輸出變量的標籤機可以是不同的. 比如一個樣本的第一輸出變量可以是有限類別中是pear的概率值, 第二個輸出變量可能是有限顏色中是blue或者green的概率.

這意味著任意的支持多輸出多類或者多任務分類任務的分類器, 均支持作為一種特殊情況的多標籤分類任務. 多任務分類與多輸出分類任務相似, 但是有不同的模型公式.

維基介紹

在機器學習中, 多標籤分類(multi-label classification) 和與其極度相關的多輸出分類(multi-output classification)是分類問題的變種, 每個實例可能會設置多個標籤

多標籤分類(Multi-label classification)

概念
多標籤分類是多類分類的一般化, 多類分類是將實例精確分類到一個或者多個類別中的單一標籤問題, 在多標籤問題中, 沒有限制說一個實例可以被設置多少個類別.
正規點講就是, 多標籤分類是找到一個模型將輸入

映射到二值向量

boosting: AdaBoost.MH和AdaBoost.MR是AdaBoost的多標籤數據擴展版本

k近鄰:ML-kNN是將k-NN分類器擴展到多標籤數據

決策樹

向量輸出的核方法

神經網絡:BP-MLL是反向傳播算法的多標籤學習問題的擴展

多類分類(Multiclass classification)

概念
在機器學習中, 多類(multiclass)或者多項式(multinomial)分類是將實例分配給一個而非多於兩個類別的種類(將實例分類給兩類中的一個稱為二元分類binary classification). 很多分類算法自身支持多於兩類的使用, 剩下的就是二元分類算法了, 這就可以通過很多策略去轉換成多項式分類器.
要將多類分類與多標籤分類區分開, 後者是一個類別有多個標籤需要被預測

多類分類採用的算法

二元分類問題轉化

二元問題的擴展

層級分類
將多類分類問題的輸出空間分割為一個樹. 每個父節點被多個子節點分割, 重複這個過程直到每個子節點僅僅代表一類.


相關焦點

  • 教你用BERT進行多標籤文本分類
    這讓我們可以通過對下遊特定任務(例如情緒分類,意圖檢測,問答等)進行微調來使用預先訓練的BERT模型。本文將手把手教你,用BERT完成一個Kaggle競賽。在本文中,我們將重點介紹BERT在多標籤文本分類問題中的應用。傳統的分類問題假定每個文檔都分配給一個且只分配給一個類別,即標籤。
  • 獨家 | 機器學習中的四種分類任務(附代碼)
    分別是二分類、多類別分類、多標籤分類、不平衡分類,並提供了實戰代碼。 標籤:機器學習機器學習是一個研究領域,其涉及到從示例中學習的算法。分類是一項需要使用機器學習算法去學習如何根據問題域為示例分配類標籤的任務。一個簡單易懂的例子是將電子郵件分為「垃圾郵件」或「非垃圾郵件」。在機器學習中,你可能會遇到許多不同類型的分類任務,並且每種模型都會使用專門的建模方法。
  • 多標籤學習的新趨勢(2020 Survey)
    關於單標籤學習和多標籤學習的區別,這裡簡單給個例子:傳統的圖片單標籤分類考慮識別一張圖片裡的一個物體,例如 ImageNet、CIFAR10 等都是如此,但其實圖片裡往往不會只有一個物體,大家隨手往自己的桌面拍一張照片,就會有多個物體,比如手機、電腦、筆、書籍等等。
  • 多標籤文本分類模型總結
    最近工作中需要對文本進行多標籤分類(Multi-label Text Classification),系統查閱了相關論文,藉此機會整理歸納一下,
  • 記: 多標籤分類問題
    最近遇到給個標籤問題,就是給一個 object 打個多個標籤,網上查了很多資料。發現百度沒搜索出什麼,後來是到知網上找到一些靠譜的資料,然後在 Google 一下。現在總結下多標籤問題。多標籤方法大致可以分為兩類,分別是問題轉換和算法改造。先描述下問題:先介紹問題轉換方法.
  • Multi-Label Classification with Deep Learning
    We can create a synthetic multi-label classification dataset using the make_multilabel_classification() function in the scikit-learn library.
  • 二分類、多分類、回歸任務,一個項目get競賽必備模型
    實現、xgboost 實現、keras 實現和 pytorch 實現:lightgbmbinary_class.py :lightgbm 實現的二分類multi_class.py :lightgbm 實現的多分類regression.py :lightgbm 實現的回歸multi_class_custom_feval.py
  • 「合併」樣本和標籤?IBM 為多標籤小樣本圖像分類帶來新進展!|CVPR...
    雷鋒網 AI 科技評論按:目前大多數關於圖像小樣本分類的研究工作都是研究單標籤場景,每個訓練圖像只包含一個對象,然而現實中的場景中以多對象多標籤居多,因此對於多標籤小樣本的圖像分類研究更 具現實意義。小樣本學習就是這樣的一個例子,其每個類別只有一個或很少的樣本可用。之前大多數關於圖像小樣本分類的研究工作都是研究「單標籤」場景,其中每個訓練圖像只包含一個對象,因此只有一個類別標籤。然而,更具有挑戰性和現實意義的場景是多標籤、小樣本的圖像分類,其訓練數據樣本較少,圖像具有多個標籤,而之前的研究工作尚未對該場景進行廣泛的研究探索。
  • 手把手教你用Keras進行多標籤分類(附代碼)
    基於Keras的多標籤分類問題本文將分為4個部分。 在第一部分,我將討論我們的多標籤分類數據集(以及如何快速構建屬於你自己的數據集)。最後,我們將基於樣例圖片測試我們的神經網絡,並討論何時使用多標籤分類問題最為合適,包括您需要注意的一些注意事項。我們的多標籤分類數據集
  • ICCV 2019 論文解讀:用圖神經網絡改善視頻的多標籤分類
    作者 | 王磊本文介紹了汽車之家團隊在ICCV 2019一篇關於視頻理解論文相關的工作。針對視頻多標籤分類的問題,論文提出了將視頻多標籤之間相關性特徵加入到網絡之中,結果證明該方法可以顯著的提高視頻多標籤分類效果。
  • 優必選雪梨 AI 研究院何詩怡:基於課程學習的強化多標籤圖像分類...
    但在真實的生活中,一幅圖往往是屬於多個標籤的,比如一幅圖有桌子,很有可能也有瓶子,桌子和瓶子都是這幅圖像的標籤,下面是給出的多標籤圖例:圖(a)中的標籤:老虎、雪、西伯利亞虎相較於單標籤圖像分類,多標籤圖像分類有一些難點:難點一,標籤之間存在各種各樣的共生關係,比如天空和雲彩,一幅圖中有天空,很大可能也是有雲彩難點二,這種標籤之間的關係維度很高,用模型難以衡量難點三,很多標籤在語義上有重疊,比如 cat 和 kitten 都指貓,所以這兩個標籤在語義上有重疊近些年來,關於多標籤圖像分類有著各種各樣的研究
  • 基於PredictionIO的推薦引擎打造,及大規模多標籤分類探索
    而本期Meetup上,白剛的分享主要圍繞著新浪門戶的大規模多標籤分類算法工作(項目已上傳到GitHub )。背景在類似新浪的媒體中,廣告帶來收益,同時也會影響到用戶體驗。為了減少對用戶體驗的影響(甚至是對用戶體驗產生幫助),如何區分「用戶屬於哪個人群,是哪些廣告的潛在受眾」至關重要,也就是如何做好user profiling。
  • 以BBC新聞文章為例:應用XGBoost等算法進行文本分類
    為解決此問題,將使用到Python、Sci-kit-learn、Genism和Xgboost庫等工具。獲取數據本問題涉及到的數據可以在Kaggle上找到。本數據集包含BBC新聞文本及其雙欄CSV格式的分類列表,展示如下:import pandas as pdbbc_text_df = pd.read_csv('..
  • 多分類 A P R F 值
    區別一下「多分類」與「多標籤」:        多分類:表示分類任務中有多個類別,但是對於每個樣本有且僅有一個標籤,例如一張動物圖片,它只可能是貓,狗,虎等中的一種標籤(二分類特指分類任務中只有兩個類別)
  • 使用Multi-Label訓練CNN能否達到Detection的效果?
    作者:我愛機器學習(52ml.net)連結:https://www.zhihu.com/question/52143412/answer/130037578問題在只需要時候輸出image含有object的label而不需要定位的情況下,使用multi-label訓練一個分類網絡(例如 resnet)能否達到object detection的效果。
  • 深度學習中的類別激活熱圖可視化
    類別激活圖(CAM)是一種用於計算機視覺分類任務的強大技術。它允許研究人員檢查被分類的圖像,並了解圖像的哪些部分/像素對模型的最終輸出有更大的貢獻。 基本上,假設我們構建一個CNN,目標是將人的照片分類為「男人」和「女人」,然後我們給它提供一個新照片,它返回標籤「男人」。
  • Kaggle亞馬遜比賽冠軍專訪:利用標籤相關性來處理分類問題
    主辦方提供40000多張訓練圖像,每張圖像都涵蓋多個標籤,標籤總體分為如下幾組:大氣情況:晴朗、局部多雲、多雲、起霧常見的土地覆蓋和使用類型:雨林、農業、河流、城鎮/城市、道路、耕地、裸地罕見的土地覆蓋和使用類型:砍伐並燃燒、選擇性砍伐、種植、傳統採礦、手工採礦、吹毀。
  • 中文文本分類:你需要了解的10項關鍵內容
    8、多標籤分類許多人將多標籤分類(Multi-labelClassification)與多類分類(Multi-classClassification)混淆。後者主要區別於二分類問題,指的是在類別數大於2的候選集合中互斥地選取一個類別作為輸出,例如將一條評論按情感傾向分類到{「正面」、「中立」、「負面」}當中的一個。
  • 掌握深度學習,數據不足也能進行圖像分類!
    ——吳恩達圖像分類即根據固定類別對輸入的圖像設置標籤。儘管計算機視覺過於簡單,但是它在實際中仍有廣泛的應用,而圖像分類就是其中的核心問題之一。在本文中,小芯將示範如何在數據不足的情況下應用深度學習。現已創建特製汽車和巴士分類器兩個數據集,每個數據集包含100個圖像。其中,訓練集有70個圖像,驗證集有30個。挑戰1.