지수와 로그: 성장과 규모를 읽는 언어

거듭제곱과 지수 법칙, 지수적 성장과 복리, 로그의 뜻과 성질, 로그 스케일, 그리고 이진 탐색과 빅오, 정보량, 손실 함수까지 로그가 컴퓨터와 AI에서 쓰이는 곳을 익혀요.

초급강의 3 / 6약 6분

종이를 반으로 접고 또 접어요. 42번 접으면 두께가 얼마나 될까요? 약 0.1mm 종이라면 달까지 닿아요. 이처럼 계속 몇 배씩 커지는 변화를 다루는 도구가 지수이고, 그 반대로 "몇 번 커져야 이만큼이 되나"를 묻는 도구가 로그예요. 알고리즘의 속도, 데이터의 크기, 정보의 양, AI의 학습까지 규모를 다루는 거의 모든 곳에서 이 둘을 만나요.

거듭제곱과 지수 법칙

같은 수를 여러 번 곱하는 것을 거듭제곱이라고 해요.

25=2×2×2×2×2=322^5 = 2 \times 2 \times 2 \times 2 \times 2 = 32

2를 밑, 5를 지수라고 불러요. 지수 법칙은 몇 가지만 기억하면 돼요.

am×an=am+n,aman=am−n,(am)n=amna^m \times a^n = a^{m+n}, \qquad \frac{a^m}{a^n} = a^{m-n}, \qquad (a^m)^n = a^{mn}

이 법칙을 지키려면 0과 음수 지수의 뜻이 자연스럽게 정해져요.

a0=1,a−n=1an,a1/2=aa^0 = 1, \qquad a^{-n} = \frac{1}{a^n}, \qquad a^{1/2} = \sqrt{a}

예를 들어 23/23=23−3=202^3 / 2^3 = 2^{3-3} = 2^0인데, 같은 수를 나눴으니 1이어야 하죠. 그래서 20=12^0 = 1이에요.

과학적 표기법

아주 크거나 작은 수는 10의 거듭제곱으로 써요.

  • 빛의 속도: 3×1083 \times 10^8 m/s
  • 1나노초: 10−910^{-9}초
  • 파이썬에서는 3e8, 1e-9처럼 써요.

지수적 성장

더하기로 늘어나는 것과 곱하기로 늘어나는 것

매일 1만 원씩 모으는 것(선형)과 매일 1%씩 불리는 것(지수)은 처음엔 비슷해 보여도 결국 완전히 달라요.

일수매일 +1만 원 (시작 100만 원)매일 ×1.01 (시작 100만 원)
10110만 원약 110만 원
100200만 원약 270만 원
365465만 원약 3,778만 원

복리 공식

원금 PP를 연 이율 rr로 tt년 굴리면

A=P(1+r)tA = P(1 + r)^t

1,000만 원을 연 5%로 20년 굴리면 1000×1.0520≈26531000 \times 1.05^{20} \approx 2653만 원이에요.

P, r, t = 10_000_000, 0.05, 20
print(f"{P * (1 + r) ** t:,.0f}원")   # 26,532,977원

72의 법칙

돈이 두 배가 되는 데 걸리는 해는 대략 72÷이율(퍼센트)72 \div \text{이율(퍼센트)}이에요. 연 6%면 약 12년이에요. 왜 이렇게 되는지는 아래 로그 부분에서 밝혀져요.

로그: 몇 번 곱해야 하나

2x=82^x = 8이면 xx는? 3이에요. 이 "몇 제곱인가"를 묻는 연산이 로그예요.

23=8⟺log⁡28=32^3 = 8 \quad \Longleftrightarrow \quad \log_2 8 = 3

log⁡bx\log_b x는 "b를 몇 번 곱해야 x가 되나"로 읽어요. 지수와 로그는 서로 되돌리는 관계, 즉 서로의 역함수예요.

자주 쓰는 로그

표기밑주로 쓰는 곳
log⁡2x\log_2 x2컴퓨터 과학, 정보량(비트)
log⁡10x\log_{10} x10자릿수, 데시벨, 지진 규모
ln⁡x\ln xe≈2.718e \approx 2.718수학, 통계, 머신러닝

ee는 자연 상수라고 불리는 특별한 수예요. 연속 복리를 계산하면 나오는 수로, 미분했을 때 자기 자신이 되는 함수 exe^x의 밑이라서 미적분과 머신러닝에서 가장 많이 쓰여요. 미적분 트랙에서 다시 만나요.

로그의 성질

지수 법칙을 뒤집으면 로그의 성질이 나와요.

log⁡(xy)=log⁡x+log⁡y,log⁡xy=log⁡x−log⁡y,log⁡xn=nlog⁡x\log(xy) = \log x + \log y, \qquad \log\frac{x}{y} = \log x - \log y, \qquad \log x^n = n \log x

곱셈을 덧셈으로 바꿔 준다는 것이 로그의 가장 강력한 성질이에요. 아주 작은 확률 수천 개를 곱하면 컴퓨터가 0으로 처리해 버리는데(언더플로), 로그를 씌우면 덧셈이 되어 안전하게 계산할 수 있어요. 머신러닝에서 확률 대신 로그 확률을 쓰는 이유예요.

밑을 바꾸는 공식도 있어요.

log⁡bx=ln⁡xln⁡b\log_b x = \frac{\ln x}{\ln b}
import math
print(math.log2(1024))          # 10.0
print(math.log10(1_000_000))    # 6.0
print(math.log(math.e))         # 1.0  (자연로그)
print(math.log(8, 2))           # 3.0  (밑 지정)

72의 법칙이 나오는 이유

