Chapter 03
로그 함수: 곱셈을 덧셈으로, 손실을 설계하는 언어
로그는 '밑을 몇 번 곱해야 그 수가 나오는지'를 나타내요. 지수의 역연산이며, 딥러닝의 손실·확률 식에서 지수와 함께 쓰입니다.
챕터별 수학 도식화
챕터를 선택하면 아래 도식이 해당 챕터 내용으로 바뀌어요. 기초 수학 흐름을 한눈에 보세요.
로그는 지수의 반대예요. 는 를 만족해요. 아래는 와 역함수 그래프입니다.
예: , , , (일 때 가 )
보라: , 청록:
로그 함수란 무엇인가
로그(Logarithm)는 '지수의 시간을 거꾸로 돌리는 것'과 같습니다. 이라는 식에서, 결과값 8을 보고 "도대체 2를 몇 번 곱해서 8이 된 거야?"라고 횟수
(3) 를 묻는 질문이 바로 로그()입니다. 여기서 2는 밑(Base), 8은 진수(Argument)라고 합니다.
쉽게 생각해서 '자릿수 세기'와 비슷합니다. 은 이니까 , 은 이니까 입니다. 숫자가 10배() 커져도 로그값은 겨우 1()만큼 늘어납니다. 즉, 로그는 급격히 커지는 수를 아주 완만하게 만드는 필터 역할을 합니다. 기본 성질: (밑을 0번 곱하면 1), (밑을 1번 곱하면 자기 자신)이에요.
로그의 마법은 '곱셈을 덧셈으로 바꾸는 성질'에 있습니다. . 컴퓨터 입장에서 곱셈은 덧셈보다 계산 비용이 비싸고 숫자가 너무 커지거나 작아질 위험이 있는데, 로그를 씌우면 이 복잡한 곱셈이 안전하고 쉬운 덧셈 문제로 바뀝니다.
진수 조건()이 중요합니다. 0이나 음수의 로그는 정의되지 않습니다. 그래서 AI 코드에서 이 되어 에러가 나는 것을 막기 위해 아주 작은 수(, 엡실론)를 더해주는 테크닉을 자주 씁니다. 또한 자연상수 를 밑으로 하는 자연로그()는 미분 계산을 깔끔하게 만들어주어 딥러닝의 표준으로 쓰입니다.
언더플로우(Underflow) 방지가 필수적이기 때문입니다. AI가 확률 을 100번 곱하면 이 되는데, 컴퓨터는 이를 '너무 작아서 표현 불가능한 0'으로 취급해버립니다. 하지만 로그를 씌우면 이 되어, 컴퓨터가 충분히 다룰 수 있는 '의미 있는 숫자'로 살아남습니다.
정보량(Entropy)을 측정하는 자(Ruler)입니다. 확률이 낮을수록(희귀할수록) 로그값의 크기는 커집니다(절댓값 기준). "내일 해가 서쪽에서 뜬다" 같은 희박한 사건은 정보량이 크고, "내일 아침이 온다" 같은 뻔한 사건은 정보량이 0에 가깝습니다. AI는 이 로그 기반의 정보량을 이용해 '얼마나 놀라운 정보를 배웠는가'를 측정합니다.
틀린 것에 대해 가혹하게 처벌합니다. 로그 함수의 그래프(, )를 보면 가 0에 가까워질수록 값은 로 급격히 떨어집니다. AI가 정답 확률을 0.9로 예측하면 손실이 거의 없지만, 0.01로 잘못 예측하면 로그값이 폭주하여 '엄청난 벌점(Loss)'을 부과합니다. 덕분에 AI는 틀린 문제를 확실하게 고치려 노력하게 됩니다.
교차 엔트로피(Cross-Entropy) 오차 함수가 대표적입니다. 분류 문제에서 정답 클래스의 확률에 로그를 취하고 마이너스를 붙인 값()을 최소화합니다. 이는 "정답일 확률을 최대한 1에 가깝게(로그값은 0에 가깝게) 높여라"라는 수학적 명령입니다.
최대 우도 추정(MLE)에서 쓰입니다. "이 데이터가 관찰될 확률을 최대화하라"는 문제는 수많은 확률의 곱을 최대화하는 것입니다. 여기에 로그를 씌우면 합(Sum)을 최대화하는 문제로 바뀌어, 미분하기도 쉽고 계산도 훨씬 안정적으로 변합니다.
- 예시
- 값3 ()
- 예시
- 값2
- 예시
- 값2
| 예시 | 값 |
|---|---|
| 3 () | |
| 2 | |
| 2 |
진수가 밑의 거듭제곱일 때만 정수 로그가 나와요.
로그에서 빈번하게 쓰이는 연산 (인공지능 손실·확률 식에서 자주 씀):
- 연산로그합
- 수식
- 설명곱 → 합
- 연산로그차
- 수식
- 설명몫 → 차
- 연산거듭제곱
- 수식
- 설명지수는 앞으로
| 연산 | 수식 | 설명 |
|---|---|---|
| 로그합 | 곱 → 합 | |
| 로그차 | 몫 → 차 | |
| 거듭제곱 | 지수는 앞으로 |
- 예로그합
- 계산
- 예로그차
- 계산
| 예 | 계산 |
|---|---|
| 로그합 | |
| 로그차 |
아래 문제에서 값 구하기, 진수 구하기, 로그합, 로그차 구하기를 풀어 보세요.