교차 엔트로피 비용이 회귀 상황에서 의미가 있습니까?


13

교차 엔트로피 비용은 회귀와 관련하여 (분류가 아닌) 의미가 있습니까? 그렇다면 TensorFlow를 통해 장난감 예제를 제공 할 수 있습니까? 그렇지 않다면 왜 안됩니까?

Michael Nielsen의 Neural Networks 및 Deep Learning 에서 교차 엔트로피에 대해 읽었 으며 회귀 및 분류에 자연스럽게 사용할 수있는 것처럼 보이지만 이후 TensorFlow에서 어떻게 효율적으로 적용하는지 이해할 수 없습니다. 손실 함수는 logit (실제로 이해가되지 않음)을 취하며 여기 분류에 나열됩니다


2
나는 quora에서이 질문에 대한 답변으로 받아 들여지는 것과 다른 진술을 발견 했습니다
Siddharth Shakya

전체 응답을 읽으면, 그가 엔트로피의 "연속 버전"을 제공한다는 것을 알 수 있지만 그것은 단지 제곱 평균 오차 (MSE) 일뿐입니다.
JacKeown

답변:


11

아니요, tf.nn.sigmoid_cross_entropy_with_logits회귀 작업 과 같은 TensorFlow 함수를 사용하는 것은 이치에 맞지 않습니다 . TensorFlow에서 "교차 엔트로피"는 "범주 간 엔트로피"의 줄임말 (또는 전문 용어)입니다. 범주 형 교차 엔트로피는 확률에 대한 연산입니다. 회귀 문제는 분류가 아닌 지속적인 결과를 예측하려고합니다.

용어 "교차 엔트로피"는 여러 가지 엔트로피 손실 함수가 있기 때문에 약간 오도됩니다. 그러나 머신 러닝에서이 특정 손실을 "교차 엔트로피"손실이라고합니다.

우리가 링크하는 TensorFlow 함수를 넘어 서면 물론 가능한 많은 교차 엔트로피 함수가 있습니다. 교차 엔트로피 의 일반적인 개념 이 두 확률 분포의 비교에 관한 것이기 때문 입니다. 비교할 두 확률 분포에 따라 일반적인 범주 형 엔트로피 손실과 다른 손실에 도달 할 수 있습니다. 예를 들어, 평균은 변하지 만 고정 된 대각선 공분산을 갖는 가우스 목표의 교차 엔트로피는 평균 제곱 오차로 줄어 듭니다. 교차 엔트로피의 일반적인 개념은 다음 질문에 자세히 설명되어 있습니다.


6
그러나 출력값이 [0,1] 범위의 실제 값인 회귀 작업에서 손실 함수로 이진 교차 엔트로피를 사용하는 것은 상당히 합리적이고 유효한 일이라고 언급해야합니다.
오늘

[0,1]

6

@Sycorax의 답변이 정확합니다. 그러나 출력 값이 [0,1] 범위에있는 회귀 작업에서 (이진) 교차 엔트로피를 사용하는 것이 타당하고 합당한 일이라고 언급 할 가치가 있습니다. 실제로는 이미지 자동 인코더 (예 : 여기이 백서 )에 사용됩니다. 이 답변 에서 왜 이것이 작동하는지에 대한 간단한 수학적 증거를보고 싶을 입니다.


[0,1]

@InfProbSciX " 출력이 [0,1] 범위에있는 회귀를 처리 하는 것은 합리적인 방법 이 아닙니다 ." 어떤 의미에서 "합리적"입니까? 또는 특정 작업에 대한 손실 기능의 합리성을 어떻게 정의합니까? 손실 함수에 대해 진술이 참일 수 있다고 생각합니다. 물론 "합리적"을 정의한 후 모든 종류의 회귀 작업에 사용하기에 적합한 손실 함수가 있습니까?
오늘

Y=fθ(X)+ϵϵYBernoulli(pθ)이진 교차 엔트로피. 법칙이 계수에 대한 법선의 선형 회귀 법인 경우 손실은 L2 페널티 등에 해당합니다. 가능하다면 법 세우고 상실 이끌어 냈습니다.
InfProbSciX

@InfProbSciX 답장을 보내 주셔서 감사합니다. 따라서 회귀 작업 (및 데이터 분포, 오류 등의 가정)에 따라 손실 함수를 사용하는 것이 합리적이지 않을 수 있습니다. 그리고 내가 언급했듯이 이것은 교차 엔트로피를 포함한 모든 손실 함수에 해당됩니다. 물론, 나는 출력 값이 [0,1] 범위에 있다고해서 교차 엔트로피가 최적의 선택 손실 함수임을 보장하지 않으며 내 대답에 다른 것을 전달하려고 시도하지 않았다는 것을 알았습니다.
오늘

