본문 바로가기
인공지능

multi-label classification의 활성화 함수와 손실 함수

by judy@ 2023. 7. 1.

최근 kaggle에서 enzyme 분류 문제를 풀고 있는데, 처음 시도할 때에 multi-label을 multi-class 문제로 풀어 성능이 잘 안나왔고, 원인을 분석하다가 정리해보았다. 분류에는 크게 세 종류가 있으며, 인공신경망의 마지막 활성화함수와 손실함수는 일반적으로 아래와 같이 사용하면 된다.

 

  • binary classification: 0 또는 1 중 하나를 고르는 문제로, sigmoid 함수와 binary crossentropy를 사용하면 된다.
  • multi-class classification: 일반적인 categorical classification으로, 3개 이상의 클래스 중 하나를 고르는 문제. softmax 함수를 사용해야 하며, 손실로는 categorical crossentropy를 사용한다
  • multi-label classification: multi-class와 이름 자체는 유사해보인다. 그러나 2개 이상의 클래스들에 대해서 다중 선택을 할 수 있는 문제이다. 즉, 1개만 고르는 문제가 아니기 때문에 softmax를 사용하면 안된다. 이 때는 클래스 수만큼 노드를 만들고 시그모이드 함수를 적용하여 각각에 대해서 고를지 말지의 문제로 만들어야 한다. 때문에, 손실 함수 또한 binary crossentropy를 사용해야 한다.

위는 아주 일반적인 케이스임을 참고해야 한다

반응형