iMTE

CV 7. Metric Learning 본문

Computer Vision/CV

CV 7. Metric Learning

Wonju Seo 2018. 12. 26. 10:49

Computer Vision [7]


1. Metric Learning

Metric Learning의 핵심은 "Similarity"이다. 어떤 이미지가 주어졌을 때, 이 이미지와 연관된 이미지를 찾는 방법은 무엇일까? 바로 Similar한 사진을 찾으면된다. 예를 들어, 얼굴 인식을 하는 경우를 생각해보자. 특정 얼굴 사진 A가 우리의 Dataset에 있고, 사용자가 얼굴 인식으로 스마트폰을 On시키고자할 때는 A와 비슷한 A'이 입력될 것이다. A와 A' 사이의 비슷함의 정도는 Dataset에 있는 다른 사용자의 B와 A' 사이의 비슷함보다 "가까울 것이다." 결국, 스마트폰이 On이 된다.

비슷함의 정도를 나타내는 방법으로 Metric이 사용되며, 가장 흔히 알고 있는 Metric은 Euclidean Distance이다. 만약 A와 A'이 비슷하고, A와 B가 비슷하지 않는다면 2개의 관계를 얻을 수 있다.

Metric Learning은 Pairwise, Triplet 관계에서 D와 f를 학습하는 것을 의미한다. D는 거리를 계산하는 Metric이고, f는 해당 이미지를 나타내는 Descriptor or Embedding function을 의미한다.


2. Mahalanobis Distance

Mahalanobis Distance는 x_i와 x_j 사이의 거리를 계산하는 Metric이며, 만약 M이 I라면 Mahalanobis Distance는 Euclidean Distance와 같다. Mahalanobis Distance에서 M은 다음과 같은 Multivariate normal distribution의 covariance matrix의 역행렬로 정의된다.

M을 계산할 때,  M은 positive semi-definite matrix여야하며, data를 사용해서 covariance를 구한 후 역행렬을 구하는 방법이기 때문에 unsupervised 방법이다. 

M과 관련된 objective function은 다음과 같다.

S+를 similar pair, S-를 dissimilar pair라고 하면, 위와 같은 objective function의 solution이 Mahalanobis Distance의 M이다.

다른 objective function으로 "Large Margin Nearest Neighbor"가 있다.

Large Margin Nearest Neighbor에서 +의 왼쪽 부분은 같은 label을 갖는 x_i와 x_j 사이의 거리를 최소화하며, +의 오른쪽 부분은 다른 label을 갖는 x_i와 x_l을 Margin 1을 갖으면서 x_i와 x_l 사이의 거리를 최대화한다. 따라서, 결국 M은 같은 label을 갖는 x_i와 x_j 사이의 거리는 매우 가깝게, 반대로 다른 label을 갖는 x_i와 x_l 사이의 거리는 매우 길게하는 Matrix가 된다.


3. Deep Metric Learning

Deep Metric Learning은 D는 L2 Norm의 제곱으로 고정해놓고, f를 학습시키는 것이 핵심이다.

Network는 해당 이미지의 특징을 hand-crafted features가 아닌 data에서 직접 학습할 수 있으므로 사람이 catch하지 못하는 특징들을 배울 수 있다.

1) Siamese Network

Weights을 공유하는 두개의 network를 사용하여 f를 학습시킬 수 있다. 다음은 Network의 loss이다.

형태는, Large Margin Nearest Neighbor와 비슷한것을 알 수 있고, 1대신에 margin m을 설정했다는 점이 차이점으로 보인다. 특징은 Large Margin Nearest과 같이 + 왼쪽 부분은 같은 label을 갖는 x_i와 x_j 사이의 거리를 최소화하는 방향으로 학습시키며, + 오른쪽 부분은 다른 label을 갖는 x_i와 x_j 사이의 거리를 margin m을 갖고 최대화하는 방향으로 학습시킨다.

