[AI] Multi-label & Multi-classification

JAsmine_log·2024년 8월 28일
0

Multi-label & Multi-class

두 개념 모두 머신러닝에서 자주 사용되는 분류 문제이다.

Concept

Multi-label Classification (다중 레이블 분류)

  • 의미:

    • Multi-label classification에서는 각 샘플이 여러 클래스에 동시에 속할 수 있어, 하나의 입력에 여러 개의 레이블이 할당될 수 있다. 각 레이블에 대해 독립적으로 'true' 또는 'false'을 예측하게 됩니다.
  • 예시:

    • 이미지 태그 지정:
      한 이미지에 대해 '고양이', '동물', '야외' 등의 태그가 동시에 붙을 수 있다. 이 경우, 이미지 하나에 여러 레이블이 할당된다.
    • 텍스트 분류:
      한 문서가 '정치', '경제', '국제' 등의 여러 카테고리에 동시에 관련될 수 있따.
  • 모델 출력:
    모델의 출력은 각 클래스에 대한 독립적인 확률 값으로, 각 클래스에 대해 0 또는 1의 이진 값을 예측한다.

  • 손실 함수:

    • 주로 binary cross-entropy를 사용한다. 각 클래스에 대해 독립적으로 손실을 계산하고 이를 합산한다.

Multi-class Classification (다중 클래스 분류)

  • 의미:
    Multi-class classification에서는 각 샘플이 단 하나의 클래스에만 해당하며, 입력 데이터에 대해 여러 클래스 중 하나만 결과를 낸다.

  • 예시:

    • 이미지 분류:
      이미지를 입력에, '고양이', '강아지', '새' 중 하나의 클래스만 선택
    • 뉴스 기사 분류:
      한 뉴스 기사를 '정치', '경제', '스포츠' 중 하나의 카테고리로 분류
  • 모델 출력: 모델의 출력은 각 클래스에 대한 확률 값이며, 가장 높은 확률을 가진 클래스를 선택하여 예측

  • 손실 함수:
    주로 cross-entropy loss를 사용한다. 다중 클래스의 확률 분포와 정답 레이블 간의 차이를 계산하여 손실을 구한다.

차이점

  • 레이블의 수:
    • Multi-label classification: 각 샘플이 여러 클래스에 동시에 해당
    • Multi-class classification: 각 샘플은 오직 하나의 클래스에만 해당
  • 출력:
    • Multi-label classification: 출력 벡터에서 각 클래스에 대해 독립적으로 이진 예측(0 또는 1)
    • Multi-class classification: 출력 벡터에서 각 클래스에 대한 확률을 계산하고, 그중 가장 높은 확률을 가진 하나의 클래스를 선택한다.
  • 손실 함수:
    • Multi-label classification: BCEWithLogitsLoss와 같은 이진 교차 엔트로피 손실 함수를 사용한다.
    • Multi-class classification: CrossEntropyLoss와 같은 다중 클래스 교차 엔트로피 손실 함수를 사용한다.

여기까지 봤을 때, Multi-label classification은 데이터가 여러 카테고리나 속성에 동시에 관련된 것을 예측할 때 적절히 사용할 수 있다. 예를 들어, 이미지가 여러 개의 객체를 포함할 때나 문서가 여러 주제를 다룰 때 사용한다.
이에 반해, Multi-class classification은 데이터가 명확하게 하나의 카테고리만 선택해야하는 문제에 적합하다. 예를 들면, 하나의 사물을 인식하거나, 하나의 명확한 주제를 다루는 문제에서 사용할 수 있다.

profile
Everyday Research & Development

0개의 댓글