【論文紹介】Learning a Deep ConvNet for Multi-label Classification with Partial Labels (CVPR 2019) - 5月 05, 2020 こんにちは、ぐぐりら(@guglilac)です。 今回は、マルチラベル画像分類において、全ての画像に対し部分的にのみラベルが得られるという問題設定を扱う論文を読んだので、まとめていきたいと思います。 ## 論文リンク [[1902.09720] Learning a Deep ConvNet for Multi-label Classification with Partial Labels](https://arxiv.org/abs/1902.09720) ちなみに、本体は11ページなのに全体で30ページあるappendixもりもり論文で、自分は本体のみ読んだのでappendixは興味を持たれた方に読んでいただければと思います。 ## 3行まとめ Multi-label Classificationタスクにおいて、全ての画像に対し部分的にラベルが得られるという問題設定を扱う手法を提案した。得られているラベルの割合の情報を考慮した損失Partial BCEの提案、ラベルのクラス間の関係を扱うためにGNNを利用、未知のラベルを予測し学習に用いるカリキュラム学習の利用などを行っている。 ## 問題設定 Multi-label Classificationは、その名の通りラベルが複数ある分類問題です。 多くの研究では画像に対して考えており、画像に対して複数のタグがつくと想定していて、タグの個数も画像によって変わります。 今回は、このMulti-label Classificationの問題に対し、Partial labelな設定を追加しています。 通常のMulti-label Classificationではデータセットとしてラベルの情報は全て与えられる状況を想定しています。 例えば、画像に対して、tag猫 = 1, tag 車= -1といったものが全てのタグ分与えられる、という状況です。 一方Partial labelというのは、画像に与えられるラベルが+1と-1のほかに、0(unknown)もある、という状況です。 未知であるラベルの種類の個数は画像によって変わります。 このような部分的にラベルが得られる状況を考える理由としては、アノテーションのコストの問題が挙げられていました。 ラベルがすべて与えられていればいいですが、そのようなデータを用意するのはコストもかかるわけなので、部分的にしかラベルが得られていないデータを使ってうまくMulti-label Classificationを解きたいよね、というモチベーションです。 半教師あり学習とここでいうマルチラベル分類 with partial labelは違います。 半教師あり学習はラベルが完全についているデータと全くついていないデータがある一方、 partial labelは全てのデータにラベルはついているんだけど、どの画像も全てのラベルについて正例負例がわかっているわけではなく、一部のみわかっているという問題設定です。 論文中の実験では、このようなpartial labelの問題設定を考える価値があるかを、 * 一部の画像に完全なラベルがついている(半教師あり学習) * 全ての画像に部分的にラベルがついている(partial label, 今回の問題設定) * 全ての画像に全てのラベルがついているけど一部のラベルは間違っている の三つのケースを比較して検証しています。 予算の制約などがあると、完全なアノテーションを付与されたデータではなく、 これらのうちどれかのデータセットに落ちてしまうと考えられますが、その中では部分的にラベルが得られるというケースが一番ましだよ、だからこの問題を考えました、というストーリーのようです。 ## 貢献 * 得られているラベルの割合の情報を考慮した損失Partial BCEの提案 * ラベルのクラス間の関係を扱うためにGNNを利用 * 未知のラベルを予測し学習に用いるカリキュラム学習の利用 ## Partial BCE Partial Binary Cross Entropy (Partial BCE)では、得られているラベルの割合の情報を使って重み付けして損失を調整しよう、というアイデアに基づいた損失です。 全てのラベルが得られていれば普通のBCEに一致するように設計しています。 $p_y$が得られているラベルの割合で、$g(p_y)$がnormalize functionです。 normalize functionは次のように設計しています。 $$ g(p_y) = \alpha p_y^{\gamma} + \beta $$ $\alpha, \beta, \gamma$はハイパーパラメータで、決め方としては 1. $\gamma$を手動で決める 2. $g(p_y)=hoge$となる制約式を一本決める 3. $g(1)=1$ (BCEと一致する条件)と2.を合わせて$\alpha, \beta$を導く としていました。1.と2.で決めた値によって性能が変わるので、その実験も論文中で行っています。 $\gamma=-1$にすると既知であるラベルの個数でnormalizeすることになるので理にかなってそうだなー、と思ったのですが、実験すると$\gamma=1$で良い結果だったらしいです。問題に依存しそうですが。 ## GNN CNNの出力をGNNの入力にして、最終的なラベルの予測を行います。 ラベルの個数分のnodeを持つ完全グラフを考えて、各nodeのベクトルをCNNの出力で初期化して、伝搬させていきます。 あまりGNNは詳しくないので用いられているアーキテクチャが一般的なものかはわかりませんが、隣接するノードから情報を受け取って、前の状態ベクトルを合わせて更新する、といった形です。 隣接nodeから情報を集めるのがMLPで、更新をGRUで行っているようです。 GNNを用いるのは、ラベルのクラス間の関係をうまく扱うため、だそうです。 一緒につきやすいラベル、つきづらそうなラベルというのはありそうなので、この部分をうまく利用しようというイメージでしょうか。 ## カリキュラム学習 カリキュラム学習は、人間が学ぶときに簡単な問題から徐々に難しい問題を解いていく方が学習効率が良いことを機械学習手法に応用した手法。らしいです。詳しくないので調べ調べ読みました。 参考にしたスライドを載せておきます。 [Curriculum Learning (関東CV勉強会)](https://www.slideshare.net/YoshitakaUshiku/20150530-kantocv-curriculumlearning) 今回のタスクでは、与えられているラベルから学習をスタートし、学習が進むにつれて未知のラベルのうち簡単に予測できるインスタンスを訓練データセットに追加してまた学習する、という形で適用しています。 新しく追加するラベルの選択方法はいくつか提案しています。 * Score threshold strategy * Score proportion strategy * Predict only positive labels * Ensemble score threshold strategy * Bayesian uncertainty strategy 基本的に、モデルが確信度高く予測したものは簡単なサンプルだろう、という前提で設計しています。 ## 実験 Appendixに回されているものも多くてボリュームがあり大変なので、いくつか気になったものをピックアップしてみます。 まずは初めの方で少し触れた、 * 一部の画像に完全なラベルがついている(半教師あり学習) * 全ての画像に部分的にラベルがついている(partial label, 今回の問題設定) * 全ての画像に全てのラベルがついているけど一部のラベルは間違っている の比較です。 partial labelだと一番性能がいい、という結果でした。 多少未知のラベルがあってもたくさんの画像を入力できること、ラベルにノイズがないことなどが影響しているのではという考察がなされています。 ablation studyでは各コンポーネントごとに予測精度への影響度を調べています。 Partial BCEのハイパーパラメータについては、 1. $\gamma$を手動で決める 2. $g(p_y)=hoge$となる制約式を一本決める 3. $g(1)=1$ (BCEと一致する条件)と2.を合わせて$\alpha, \beta$を導く という手順でしたが、1と2について調べています。 先ほども書きましたが、 $\gamma=-1$があまり良くない結果になるのは意外だなと感じました。 2で与える制約式を変えた場合の精度の変化。 横軸が1のときが通常のBCEと一致しますが、それよりかはMAPが大きくなるところがあり、Partial BCEにするとよいね、というかんじ。 どこがちょうど良いかは問題によりそうですが。 ## おわりに 問題設定がわかりやすく、確かに半教師ありのような「一部の画像に完全なラベルがある」状態よりも今回のpartial labelな問題設定の方が性能が出やすそうだなあと思って読み始めました。 カリキュラム学習でもそうですが、人間の学習にヒントを得るという手法は今後も多く提案されていくのだろうなと感じます。partial labelも、一部のデータについて完全な教師情報を与えられるより、全体的に満遍なくそこそこの情報を与えられた方がパターンを把握できそう、という人間の直観が着想のきっかけなのでしょう。 今回の手法は全部盛りといった印象で、全てを実践するのは難しそうですが、Partial BCE損失だけでも試してみるといったことは十分可能なので、試しやすそうです。 余談ですが、今回はじめて今流行っているDeepL翻訳を一部使って論文を読んでみました。 翻訳の精度は確かにわかるぐらいに性能が向上していてすごいですね。 もちろん読めるところはがんがんそのまま英語で読もうと思いますが、イントロやアブストなどを初めにざっくり抑えるのには使えるレベルまで来ているなあと、感動しました。すごい。 最後までお読みいただきありがとうございました。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