AI/Machine Learning

[ML] Binary Cross Entropy 와 Cross Entropy 의 차이

운호(Noah) 2021. 11. 30. 22:47

들어가기 앞서,

  • Binary Cross Entropy 와 Cross Entropy 의 개념은 자주 헷갈리는 것 같습니다.
  • 따라서, 해당 포스트에서는 Binary Cross Entropy 와 Cross Entropy 의 차이점에 대해서 다뤄볼 것입니다.

진행 순서

  • 이진 분류
  • 멀티 이진 분류
  • 다중 분류

이진 분류

  • 이진 분류란, 데이터가 주어졌을 때, 해당 데이터를 두 가지 정답 중 하나로 분류하는 것을 의미합니다.

    • 예를 들어, 홍길동이라는 데이터가 주어졌을 때,
    • 해당 데이터가 사람이냐 아니냐에 대한 정답이 1 과 0 중 하나라면,
    • 해당 데이터가 1 일 확률이 출력되고,
    • 해당 확률이 0.5 이상이면, 1 로 판단하게 됩니다.
  • Binary Cross Entropy Loss (이진 교차 엔트로피 손실)

    • 이러한 이진 분류에는, Binary Cross Entropy Loss 함수를 활용할 수 있습니다.

    • 위 Binary Cross Entropy Loss 수식에서 y hat 은, 0 과 1 사이의 연속적인 시그모이드 함수 출력값을 의미하며, y 는 불연속적인 실제값을 의미합니다.

    • 따라서, 단일 항목에 대한 Binary Cross Entropy Loss 는 아래 공식으로 계산할 수 있습니다.

멀티 이진 분류

  • 위 이진 분류에서는, 데이터가 주어졌을 때, 해당 데이터가 사람이냐 아니냐에 대한, 단일 항목에 대해서만 이진 분류를 진행했었습니다.

  • 하지만, 만약 질문 항목이 여러개이며, 각 항목의 대한 정답이 두 가지라면, 이를 멀티 이진 분류라고 합니다.

    • 예를 들어, 홍길동이라는 데이터가 주어졌을 때
    • 첫 번째 질문 항목은 사람이냐 아니냐,
    • 두 번째 질문 항목은 서울에 사느냐, 살지 않느냐로 해당 데이터를 분류할 수 있습니다.
  • 신경망 마지막 계층의 n 개 노드에 대해, 모두 시그모이드 함수를 적용하면, 아래 그림과 같은 모델 구조를 가지며, n 개 항목에 대한 이진 분류 작업을 수행할 수 있습니다.

  • 따라서, 다중 항목에 대한 Binary Cross Entropy Loss 는 아래 공식으로 계산할 수 있습니다.

다중 분류

  • 만약, 데이터가 주어졌을 때, 질문 항목은 1개이지만, 해당 항목에 대한 정답은 세 가지 이상이라면, 이를 다중 분류라고 합니다.

    • 예를 들어, 홍길동이라는 데이터가 주어졌을 때
    • 해당 데이터를 키가 크냐, 중간이냐, 작냐 로 분류할 수 있습니다.
  • 이때는 어쩔 수 없이 sigmoid 함수가 아닌 softmax 함수가 필요하게 됩니다.

  • 만약, 질문 항목이 n 개 이며, 각 항목에 대한 정답이 세 가지 이상이라면,

    각 질문에 대해 각각 softmax 함수를 적용해, 아래 그림과 같은 모델 구조를 가지게 되며,

    여러 항목에 대한 다중 분류 작업을 수행할 수 있습니다.

  • Cross Entropy (교차 엔트로피)

    • 따라서, 다중 분류에 대한 Cross Entropy 는 아래 공식으로 계산할 수 있습니다.

결론

  • 예측값이 단일 항목으로 이루어져있다면 (ex, [0.5])
    • 단순 이진 분류이므로, 목적함수로 Binary Cross Entropy 를 사용
  • 예측값이 여러개의 항목으로 이루어져있으며, 각 항목의 확률 합이 1 이 넘어간다면 (ex, [0.7, 0.6, 0.4])
    • 멀티 이진 분류이므로, 목적함수로 Binary Cross Entropy 를 사용
  • 예측값이 여러개의 항목으로 이루어져있으며, 각 항목의 확률 합이 1 이라면 (ex, [0.5, 0.2, 0.3])
    • 다중 분류이므로, 목적함수로 Cross Entropy 를 사용

참고