Unsupervised Feature Learning via Non-Parametric Instance Discrimination

|


Zhirong Wu, Yuanjun Xiong, Stella Yu, Dahua Lin
(Submitted on 5 May 2018)
arXiv:1805.01978

PIRL에서 NCE loss 부분을 얘기하면서 언급했던 논문 ‘Unsupervised Feature Learning via Non-Parametric Instance Discrimination’을 읽어보았다. 하나의 이미지로부터의 instatnce를 하나의 클래스로 취급하며 다른 instance들과의 비교를 진행한 논문이다.


image Figure 1. Supervised learning results that motivate our unsupervised approach.

Figure 1.는 supervised 방식으로 ImageNetd을 학습을 시켰을 때 레오파드 이미지를 넣으면 나오는 각 클래스들에 대한 확률들을 보여준다. 높은 확률을 보여주는 클래스를 보면 leopard, jaguar, cheetah, snow leopard 등이 있다. 이는 실제 레오파드와 비슷하게 생긴 동물들이다. 그럼 낮은 확률들을 보면… lifeboat, shopping cart 같은 레오파드와 완전 다르게 생긴 클래스들이 있다.

이렇다는 것은 무엇을 의미할까? 전형적인 discriminative learning 방식들은 그렇게 하라는 지시가 없었음에도 자동적으로 semantic categories 사이의 apparent 유사성을 찾을 수 있다는 말이다. 다른 말로는, 분명한 유사성이 semantic annotation으로부터가 아닌 visual data 그 자체들끼리로부터 학습이 된다는 것이다.

그래서 저자들은 만약에 어떠한 semantic category들의 notion없이 각각의 instance들 사이를 구분하도록 학습시키면 거기서 학습된 representation들이 supervised와 동일하게 instatnce 사이의 눈에 띄는 유사성을 가질 수 있을 것이라 생각했다.


Idea

이들의 목표는 supervision 없이 embedding function \(v = f_\theta(x)\)를 학습하는 것이다. 여기서 \(f_\theta\)는 파라미터 \(\theta\)를 가진 deep neural network이고 이미지 \(x\)를 feature \(v\)로 매핑시키는 네트워크이다. 여기서 뽑아낸 embedding들은 image space에 대한 metric을 유도할 수 있는데 instance x와 y에 대해서는 \(d_\theta(x, y) = \vert\vert f_\theta(x) - f_\theta(y) \vert\vert\)로 표현할 수 있다. 좋은 임베딩은 유사한 이미지에 대해 서로서로 더 가까이 매핑이 되어야 한다.

저자들은 해당 논문에서 각각의 image instance를 그 자체로 하나의 class로 간주하고 이들 각각의 instance class들을 구별하도록 학습을 시키는 instance-level discrimination을 선보인다.

image

그림으로 나타내자면 위와 같다. 네트워크 아웃풋을 마지막에 non-param softmax 적용시키는 것이 핵심 아이디어이다.


Non-Parametric Softmax Classifier

저자들은 instance-level classification objective를 softmax criterion을 사용해서 식으로 표현한다. 이에 앞서 흔하게 쓰이는 parametric과 non-parametric 버전을 비교해본다.

Parametric Classifier.

image

n개의 클래스를 가지는 n개의 이미지 \(x_1, ..., x_n\)이 있다고 하자. \(v_i = f_\theta (x_i)\)를 통해 얻어낸 이미지들의 feature들은 \(v_1, ..., v_n\)이라고 표현한다. 전통적인 parametric softmax formultation을 이용하여 하나의 이미지가 i-th 이미지로 인식될 확률은 위의 식과 같다. 해당 식에서 \(w_j\)는 클래스 j를 위한 weight vector이고 \(w_j^Tv\)의 결과는 \(v\)가 얼마나 j번째 클래스와 잘 매치가 되는지를 의미한다. 따라서 위 식의 softmax는 v가 i번째 클래스일 확률을 나타낸다.

Non-Parametric Classifier.

Eq.(1)의 parametric softmax식에서 weight vector w는 class prototype의 역할을 하기 때문에 instance간 명시적 비교를 못하게 하는 문제가 있다. 그래서 저자들은 \(w_j^Tv\)를 \(v_j^Tv\)로 바꾼 Eq.(1)의 non-parametric 변형을 제시했다. L2-normalization layer를 통해 \(\vert\vert v \vert\vert = 1\)로 제약했다. 이렇게 되면 확률 \(P(i\vert v)\)는 아래와 같아진다.

image

Eq.(2)에서 \(\tau\)는 분포의 concentration level을 컨트롤하는 temperature parameter이다. Learning objective는 트레이닝 셋에 대해서 negative log-likelihood 를 최소화 하는 것이다. 즉, \(P(i \vert f_\theta (x_i))\)를 최대화해야 한다.

image

