관련 링크 : https://arxiv.org/abs/1704.03976
  • Adversarial TrainingSemi-Supervised Learning에 접목한 논문

  • 라벨이 없는 데이터에 가상의 적대적 방향을 정의하고, 이 방향을 이용해 Adversarial Training을 수행하는 Virtual Adversarial Training(VAT)를 제시

    기존 Adversertial Training에서는 조금의 변화로 모델의 예측을 크게 바꿀수 있는 방향을 적대적 방향으로 이용해, 그 방향을 이용해 만든 샘플들을 학습시켜 모델의 결정 경계를 부드럽게 만들어 주었다.

  • 당시 SOTA를 기록

Methods

Notations

  • 입력 데이터는 $x$, 정답 라벨는 $y$, $x_*$의 경우 입력 데이터 전체를 의미
  • $\mathcal D_l={x_l^{(n)}, y_l^{(n)}|n=1,\ldots,N_l}$
  • $\mathcal D_{ul}={x_{ul}^{(m)}|m=1,\ldots,N_{ul}}$
  • 모델 $p(y|x,\theta)$의 파라미터는 $\theta$, $\hat \theta$의 경우 현 시점의 파라미터를 의미

Adversarial Training

  • 기존 Adversarial Training 방법과 논문의 방법이 거의 유사하므로, 이를 먼저 설명한다.

    \[L_\mathrm {adv}(x_l, \theta):=D[q(y|x_l),p(y|x_l+r_\mathrm{adv}, \theta)]\\ \text{where }r_\mathrm {adv}:=\underset{r;\|r\|\le \epsilon}{\arg\max}\;D[q(y|x_l),p(y|x_l+r, \theta)]\]
    • $D[p, p’]$: 두 분포 $p$, $p’$사이의 divergence를 측정하는 음수가 아닌 함수

    • $q(y|x_l)$: $x_l$에 대한 정답의 분포로 모델이 학습하기 원하는 이상적인 답안. 정답 라벨의 원-핫 벡터($h(y;y_l)$)로 근사된다.

      기존 Adversarial Training은 최소한의 이동으로 모델을 혼동시키는 예제들을 만들어 모델에 학습시켜서, 모델이 혼동시키기 위해 이동해야하는 최소 거리를 늘렸다. 즉, 모델이 혼동하는 방향(이방성 노이즈)를 이용해, 모델 예측의 결정 경계를 부드럽게(모델 예측의 이방성을 줄이는)하는 방식이다.

  • 기존 방법은 위의 $L_\mathrm {adv}$를 규제로 이용했다. 하지만, 위 방식대로 $r_\mathrm {adv}$를 계산하면 연상량이 너무 많아지므로, 이를 근사해서 한 번의 추론으로 $r_\mathrm{adv}$를 계산한다.

    • $L_2$ norm(Least Squares methods)

      \[r_\mathrm {adv} \approx \epsilon \frac {g}{\|g\|_2},\text{ where }g=\nabla_{x_l}D[h(y;y_l),p(y|x_l,\theta)]\]
    • $L_\infty$ norm

      \[r_\mathrm {adv} \approx \epsilon \text{sign}(g)\]

