처음에 Multi Label Classification을 들었을 때는 당연히 Multi Class Classification을 이야기하는 줄 알았는데, 서로 다른 Task였다.
Multi Class Classification은 하나의 이미지 안에 있는 한 동물이 강아지인지, 고양이인지 찾아내는 것이다.(답이 1개) 예를 들어 CLASS = ['강아지', '고양이', '오리', '펭귄', '판다'] 라면,
이 이미지에 대한 정답은 '강아지' 하나이다. ( = [1, 0, 0, 0, 0] )
조금 더 나아가서, Multi Class Classification에서의 활성화 함수는 Softmax 함수를 사용한다.
여러 클래스(강아지~판다) 중 확률이 가장 높은 1개를 선택해야 하기 때문에,
클래스별 확률을 다 더했을 때의 합이 1이 되게 하는 Softmax 함수가 적절하다.
Multi Label Classification은 이미지 안에 있는 동물들이 무엇인지 블로그 태그(tag)처럼 강아지, 고양이 등등 으로 찾아내는 것이다 (답이 1개 이상)
예를 들어 'Label = ['강아지', '고양이', '오리', '펭귄', '판다']` 라면,
이 이미지에 대한 정답은 ('강아지', '고양이')가 될 것이다. ( = \[ 1, 1, 0, 0, 0 \] )
조금 더 나아가서, Multi Label Classification에서는 활성화 함수를 Softmax 함수가 아닌, Sigmoid 함수를 사용한다.
Softmax 함수를 쓰면 '강아지'의 확률이 높아지는 것과 동시에 '고양이'의 확률이 낮아지는데, 여기서는 둘 다 정답이기 때문에 적절하지 않다.
따라서 각 라벨별로 독립적인 score를 얻을 수 있는 sigmoid 함수를 활성화 함수로 사용한다.