5

딥 러닝 프레임 워크는 종종 모델손실을 혼합 하고에 의해 소프트 맥스 비선형 성을 갖는 다항식 모델의 교차 엔트로피를 참조합니다 cross_entropy. 일반적으로 임의의 모델에 대해 교차 엔트로피를 정의 할 수 있습니다 .

fθ(x)ylogfθ(x),
y


2

불행히도, @Sycorax가 현재 받아 들인 대답은 자세하지만 정확하지 않습니다.

실제로 범주 형 교차 엔트로피를 통한 회귀의 주요 예인 Wavenet 이 TensorFlow 에서 구현 되었습니다 .

원칙은 출력 공간을 이산 한 다음 모델이 해당 빈을 예측하는 것입니다. 사운드 모델링 도메인의 예제 는 논문 2.2 단원을 참조하십시오 . 따라서 기술적으로 모델이 분류를 수행하는 동안 해결되는 최종 작업은 회귀입니다.

명백한 단점은 출력 해상도를 잃는다는 것입니다. 그러나 이것은 문제가되지 않을 수도 있습니다 (적어도 Google의 인공 조수 가 매우 인간적인 목소리를 냈다고 생각합니다 ). 가장 가능성이 높은 쓰레기통과 두 이웃 사이의 보간과 같은 일부 후 처리로 놀 수 있습니다.

반면에이 접근법은 일반적인 단일 선형 단위 출력에 비해 모델을 훨씬 강력하게 만듭니다. 즉, 다중 모드 예측을 표현하거나 신뢰도를 평가할 수 있습니다. 후자는 다른 방법, 예를 들어 Variational Autoencoders에서와 같이 명시적인 (log) 분산 출력을 통해 자연스럽게 달성 될 수 있습니다.

어쨌든,이 접근법은보다 차원적인 출력으로 확장 할 수 없습니다. 출력 레이어의 크기가 기하 급수적으로 증가하여 계산 및 모델링 문제가되기 때문입니다.


1
나는 당신이 무슨 말을하는지 알지만, 분류를 사용하여 회귀 문제를 근사하는 것처럼 출력 공간을 "회귀"를 수행하는 것으로 개인적으로 고려하지는 않지만 용어 / 컨벤션의 문제 일뿐입니다.
JacKeown

1
동의했다. 32 비트 부동 소수점 공간은 어쨌든 이산 적입니다 :-)
dedObed

-1

이전에 수락 한 답변에 동의하지 않으므로이 질문을 다시 확인했습니다. 교차 엔트로피 손실은 일반적이지 않지만 회귀 분석에 사용할 수 있습니다.

교차 엔트로피는 두 확률 분포를 비교할 때만 의미가있는 개념이라는 사실에 귀착됩니다. 정규 분포에 대한 평균 및 표준 편차를 예측으로 출력하는 신경망을 고려할 수 있습니다. 그런 다음 나쁜 예측에 대해 더 자신감을 가지고 더 가혹하게 처벌됩니다. 예, 의미가 있지만 어떤 의미에서 분포를 출력하는 경우에만 가능합니다. 내 원래 질문에 대한 의견 에서 @SiddharthShakya의 링크가 이것을 보여줍니다.


1
이 답변은 질문과 다른 방식으로 질문에 답변하는 것 같습니다. 질문에서 링크 된 함수 는 특정 종류 의 교차 엔트로피 손실에 관한 것이며, 질문은 해당 함수를 회귀에 사용할 수 있는지 묻는 것처럼 보이며 해당 함수를 사용하는 방법을 묻는 것처럼 내 대답이 작성됩니다 당신은 연결합니다. 여기서의 대답은 "분류를 넘어서 교차 엔트로피를 일반화 할 수 있는가?"라는 질문에 대한 답으로 보인다. Q를 편집하면 Tensorflow 함수를 사용하는 방법에 중점을 두지 않고 수학 개념을 정의하는 방법에 중점을 둡니다.
Sycorax는

귀하의 이의 제기를 이해하고 있지만 질문은 그대로 남겨두고 자합니다. 질문과 같은 질문을 가진 사람들에게 도움이 될 수있는 원래의 쿼리를 나타 내기 때문입니다. 여하튼, 전체 게시물에는 전체적으로 충분한 정보가 포함되어야합니다.
JacKeown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.