Discussion. Class weight vector \(w_j\)를 feature representation \(v_j\)로 바꾸는 컨셉은 꽤 중요하다. 오리지널 softmax에서 weight vectors \(\{w_j\}\)는 오직 트레이닝 클래스에 대해서만 유효하다. 결과적으로 이 가중치들은 새로운 클래스 또는 새로운 instance에 일반화될 수 없다. 하지만 저자들은 이 값을 instance로 바꿈으로써 learning objective가 완전히 feature represenation과 유도된 metric에만 집중할 수 있게 했다. 즉, 어느 새로운 클래스나 instance에 대해서도 잘 적용이 될 수 있게 했다. 계산적 측면에서는 \(\{w_j\}\)를 위한 gradient를 계산하고 저장할 필요가 없어졌기 때문에 더 큰 데이터 응용에 대해서도 scalable해졌다.

Learning with A Memory Bank.

Eq.(2)에서 확률 \(P(i \vert v)\)를 계산하기 위해 모든 이미지들에 대한 \(\{v_j\}\)가 필요하다. 매번 이러한 representation들을 완전하게 계산하는 것 대신에 이 representation들을 저장하기 위한 feature memory bank V를 사용한다. 지금부터 \(V = \{v_j\}\)는 메모리 뱅크의 것이고 \(f_i = f_\theta(x_i)\)는 이미지 \(x_i\)의 feature로 나타낸다.

image


학습 동안의 각 iteration마다 SGD를 통해 네트워크 파라미터 \(\theta\) 뿐만 아니라 representation \(f_i\)도 최적화된다. 그러면 이 바뀌는 \(f_i\)는 V로 업데이트 되는데 이 때 동일한 instance entry로 저장된다 (\(f_i → v_i\)). 학습 전, 제일 처음 memory bank V 속 모든 representation은 unit random vectors로 초기화 시킨다.


Noise-Contrastive Estimation (NCE)

Eq.(2) 에서 클래스의 개수인 n이 매우 크다면 cost는 어마무시하게 커진다. 저자들은 트레이닝 세트 속 모든 instance들에 대한 유사성을 계산하는 것의 어려움(cost)을 피하기 위해서 NCE를 사용했다. NCE의 basic idea는 multi-class classification 문제를 일련의 binary classification 문제로 바꾸는 것이다. 그리고 binaray classification은 data samples인지 noise samples인지를 구별하는 일이다.

주어진 이미지가 메모리 뱅크속 i번째 example의 representation과 일치할 확률은 다음과 같이 나타낸다.

여기서 \(Z_i\)는 normalizing constant이고 noise distribution은 uniform distribution(균일분포)로 정했다: \(P_n = 1 / n\). 그리고 noise sample들이 data sample보다 m배 더 자주 발생한다고 가정했다. 이렇게 되면 feature v를 가지는 sample \(i\)가 data distribution (D=1이라고 표시)에 있을 확률은 아래와 같다. (noise가 아닐 확률)

image


이들의 approximated training objective 는 data와 noise 샘플들의 negative log-posterior distribution을 최소화 하는 것이다.

image

여기서 \(P_d\)는 실제 data distribution을 나타낸다. \(P_d\)에 대해서는 \(v\)는 \(x_i\)에 일치하는 feature이고 반면에 \(P_n\)에서 \(v'\)는 noise distribution \(P_n\)을 따라서 랜덤하게 샘플링된 다른 이미지로부터의 feature를 나타낸다. 해당 논문 속 모델에서는 \(v\)와 \(v'\) 모두 non-parametric memory bank V에서부터 샘플링된다.

image

위의 그림은 전체적인 학습 모형을 표현한 것이다. \(x_i\)는 \(v_i\)는 비슷해야하고 다른 \(v'\)들과는 또 달라야 한다.


Proximal Regularization

각각의 클래스가 많은 instance들을 가지는 전형적인 분류문제와 달리 여기서는 클래스 당 하나의 instance만 존재한다. 각각의 트레이닝 에포크 동안 각각의 클래스는 오직 한번씩만 방문된다는 것이다. 저자들은 training dynamics의 smoothness를 장려하기 위해 proximal optimization 방식과 추가적인 term을 도입했다. 현재 iteration t에서 데이터 \(x_i\)의 feature representation은 네트워크를 통해 계산된다 (\(v_i^{(t)} = f_\theta (x_i)\)). 모든 representation들의 메모리뱅크는 이전 iteration \(V = \{v^{(t-1)}\}\)에서 저장이 된다. \(P_d\)로부터의 positive sample에 대한 loss function은 아래와 같다.

image


학습이 수렴될 수록, iteration간의 차이 (\(v_i^{(t)} - v_i^{(t-1)}\))는 점차 줄어들고 위의 합쳐진 loss는 오리지널의 것처럼 줄어들게 된다. 이러한 proximal regularization을 추가하면서 final objective는 다음과 같아진다.

image


image Figure 3: The effect of our proximal regularization.

Figure 3는 proximal regularization이 추가적인 cost없이 트레이닝을 안정화시키고 수렴의 속도를 높이며 학습된 representation들을 향상시킬 수 있다는 것을 보여준다.


다 읽고..

실험에서 이들은 트레이닝에서 학습된 feature들이 왜 알려지지않은 테스트에 대해서도 linearly seperable할 수 있는지가 불분명하다며 kNN을 이용한 classification을 수행했다. 2018년 논문이라 따로 실험에 대해서 언급하지 않겠지만 instance 를 하나의 class 로 생각하고 non-parametric softmax를 사용한 점을 기억해둬야할 것 같다.

Comments