오늘 배운 극한(Limit), 연속(Continuity), 미분(Differentiation)은 모델 학습, 최적화, 수렴 판단 등 실전 개발 전반에 영향을 미치는 개념이다.
1. 극한(Limit): 함수의 경향을 파악하는 눈
1-1. 극한의 정의
극한은 변수 \( x \)가 어떤 값 \( a \)에 가까워질 때, 함수 \( f(x) \)가 가까워지는 값을 의미한다.
\[ \lim_{x \to a} f(x) = L \]
1-2. 수렴과 발산
- 수렴 (Convergence): 극한값이 존재하고 유한
- 발산 (Divergence): 극한값이 존재하지 않거나 무한
1-3. AI와의 연결: 손실 함수의 수렴
머신러닝 학습은 손실 함수가 반복 학습을 거치며 점차 0에 수렴하는 과정이다.
\[ \lim_{epoch \to \infty} Loss(epoch) = 0 \]
1-4. 좌극한과 우극한
좌극한과 우극한이 다르면 극한이 존재하지 않는다.
\[ \lim_{x \to a^-} f(x), \quad \lim_{x \to a^+} f(x) \]
Python 예제
from sympy import limit, Symbol
x = Symbol('x')
f = 1 / (x + 1)
lim_val = limit(f, x, -1)
print(lim_val) # 출력: oo (무한대)
2. 함수의 연속(Continuity): 끊김 없이 매끄러운 함수
2-1. 연속의 정의
함수 \( f(x) \)가 \( x = a \)에서 연속이려면 다음을 만족해야 한다.
\[ \lim_{x \to a} f(x) = f(a) \]
2-2. 연속이 중요한 이유
딥러닝에서는 대부분의 함수가 연속이어야 기울기(미분)를 구할 수 있다. 예: ReLU 함수
\[ f(x) = \begin{cases} x & \text{if } x > 0 \\ 0 & \text{if } x \leq 0 \end{cases} \]
Python 예제
import sympy as sp
x = sp.Symbol('x')
relu = sp.Piecewise((x, x > 0), (0, True))
print("ReLU에서 x=0 연속성:", sp.limit(relu, x, 0, dir='-'), sp.limit(relu, x, 0, dir='+'))
3. 최대값과 최소값: 최적화 이론의 기초
3-1. 극값의 조건
극댓값이나 극솟값을 찾으려면 도함수가 0이 되는 지점을 찾고, 2차 도함수로 성질을 판단한다.
\[ f'(x) = 0, \quad f''(x) > 0 \Rightarrow 극솟값, \quad f''(x) < 0 \Rightarrow 극댓값 \]
3-2. AI와의 연결
머신러닝에서는 다음과 같이 손실 함수를 최소화하는 파라미터를 찾는다.
\[ \min_{\theta} L(\theta) \]
Python 예제
from sympy import diff, solve
x = Symbol('x')
f = x**2 - 4*x + 3
f_prime = diff(f, x)
crit_point = solve(f_prime, x)
print("극솟값 x:", crit_point)
4. 미분(Differentiation): 기울기를 통한 최적화
4-1. 미분의 정의
미분은 함수의 순간 변화율(기울기)을 의미한다.
\[ f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} \]
4-2. 도함수 공식 요약
함수 | 도함수 |
---|---|
\( x^n \) | \( nx^{n-1} \) |
\( \sin x \) | \( \cos x \) |
\( \cos x \) | \( -\sin x \) |
\( e^x \) | \( e^x \) |
\( \ln x \) | \( \frac{1}{x} \) |
4-3. 손실 함수 미분
예를 들어 \( L(w) = (wx - y)^2 \) 의 도함수는:
\[ \frac{dL}{dw} = 2(wx - y)x \]
이 도함수를 바탕으로 경사하강법을 적용한다:
\[ w := w - \eta \cdot \frac{dL}{dw} \]
Python 예제
w, x, y = sp.symbols('w x y')
L = (w*x - y)**2
grad = sp.diff(L, w)
print("기울기:", grad)
5. 연속성과 미분 가능성의 관계
- 미분 가능하다 → 연속이다
- 연속하다고 해서 반드시 미분 가능한 것은 아니다
ReLU 함수는 x = 0에서 연속이지만 미분은 정의되지 않음.
이 경우 프레임워크는 서브그레디언트(sub-gradient)나 근사치를 사용한다.
6. 다항함수 미분 실습
6-1. 기본 공식
\[ \frac{d}{dx}(ax^n + bx^{n-1} + \dots) = anx^{n-1} + b(n-1)x^{n-2} + \dots \]
6-2. 실습 예시
\[ f(x) = 4x^3 - 2x^2 + x - 7 \Rightarrow f'(x) = 12x^2 - 4x + 1 \]
Python 예제
f = 4*x**3 - 2*x**2 + x - 7
f_prime = sp.diff(f, x)
print("도함수:", f_prime)
오늘의 회고
오늘 배운 극한, 연속, 미분은 단순한 수학 지식을 넘어서, AI 모델이 실제로 어떻게 동작하는지 이해하는 핵심 도구라는 걸 다시금 깨달았다.
딥러닝 프레임워크는 자동으로 미분을 수행해주지만, 그 계산의 바탕이 되는 원리를 알고 있어야 손실 함수가 왜 수렴하는지, 어떤 파라미터가 최적값이 되는지, 왜 특정 함수는 학습에 적합한지를 명확히 설명하고 조정할 수 있다.
결국, 수학은 단순한 계산이 아니라AI 모델의 학습 메커니즘을 통제하고 설계할 수 있게 하는 도구라는 점을 느꼈다. 다음에는 이 흐름을 더 확장해, 편미분, 연쇄 법칙, 역전파를 통해 신경망이 어떻게 학습되는지를 수학적으로 정리해보려 한다.
'[kakao x goorm] 생성 AI 응용 서비스 개발자 양성 과정 > 회고록' 카테고리의 다른 글
[kakao x goorm] 벡터와 텐서의 깊은 이해 및 인공지능에서의 중요성 (0) | 2025.04.04 |
---|---|
[kakao x goorm] 미분법과 오차역전파의 기초 (0) | 2025.04.03 |
[kakao x goorm] 생성 AI 개발자를 위한 기초 수학 정리 (0) | 2025.04.01 |
[kakao x goorm] 데이터 모델링의 개념부터 정규화까지 (1) | 2025.03.31 |
[kakao x goorm] 관계형 데이터베이스의 핵심 – 관계, 키, 제약 조건, 조인 (1) | 2025.03.31 |