목차
Introduction
Few-shot learning과 constractive learning을 섞어놓은 듯한 논문이다. 내 관점에서는 Few-shot learning 느낌보다는 constractive learning에 좀 더 맞지 않나라고 보인다. 이 논문은 사전에 준비해둔 데이터와 들어오는 데이터를 비교하여 같음 다름을 이용하여 분류하는 방법이다. 구조와 loss function 등 매우 간단하고 아이디어도 매우 간단하다.
Model
Siamese의 모델은 아래 그림과 같다. 간단한 CNN구조로 되어 있지만 다른 점은 input을 하나만 사용하는 것이 아닌 이미 가지고 있는 데이터를 함께 사용하는 것이다.
Siamese Neural Network
아래 수식은 내가 이해한 Siamese Nerual Network를 수식으로 만든것이다.
\[M(x) = FC_1(C_n(x))\] \[P = FC_2(||M(x_1) - M(x_2)||_2)\] \[L = y \text{log}p + (1-y) \text{log}(1-p) + \lambda^T |w|^2\]\(x_1\): Input data
\(x_2\): Dataset for learned feature mappings
\(C_n\): n개로 이루어진 CNN layers
\(FC_1, FC_2\): 1,2 번째 Fully Connected layer
같은 네트워크 M을 공유하여 사용하며 입력 데이터와 데이터셋을 네트워크에 입력하여 feature map을 구한 후 두 입력의 카테고리가 같으면 p를 0으로 만들도록 학습을 하고 다르면 p를 1로 만들도록 학습한다. 마지막 fully connected layer를 제외하고 L2 loss만을 이용해서 학습할 경우 Deep-SVDD와 두 feature가 같은 곳으로 오도록 학습한다는 의미이다. 이 모델에서 CNN은 ReLu activation function을 사용하고 FC는 sigmoid function을 사용하였다.