23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요! SK C&C AI engineer 조경진입니다.
최근에 LLM 모델이 트렌드를 이끌고 있는데요, 또 다른 트렌드로는 foundation model이 있습니다. (아래 뉴스기사 참고!)
파운데이션 모델이란 무엇인가? | NVIDIA Blog
그리고 그 파운데이션 모델에 근간이 되었던 contrastive learning을 알아보기 전에 metric learning에 대해 먼저 간단하게 알아보는 시간을 가지려고 합니다.
Metric learning은 다양하게 사용되고 있으며 다음과 같은 application이 있습니다.
ex) Clustering, Ranking, Unsupervised learning
우선 제목 그대로 metric 이란 무엇일까요? metric 이란 두 점 x와 y 간의 거리 함수를 의미합니다. 거리 함수를 만족하려면 다음과 같은 네 가지 조건을 만족해야 합니다!
이러한 거리 함수를 바탕으로 metric learning은 고전 통계 method와 deep learning method로 나뉠 수 있습니다.
고전 통계 method로는 유클리디안 distance와 마할라노비스 distance를 이용한 method들이 존재합니다.
하지만 이미지 차원에서의 distance는 매우 직관적이지 못하며,
pixel-wise euclidean distance는 차원 간의 독립성을 전제하에 수행하기 때문에 (LDA를 참고) 올바르지 못한 metric learning 일 수 있습니다.
자 그럼 deep learning에서는 어떠한 방식으로 접근했을까요?
저는 크게 softmax based approach와 contrastive learning based approach 이렇게 두 가지로 간추려서 말씀드리고자 합니다.
이번엔 softmax based approach만 다뤄보도록 하겠습니다!
단순 decision boundary를 구분하도록 학습된 초기 metric learning 입니다.
초기 metric learning은 단순하게 softmax와 cross entropy로 multi-class classifier를 훈련시켜 metric learning을 시도했습니다.
softmax 수식을 우선 분해해볼게요. (글씨가 너무 악필이네요 ㅠㅠ)
여기서 f 는 learned feature vector이며, FC layer의 input이고 a는 FC의 output 입니다.
W는 마지막으로 FC layer의 weight이며, W는 class j 의 linear classifier라고 해석할 수 있습니다.
L-Softmax (Large Margin Softmax)
Softmax가 주로 사용되는 문제에서는 다음과 같은 모델 작동 순서가 주로 존재합니다.
Image → Feature extraction by CNN → FC layer → Softmax function → Cross entropy loss
이때 FC layer는 linear classifier로서 decision boundary를 잡아주는 역할을 하게 됩니다.
softmax로 학습했을 때의 CNN feature를 t-SNE로 visualize한 결과.
따라서 다른 approach와 달리 positive와 negative에 대해서 distance를 학습하려고 하지는 않습니다.
(그럼 이 approach 말고 다른 approach는 positive, negative에서 사용한다는 말이겠죠?)
Liu et. al.는 class 별로 이렇게 겹치는 특징들이 왜 생기는지, class별로 feature의 분포를 어떻게해야 더 잘 모아줄지 고민했습니다.
Liu et. al.는 CNN feature가 FC layer를 거쳐 softmax까지 오는 과정을 Fig.1 의 수식으로 이미 보여주었습니다!
여기서 한 번 더 생각해볼게요.
우리는 내적을 W^Tx 와 ||W|| ||x||cosθ 두 가지 꼴로 나타낼 수 있습니다.
후자의 경우로 다시 FC layer의 수식을 전개하면,
fj=||Wj|| ||xi|| cos(θj) where θj (0≤θj≤π) 이고, 여기서 softmax activation 까지 적용하면 다음과 같습니다.
여기서 softmax function은 주로 Cross entropy loss를 이용하여 학습하기 때문에 단적인 예로 1번 class라면 [1,0], 2번 클래스라면 [0,1]이 나와야 합니다.
따라서 W1와 W2 의 벡터는 각도를 중심으로 클래스 벡터끼리 더 모이는 쪽으로 학습됩니다.
여기에 추가적으로 각도를 중심으로 양쪽으로 밀어내어 학습을 시키면 다음과 같은 t-SNE 결과를 보여줍니다.
margin을 강하게 주어 학습할수록 더 뾰족한 형태의 t-SNE 결과를 보여줍니다.
최종적으로 L-softmax는 클래스 별로 각을 벌려서 discriminative를 학습합니다.
A-Softmax (Angular Softmax or Sphere Face)
Liu et. al. 는 단순히 ||W|| 크기에 따라 적절한 decision boundary를 구분하는 게 아닌 오로지 “각도”로만 boundary를 나누고자 했습니다.
따라서 mapping을 hypersphere의 껍질로 보내기 위하여 ||W||=1, bias=0 으로 고정하여 원점을 중심으로 하는 구를 가정합니다.
일반적으로 class 1과 class 2의 decision boundary는 다음과 같다. 수식의 편의를 위하여 class 1으로 예측했다고 가정하해볼게요.
||W1|| ||f1|| cos(θ1) > ||W2|| ||f2|| cos(θ2)
||W|| |f1|| cos(θ1) >||f2|| cos(θ2)
최종적으로 L-softmax처럼 우리가 벌리고자 하는 class 별 margin을 대입하면 다음과 같은 결과를 얻을 수 있습니다.
Arcface
거의 다 왔습니다!
이전 연구들은 weight를 normalize 했지만 Arcface는 weight 뿐만 아니라 input x에서도 normalize를 진행합니다.
이 아이디어는 arcface에서 나온게 아닙니다 (자세한건 Cosface를 참고해보시길!!)
W 만 normalize 한다면 cos(θ)는 차이가 너무 작은데 비슷한 L2 distance를 가지는 x1, x2 가 있다면 우리가 원하지 않는 결과를 가져올 수 있습니다.
따라서 x에 대해서도 a값으로 scaling 하는 것으로 이러한 현상을 방지합니다.
feature와 weight 둘 다 normalize를 진행하고 정말 “각도”로만 decision boundary를 구분합니다.
학습된 embedding features는 결국 radius가 a인 hypersphere에 분산됩니다.
본 논문의 저자는 ||xi||를 L2 norm한 이후에 s 로 다시 re-scale 합니다.
해당 figure에서 arcface에 대한 모든 철학이 담겨있는데요. 차근차근 step을 밟아보겠습니다.
step을 밟는데 어려움이 있을까봐 수식을 첨부하겠습니다.
Normalize와 scaling factor까지 적용한 수식.
여기에 추가로 constant한 margin을 추가하면 끝.
Wyi 과 fθ(Xi) 의 유사도는 커지도록, 다른 class vector 즉, Wj≠yi 과 fθ(Xi) 유사도는 멀어지게 훈련합니다.
다시 정리하면, class 간 각각의 대표 vector들 Wi와 embedding vector fθ(Xi) 사이의 각들로 분류할 수 있는 임베딩 공간을 학습하도록 합니다.
여기에 추가로 margin을 두고 θyi + m < θj,i 를 잡아주고 inter와 intra를 각각 커지고 작아지게 학습합니다.
자, 이제 metric learning의 첫 번째 approach가 이제야 끝났습니다.
softmax based approach는 단순 classification에서 softmax loss를 사용할 경우 decision boundary가 우리가 원하는 방향으로 그어지기 어렵습니다.
이러한 문제점을 해결하기 위하여 intra, inter class로 잘 embedding 되기 위해서 단순 matrix multiplication이 아닌 내적의 기하학적인 관점을 도입하여 embedding을 시도했습니다.
Angular loss는 face recognition과 image retrieval에서 많이 사용되며 closed set이 아닌 open set에 대해서도 잘 적용할 수 있게 발전해 왔습니다.
metric learning에서의 해당 approach에 대한 연구동향은 추가적으로 꼭 살펴보길 바랄게요!
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.