Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2018-CVPR-Joint Optimization Framework for Learning with Noisy Labels

https://arxiv.org/abs/1803.11364

後述の論文 📄Arrow icon of a page link2019-CVPR-[PENCIL]Probabilistic End-To-End Noise Correction for Learning With Noisy Labels ではこれよりも良いアーキテクチャを提案したとしている。

Introduction

この論文では以下のものを提案した。

  1. backbornのモデルに少し他の要素をつけていくアーキテクチャを提案した。
  2. DNNは高い学習率ではNoiseまで覚えにくいので、Memorization Effectとして簡単な特徴として覚えたい特徴だけ覚えられ、最後に覚えづらいNoiseが覚える形ではないか

Related Work

正則化、遷移行列によるものは次のSurveyで紹介されている。

📄Arrow icon of a page link2020-Survey-A Survey of Label-noise Representation Learning: Past, Present and Future

問題設定

  • ハードラベルとは、one-hotのラベルであり、空間H\mathcal{H}に属するとしている。
  • ソフトラベルとは、合算したら1となるラベルであり、空間S\mathcal{S}に属するとしている。
  • 損失は以下のように、Noisyなラベルのハードラベルを対象としたクロスエントロピー損失。
Image in a image block

上の式はCleanな場合に使えばいい式だが、Noisy Labelの場合このまま学習するよりもより良い手法でやると提案できる。

提案手法

根本として、ラベルをうまく付け替えることで、いろんな正則化項をつけた損失関数の最小値minθL(θX,Y)\min _{\theta} \mathcal{L}(\theta | X, Y)を計算することに変わりはない。高い学習率で学習すれば、ノイズに適合させずに最適化できる。この時、モデル自体はある程度信頼できるものだと仮定すれば、与えられたNoisy Labelと合致したらCleanなラベルだと考えていい

なお、ここではアルゴリズムの流れにあるように、事前にある程度パラメタθ\thetaだけ学習させるのではなく、同時にパラメタθ\thetaとラベルYYの学習を交互に行っている

そしたら次は、

minθ,YL(θ,YX)\min_{\theta, Y} \mathcal{L}(\theta, Y | X)

と、ラベルYYも更新を行っていく

L\mathcal{L}は以下のように構成する。

Image in a image block

Lc\mathcal{L_c}について

これはラベルと予測結果の近さを比較している(つまり普通の損失)。クロスエントロピーの代わりに、分布の近さを計算するKLダイバージェンスを用いた

Lp\mathcal{L}_pについて

下記のアルゴリズムでは、どうやらすべて1つのクラスに属するようにラベル付け替えが行われてしまう。なので、事前にどのクラスがどれほどの割合で存在しているか?というのを事前情報として学び、p\mathbf{p}のベクトルにまとめて、以下のようにKLダイバージェンスを計算して離れすぎないようにする。

Image in a image block

sˉj\bar{s}_jは各ミニバッチごとの各クラスの割合であり、随時更新される。

Le\mathcal{L}_eについて

1つのクラスが突出して選ばれる分布にするように、Entropy Regularizationをかける。

Image in a image block

アルゴリズムの流れ

Image in a image block

まずはパラメタを学習してから、次にラベルの学習を進める。1エポックの間で1回ずつこの順番で行う。ラベルの学習はソフト、ハードの2つのアルゴリズムがある。

ハードラベルの更新の場合、以下のように更新される。

Image in a image block

ii番目のサンプルの所属クラスは、先ほど更新した学習器の予測ラベルにする

ソフトラベルの更新の場合、以下のように更新する。

yi=f(θ,xi)\mathbf{y}_i = f(\theta, \mathbf{x}_i)

つまり、そのまま予測器の出力で更新するか=ソフトラベル、その中で最大のものに属するとしてone-hotで更新するか=ハードラベル。

全体の訓練では以下の3ステップである。

  1. 損失関数はLc\mathcal{L}_cだけでまずAlgorithm1を計算する
  2. 1によってCleanなラベルをまず求める
  3. 得られたCleanなラベルを用いて、通常のクロスエントロピー損失で普通に学習する

Co-Trainingともいえる?

Experimentとか

直系後続研究 📄Arrow icon of a page link2019-CVPR-[PENCIL]Probabilistic End-To-End Noise Correction for Learning With Noisy Labels にだいたい同じ方法でやっているので省略。