티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Cross-Entropy, Multi-Class Cross Entropy
chrisysl 2018. 6. 27. 14:46Cross-Entropy
- Cross-Entropy : 일어나는 사건의 가능성을 측정한 것.
- 좋은 네트워크는 낮은 엔트로피를 갖음.
- 이말은 곧 발생한 사건과 알려진(known) 확률 사이에 상관관계가 있다는 의미이다.
- Cross-Entropy는 error function을 계산할때 사용되며 이를 통해 각 네트워크(모델)를 비교하고
- 어떤것이 더 나은지 알 수 있다. 그러므로 더 나은 네트워크(모델)에 가까워 질 수 있다.
- Error function은 해당 네트워크(모델)가 얼마나 잘 작동하는지 를
- 네트워크를 비교하고, 더 나은 네트워크에 가깝게 접근하기위해 수학적으로 계산을 한 것이다.
- 이때 이 Error function은 기술적으로 cross-entropy를 사용하여 얻어낼 수 있음.
- 로그함수의 특징은 곱셈을 덧셈으로 분리할 수 있다는 점에 있다.
- 그렇게 때문에 이전에 여러 확률들을 곱하는 연산 대신, 로그를 취해 덧셈으로 연산 할 수 있다.
- 근데 로그함수의 특징이지만 x가 1보다 작은 범위내에선 음의 값을 갖는다.
- 따라서 확률은 1보다 클 수 없기때문에 우리가 취하게 될 로그의 값은 모두 음수로 나오게되므로
- 우리는 계산 후 부호를 바꿔주기만 하면 우리가 최초에 구하려 한 값이 나오게 된다.
- 즉, 확률의 음의 로그값을 모두 합하는 개념을 Cross-entropy라고 한다.(Sums up negatives of logarithms of the probabilities)
- 매우 중요한 개념임.
- 또한 결과적으로 Bad-model의 경우 더 높은 Cross-entropy 값을,
- Good-model의 경우 더 낮은 값을 갖는다는점 명심해야한다.
- Bad-model : 더 높은 cross-entropy 값
- Good-model : 더 낮은 cross-entropy 값.
- 이제 각 점들에 해당하는 로그값을 부여해보면 마찬가지로 잘못 분류된 모델에 대해서는 각 점들이 큰 값을 가지고
- 옳게 분류된 모델에 대해서는 더 작은 값을 갖는다는것을 확인 할 수 있다.
- 그러므로 이제 Cross-entropy를 거쳐 더 작은 값을 얻어낼 수록 올바르게 분류하는 모델이라고 할 수 있게되고,
- 따라서 이번엔 Minimizing 하는 방법에 대해 고민해 볼 차례이다.
- 만약 몇가지의 사건과 몇가지의 확률이 있을 때, 그 사건들이 그 확률에 따라 발생할 가능성은??
- 그 가능성이 매우 높다면 우리는 small cross-entropy를 갖는다고 얘기하고
- 그 가능성이 매우 낮다면 large cross-entropy를 갖는다라고 얘기한다.
- 이것에 대해 더 알아보자면
- 초록문, 빨강문, 파랑문 뒤에 선물이 있을 확률이 각각 0.8, 0.7, 0.1이라 해보자.
- 그럼 각 문마다 선물을 받을 확률과 받지 않을 확률을 뽑아낼 수 있게되고, 이를 도표로 정리하면 위와같다.
- 이 중 초록, 빨강문에서는 선물이 있을 확률이, 파랑문에서는 선물이 없을 확률이 더 높다.
- 그러므로 전체 arrangement의 확률은 0.8, 0.7 그리고 0.9를 product한 값이 되고 이는 0.504가 된다.
- 위는 모든 경우의 수를 확률을 표시하여 나열한 표 이다.
- 또한 해당 사건이 일어날 확률(Probability)를 각각 계산했고,
- Cross-entropy를 계산하였다.(로그값의 합의 역수)
- 다시한번 주목해야할 점은, High Probability → Low Cross-entropy , Low Probability → High Cross-entropy 라는 점이다.
- 그렇다면 Cross-entropy의 공식은???
- 위와같이 얻어낼 수 있다.
- 역시나 Cross-entropy의 결과는 해당 확률을 가진 사건의 발생 가능성이 높을수록 낮은값을
- 해당 확률을 가진 사건의 발생 가능성이 낮을수록 높은값을 얻어낸다.
Multi-Class Cross Entropy
- 만약 위에 나열한 경우보다 더 많은 클래스들이 존재한다면??????
- 각각의 문 뒤에 선물이 있고 없을 확률이 아닌, 문 뒤에 오리, 비버, 왈루스 세종류의 동물이 랜덤하게 있다고 가정해보자.
- 각각의 열을 합치면 1이 나와야 하는데 그 이유는, 각 문 뒤에는 적어도 한명의 동물이 존재하기 때문.
- 행을 합친 결과는 1어야만 하는것은 아니다. 왜냐면 모든 문 뒤에 오리가 있어도 괜찮기 때문.
- 따라서 1번, 2번, 3번 문 뒤에 각각 오리, 왈루스, 왈루스 가 있을 경우의 확률과 Cross-entropy를 구해본 결과는 위와같다.
- 이를 공식화 하기위해 변수를 좀 추가해보도록 하자.
- 변수를 추가하여 Y라는 변수를 뒀고 이는 1 또는 0을 나타낸다. 즉, 존재하면 1을 존재하지 않으면 0을 의미한다.
- 그렇게되면 공식은 위와같이 되고, 이 경우 m은 클래스의 개수를 나타낸다.
- 이 공식이 실제로 정확하게 연산되는 이유는 Y변수가 문 뒤에 특정 동물이 존재할 경우만을 체크하여
- 합하기 때문이다.