機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Semi-Supervised Learning by Augmented Distribution Alignmentを読んだのでメモ

はじめに

Semi-Supervised Learning by Augmented Distribution Alignmentを読んだのでメモ.

気持ち

従来のsemi-supervised learningと違い,この論文はラベルありデータとラベルなしデータ間の経験分布の差を問題視している.semi-supervisedでは基本的に少数のラベルありデータとある程度多量なラベルなしデータを使った学習を想定しているが,ラベルありデータが少ないせいでラベルあり,ラベルなしデータの間で分布に差がでる.なのでここではこの二つの分布を近づける正則化項を使った学習法を提案する.

Augmented Distribution Alignment

ラベルありデータを\{(\mathbf{x}_1^l,y_1),\dots,(\mathbf{x}_n^l,y_n)\}\in\mathcal{D}_l,ラベルなしデータを\{\mathbf{x}_1^u,\dots,\mathbf{x}_n^u\}\in\mathcal{D}_uとする.目的関数は通常の教師あり学習に分布間の距離を加えた以下の形で定義される.

\displaystyle
\min_f\sum_{i=1}^nl(f(\mathbf{x}_i^l),y_i)+\gamma\Omega(\mathcal{D}_l,\mathcal{D}_u)

fは学習対象のモデルで,\Omegaは分布間の距離関数,\gammaはハイパーパラメータ.ここでの課題は\Omega(\mathcal{D}_l,\mathcal{D}_u)をどのように求めるかというもので,今回はdomain adaptationで使われる\mathcal{H}-Divergenceを用いて計算する.\mathcal{H}-Divergenceは以下で定義される.

\displaystyle
d_\mathcal{H}(\mathcal{D}_l,\mathcal{D}_u)=2\left\{1-\min_{h\in\mathcal{H}}[err(h,g,\mathcal{D}_l)+err(h,g,\mathcal{D}_u)]\right\}

err(h,g,\mathcal{D}_l)=\frac{1}{n}\sum_\mathbf{x}[h(g(\mathbf{x}^l))\neq 0]で定義され,g,hはそれぞれ特徴抽出部とGANで言うdiscriminatorを表す.今,学習したいモデルはgであり,\mathcal{D}_l,\mathcal{D}_u間の差を最小化したいので,\Omega(\mathcal{D}_l,\mathcal{D}_u)の部分は次のように書き直せる.

\displaystyle
\min_gd_\mathcal{H}(\mathcal{D}_l,\mathcal{D}_u)=\max_\theta\min_{h\in\mathcal{H}}[err(h,g,\mathcal{D}_l)+err(h,g,\mathcal{D}_u)]

このmax-min問題は交互最適で解いてもいいが,今回はgradient reverse layer(GRL)を使ったとのこと.GRLはdomain adaptationの文脈で提案されたもので,gからhへの入力部分で,逆伝播の際に符号を逆転させる,すなわち目的関数に関してhは最小化,gは最大化するような勾配を計算するようにするもの.

その他mixupの適用とmixupを使っても理論的に問題ないことの証明が続くが割愛.

まとめ

問題の切り口が面白い.概念的にはvatのようのconsistency regularizationの物と独立な気がするので合わせ技も有効な気がする.