교차 엔트로피 란 무엇입니까?


93

교차 엔트로피가 무엇인지에 대한 설명이 많이 있다는 것을 알고 있지만 여전히 혼란 스럽습니다.

손실 함수를 설명하는 방법 일 뿐입니 까? 손실 함수를 사용하여 최소값을 찾기 위해 경사 하강 법 알고리즘을 사용할 수 있습니까?


10
SO에 적합하지 않습니다. 다음은 datascience 자매 사이트에 대한 유사한 질문입니다. datascience.stackexchange.com/questions/9302/…
Metropolis

답변:


231

교차 엔트로피는 일반적으로 두 확률 분포의 차이를 정량화하는 데 사용됩니다. 일반적으로 "진정한"분포 (기계 학습 알고리즘이 일치시키려는 분포)는 원-핫 분포로 표현됩니다.

예를 들어 특정 학습 인스턴스의 경우 레이블이 B (가능한 레이블 A, B, C 중)라고 가정합니다. 따라서이 학습 인스턴스의 원-핫 배포는 다음과 같습니다.

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

위의 "참"분포를 해석하면 훈련 인스턴스가 클래스 A가 될 확률이 0 %, 클래스 B가 될 확률이 100 %, 클래스 C가 될 확률이 0 %임을 의미합니다.

이제 기계 학습 알고리즘이 다음 확률 분포를 예측한다고 가정합니다.

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

예측 분포가 실제 분포에 얼마나 가깝습니까? 이것이 교차 엔트로피 손실이 결정하는 것입니다. 다음 공식을 사용하십시오.

교차 엔트로피 손실 공식

p(x)원하는 확률과 q(x)실제 확률 은 어디에 있습니까 ? 합계는 세 클래스 A, B, C를 초과합니다.이 경우 손실은 0.479입니다 .

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

이것이 당신의 예측이 실제 분포에서 얼마나 "잘못"또는 "멀리"있는지입니다.

교차 엔트로피는 가능한 많은 손실 함수 중 하나입니다 (다른 인기있는 것은 SVM 힌지 손실입니다). 이러한 손실 함수는 일반적으로 J (theta)로 작성되며 매개 변수 (또는 계수)를 최적의 값으로 이동하는 반복 알고리즘 인 경사 하강 법 내에서 사용할 수 있습니다. 아래 방정식 J(theta)에서 H(p, q). 그러나 H(p, q)먼저 매개 변수에 대한 미분을 계산해야합니다 .

경사 하강 법

따라서 원래 질문에 직접 답하려면 다음을 수행하십시오.

손실 함수를 설명하는 방법 일 뿐입니 까?

정확하고 교차 엔트로피는 두 확률 분포 간의 손실을 설명합니다. 가능한 많은 손실 함수 중 하나입니다.

그런 다음 예를 들어 기울기 하강 알고리즘을 사용하여 최소값을 찾을 수 있습니다.

예, 교차 엔트로피 손실 함수는 경사 하강 법의 일부로 사용할 수 있습니다.

추가 읽기 : TensorFlow와 관련된 다른 답변 중 하나 .


따라서 교차 엔트로피는 각 예 X에 대한 확률의 합으로 손실을 설명합니다.
theateist

따라서 오차를 교차 엔트로피로 설명하는 대신 두 벡터 사이의 각도 (코사인 유사성 / 각도)로 설명하고 각도를 최소화 할 수 있습니까?
theateist

1
분명히 이것이 최선의 해결책은 아니지만, 이론적으로 cosine (dis)similarity는 각도를 통해 오류를 설명하고 각도를 최소화하는 데 사용할 수 있는지 알고 싶었습니다 .
theateist

2
@Stephen : 내가 준 예를 보면 p(x)각 클래스에 대한 실측 확률 목록이 될 것입니다 [0.0, 1.0, 0.0. 마찬가지로은 q(x)각 클래스에 대한 예측 확률 목록입니다 [0.228, 0.619, 0.153]. H(p, q)그러면 - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))0.479가됩니다. np.log()실제로 자연 로그인 Python의 함수 를 사용하는 것이 일반적입니다 . 그것은 중요하지 않습니다.
stackoverflowuser2010

1
@HAr : 진정한 레이블의 원-핫 인코딩의 경우 우리가 신경 쓰는 0이 아닌 클래스는 하나뿐입니다. 그러나 교차 엔트로피는 두 가지 확률 분포를 비교할 수 있습니다. 그들 중 하나가 원-핫 확률을 가질 필요는 없습니다.
stackoverflowuser2010

3

간단히 말해서, 교차 엔트로피 (CE)는 실제 레이블에서 예측 된 값이 얼마나 멀리 떨어져 있는지 측정하는 것입니다.

여기서 십자 표시는 둘 이상의 기능 / 진정한 레이블 (예 : 0, 1) 간의 엔트로피를 계산하는 것을 나타냅니다.

엔트로피라는 용어 자체는 임의성을 나타내므로 값이 크면 예측이 실제 레이블과는 거리가 멀다는 것을 의미합니다.

따라서 가중치는 CE를 줄이기 위해 변경되며 결국 예측과 실제 레이블 간의 차이가 줄어들어 정확도가 향상됩니다.


1

위의 게시물에 추가하여, 교차 엔트로피 손실의 가장 간단한 형태는 이진 교차 엔트로피 (예 : 로지스틱 회귀와 같은 이진 분류를위한 손실 함수로 사용됨)로 알려진 반면 일반화 된 버전은 범주 교차 엔트로피 (사용됨)입니다. 다중 클래스 분류 문제에 대한 손실 함수 (예 : 신경망 사용).

아이디어는 동일하게 유지됩니다.

  1. 모델 계산 (softmax) 클래스 확률이 학습 인스턴스의 대상 레이블에 대해 1에 가까워지면 (예 : 원-핫 인코딩으로 표시됨) 해당 CCE 손실이 0으로 감소합니다.

  2. 그렇지 않으면 대상 클래스에 해당하는 예측 확률이 작아짐에 따라 증가합니다.

다음 그림은 개념을 보여줍니다 (그림에서 y와 p가 모두 높거나 둘 다 동시에 낮을 때 즉, 합의가있을 때 BCE가 낮아짐을 알 수 있음).

여기에 이미지 설명 입력

교차 엔트로피 는 두 확률 분포 사이의 거리를 계산 하는 상대 엔트로피 또는 KL- 발산 과 밀접한 관련이 있습니다. 예를 들어 두 개의 개별 pmfs 사이에서 이들 간의 관계는 다음 그림에 나와 있습니다.

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.