Learning Objective
- 학습 목표를 달성하기 위해 세 개의 값을 기준으로 loss를 구합니다.
이때 사용되는 각 input을 Anchor, Positive, Negative로 구성합니다.- Anchor와 Positive는 동일한 인물에 대한 set, Negative는 다른 인물에 대한 set입니다.
- 따라서 전자의 차이는 작고 후자의 차이는 크기 때문에 대소 관계가 <= 를 이루게 하는 것이 목표입니다.
- 하지만 파란색으로만 구성된 식을 보면 출력값이 그냥 0으로만 나오는 경우 문제가 발생합니다.
- 어떤 입력에 대해서도 출력이 0으로 나오게 되는 경우도 항상 부등식이 만족되기 때문이죠.
- 따라서 동일 인물에 대한 차이값, 다른 인물에 대한 차이값이 더욱 극명하게 벌어질 수 있도록 일종의 margin을 둔 것이 알파입니다.
- 이 값이 크면 클수록 둘 사이의 차이가 커져야한다는 걸 의미하게 되죠.
Loss function
- 이를 활용하면 Loss function을 max 함수로 정의할 수 있습니다.
- anchor - positive - negative의 차이가 0보다 작다는 것은 부등식을 만족했다는 것이므로 loss가 없습니다.
- 반대의 경우엔 loss가 발생한 것이므로 이 차이가 0보다 클 때만 이 값을 취하고 나머지는 0을 취하는 max 함수를 사용합니다.
- 이제 가지고 있는 이미지를 적절히 A, P, N에 분배하면 됩니다.
Choosing the triplets A, P, N
- 하지만 데이터를 단순히 'random'하게 분배하는 것은 좋은 선택지가 아닙니다.
- random하게 데이터셋을 구성하게 될 경우, 다른 이미지에 대한 d(A, P), d(A, N)의 값이 굉장히 커지기 때문이죠.
- 다른 표현으로는 태스크가 너무 쉬워지는 것입니다.
- 우리의 목표는 둘 사이의 차이가 벌어지는 것이므로 학습하기 어려운 셋을 구성해주는 것이 바람직합니다.
Training set using triplet loss
출처: Coursera, Convolutional Neural Networks, DeepLearning.AI