2) Triplet Network

1)의 network는 pairwise relationship을 사용해 network를 학습시킨것이라면, Triplet Network는 triplet relationship을 사용해 network를 학습시킨다. 또한, 하나의 Network에 Mini-batch를 입력하고 Mini-batch 내에서 계산된 f를 조합하여 triplet loss를 계산하므로 Siamese Network와 다르다.

먼저, Triplet Network의 입력은 총 세개로 (1) Anchor, (2) Positive sample, (3) Negative sample이다. Anchor는 기준이 되는 입력이고, Positive sample은 Anchor와 동일한 label을 갖는 입력, 반면에 Negative sample은 Anchor와 다른 label을 갖는 입력이다. 우리는 다음의 Triplet relationship을 학습시키면 된다.

delta는 Margin을 의미한다. 위의 관계식에서 다음과 같은 loss function을 얻을 수 있다.

Loss를 보면 Siames Network의 loss (Contrastive loss)와 달리 세 개의 입력 사이의 "관계"를 고려한 것이므로 더 유연한 성질을 갖는다. 반면에 Contrastive loss는 margin m에 constrained되어있다. (개인적으로 이해하기로는, Margin m만 constrained되어 있어서 이 조건을 지키기 위해서는 상당히 어려운데, Triplet rank loss와 같이 다른 입력과의 관계와 margin delta를 고려하므로 더 유연합니다.)

하지만, Metric의 결과의 값이 너무 커지면 Margin은 의미가 없으므로, Margin의 의미를 살려주기 위해서 Metric의 값을 Normalization해야한다. (L2 normalization)


4. Sampling

N개의 이미지에서 3개씩 조합을 찾으면 매우 양이 많아진다. (for문을 3번이나 돌려야한다. Complexity가 어떻게 될지 당신은 알고 있다!) 따라서, 좋은 Sampling(Distance Weighted Sampling)방법이 필요한데, 고려할 점들이 많다.

1) Easy Positive

Triplet rank loss는 max function을 사용하고 있기 때문에, 손 쉽게 두번째 항이 0 미만이 되는 경우 loss가 0이되어 training에 아무런 기여를 할 수 없다. 따라서, 이런 pair혹은 triplet을 sampling하는 것은 의미가 없다.

2) Hard Negative

반대로, Hard한 Negative sample을 뽑는 것은 심각한 training의 unstable을 초래한다. Hard는 것은 Anchor와 Negative sample의 거리가 짧은것을 의미한다. 이 경우, 거리가 짧아짐으로써, Gradient가 불안정해진다.

위 식에서 분모가 작아짐으로써 Gradient는 매우 불안정해진다. 따라서, 제대로 Triplet Network를 학습시키기위해서는 "Smart"한 Sampling 방법이 필요하다.

3) Naive sampling

L2 normalization된 Sphere에서 (e.g., R=1) uniform하게 sampling하면, 이 sampling된 point 사이의 거리는 biased되어 있다. 이는 Sphere 위에서 sampling된 point들은 Sphere의 형태를 띄고 sampling된 것인데, 거리를 구할 때 사용되는 Euclidean Distance는 Sphere라는 점을 무시하고 일직선상의 거리를 계산한 것이기 때문이다.

따라서, biased된 거리에 관련된 distribution을 구하고, 이 distribution에서 높은 확률의 구간을 적게, 적은 확률의 구간을 많이 뽑으면 wide range에서 sample을 뽑을 수 있다.

anchor에서 naive한 method로 sampling된 negative sample사이의 거리의 분포는 다음과 같이 계산된다.



'Computer Vision > CV' 카테고리의 다른 글

CV 8. Video Representation  (0) 2018.12.26
CV 6. Classification  (0) 2018.12.23
CV 5. Geometry  (0) 2018.12.23
CV 4. Camera Model  (0) 2018.12.22
CV 3. Fitting  (0) 2018.12.21
Comments