https://arxiv.org/abs/2111.00980
Introduction
人間は類似したものから種類は不明だが、似ているものを発見できる。これはクラスのデータで学習し、クラスのデータを分類させるという問題=MPEにあたる。
この点から考えると、とすればPU Learningといえる。
伝統的には、混合分布推定とは大量にUがある状態で、どのようなクラスタがありその分布とは何かを推定するもの。混合分布推定は高次元データにおいてはうまく働かず、PUについても同様な問題がある(データセット固有のものだけに性能が良いなど)
この論文では、Best Bin Estimation(BBE)というMPEで使われる有効なテクニックを応用し、Conditional Value Ignoring Risk(CVIR)について学習する。
この研究では高次元では使えないということで、何かしらの強い識別器の内部状態のベクトルを用いることでラベルシフトで使われるBBEの手法を使えるようにした。
Related Works
PUにおける混合比では、完全にPとUが分離されていなければ理論的にはClass Priorを推定できると理論的にわかるが、そうでない場合はいろいろな仮定を設けないと本質的には推定できないとわかっている。
絶対に収束するとわかっている手法として以下のものがあるが、理論上であり実際は収束が非常に遅いことがある。
G. Blanchard, G. Lee, and C. Scott. Semi-supervised novelty detection. The Journal of Machine Learning Research, 11:2973–3009, 2010.
これについて、より早い収束ができるMPEアルゴリズムを提案されているが、高次元データでは性能が低いし大規模データセットにも弱い。
H. Ramaswamy, C. Scott, and A. Tewari. Mixture proportion estimation via kernel embeddings of distributions. In International conference on machine learning, pages 2052–2060, 2016.
似てる手法では、決定木を用いて入力空間内のサブドメインがあるが、これも高次元データに弱い。
J. Bekker and J. Davis. Estimating the class prior in positive and unlabeled data through decision tree induction. In Proceedings of the AAAI Conference on Artificial Intelligence, 2018.
Class Priorを推定するためにいったんPU識別器を訓練し、それから推定するというのもある(鶏先卵先問題)いずれも理論的保証がなかったり不安定だったり。
問題設定
PU Learning
- ベクトルについて、は番目の成分だとする。
- データはである。
- Ground Truthのラベルはである。
- Uデータは、Class Priorのを用いて、にとって構成されている。
MPEについて
MPEとは、Class Priorのを推定する問題である。について特段の条件がない限り、これはBlanchardにより一意には定まらないとわかっている。
Mixture Proportion Estimation
導入したBBEという手法について説明する。
まず、ある固定されたPUデータで学習した識別器があり、その内部状態のベクトルを状態として使う。
次に、で確信をもってPであると判断するようなデータの割合を探す。理論的には以下のようになるが、実際は経験的に確信度が高いPのデータを選ぶかたちである。
BBEという手法は、Class Priorは、以下のように推定する。これは真のClass Priorに収束する。
それぞれ、の分布において、ある以上の信頼度(Pっぽい)のデータの割合と。の分布においての以上の信頼度のデータの割合の比である。この比を最小化できるようなを選べば、それがClass Priorになるという理屈。
理由として、ほぼほぼPであるとわかっているような領域(ここでは識別器が閾値を超える)において、Uの中でこれを満たすデータはPと扱うことで、その割合がClass Priorとほぼ等しいと考えられる。
この時、分母のになるが、これを1とは固定しない。なぜなら、使っているPUデータの識別器について過学習したPのみ取り込んでしまい、本来のPの分布は得られないとわかる。
比率の最小値をとるのは以下の原因から。高すぎるではにOverfitした領域のみ着目されて、そこにあてはまるPのデータは本来よりは少なくなる(その結果分母が小さくなり比率が大きくなる)。低すぎるではそもそも領域がPの分布よりも広く、本来よりも多くのU内のサンプルをPと判定してしまい、比率が大きくなるから。
これは一般的なBest Bin Estimation(BBE)の考え方である。
Class Priorの推定のアルゴリズム
- あるを与えられたら、経験的にを推定できる。
- 以下の式を最小化するようなである。
- 以下の式は凸関数なので、optimizerで最適な値を得られるとわかっている。
- ハイパーパラメタとして、とする。
本来ならば1項目だけだが、後半の部分は理論的なリスク上界関係の式である。小さい正の定数にしている(0.001とか)。
推定の詳細はAppendixにある。必要ならまた読みに戻る。
PU Learningアルゴリズムについて
nnPUから、Uの中からPをほぼ見つけられれば実質的にPNになるので、学びやすくなるだろう。これは、以下のself-supervised learningベースの手法=CVIRになる。
最初はPU Learning(nnPUなど)でwarm upして、次にCVIRで学習する。
CVIR
具体的に記述すると以下のようになる。これがConditional Value Ignoring Risk(CVIR)
- Training Dataの損失が収束するまで以下のループを回す。
- Uの中のすべてのデータについて、Unbiased EstimatorのU部分のRiskの式を計算し、その中で損失が低い順からの割合のデータをと置いて、他をにする。(Pseudo Label付与)
- についてシャッフルして、Minibatch学習を行う。
- Minibatchが得られる。
- これについて、PN LearningのようにClass Priorを用いて学習をする。
- これで学習したモデルがPU Learningの学習器。
これ、Self-supervised系あるあるのミスラベルの影響が積み重なるのやっぱかなりあるじゃないか…?
(TED)n: CVIRとBBEの統合
Transform Estimate Discardという統合したものを提案した。
- PUデータをそれぞれ2つに分割する。である。
- まず、として、PN Learningを行う。
- ミニバッチで学習し、目標関数は以下のようなもの。
- ここで重みが消えているが、どうやら分類可能である限り重みは重要ではないという先行研究があるらしい。
- 次に、PositiveをNegativeに分類する率と仮のNegativeをPositiveに分類してしまう率について、その総和が一定以下(つまり収束する)になるまでループを回す。
- Class PriorのをBBEで推定する。
- CVIRのアルゴリズムで訓練する。
つまり、まずはPN LearningでWard upしてから、Class Priorの推定→CVIR(Self-supervised Learningベース)で訓練ということ。
Experiments
CIFAR-10やMNISTを使用。Class Priorは0.5としている(CIFAR-10は犬vs猫)。ネットワーク構造はMLPやResNet18です。
