はじめに
マル・マル・モリ・モリ!1 nikkieです。
機械学習関係の読書ログを残します。
取り組むことの多いマルチラベル分類について、まとまった記述のある書籍を知ったので、読みました。
目次
『機械学習デザインパターン』
本書は、機械学習で繰り返し登場する課題を30のパターン(略)に分類し、それぞれについてベストプラクティスを提示・解説するデザインパターン集です。
著者のGoogle Cloudのデータ分析&AI部門トップとしての豊富な経験に基づく実用本位の一冊です。
ノートブックも公開されています
3章「問題表現のパターン」の中でマルチラベル分類が扱われます。
シングルラベル vs マルチラベル
マルチラベル(multilabel)って語、マルチクラス(multiclass)と紛らわしいように思います2(どっちもmultiで始まりますしね)。
multiclass classificationは、日本語では「多クラス分類」ですよね。
これは複数のクラスから1つのクラスを決定する問題設定です。
ということは、サンプルに付与されるクラスのラベルは1つだけ。
ラベル付きデータに付与されたラベルは1つだけですし、訓練したモデルが付与するラベルも1つだけなわけです。
つまり、多クラス(multiclass)分類はシングルラベルということです。
multilabel classification(マルチラベル分類)は、複数のクラスを付与できる問題設定です。
ラベル付きデータには複数のラベルを持つサンプルがありますし、訓練したモデルも複数のラベルを付与できます3。
書籍では例として、StackOverflowの質問文に付与されたタグが取り上げられます。
質問に付与されたタグの例:「pandas」「matplotlib」
なお、マルチラベル分類は自然言語特有でなく、画像などほかの種類のデータでも成立します。
マルチラベルとマルチクラス、書籍の図3-8(3.2.3.1)が分かりやすかったですね。
二値分類・多クラス分類・マルチラベル分類をベン図で表しているのですが、
ということを表していました。
マルチラベルパターン 読書メモ
箇条書きで残します。
- ニューラルネットワークを中心に説明
- まとめ
- 活性化関数
- 損失関数
- 出力と閾値
- 階層的なラベルの扱い
- 2つの方法
- フラットに扱う
- カスケードパターン(3.4 積ん読)
- 2つの方法
- 一対他(one versus rest)
- ニューラルネットワーク以外でもマルチラベル分類を扱える
1つのマルチラベル分類モデルの代わりに、複数の二値分類器を訓練する
- (感想)二値分類への分解の話と重なる!
- pros: 二値分類しかできないモデル(例:SVM)も使える
- cons: 分類器が複数できる分、複雑
閾値まわりをちょっと脱線(S-Cutという手法がある)
『機械学習デザインパターン』で言及されていた論文もちょっとだけ眺めてみました。
Threshold optimisation for multi-label classifiers (2013 Pillai et al.)
1.Introductionにて、広く使われる手法S-Cut(score-Cut)が導入されます(式(1))。
意味を読み解くと、k番目のクラスについて
という閾値の戦略(thresholding strategy)です。
これは私も慣れている考え方ですが、S-Cutという名で定式化されていたのですね。
この論文は閾値の決め方(検証データを使って閾値を決める)を扱っているようです。
micro/macroなprecision, recall, F measureが登場するので、『評価指標入門』4で武装して挑みたい気持ち。
終わりに
マルチラベル分類について、少量でも体系化された知識を得たくて『機械学習デザインパターン』3.2を読みました。
「マルチラベル分類ってマルチクラス分類とどう違うの?」という疑問はきれいに解決する内容ではないかと思います(もっと早く出会えていれば)。
ソフトマックス関数ではなくシグモイド関数とか、それゆえに閾値が必要とか、体系立ったインプットができたので読んでよかったな〜と思います。
私は貪欲なので、これで十分とは思っていなくて、他の書籍や論文(サーベイ的なやつ)で引き続きインプットを考えています。
また、落ち穂拾いとして、StackOverflowのデータセットを使ったサンプルコードの写経はやってみたいですね。
手を動かして初めて分かることもあるはず!
- これを歌った芦田愛菜さんが、今では『かがみの孤城』でオオカミさまですよ!「ようこそ、安西こころさん!」↩
- scikit-learnの用語集はかなり詳しいです(分かりやすいかは断言できませんが)↩
- シングルラベルではラベルの数=サンプルの数ですが、マルチラベルでは1サンプルに複数ラベルが付与されます。これにより、ラベルAに100サンプル、ラベルBに200サンプルだから、ラベルAまたはラベルBのサンプルは300だ!という単純な足し算が常に成り立つとは限りません(ラベルAもラベルBも付与されたサンプルが存在するため足し算が成り立たない場合のほうが多いと思います)↩
- 読書ログ | 『 #評価指標入門 』3章・4章でついに分類の評価指標の全体感を掴めました(2月の #stapy 予習) #架け橋本 - nikkie-ftnextの日記↩