はじめに
ICML 2019 より以下の論文
[1] V. Verma, et. al. "Manifold Mixup: Better Representations by Interpolating Hidden States"
を超簡潔にまとめ。
arXiv:
https://arxiv.org/abs/1806.05236
概要
- mixup をhidden 層にまで拡張させたら汎化性能がよくなった
手法
まず用語の定義から
$g_k(x)$ :入力データ $x$ の $k$ 層におけるfeature map。
$f(x) = f_k (g_k(x))$ :feature map $g_k(x)$ からの出力。
$(x,y)$ および $(x',y')$ データとtarget のペア。
$\lambda \sim {\rm Beta}(\alpha, \alpha)$ :$\lambda$ はベータ関数 $(\alpha, \alpha)$ に従う定数。
${\rm{Mix}}_{\lambda} (a, b) = \lambda \cdot a + (1-\lambda) \cdot b$ :データ $a$ と $b$ との mixup。
以上を用いて manifold mixup は
(\tilde{g_k}, \tilde{y}) := ({\rm{Mix}}_{\lambda} (g_k(x), g_k(x')),{\rm{Mix}}_{\lambda} (y, y'))
として、hidden 層 $k$ においてminibatchを作成するだけ。
そしてこれの出力に対するloss
L(f) = \mathbb{E}_{(x,y) \sim P} \mathbb{E}_{(x',y') \sim P} \mathbb{E}_{\lambda \sim {\rm Beta}(\alpha, \alpha)} \mathbb{E}_{k \sim \mathcal{S}} l (f_k ({\rm Mix}_\lambda(g_k(x),g_k(x'))), {\rm Mix}_\lambda(y,y'))
を最小化する。
ただし、実用上はminibatch ごとに $\lambda$ と適応するhidden層 $k$ を固定する。こうしても精度は変わらないらしい。
効果

図(a)と(d)が本手法を用いない場合で、(b)と(e)が用いた場合。
(a)と(b)は2次元入力データの分布だが、用いない(a)と比べて用いる(b)はデータの境界面が滑らかになっている
(d)と(e)はhidden 層の 分布だが、用いない(d)と比べて用いた(e)は綺麗にわかれている。
(c)は1層目のsingular value、(f)は3層目のsingular valueだが、用いた場合は flattenになっている。