지수의 역함수다. 를 만족하는 로 쓴다. “밑 를 몇 번 곱해야 가 되는가” 를 묻는 것이다.

정의역은 이다. 양수를 아무리 거듭제곱해도 0 이나 음수가 되지 않기 때문이다. 에서 로 발산한다.

밑을 밝히지 않은 는 분야마다 다르다. 머신러닝과 통계에서는 자연로그(), 정보이론에서는 밑 2, 공학 계산에서는 밑 10 을 가리키는 경우가 많다. 밑이 다르면 상수배만 차이 나므로() 최적화 결과는 바뀌지 않는다.

성질

첫 줄이 로그를 쓰는 가장 큰 이유다. 곱셈이 덧셈으로 바뀐다.

왜 자주 등장하나

곱을 합으로 바꾼다. likelihood 는 독립인 관측들의 확률을 모두 곱한 값이다. 관측이 수천 개면 아주 작은 수들의 곱이라 부동소수점에서 0 으로 내려앉는다. 로그를 씌우면 합이 되어 이 문제가 사라지고, 미분도 항별로 나뉘어 쉬워진다. negative log likelihood 를 손실로 쓰는 이유다.

단조 증가한다. 는 증가함수이므로 를 최대화하는 지점과 를 최대화하는 지점이 같다. 바꿔도 답이 변하지 않는다.

큰 폭의 값을 압축한다. 값의 범위가 몇 자릿수에 걸치는 변수(소득, 조회수)에 로그를 씌우면 분포가 덜 치우쳐 선형 모델이 다루기 좋아진다.

0 근처에서의 발산

이 정의되지 않는다는 점이 cross-entropy 계산에서 실제 문제가 된다. 정답 클래스에 모델이 확률 0 을 주면 손실이 무한대가 되고 학습이 깨진다.

예측 확률 를 양 끝에서 잘라내는 것이 표준적인 처방이다.

같은 작은 값이다. 이렇게 하면 손실이 유한한 값으로 묶인다.