02.2 지수와 거듭제곱

이 장에서는 지수와 거듭제곱의 수학적 기본 원리를 배우고, 1보다 작은 값을 계속 거듭해서 곱할 때 나타나는 지수적 감쇄가 강화학습에서 과거 데이터의 영향력을 제어하는 데 어떻게 사용되는지 배웁니다.


02.2.1 거듭제곱과 지수란 무엇일까요?

그림 02-2-1 시간이 거듭할수록 보물의 크기가 감쇄 열쇠에 의해 점점 쪼그라드는 모습을 신기하게 관찰하는 도로시와 지니 지수와 거듭제곱 인트로

강화학습에서 먼 미래의 보상을 현재 가치로 깎아주는 할인율이나, 비정상 환경에서 과거 데이터의 반영률을 점차 낮춰주는 지수 감쇄를 이해하려면 먼저 지수의 기초를 다져야 합니다.

도로시가 보물상자의 가치를 쪼그라뜨리는 요술 열쇠를 조작하며 배우는 거듭제곱의 원리를 쉽고 재미있게 알아봅시다!


1. 학습 목표

  • 거듭제곱과 지수의 수학적 정의를 이해한다.
  • 지수법칙(곱셈, 거듭제곱)을 다룰 수 있다.
  • 1보다 작은 밑(0 < a < 1)의 지수가 커질수록 값이 기하급수적으로 감소하는 현상(Exponential Decay)을 그래프와 수치로 이해한다.

2. 핵심 개념


(1) 거듭제곱과 지수 (Powers and Exponents)

같은 수나 문자를 여러 번 곱한 것을 간단히 나타낸 것을 거듭제곱이라고 합니다.

  • 표기법: an
  • 명칭:
    • 밑 (a): 거듭해서 곱하는 수나 문자입니다.
    • 지수 (n): 거듭해서 곱해진 수나 문자의 개수(횟수)입니다.
    • 읽는 방법: a2은 ‘a의 제곱’, a3은 ‘a의 세제곱’, an은 ‘a의 n제곱’이라고 읽습니다.

거듭제곱과 지수법칙 그림 02-2-2 같은 밑을 n번 거듭해서 곱하여 지수로 축약 표시하는 거듭제곱과 지수의 연산


(2) 지수법칙의 기초 (Basic Laws of Exponents)

지수끼리의 곱셈과 거듭제곱은 다음과 같은 아주 단순한 규칙(법칙)을 따릅니다.

  1. 밑이 같은 거듭제곱의 곱셈: am × an = am+n (지수끼리 더합니다)
    • 예시: 23 × 22 = (2 × 2 × 2) × (2 × 2) = 25 = 32
  2. 거듭제곱의 거듭제곱: (am)n = am × n (지수끼리 곱합니다)
    • 예시: (32)3 = 32 × 3 = 36 = 729

지수법칙의 계산 그림 02-2-3 곱할 때 지수를 더하고, 거듭제곱할 때 지수를 곱하는 지수의 계산 법칙


(3) 지수적 감쇄 (Exponential Decay)와 강화학습

밑이 1보다 작은 양수(0 < a < 1)일 때, 지수 n이 커지면 커질수록 그 결과값은 어떻게 변할까요?

  • 계산해보기 (밑이 0.9일 때):
    • 0.91 = 0.9
    • 0.92 = 0.81
    • 0.93 = 0.729
    • 0.910 = 약 0.349
    • 0.9100 = 약 0.000027 (거의 0에 수렴!)

오래된 시간(과거)으로 갈수록 거듭제곱 횟수 n이 커지기 때문에 가중치는 기하급수적으로 작아져 결국 0에 가깝게 소멸하게 됩니다.

지수적 감쇄와 강화학습 그림 02-2-4 과거 단계로 갈수록 보상의 영향력이 지수적으로 소멸하는 강화학습 가중치 감쇄의 예시

