データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

Learning from Weak-Label Data: A Deep Forest Expedition

Learning from Weak-Label Data: A Deep Forest Expedition(AAAI2020 Accepted paper)を読んでまとめました。
解釈間違い等ある時がありますので、その場合指摘いただけると助かります。

目次

背景と概要

  • マルチラベル分類を行う場合に、学習データで全てのラベルにちゃんとラベルづけがされていない等不完全なデータとなっている場合があり、その解決方法の一つとしてWeak-label learningがある
  • 本論文ではWeak-label learningの手法として、LC Forest:Deep Forestをベースとしたアルゴリズムを提案している。
    • Deep Forest:決定木系のアルゴリズムの一つであるrandom forestを多層化
  • 主要な要素は以下となる。
    • Label Complement Structure:アノテーションされている弱ラベル行列を補足するラベルの埋め込み
  • 以下のようなデータで検証されていた。
    • Gene Function Analysis Task
    • Text Categorization Task
    • Scene Classification Task
    • Medical Natural Language Processing Task

Weak-label learning

概要

  • 弱教師ありマルチラベル学習の一つ。
    • マルチラベルのうち一部がアノテーションされていないようなデータを扱う。
    • ラベル数が多かったり、2つのラベルが似ていたりする場合に比較的多く活用シーンがある。
    • 下図は10個のラベルのうち5個がラベル付けされているような例
      f:id:yhiss:20200320183952p:plain
      weak-label learningの例

問題の定義

以下の空間を考える。

 \chi = \mathbb{R}^d : d次元のinstance空間
 Y = \{ y_1, y_2, ..., y_n\} : nクラスのラベル空間
今、以下の弱ラベルのtraining setが与えられているとする。
 D = \{ (x_i, Y_i) | 1 \leq i \leq m \} 
 x_i \in \chi:d次元特徴量ベクトル [x_{i1},x_{i2},..., x_{id} ]^T、Y_i \subseteq Y

Weak-label learningでは以下の関数fを求める事を目的とする。

 f: \chi \mapsto  2^Y
 Y_{ik} = 1:i番目のインスタンスにk番目のラベルが振られている事を示している

アルゴリズム(LCForest Method)

ラベルの補足:Label Complement Structureの基本構造

  • LCForestでは、Label Complement Structureがアノテーションされている弱ラベル行列を補足するラベルとして、cascade forestに埋め込まれる。
  • t層目のcascadeにおいて、training data setである Dt = { Xt, Yt} をcross validationで処理する。
    • それぞれのfoldにおいて、下図のようにt層目のrandom forestがtraining-foldのデータを学習し、test-foldのデータを予測する。
      • test-foldのi番目にあたるサンプルのk番目のラベルについて、j番目のrandom forestによる予測がpositiveの場合、 Y_{ik}^{pred _ j} = 1
  • i番目のサンプルのk番目のラベルのt+1層目のラベルは以下の式で表される。
    • j番目の予測ラベルとオリジナルのラベルのいずれかが1ならば1の要素を持つ行列をrandom forestのモデルの数分作り、その総乗を取っている。
 Y_{ik}^{t+1} = \prod_{j=1}^{numF} Y_{ik}^{pred\_ j} \lor Y_{ik}\ \ \ (1)

f:id:yhiss:20200321154651p:plain
Label complement structure概念図

LCForestでのLabel Complement Structure導入

  • LCForestでは以下のように導入されている。
 LCForestでは学習プロセスの制御のため、complement\ flag\ vector\ f = [ f_1,f_2, ..., f_n ]^Tを導入している。
 (f_k=0:ラベルの補足に使える)
 (f_k=1:補足に使えない)
  • 初期状態:全ての成分は0
  • それぞれのクラスにおいて、予測確率がcascadeの中の1つの層で閾値θを超えた場合その成分は1となり、その後はずっと1のままとなる。
  • 最終的に各成分は以下の式で表され、アルゴリズムは下図のようになる。
 Y_{ik}^{t+1} =I\hspace{-.1em}I(f_k=0) *  \prod_{j=1}^{numF} Y_{ik}^{pred\_ j} \lor Y_{ik} + I\hspace{-.1em}I(f_k=1)*Y_{ik}^t  
 Y_{ik}^{pred\_ j} = 0(if\ Y_{ik}^{prob\_ j} < \theta )
 Y_{ik}^{pred\_ j} = 1(otherwise)

f:id:yhiss:20200321164058p:plain
アルゴリズム1

LCForestの全体構成

  • 以下にLCForestの全体構成例の図およびアルゴリズムを示している。
    • 検証時の構成
      • 学習用特徴量:100
      • 出力ラベル:5
      • cascade:10層
      • θ=0.4
  • 以下を各層において実施
    • 各層において、以下のアルゴリズムで学習
      • random forest*2(A,B)
      • completely random forest*2(C,D)
    • 次の層のラベルを更新
    • アルゴリズムの出力(4*5=20)を学習用の特徴量に結合

アルゴリズムからでは、新たに結合した特徴量の削除を次の層で行っていないため、学習を進める毎にデータが大きくなっているのではないかと思われる。

f:id:yhiss:20200321164754p:plain
LCForest全体構成

f:id:yhiss:20200321180317p:plain
LCForest全体のアルゴリズム

検証

  • 画像、言語等以下のタスクにおいて検証されていた。
    • 1.Gene Function Analysis Task
      • 酵母の遺伝子機能クラス(14クラス)を予測する
    • 2.SIAM Text Mining Competition (TMC) 2007
      • Text Categorization Task
    • 3.Scene Classification Task
      • a multi-label semantic scene classification task
    • 4.Medical Natural Language Processing Task
  • 比較アルゴリズムは以下となる。
    • ML-kNN
    • RF-PCT
    • DBPNN
    • WELL

f:id:yhiss:20200916230055p:plain
タスク1の結果

f:id:yhiss:20200917221407p:plain
タスク2の結果

f:id:yhiss:20200917221427p:plain
タスク3の結果

f:id:yhiss:20200917221444p:plain
タスク4の結果

参考文献

Learning from Weak-Label Data: A Deep Forest Expedition

http://www.lamda.nju.edu.cn/yangl/paper/AAAI.pdf