답변:
크로스 엔트로피 화학식 두 분포 취하는 , 실제 유통, 이산 변수 위에 정의 된 추정 분포, X 및 주어진다
신경망의 경우 계산은 다음과 무관합니다.
어떤 종류의 레이어가 사용 되었습니까?
어떤 종류의 활성화가 사용 되었는가-많은 활성화는 출력이 확률로 해석 할 수 없기 때문에 계산과 호환되지 않지만 (즉, 출력이 음수, 1보다 크거나 1에 합산되지 않음). Softmax는 잘 동작하는 확률 분포 함수를 보장하기 때문에 종종 다중 클래스 분류에 사용됩니다.
신경망의 경우 일반적으로 가 기본 진리 벡터이고 (또는 마지막 레이어 출력에서 직접 가져온 다른 값) 형식으로 작성된 방정식을 볼 수 있습니다. 추정치 단일 예제의 경우 다음과 같습니다.
여기서 은 벡터 내적입니다.
당신의 예제 진실 는 첫 번째 값에 대한 모든 확률을 제공하고 다른 값은 0이므로, 우리는 그것들을 무시할 수 있으며 추정치 \ mathbf {\ hat {y}} 에서 일치하는 용어를 사용하십시오
의견에서 중요한 점
즉, 예측이 또는 이든 상관없이 손실은 동일 할 것입니다 .
예, 이것은 멀티 클래스 로그 로스의 주요 기능이며 올바른 클래스의 확률 만 보상 / 불이익합니다. 이 값은 남은 확률이 잘못된 클래스간에 어떻게 분리되는지와 무관합니다.
이 방정식은 모든 예에서 평균적으로 비용 함수로 볼 수 있습니다. 설명에서 항상 엄격하게 준수하는 것은 아니지만 일반적으로 손실 함수는 하위 수준이며 단일 인스턴스 또는 구성 요소가 오류 값을 결정하는 방법을 설명 하고 비용 함수는 높은 수준을 유지하며 전체 시스템이 최적화를 위해 평가되는 방법을 설명합니다. 크기 의 데이터 세트에 대한 멀티 클래스 로그 손실을 기반으로하는 비용 함수 는 다음과 같습니다.
많은 구현에서는 약간의 최적화가 가능하기 때문에 기본 진리 값을 단일 핫 클래스로 단일 핫 인코딩해야합니다. 그러나 원칙적으로 그렇지 않은 경우 교차 엔트로피 손실을 계산하고 최적화 할 수 있습니다.
Neil의 대답은 맞습니다. 그러나 손실 은 잘못된 클래스 간의 분포에 의존하지 않지만 (올바른 클래스와 나머지 클래스 간의 분포에만 의존하지만) 이 손실 함수 의 그라디언트 는 방법에 따라 잘못된 클래스에 다르게 영향을 미친다는 점을 지적하는 것이 중요하다고 생각 합니다 그들이 틀렸다. 따라서 기계 학습에 크로스 엔트를 사용하면 [0.1 0.5 0.1 0.1 0.2] 및 [0.1 0.6 0.1 0.1 0.1]에 대해 가중치가 다르게 변경됩니다. 올바른 클래스의 점수가 다른 모든 클래스의 점수에 의해 정규화되어 확률로 변환되기 때문입니다.
손실의 그라디언트가 어떻게 작동하는지 봅시다 ... 우리는 다음과 같이 손실 함수로 교차 엔트로피를 갖습니다.
여기에서 간다. 우리는 어떤 관한 미분을 알고 싶다 : ∂ 다른 모든 용어는 미분으로 인해 취소되기 때문입니다. 이 방정식을 한 단계 더 나아가서 ∂
이것으로부터 우리는 여전히 실제 클래스 ( 대한 값이 있음)에만 페널티를 가하고 있음을 알 수 있습니다 . 그렇지 않으면 우리는 0의 기울기를가집니다.
소프트웨어 패키지가 예측 값 0을 처리하는 방법이 궁금하지만, 실제 값은 0보다 큽니다.이 경우 0으로 나누기 때문입니다.
정보 이론에서 엔트로피를 이해하는 것으로 시작해 봅시다. "aaaaaaaa"라는 문자열을 전달한다고 가정합니다. 8 * "a"로 쉽게 할 수 있습니다. 이제 다른 문자열 "jteikfqa"를 사용하십시오. 이 문자열을 전달하는 압축 된 방법이 있습니까? 존재하지 않습니다. 우리는 두 번째 문자열의 엔트로피가 그것을 전달하기 위해서는 더 많은 "비트"정보가 필요하다고 말할 수 있습니다.
"교차"엔트로피에서는 이름에서 알 수 있듯이 두 가지 확률 분포의 차이를 설명하는 데 필요한 비트 수에 중점을 둡니다. 가장 좋은 시나리오는 두 분포가 동일하며,이 경우 최소 엔트로피와 같이 최소량의 비트가 필요합니다. 수학적으로
결론 : 평신도 용어로, 교차 엔트로피는 거리를 설명하는 데 필요한 정보의 양 (비트)으로 두 확률 분포 사이의 거리로 생각할 수 있습니다. 확률 벡터가 서로 가까워 질수록 감소하는 손실을 정의하는 깔끔한 방법입니다.
나는 루카스에 동의하지 않는다. 위의 값은 이미 확률입니다. 원래 게시물은 값이 softmax 활성화되었음을 나타냅니다.
오류는 "핫"클래스에서만 다시 전파되며 다른 클래스 내의 확률이 서로 이동하면 확률 Q (i)는 변경되지 않습니다.
문제는 확률이 다른 값을 주어진 값으로 통합하는 '복잡한'함수에서 나온다는 것입니다. 결과는 서로 연결되어 있으므로 실제 결과와 관련하여 도출되지 않고 각 결과마다 마지막 활성화 함수 (softmax)의 모든 입력에 의해 도출됩니다.
gombru.github.io/2018/05/23/cross_entropy_loss의 다른 깔끔한 설명 .
마지막 활성화 레이어로 간단한 시그 모이 드를 사용하면 승인 된 답변이 나오지만 softmax를 사용하면 다른 답변을 나타냅니다.