기계 학습에서 왜 모든 손실 함수에 로그 함수가 등장하는지, 그리고 이 특이한 함수가 실제로 어디서 유래했는지.
소개
머신러닝에서는 끊임없이 교차 엔트로피 손실(Cross-Entropy Loss) 을 최소화하고 로그 우도(Log-Likelihood) 를 최대화합니다. 그런데 왜 로그(logarithm) 가 이렇게 자주 등장할까요?
이 함수가 실제로 무엇을 하는지 공식을 암기하지 않고 이해해 보기 위해, 잠시 동안 그래디언트는 잊어버리고 은행 계좌를 예로 들어 생각해 보겠습니다.
만약 이미 머신러닝에서 로그가 갖는 직관적 의미를 잘 이해하고 있다면, 다음 글인 엔트로피(Entropy) 에 대한 이야기로 바로 넘어가도 좋습니다. 엔트로피는 머신러닝에서 매우 중요한 지표 중 하나입니다.
다음 글에서는 클로드 섀넌(Claude Shannon) 의 발자취를 따라가며, 정보 엔트로피(Information Entropy)가 어떻게 탄생하는지 가장 기초부터 차근차근 살펴보겠습니다.
자연상수 e는 어디에서 오는가?
가장 흥미로운 사고 실험을 하나 해보겠습니다. 연이율 100%의 계좌에 1달러를 예금했다고 가정해 보죠. 질문은 다음과 같습니다.
이자를 더 자주 재투자할수록 1년 뒤에는 얼마가 될까?
연 1회 복리: (1 + 1)¹ = 2
연 2회 복리(6개월마다 50%): (1 + 1/2)² = 2.25
연 4회 복리(분기마다 25%): (1 + 1/4)⁴ ≈ 2.441
연 12회 복리(매월): (1 + 1/12)¹² ≈ 2.613
연 365회 복리(매일): (1 + 1/365)³⁶⁵ ≈ 2.7146
연 8,760회 복리(매시간): ≈ 2.71813
복리 계산 주기를 무한히 잘게 나누면: e ≈ 2.71828…
바로 이것이 자연상수 (e) 입니다.
이는 연속적인 성장(continuous growth) 을 설명하는 함수인 지수 함수(exponential function) 의 기반이 되는 수입니다.
이자를 계산하는 주기를 아무리 잘게 쪼개더라도 계좌 잔액은 결코 2.71828… 을 넘어서지 않습니다. 그 값으로 수렴하게 되는데, 바로 그 극한값이 자연상수 (e) 입니다.
즉, (e)는 연속 복리(compound interest)를 생각하다가 자연스럽게 등장한 수이며, 이후 수학·물리학·통계학·머신러닝에서 끊임없이 나타나는 가장 중요한 상수 중 하나가 되었습니다.
eⁿ은 무엇을 의미할까?
앞에서 살펴본 것처럼, (e)는 1년 동안 연이율 100%로 자금을 연속적으로 재투자했을 때 얻어지는 값입니다.
처음 1달러를 예금하고 1년 동안 계속 성장시키면 최종적으로 약 2.72달러가 됩니다. ≈ $2.72.
그렇다면 1년이 아니라 같은 조건으로 계속 성장시킨다면 어떻게 될까요?
1년 후: e¹ ≈ $2.72
2년 후: e² ≈ $7.39
3년 후: e³ ≈ $20.09
5년 후: e⁵ ≈ $148
10년 후: e¹⁰ ≈ $22,026
즉, ( eⁿ )은 연이율 100%로 연속 복리 성장하는 환경에서 1달러가 (n)년 후 얼마가 되는지를 나타냅니다.
직관적으로 생각해 봅시다.
첫 번째 해에는 계좌 잔액이 (e)배 증가합니다.
두 번째 해에도 다시 (e)배 증가하지만, 이번에는 1달러가 아니라 이미 2.72달러가 된 금액을 기준으로 성장합니다.
세 번째 해에도 마찬가지입니다. 다시 (e)배 증가하지만 이번에는 7.39달러를 기준으로 성장합니다.
이 과정이 계속 반복됩니다.
매년 계좌 잔액은 이전 금액의 (e)배가 됩니다.
그래서 eⁿ = e · e · e · …((n)번 곱함)이 되는 것입니다.
이것이 바로 지수 함수(exponential function) 의 본질입니다.
어떤 양이 일정한 값을 계속 더하는 것이 아니라, 현재 자신의 크기에 비례하여 스스로를 계속 곱해 나가는 성장 방식입니다. 이러한 특성 때문에 (e^x)는 복리 이자, 인구 증가, 방사성 붕괴, 확률 모형, 그리고 머신러닝의 로그우도(Log-Likelihood)와 교차 엔트로피(Cross-Entropy)까지 다양한 분야에서 핵심적인 역할을 하게 됩니다.
로그(Logarithm) — 반대 방향의 질문
앞에서는 다음과 같은 질문을 했습니다.
"n년이 지났다면 내 돈은 얼마가 될까?"
그 답은 eⁿ 이었습니다.
이제 질문을 뒤집어 보겠습니다.
"내가 지금 X달러를 가지고 있다면, 몇 년이 지난 것일까?"
그 답은 ln(X) 입니다.
같은 숫자를 거꾸로 읽어보면 다음과 같습니다.
- 2.72달러 → 1년 경과 → (ln(2.72) = 1)
- 7.39달러 → 2년 경과 → (ln(7.39) = 2)
- 20.09달러 → 3년 경과 → (ln(20.09) = 3)
- 148달러 → 5년 경과 → (ln(148) = 5)
따라서 (\ln(X))는 1달러를 연이율 100%의 연속 복리로 성장시켰을 때 X달러에 도달하기까지 몇 년이 필요한지를 알려줍니다.
이 개념을 또 다른 방식으로 생각해 볼 수 있습니다.
ln(X) 는 다음 질문에 대한 답입니다.
"내 계좌는 몇 번의 (e)배 성장을 거쳤는가?"
한 번 e 배 성장했다면 답은 1입니다.
두 번 e·e 만큼 성장했다면 답은 2입니다.
세 번 e·e·e 만큼 성장했다면 답은 3입니다.
즉, 로그는 단순히 '매년 일어나는 (e)배 성장의 마법이 몇 번 발생했는지'를 세는 함수입니다.
그래서 ln(1)=0 입니다.
계좌에 처음 넣은 돈 그대로 남아 있다면 아직 시간이 지나지 않은 것이고, 성장이 시작되지도 않았기 때문입니다.
또한 (X)가 1보다 작으면 (ln(X))는 음수가 됩니다.
직관적으로 생각하면 계좌 잔액이 줄어든 것이므로, 마치 성장이 시간을 거꾸로 되돌려 진행된 것처럼 보입니다.
이 사실은 앞으로 매우 중요하게 사용됩니다. 확률(probability)은 항상 1보다 작기 때문입니다.
따라서 확률 (p)에 로그를 취하면 ln(p) < 0가 됩니다.
즉, 확률의 로그는 항상 음수입니다. 이 특성은 이후에 살펴볼 로그 우도(Log-Likelihood) 와 교차 엔트로피(Cross-Entropy) 를 이해하는 핵심적인 출발점이 됩니다.
확률에서의 로그 — 왜 필요할까요?
머신러닝에서 모델은 종종 독립적인 사건들의 확률을 추정하며, 이때 결합 확률(joint probability)은 여러 확률의 곱으로 나타납니다.
하지만 1보다 작은 수를 수천 개 곱하는 것은 여러 가지 문제를 일으킵니다. 로그는 이러한 문제를 해결해 줍니다. 그 방법을 살펴보기 전에, 먼저 로그가 필요한 세 가지 이유를 정리해 보겠습니다.
이유 1.
컴퓨터에서 수천 개의 확률을 곱하면 언더플로우(underflow)가 발생합니다. 수가 너무 작아져 부동소수점 정밀도의 한계를 벗어나면 결국 0으로 반올림됩니다. 따라서 우리는 곱셈을 덧셈으로 바꿀 필요가 있습니다.
이유 2.
머신러닝에서는 끊임없이 미분을 계산해야 합니다. 합의 미분은 단순히 각 항의 미분을 더하면 됩니다. 하지만 수천 개 항의 곱을 미분하는 것은 라이프니츠 법칙(Leibniz rule)에 따라 엄청난 계산량을 요구하는 매우 복잡한 작업이 됩니다.
이유 3.
앞으로 살펴보게 될 내용에 대한 예고편입니다. 여기서 소개할 로그 우도(Log-Likelihood)의 최대화는 교차 엔트로피(Cross-Entropy)와 KL 발산(KL Divergence)의 최소화와 수학적으로 동일한 관계를 가집니다. 하나는 다른 하나로부터 자연스럽게 따라 나옵니다. 하지만 이 연결고리를 공식을 암기하지 않고 이해하려면, 먼저 엔트로피가 실제로 무엇인지 이해해야 합니다.
그 이야기는 다음 글에서 다루도록 하겠습니다.
이제 본론으로 들어가 보겠습니다. 먼저 확률이 실제로 어떻게 작동하는지 살펴보겠습니다.
확률은 두 가지 방식으로 결합됩니다.
곱셈을 통해 결합되거나,
덧셈을 통해 결합됩니다.
확률이 곱해질 때
독립적인 사건(independent events)은 한 사건의 결과가 다른 사건에 아무런 영향을 주지 않는 경우를 말합니다.
- 두 번의 동전 던지기. 첫 번째 동전이 앞면이 나오는 것과 두 번째 동전이 앞면이 나오는 것은 서로 관련이 없습니다.
- 동전 던지기와 주사위 던지기. 두 결과는 서로 아무런 영향을 주지 않습니다.
이러한 사건들의 핵심적인 특징은 확률이 곱해진다는 것입니다.
- P(앞면이 두 번 연속으로 나올 확률) = 0.5 · 0.5 = 0.25
- P(앞면이 나오고 동시에 6이 나올 확률) = 0.5 · (1/6) ≈ 0.083
- P(앞면이 10번 나올 확률) = 0.5¹⁰ ≈ 0.001
여기서 중요한 단어는 “그리고(and)” 입니다.
누군가가
“이 일 그리고 저 일이 모두 일어날 확률은 얼마인가요?”
라고 묻는다면, 그 확률들은 서로 곱해집니다.
확률이 더해질 때
상호 배타적 사건(mutually exclusive events)은 동시에 일어날 수 없는 사건들을 의미합니다.
- 주사위를 한 번 던질 때, 결과는 1이거나 2이거나 3일 수는 있지만, "1과 2가 동시에 나오는 것"은 불가능합니다.: P(1 or 2) = 1/6 + 1/6 = 2/6.
- 카드 한 장을 뽑을 때, 결과는 에이스이거나 킹일 수 있습니다. P(ace or king) = 4/52 + 4/52 = 8/52.
- 동전을 한 번 던질 때, P(heads or tails) = 0.5 + 0.5 = 1.
여기서 중요한 단어는 “또는(or)” 입니다.
기억하기 쉬운 요령
“AND(그리고)” → 곱하기
두 조건이 모두 동시에 만족되어야 하므로, 각각의 사건이 일어나는 경우보다 가능성이 더 작아집니다. 따라서 확률은 곱해집니다.
“OR(또는)” → 더하기
여러 사건 중 하나만 일어나면 되므로 조건이 더 느슨해지고, 확률은 더 커집니다. 따라서 확률은 더해집니다.
로그는 특히 곱셈이 등장하는 상황, 즉 “AND(그리고)” 의 경우에 나타납니다. 독립적인 사건들이 계속 쌓이면서 확률을 곱해야 할 때 로그가 필요해집니다.
반면 덧셈의 경우에는 로그가 필요하지 않습니다. 이미 계산하기 편리한 형태이기 때문입니다.
로그의 핵심 성질: 왜 하필 로그일까요?
이제 핵심에 도달했습니다.
예를 들어 다음과 같은 확률이 있다고 해보겠습니다. 0.5 · (1/6) = 1/12
확률들은 서로 곱해졌습니다.
문제는 무엇일까요?
앞서 살펴본 것처럼 곱셈은 여러 실용적인 이유 때문에 다루기 불편합니다.
만약 사건들이 결합될 때 확률이 곱해지는 대신 더해진다면 훨씬 편하지 않을까요?
먼저 우리가 원하는 조건을 정리해 보겠습니다.
확률은 다음과 같이 곱해집니다. p(joint) = p₁ · p₂.
하지만 우리는 이에 대응하는 어떤 "가중치(weight)"가 있어서 다음처럼 더해지기를 원합니다. : weight(joint) = weight(p₁) + weight(p₂).
즉, 다음 조건을 만족하는 함수 (f)가 필요합니다.
f(p₁ · p₂) = f(p₁) + f(p₂)
다시 말해, 곱을 합으로 바꾸어 주는 함수가 필요합니다.
이것은 매우 특별한 조건입니다.
대부분의 함수는 이 조건을 만족하지 못합니다.
제곱 함수는 어떨까요? (p₁·p₂)² ≠ p₁² + p₂².
제곱근은 어떨까요?
아닙니다.
나눗셈은 어떨까요?
역시 아닙니다.
그렇다면 이런 함수가 정말 존재할까요?
존재합니다.
그리고 밑(base)의 선택을 제외하면 사실상 유일한 함수가 바로 로그(logarithm) 입니다.
로그의 대표적인 성질은 다음과 같습니다.
log(a · b) = log(a) + log(b)
이 성질은 어디에서 오는 걸까요?
다음을 떠올려 보세요. e² · e³ = e⁵
지수함수끼리 곱하면 지수는 더해집니다.
로그는 바로 그 지수를 꺼내어 보여주는 함수입니다.
즉, 두 수를 곱할 때 그 안에 숨어 있는 "지수"들은 더해지고, 로그는 그 사실을 눈에 보이게 만들어 줍니다.
실제로 앞의 예제를 확인해 보겠습니다.
이제부터는 자연로그 (\ln)을 사용하겠습니다. (로그의 밑을 왜 (e)로 선택하는지는 잠시 후 살펴보겠습니다.)
- ln(0.5) ≈ −0.69
- ln(1/6) ≈ −1.79
- ln(1/12) ≈ −2.48
그리고 실제로 −0.69 + (−1.79) = −2.48.가 됩니다. ✓
우리는 이렇게 해서 더할 수 있는 새로운 양(quantity) 을 찾았습니다.
앞면이 나올 확률에 대해서는 (-0.69),
6이 나올 확률에 대해서는 (-1.79),
그리고 두 사건이 모두 일어날 확률에 대해서는 (-2.48)이 됩니다.
다만 한 가지 불편한 점이 있습니다.
숫자들이 모두 음수라는 것입니다.
이는 확률이 항상 1보다 작기 때문입니다. 그리고 1보다 작은 수의 로그는 항상 음수가 됩니다.
해결 방법은 매우 간단합니다.
로그 앞에 마이너스 기호를 붙이면 됩니다. −log(p)
그러면 모든 값이 양수가 됩니다.
로그의 밑 선택은 단위 선택
마지막으로 한 가지 중요한 점이 있습니다.
로그에는 밑(base) 이 있습니다. 예를 들어 log₂, log₁₀, ln 등이 있습니다.
로그의 밑을 선택하는 것은 의미를 바꾸는 것이 아니라, 측정 단위를 선택하는 것에 가깝습니다.
- log₂ → 비트(bits) → 컴퓨터 분야에서 유용합니다. (이진수 체계)
- ln (밑이 e인 자연로그) → 내트(nats) → 수학과 물리학에서 유용합니다. (미분이 더 깔끔해집니다.)
- log₁₀ ) → 디트(dits) 또는 하틀리(hartleys) → 계산자(slide rule)를 사용하던 시절에 널리 사용되었습니다.
이들은 모두 같은 대상을 측정합니다. 단지 사용하는 자(ruler) 가 다를 뿐입니다.
예를 들어,
- 100cm
- 1m
- 0.001km
는 모두 같은 길이를 나타냅니다.
내용은 동일하지만 표현 방식만 다른 것입니다.
로그의 밑도 마찬가지입니다. log₂, log₁₀, ln 은 모두 같은 정보를 측정하며, 단지 서로 다른 단위를 사용할 뿐입니다.
이제 우리가 할 수 있는 것
우리는 하나의 강력한 도구를 손에 넣었습니다.
로그는 곱셈을 덧셈으로 바꾸어 주는 유일한 함수입니다. 그래서 복리 이자, 독립적인 사건, 확률처럼 어떤 값이 곱셈을 통해 누적되는 모든 곳에서 등장합니다.
이 도구는 겉보기에는 추상적으로 보일 수 있지만, 실제로는 매우 구체적인 문제들을 해결해 줍니다.
다음 글에서는 1948년 클로드 섀넌(Claude Shannon)이 바로 이 로그의 성질을 이용해 어떻게 현대 정보 이론의 기초를 세웠는지 살펴보겠습니다.
ZIP 압축부터 신경망 학습에 이르기까지, 현대 정보 이론의 핵심 개념들이 모두 이 아이디어에서 출발합니다.
<출처: https://medium.com/@mike_schaeffer/the-number-e-and-the-logarithm-explained-intuitively-e5c01fa266fc>
'통계의 기초' 카테고리의 다른 글
| 중심극한정리가 데이터 과학을 가능하게 하는 방법 (0) | 2026.05.31 |
|---|---|
| 왜 로그가 주식 수익률에 사용되는가? (0) | 2026.05.31 |
| Z-검정과 T-검정의 모든 것 (0) | 2026.05.29 |
| 두 데이터 계열: 기술통계와 추론통계가 세상을 움직이는 방식 (0) | 2026.05.26 |
| 통계에서 정규성을 검증하는 세 가지 방법 (0) | 2026.05.26 |
댓글