Virtual Adversarial Training

  • 기존 방식과의 유일한 차이는 라벨이 없는 데이터에서도 $r_\mathrm {adv}$를 정해 주어야 한다는 점이다. $q(y|x_{ul})$은 정답이 없으므로, 원-핫 벡터로 근사할 수 없다. 따라서 학습시킬 당시의 현재 모델의 예측값을 Virtual Label로 이용하여 $L_\mathrm {adv}$를 재정의한다.

    \[\text{LDS}(x_*, \theta):=D[p(y|x_*,\hat \theta),p(y|x_*+r_\mathrm{vadv}, \theta)]\\ \text{where }r_\mathrm {vadv}:=\underset{r;\|r\|_2\le \epsilon}{\arg\max}\;D[p(y|x_*,\hat \theta),p(y|x_*+r, \theta)]\]
    • Local Distributional Smoothness(LDS): 입력 데이터가 모델의 결정 경계와 가까운 정도이다. 값이 작을수록 데이터가 모델의 결정 경계와 많이 떨어져있다. 다른말로, 모델 예측이 등방성이 되도록 하는 압력으로도 볼 수 있다.

      VAT는 Goodfellow의 등방성 노이즈(기존 Consistency Training에 사용되는 Gaussian/dropout 등)로 예측의 등방성을 늘리는 것이 이방성을 줄이지는 않는다는 말을 받아들여, Virtual Adversarial Direction을 정해 기존 방법처럼 이방성 노이즈를 활용한다.

    • $r=0$일 때 $D(r,x_*,\theta):=D[p(y|x_*,\hat \theta),p(y|x_*+r, \theta)]$의 gradient가 항상 0이므로 앞선 방법과 달리 선형 근사할 수가 없다.

      • $r=0$일 때 $D(r,x_*,\theta)$가 0으로 최소이므로, 1차 미분역시 0이다. 따라서 2차 테일러 근사를 하면 다음과 같다.

        \[D(r,x,\hat\theta)\approx \frac{1}{2} r^T H(x,\hat \theta)r \\ \text {where }H(x,\hat\theta):=\nabla\nabla_rD(r,x,\hat\theta)|_{r=0}\]
      • 따라서 기존의 $r_\mathrm{vadv}$는 다음과 같이 바뀐다.

        \[r_\mathrm {vadv}\approx\underset{r;\|r\|_2\leq \epsilon}{\arg\max}\{r^T H(x,\hat\theta)r\}=\epsilon u(x,\hat \theta)\]
      • $u$는 $H$의 eigenvector로, 계산하기 위해 많은 연산량을 요구한다. 따라서 여러 방식을 이용해 근사한다.

        1. 무작위로 뽑은 단위벡터 $d$에 Power Iteration Method를 적용한다.

          \[d\leftarrow Hd\]
        2. $H$를 계산하는 것은 많은 연산량을 요구하므로, Finite Difference method를 이용해 근사한다.

          \[Hd \approx \frac{\nabla_rD(r,x,\hat\theta)|_{r=\xi d}-\nabla_rD(r,x,\hat\theta)|_{r=0}}{\xi} \\ = \frac{\nabla_rD(r,x,\hat\theta)|_{r=\xi d}}{\xi}\qquad\qquad\qquad\;\;\]
          • 이후 모든 실험에서 $\xi=1e-6$으로 사용하였다.
        3. 정리하면, $d$를 다음과 같이 근사한다.

          \[d\leftarrow \nabla_rD(r, x, \hat\theta)|_{r=\xi d}\]
          • 위 과정을 반복할수록 성능이 좋다. 하지만, 반복 횟수를 $K$로 두었을 때 $K=1$에서도 높은 성능을 보인다.
        4. 결과적으로, $r_\mathrm{vadv}$는 다음과 같고, $K=1$일 때 두 번의 추론으로 계산 가능하다.

          \[r_\mathrm{vadv}\approx \epsilon \frac{g}{\|g\|_2}\\ \text {where }g=\nabla_r\left .\left[p(y|x,\hat\theta),p(y|x+r,\hat\theta)\right]\right|_{r=\xi d}\]
  • 위 방식을 $\mathcal D_l$과 $\mathcal D_{ul}$에 모두 적용했을때 Loss는 다음과 같다.

    \[\mathcal R_\mathrm{vadv}(\mathcal D_l, \mathcal D_{ul}, \theta):= \frac {1}{N_l+N_{ul}}\sum_{x_*\in \mathcal D_l, \mathcal D_{ul}}\mathrm{LDS}(x_*,\theta)\]
  • 최종 Loss는 다음과 같다.

    \[\mathrm {Loss}=\ell(\mathcal D_l, \theta) +\alpha \mathcal R_\mathrm{vadv}(\mathcal D_l, \mathcal D_{ul}, \theta)\]
    • $\ell(\mathcal D_l, \theta)$은 일반적인 Supervised Loss이다.

Random Perturbation Training

  • VAT에서 Power Iteration Method를 쓰지 않은 열화판으로, $r_\mathrm{vadv}$을 만지름이 $\epsilon$인 구 $U(r|\epsilon)$안의 무작위 방향으로 사용하는 방식

    등방성 노이즈를 사용하는 VAT라고 할 수 있다.

  • VAT는 가상의 적대적 방향에 해당하는 데이터에만 라벨을 할당하는 반면, RPT는 근방의 모든 데이터에게 동일한 라벨을 부여하므로 비효율적이다.

Experiments

  • 성능 비교 실험과 핵심적이지 않은 여러 실험을 기록하지 않았다.

  • SOTA 성능은 추가적인 손실 함수로 Conditional Entropy를 사용했을 때 달성했다.

    \[\mathcal R_\mathrm{cent}=\mathcal H(Y|X)=-\frac{1}{N_l+N_{ul}}\sum_{x\in\mathcal D_l, \mathcal D_{ul}}\sum_y p(y|x, \theta)\log p(y|x, \theta)\]
    • 모델의 예측값을 과장하게 만드는 효과가 있다.

How VAT works on Semi-Supervised Learning?

img1

  • 결정 경계 근방에 $\text{LDS}$값이 높기 때문에 학습이 진행되면서 근방이 부드러워지는 것을 볼 수 있다.

Efficacy of VAT on Supervised Learning

img2

  • 앞선 실험과 비슷한 결과로, VAT를 이용해 학습시킨 모델의 $\mathcal R_\mathrm{vadv}$가 더 작고, 이는 $\mathrm {LDS}$가 더 작음을 의미한다.

Effects of $\epsilon$ and Regularization Coefficient $\alpha$

img3

  • 저자들은 $\epsilon$을 $\alpha$보다 먼저 찾는걸 추천한다.

Effect of the Number of the Power Iterations $K$

img4

  • $K$값을 키우면 연산량도 늘어나지만, $\mathcal R_\mathrm {vadv}$가 비슷하므로 성능 향상은 크지 않다.
  • $K$값의 적절성은 데이터셋과 모델에 따라 달라서, 어떤 경우에는 1이 충분하지 않을 수 있다.

Visualization of Virtual Adversarial Examples

img5

  • $\epsilon$값이 너무 커서 비현실적인 이미지가 되어버리면, 학습했을때 오히려 성능이 낮아진다. 이는, 모델이 불필요한 작업을 했다고 볼 수 있다.

Leave a comment