본문 바로가기

AI/논문리뷰

[논문리뷰] Regularization With Stochastic Transformation and Perturbations for Deep Semi-Supervised Learning

논문 링크 : https://proceedings.neurips.cc/paper/2016/hash/30ef30b64204a3088a26bc2e6ecf7602-Abstract.html

 

Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning

Requests for name changes in the electronic proceedings will be accepted with no questions asked. However name changes may cause bibliographic tracking issues. Authors are asked to consider this carefully and discuss it with their co-authors prior to reque

proceedings.neurips.cc

 

해당 논문은 NIPS 2016 paper로 semi-supervised learning의 consistency regularization에 대한 개념을 제안한 논문이다. Consistency regularization은 데이터 input이 model에 주어졌을때, model에 대한 randomize(e.g dropout), Data augmentation을 통한 input의 차이로 인해서 발생하는 model의 output값에 대한 차이를 최소화 하고자 하는 기법이다.

 

-Method

서로 다른 input에 대한 augmentation을 개별 sample을 neural network에 통과시키면, non-deterministic한 성질에 의해 서로 다른 prediction 값을 출력한다. 또는 Drop out과 ramdom max-pooling과 같은 model에 대한 random성 역시 중복된 input이 주어지더라도 매번 다른 prediction을 출력할 것이다. 해당 paper에서는 이러한 prediction의 차이가 최소화 되도록 하는 개념을 transformation/stability(TS)라고 한다. 해당 prediction을 최소화 하는 식은 다음과 같다.

 

 

해당 식에 대해 간단히 설명하자면, N은 data의 수, j와 k는 neural network를 pass하는 수, T(x)는 x에대한 transformation을 의미한다. 만약에 transformation을 사용하지 않을 경우, mini-batch에 중복된 데이터를 집어넣어서 model의 random성만을 이용할 수 도 있다.

 

 

위의 식은 Mutual-exclusivity loss function이다. 해당 loss는 classifier의 prediction element가 오직 하나의 non-zero 값을 가지기를 원한다. 따라서 class가 3차원이라 할때, 극단적인 (1,0,0), (0,1,0)과 같은 one-hot vector 값이 해당 loss에서 가장 최솟값을 가지는 것을 알 수 있다. 해당 loss에서 f의 k와 l은 해당 logit의 k,l번째 element이다. 

 

 

TS와 ME의 Loss function은 label을 사용하지 않고 학습할 수 있다. 따라서 우리는 unlabed data에 대해서는 두 loss를 합친 위와 같은 loss function을 사용한다. 실험에서는 일반적으로 람다1을 0.1, 람다2를 1로 fix한다.

 

-Experiments

실험은 ConvNet을 사용했으며, MNIST, CIFAR-10, CIFAR-100, NORB, SVHN, ILSVRC 2012 Dataset을 사용했다. CNN은 cuda-convnet, sparse convolutional network 두 framework을 사용했으며 첫번째 TS 식에서의 n을 cuda-convnet에서는 4, sparse convolutional network에서는 5를 사용하였다. 이유는 cuda-convnet은 mini-batch size 128을 사용해야 하기 때문에 중복 데이터를 4개단위로 사용을 하였고, 더 큰 값들에 대한 성능이 없기 때문에 성능대비 n이 가장 큰 값인 4와 5를 사용했다.(detail한 setting은 논문을 참고) 아래는 MNIST에 대한 실험이다.

 

 

 

먼저 위의 1번째 행 100에 대한 실험으로, MNIST에서 10개의 class에 대해 class당 10개의 sample을 random select했고, 따라서 총 100개의 sample을 사용했다. 우선 100개의 sample을 먼저 supervised learning을 한 결과와 label을 사용하지 않은 unsupervised learning한 결과를 비교한다. 그리고 모든 data에 대해 동일한 방법으로 수행한다. 위의 table은 실험결과를 보여준다. 해당 실험은 data augmentation을 적용하지 않고, 모델의 randomness로만 실험을 진행한 결과이다.

 

위의 그래프는 SVHN과 NORB dataset을 사용하여 labeled data의 비율에 따른 실험결과를 보여주고있다. 위에서 제안한 두 loss term을 모두 사용하면, 그래프에서 보는것처럼 labeled data의 비율이 적어도 상대적으로 좋은 Error rate를 산출한다.

 

그 밖의 실험들에 대해서는 해당 논문을 참고하길 바란다.