두 배가 되는 시간 tt는 (1+r)t=2(1 + r)^t = 2를 풀면 돼요. 양변에 자연로그를 씌우면

t=ln⁡2ln⁡(1+r)≈0.693rt = \frac{\ln 2}{\ln(1 + r)} \approx \frac{0.693}{r}

rr이 작을 때 ln⁡(1+r)≈r\ln(1 + r) \approx r이라서요. 0.693을 퍼센트로 쓰면 69.3인데, 계산하기 편하고 이율이 5~10% 근처일 때 더 잘 맞는 72를 쓰는 거예요.

로그 스케일: 큰 차이를 한눈에

1, 10, 100, 1000, 10000을 보통 눈금에 그리면 앞의 값들은 바닥에 붙어 안 보여요. 로그 눈금은 배수가 같으면 간격이 같게 그려요. 10배마다 한 칸씩요.

  • 주식 장기 차트: 1만 원에서 2만 원, 10만 원에서 20만 원은 둘 다 같은 "2배" 상승이라 같은 높이로 보여요.
  • 지진 규모: 규모가 1 오르면 에너지는 약 32배예요.
  • 소리 크기(데시벨): 10dB이 오르면 세기는 10배예요.

데이터 분석에서 소득, 조회수, 가격처럼 범위가 넓은 값은 로그를 씌워서 보는 경우가 많아요. 머신러닝 전처리에서도 자주 쓰는 기술이에요.

컴퓨터 과학 속의 로그

이진 탐색: 반씩 줄이면 로그

정렬된 100만 개 중에서 값을 찾을 때 반씩 범위를 줄이면 몇 번이면 될까요? 범위가 1이 될 때까지 2로 나누는 횟수이니

log⁡21,000,000≈20\log_2 1{,}000{,}000 \approx 20

20번이에요. 하나씩 확인하면 최악 100만 번인데요. 숫자 맞히기 게임에서 7번이면 충분했던 이유도 log⁡2100≈6.6\log_2 100 \approx 6.6이기 때문이에요.

빅오 표기의 로그

알고리즘 속도를 나타내는 빅오 표기에서 로그는 "거의 공짜"에 가까운 좋은 속도예요.

표기데이터 100만 개일 때 대략 연산 수예
O(1)O(1)1딕셔너리 조회
O(log⁡n)O(\log n)20이진 탐색
O(n)O(n)1,000,000리스트 전체 훑기
O(nlog⁡n)O(n \log n)20,000,000좋은 정렬 알고리즘
O(n2)O(n^2)1,000,000,000,000이중 반복으로 모든 쌍 비교

알고리즘 트랙에서 자세히 다루지만, 지금은 "nn이 커질수록 로그는 아주 천천히 자란다"는 감각만 가져가세요.

필요한 비트 수

nn가지를 구별하려면 몇 비트가 필요할까요? ⌈log⁡2n⌉\lceil \log_2 n \rceil비트예요(괄호 모양은 올림). 학생 300명에게 번호를 주려면 log⁡2300≈8.2\log_2 300 \approx 8.2이니 9비트가 필요해요.

AI 속의 로그

정보량

자주 일어나는 일은 놀랍지 않고, 드문 일은 놀라워요. 정보 이론은 이 "놀라움"을 로그로 재요.

I(x)=−log⁡2p(x)I(x) = -\log_2 p(x)

확률 1/2인 일(동전 앞면)은 1비트, 확률 1/1024인 일은 10비트의 정보를 가져요. 확률과 통계 트랙의 정보 이론 강의에서 엔트로피로 이어져요.

손실 함수의 로그

분류 모델을 학습시킬 때 가장 많이 쓰는 손실 함수인 교차 엔트로피는 이렇게 생겼어요.

L=−log⁡p(정답)L = -\log p(\text{정답})

모델이 정답에 높은 확률(예: 0.9)을 주면 손실은 작고(−ln⁡0.9≈0.105-\ln 0.9 \approx 0.105), 정답에 낮은 확률(예: 0.01)을 주면 손실이 커요(−ln⁡0.01≈4.6-\ln 0.01 \approx 4.6). 틀린 것을 자신 있게 틀릴수록 벌을 크게 주는 구조예요. 머신러닝을 공부하다 이 식을 다시 만나면, 오늘 배운 로그의 성질이 그대로 보일 거예요.

연습 문제

  1. 210×2−32^{10} \times 2^{-3}을 2의 거듭제곱으로 쓰세요.
  2. log⁡381\log_3 81은?
  3. log⁡26=log⁡22+log⁡23\log_2 6 = \log_2 2 + \log_2 3이 성립하는 이유는?
  4. 연 8% 수익률이면 원금이 두 배가 되는 데 대략 몇 년?
  5. 정렬된 10억 개 데이터에서 이진 탐색으로 값을 찾으면 최대 몇 번 비교할까요?
  6. 확률 1/8인 사건의 정보량은 몇 비트?

정답

  1. 272^{7} (= 128)
    1. 34=813^4 = 81이에요.
  2. 6=2×36 = 2 \times 3이고, 로그는 곱셈을 덧셈으로 바꾸기 때문이에요.
  3. 72÷8=972 \div 8 = 9년쯤이에요.
  4. log⁡2109≈29.9\log_2 10^9 \approx 29.9이니 약 30번이에요.
  5. −log⁡2(1/8)=3-\log_2(1/8) = 3비트

다음 강의

다음 강의에서는 경우의 수와 조합론을 배워요. 비밀번호가 얼마나 안전한지, 로또에 당첨될 확률은 얼마인지, 알고리즘이 확인해야 할 경우가 몇 가지인지 계산하는 도구예요. 확률과 통계 트랙의 바탕이 되기도 해요.