💡 강화학습과의 연결고리

  • 비정상 밴디트 문제: 최신 보상 Rn에는 감쇄 상수 α가 곱해지지만, 한 단계 전 보상 Rn-1에는 α(1 - α), 세 단계 전 보상 Rn-3에는 α(1 - α)3과 같이 과거로 갈수록 (1 - α)가 거듭제곱되어 가중치가 지수적으로 소멸(Exponential Decay)합니다. 이 덕분에 에이전트는 오래된 과거의 무의미한 정보는 잊어버리고 최근의 트렌드만을 영리하게 학습할 수 있게 됩니다.

(4) 수학적 지수 vs 파이썬 프로그래밍의 비교

컴퓨터 프로그래밍(파이썬)에서도 거듭제곱 연산자와 지수 함수가 널리 사용됩니다.

1) 거듭제곱 연산자의 표현
  • 수학: 밑 위에 조그만 숫자를 얹어 an 으로 표현합니다.
  • 파이썬: 거듭제곱을 계산할 때 곱셈 기호 두 개(**)를 사용합니다.
    • 예시: 34 은 파이썬에서 3 ** 4 로 작성하며 결과는 81이 됩니다. 단, 실수 지수 연산도 가능하여 9 ** 0.5 는 제곱근 √9 와 같아 결과는 3.0이 됩니다.
2) 반복문을 통한 점진적 지수 감쇄의 구현
  • 수학: 오래된 과거 데이터에 할인율 γγk 형태로 곱해져 감쇄하는 과정을 등비수열의 거듭제곱으로 나타냅니다.
  • 파이썬: 매 루프마다 이전 가치 값에 할인율을 반복해서 곱해줌으로써 지수 함수를 직접 명시하지 않고도 지수적 감쇄를 실시간으로 구현합니다.
    # 매 단계마다 이전 가치를 감쇄(decay)시키는 코드
    discount_factor = 0.9
    value = 100.0
      
    for step in range(5):
        value = value * discount_factor  # 매 루프마다 0.9가 거듭제곱 곱해짐
        print(f"{step}단계 후 가치: {value}")
    

    이처럼 파이썬의 단순한 반복 누적 곱셈 연산이 수학에서의 지수적 감쇄 100 × 0.9t 와 완벽히 동일한 동작을 수행합니다.


3. 시각 자료: 거듭제곱 횟수에 따른 가중치 감쇄 경향

지수적 감쇄 그림 02-2-5 과거의 관측값으로 거슬러 올라갈수록(k가 증가할수록) 가중치가 기하급수적으로 감소하는 지수적 감쇄 현상 그래프


4. 실전 예제

예제 1 (지수 갱신 가중치 구하기)

문제: 비정상 밴디트 알고리즘에서 고정 가중치 파라미터 α = 0.2 라고 설정되어 있습니다. 현재 단계로부터 정확히 3단계 전에 얻은 보상 Rn-3이 최종 행동가치 추정치 Qn에 반영되는 가중치 값을 소수로 구하시오.

풀이: 지수 가중치 공식에 따라 k단계 전 보상의 가중치는 α(1 - α)k 로 나타납니다.

  • 여기에 α = 0.2, k = 3 을 대입합니다: 0.2 * (1 - 0.2)3 = 0.2 * 0.83 = 0.2 * 0.512 = 0.1024 정답: 0.1024

5. 핵심 요약

  1. 거듭제곱은 같은 수나 문자를 거듭하여 여러 번 곱한 것이며, 지수는 곱한 횟수를 뜻한다.
  2. 밑이 1보다 작고 0보다 큰 양수(0 < a < 1)일 때, 지수가 커지면 커질수록 그 값은 급격히 작아져 0에 수렴하는 지수적 감쇄(Exponential Decay) 성질을 가진다.
  3. 이 지수적 감쇄 성질은 강화학습에서 과거 데이터의 영향력을 점차 줄이고 최신의 환경 정보를 우선 반영하는 시간차 가중 알고리즘의 핵심 토대가 된다.
서브목차