1. Transfer Learning
Transfer Learning 은 하나의 task 를 해결하기 위해 학습된 모델을 다른 task 해결을 위해 재사용 하는 것을 의미한다.
이는 사람이 새로운 지식을 습득하는 과정에서 기존에 습득한 지식들을 활용하는 것과 비슷한 개념이다.
이때 Transfer Learning 을 위해 최초로 학습을 수행하는 task를 upstream task 라고 부르고,
upstream task 를 학습하는 과정을 pre-train 이라고 부른다.
pre-train 이 끝난 모델을 가지고 실제 우리가 해결하고자 하는 task 를 학습해야 하는데,
이것은 downstream task 라고 부른다.
Transfer Learning 을 사용하면 모델의 학습 속도가 빨라지고, 새로운 task 를 수행하는 성능이 개선된다.
앞서 살펴본 few-shot learning 도 Transfer Learning 의 학습 방법 가운데 하나이다.
2. Metric Learning
Transfer Learning 을 진행하기 위해서는 pre-train 과정에서 general 한 모델을 완성해야 하는데,
이 과정에서 Metric Learning 을 사용한다.
Metric Learning 은 주어진 대상을 분류 하는 것이 아니라, 주어진 대상들의 특성이 같은지 다른지에 따라 거리를 구하는 방식이다.
참조 : FaceNet
유사한 대상일수록 거리가 가깝게 계산되며, 유사하지 않은 대상일수록 거리가 멀게 계산되기 때문에
기존과 같이 단순 분류를 하는 것이 아니라 유사한 대상끼리 클러스터를 잘 형성하는 것에 초점이 맞춰지게 되었다.
3. Triplet Loss
Metric Learning 을 수행하기 위한 손실함수로 구현된 것이 Triplet Loss 이다.
Triplet Loss 는 anchor를 기준으로 positive와 negative를 이용해 3개의 값으로 loss를 계산한다.
입력된 값이 true이면 positive를 minimized, 입력된 값이 false이면 nagative를 maximize하는 방식으로 학습한다.
'Dev' 카테고리의 다른 글
[colab] bash: Bad Substitution (0) | 2021.04.01 |
---|---|
[colab] sh: Permission denied 오류 (0) | 2021.03.29 |
Few-Shot Learning (0) | 2021.03.24 |
SENet (0) | 2021.03.22 |
Bottleneck layer (2) | 2021.03.20 |
댓글