"Differential을 구한다(Differentiation, 미분하다)" 는
derivative(도함수)를 구하는 것을 가르킴.
Derivative(도함수)는 average rate of change (평균변화율)의 limit인 instantaneous rate of change (순간변화율←linear approximation의 slope)임.
$$
\displaystyle \dfrac{dy}{dx}=y^\prime=\lim_{\Delta x \to 0}\dfrac{f(x+\Delta x)-f(x)}{\Delta x}=\lim_{\Delta x \to 0}\dfrac{\Delta f(x)}{\Delta x}
$$
좀 더 길게 애기한다면, function의 모든 점에서의 순간변화율을 구하는 function이 바로 derivative (or derived function)임.
참고로 differential coefficient(미분계수)도 instantaneous rate of change(순간변화율)을 가르킴.
위의 수식의 정의는 Ordinary Derivative에 대한 것으로 scalar function에 대한 1st order derivative임.
Order를 증가시킬 경우 다음과 같이 표현됨.
- Second order derivative (2계 도함수) : $\dfrac{d^2 y}{dx^2}=y^{\prime\prime}$
- Third order derivative (3계 도함수) : $\dfrac{d^3y}{dx^3}=y^{\prime\prime\prime}$
2023.04.17 - [.../Math] - [Math] Differential Equation 용어.
Linear approximation
Tylor's expansion을 사용하면, $a$ 주변의 $x$에서의 $f(x)$에 대해 다음과 같은 linar approximation (붉은 색)이 가능함.
$$f(x)=f(a)+\dfrac{df(a)}{dx}\Delta x+R \approx f(a)+\color{red}{\dfrac{df(a)}{dx}\Delta x}\\\\\Delta f= f(x)-f(a) = \color{red}{\dfrac{df(a)}{dx}\Delta x}+\color{black}{R}$$
- $\Delta x = x-a$ 에 대해 $\Delta f$가 linear하여 linear approximation이라고 불림.
- $\dfrac{df(a)}{dx}\Delta x$ : linear approxiamtion
Derivative는 input의 변화에 output의 변화가 얼마나 민감하게 일어나는지를 알려주는 순간변화율 (or 미분계수) 임.
- Differentiation을 통해 function을 아주 잘게 쪼개어
- 특정 위치 $a$의 작은 범위($\Delta x$로 지정된 범위)정도 떨어진 곳에서의
- linear approximation을 구할 수 있음.
미분가능하냐라는 것은 사실 여기서 보인 Linear approximation $\dfrac{df(a)}{dx}\Delta x$이 존재하느냐 (혹은 구해지느냐)라는 질문과 같음.
2023.06.23 - [.../Math] - [Math] Differentiability of MultivariableFunctions
추가적으로, 이를 이용하여 복잡한 함수를 간단하게 approximation을 할 수 있으며 이를 정리한 것이 Taylor Expansion임.
2023.02.27 - [.../Math] - [Math] Taylor Expansion and Taylor Theorem (테일러 전개)
Finite Difference (유한차분) 종류
digital data에서 differentiation은 보통 step size $h$를 1로 한 finite difference로 구해지며 다음과 같은 3가지 종류가 있음.
Forward difference
$$\dfrac{df(x)}{dx} \approx \Delta_h f = f(x+h) - f(x)$$
- 기호로 보통 $\Delta$를 사용한다.
Backward difference
$$\dfrac{df(x)}{dx} \approx \nabla_h f = f(x) - f(x-h)$$
- 기호로 $\Delta$를 뒤집은 $\nabla$를 사용한다.
- gradient와 헷갈리지 말 것. (사실, $\nabla$는 보통 gradient로 더 많이 사용된다.)
- 단순히 backward라는 의미에서 forward difference의 기호를 뒤집은 것임
Central difference
$$\dfrac{df(x)}{dx} \approx \delta_h f = f(x+\frac{h}{2})-f(x-\frac{h}{2})=\Delta_{\frac{h}{2}}f - \nabla_{\frac{h}{2}}f$$
- 가장 정확한 근사치를 제공한다.
- 구현에서 $\frac{1}{2}(f(x+1)-f(x-1))$ 를 사용되는 경우도 많다.
ML에서의 활용
model의 성능(P)을 나타내는 지표는 다음과 같음.
- Performance function (최대화의 대상),
- Cost function(최소화의 대상. ~ loss function, error function)
P (Performance)가
- model의 parameter(weight and bias)들의 변화량에 따라 어떻게 변하는지를
- differentiation(정확히는 partial differentiation)을 통해 구할 수 있음.
즉, 주어진 (=고정된) training dataset에서 loss function이 줄어들도록 미분을 통해 model의 parameter들이 어떻게 각각 변화해야하는지를 파악하고 이에 따라 parameter들을 변화시키는 게 training임.
다르게 설명하면,
Differentiation은
function을 잘게 쪼개서, 특정 위치($a$)의 작은 범위($\Delta x$) 떨어진 함수값을 일종의 선형으로 근사하여 분석할 수 있도록 해 줌
→ model의 parameter들이 현재의 고정된 training data하 에서 loss function을 낮추기 위해서는 어떻게 변해야 하는지를 알려줄 수 있음.
ML에서는 loss function은 scalar field (or multi-variate function, mulit-variable single valued function)이기 때문에,
scalar field의 1st derivative에 해당하는 gradient가 주로 사용됨
(gradient를 구하기 위해선 각 component 에 대한 partial derivative를 구해야함).
미분 규칙들
2024.02.28 - [.../Math] - [Math] The Key Rules of Differentiation
2024.02.28 - [.../Math] - [Math] Derivatives of Exponential and Logarithmic Functions
같이 읽어보면 좋은 URLs
https://dsaint31.me/mkdocs_site/ML/ch08/reverse_mode_autodiff/
'... > Math' 카테고리의 다른 글
[Math] Directional Derivative (방향도함수) (0) | 2023.06.23 |
---|---|
[Math] Partial Derivatives (편도함수) (0) | 2023.06.23 |
[Math] Differentiability of MultivariableFunctions (0) | 2023.06.23 |
[Math] Continuity (of Multivariate Function) and Contiguity (0) | 2023.06.22 |
[Math] Limit Laws of Multivariate Function (0) | 2023.06.22 |