일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Machine Learning
- fastapi
- linux
- python
- For
- javascript
- docker
- laravel
- Babel
- webpack
- Redis
- nodejs
- Switch
- nginx
- Backbone.js
- Node
- php
- mariadb
- CentOS
- NCP
- rabbitmq
- Go
- AWS
- Redux
- React
- 블레이드 템플릿
- deep learning
- phpredis
- SQL
- 기초 수학
- Today
- Total
개발일기
기초 수학 - 다양한 미분 법칙 본문
도함수는 주로 $ \frac{\mathrm{d} y}{\mathrm{d} x} $ 와 같이 표기한다. 이 의미는 y함수가 x변수에 대해 어떻게 변하는지를 의미한다. 즉 y함수는 x변수의 값에 따라 도함수의 값이 달라진다.
상수의 미분 법칙(Derivative of a constant)
c는 변수가 아닌 상수라는 가정하에 도함수를 구하면 도함수는 0이 된다. $ \frac{d}{dx}c = 0 $ 라고 식으로 표현할 수 있으며 저 c에는 상수 아무거나 들어갈 수 있다. $ \frac{d}{dx}5 = 0 $ 5가 들어가도 도함수는 0이 되고 $ \frac{d}{dx}10 = 0 $ 10이 들어가도 도함수는 0이 된다.
제곱의 법칙(The Power rule)
제곱 법칙은 $ \frac{\mathrm{d} }{\mathrm{d} x}x^n $ 와 같이 변수가 제곱인 도함수를 구할 때 사용한다.
- 먼저 제곱값이 앞으로 이동하여 곱셈이 된다.
- 제곱값은 -1한다.
즉 제곱 법칙을 적용하면 $ \frac{\mathrm{d} }{\mathrm{d} x}x^n = nx^{n-1} $ 이렇게 변하게 된다. 예시를 위해 n에 5를 대입하면 $ \frac{\mathrm{d} }{\mathrm{d} x}x^5 $ 가 된다. x에 대해 도함수를 구하면 도함수는 $ \frac{\mathrm{d} }{\mathrm{d} x}x^5 = 5x^{5-1} = 5x^4 $ 이 된다.
상수 곱 법칙(The constant multiple rule)
미분 함수에 상수가 곱해지면 먼저 상수를 미분 함수 앞으로 보낸다. 변수에 따른 도함수를 구한 후 상수와 도함수를 곱한다. $ \frac{\mathrm{d} }{\mathrm{d} x}3y = 3\frac{\mathrm{d} }{\mathrm{d} x}y $ 이와 같이 상수를 미분 함수 앞으로 이동 시킨다. $ y = x^2 $ 라 가정한다면 제곱의 법칙에 따라 $ 3\frac{\mathrm{d} }{\mathrm{d} x}x^2 = 3(2x) $ 로 도함수가 구해진다. 구해진 도함수 $ 2x $ 에 상수 3을 곱하면 $ 6x $ 로 계산이 마무리된다.
합의 법칙(The sum rule)
서로 다른 함수가 2개 있다면 합의 법칙을 사용하여 각 함수를 따로 분리하여 계산한 후, 합산하여 결과를 구할 수 있다. $ \frac{\mathrm{d} (y+w)}{\mathrm{d} x} = \frac{\mathrm{d} (f(x) + g(x))}{\mathrm{d} x} $ 처럼 다른 함수 $ f(x) $와 $ g(x) $가 있다면 이를 분리하여 계산할 수 있다. 즉 y와 w를 분리하여 $ \frac{\mathrm{d} f(x)}{\mathrm{d} x} + \frac{\mathrm{d} g(x)}{\mathrm{d} x} $ 각각 따로 도함수를 구한 후 더하여 계산할 수 있다. $ f(x) = 3x^2 $, $ g(x) = 2x^4 $ 라고 가정하고 계산해보자.
$ \frac{\mathrm{d} }{\mathrm{d} x} 3x^2 = 3\frac{\mathrm{d} }{\mathrm{d} x}x^2 = 3(2x) = 6x $ 제곱 법칙과 상수곱 법칙을 활용하여 $ f(x) $의 도함수는 $ 6x $ 가 된다. $ g(x) $ 의 도함수는 $ \frac{\mathrm{d} }{\mathrm{d} x}2x^4 = 2\frac{\mathrm{d} }{\mathrm{d} x}x^4 = 2(4x^3) = 8x^3 $ 가 된다. 따로따로 구해진 도함수를 더하면 최종결과값은 $ 8x^3 + 6x $ 이 된다.
곱의 법칙(The product rule)
합의 법칙과 유사하게 서로 다른 변수를 곱한다면 이를 따로 분리하여 계산한 후, 합산하여 결과를 구할 수 있다. 즉 $ \frac{\mathrm{d} (wz) }{\mathrm{d} x} $ 이와 같이 w, z라는 서로 다른 변수를 곱하는 경우 곱의 법칙을 사용할 수 있다. 공식은 $ w\frac{\mathrm{d} z }{\mathrm{d} x} + z\frac{\mathrm{d} w}{\mathrm{d} x} $ 와 같다. 첫번째 부분은 w를 앞으로 이동시키고 x에 대한 z 도함수를 구한다. 두번재 부분은 z를 앞으로 이동시키고 x에 대한 w의 도함수를 구한다. 구해진 두 도함수를 더하면 결과값이 구해진다.
이해하기 쉽도록 $ w = x^3 $ 로 하고 z = x^4 로 구성 후, 다시 계산해보자. $ \frac{\mathrm{d} x^{3}x^{4}}{\mathrm{d} x} = x^3\frac{\mathrm{d} x^4}{\mathrm{d} x} + x^4\frac{\mathrm{d} x^3}{\mathrm{d} x} = x^3(4x^3) + x^4(3x^2) = 4x^6 + 3x^6 = 7x^6 $ 계산 과정을 순서대로 나열하면 이와 같고 최종 결과는 $ 7x^6 $ 이 된다.
몫의 법칙(The quotient rule)
몫의 법칙은 곱의 법칙과 비슷한 느낌을 가진 법칙이다. $ \frac{\mathrm{d} }{\mathrm{d} x}(\frac{w}{z}) $ 와 같이 서로 다른 두 변수가 분모, 분자에 위치해있고 나누기를 하는 도함수를 구할 때 사용한다. 공식은 $ \frac{\mathrm{d} }{\mathrm{d} x}(\frac{w}{z}) = \frac{z\frac{\mathrm{d} w}{\mathrm{d} x} - w\frac{\mathrm{d} z}{\mathrm{d} x}}{z^2} $ 이와 같다. 분모는 변수의 분모 부분을 제곱하여 구한다. 분자는 먼저 변수의 분모z를 상수 부분으로 이동시키고 x에 대한 분자w의 도함수를 구한다. 그 다음은 분자w를 상수 부분으로 이동시키고 x에 대한 분모z의 도함수를 구한다. 이 두 도함수를 뺄셈한게 공식에서의 분자 부분이다.
각 변수를 $ w=x^3 $, $ z = x^2 $ 로 가정하면 $ \frac{\mathrm{d} }{\mathrm{d} x}(\frac{x^3}{x^2}) = \frac{ x^2\frac{\mathrm{d} x^3}{\mathrm{d} x} - x^3\frac{\mathrm{d} x^2}{\mathrm{d} x}}{(x^2)^2} $ 식은 이와 같이 구성된다. 순차적으로 식을 계산하면 $ \frac{ x^2\frac{\mathrm{d} x^3}{\mathrm{d} x} - x^3\frac{\mathrm{d} x^2}{\mathrm{d} x}}{(x^2)^2} = \frac{ x^2(3x^2) - x^3(2x) }{ x^4 } = \frac{3x^4 - 2x^4}{x^4} = \frac{x^4}{x^4} = 1 $ 로 계산되며 최종 결과는 1이 된다.
연쇄 법칙(The chain rule)
머신러닝에서 많이 사용되고 특히 경사 하강법으로 사용되는 법칙이다. 또한 경사 하강법과 연관있는 역전파 알고리즘에 연쇄 법칙이 사용된다. 신경망의 깊이가 깊어질수록 역전파 알고리즘은 모든 층을 바꿀 수 있게 해주며 효율적으로 경사 하강법이 적용되게 한다. 신경망에 대해 공부를 하게되면 역전파 알고리즘과 경사 하강법에 대해 더 자세하게 배우게 될텐데 연쇄 법칙을 통해 이 두 과정을 효율적으로 적용할 수 있게 된다.
먼저 연쇄 법칙은 합성 함수 개념을 바탕으로 작용한다. 합성 함수란 두 개 이상의 함수를 결합하여 새로운 함수로 만드는 연산 과정을 의미한다. f, g 함수가 $ f:X \to Y $ $g:Y \to Z$ 를 충족해야 한다. f 함수의 정의역은 X이고 공역은 Y이다. g 함수의 정의역은 Y이고 공역은 Z이다. 이전 함수의 공역와 다음 함수의 정의역이 일치하면 이 두 함수를 결합할 수 있으며 $ g\cdot f:X\to Z $ 처럼 f함수의 정의역 X는 g함수의 공역 Z와 연결이 된다. 이러한 개념을 바탕으로 연쇄 법칙을 적용하여 도함수를 구할 수 있다.
$ y = (3x^2 + 8)^3 $ 로 예시를 들어보자. y함수는 $ 3x^2 + 8 $ 의 3제곱이다. 여기서 $ 3x^2 + 8 $ 를 z로 치환해보자. 치환하면 $ y = z^3 $ 과 같이 변하게 된다. 이렇게 되면 y는 u에 대한 함수가 되며 u는 x에 대한 함수가 된다. 즉, $ y = z^3 $, $ z=3x^2 + 8 $ 관계가 성립된다. 이를 공식으로 표현하면 $ \frac{\mathrm{d} y}{\mathrm{d} x} = \frac{\mathrm{d} y}{\mathrm{d} u}\frac{\mathrm{d} u}{\mathrm{d} x} $ 로 표현된다. x가 변화할 때 u의 변화율은 $ \frac{\mathrm{d} u}{\mathrm{d} x} $ 이며 u가 변화할 때 y의 변화율은 $ \frac{\mathrm{d} y}{\mathrm{d} u} $ 가 된다. 두 함수의 변화율을 곱하면 연쇄 법칙을 통한 도함수를 구할 수 있다.
$ y=u^2 $ 일 때 도함수를 구하면 $ \frac{\mathrm{d} y}{\mathrm{d} u} = 2u $ 가 된다. $ u = 3x^2 + 8 $ 일 때 도함수를 구하면 $ \frac{\mathrm{d} u}{\mathrm{d} x} = 6x $ 가 된다. 두 함수를 차례대로 곱하면 $ (2u)(6x) = 2(3x^2 + 8)(6x) = (6x^2 + 16)6x = 36x^3 + 96x $ 가 된다. 처음으로 돌아와 x에 대한 y의 도함수는 $ \frac{\mathrm{d} y}{\mathrm{d} x} = 36^3 + 96x $ 로 계산된다.
참고 사이트:
'Deep Learning, Machine Learning > 기초 수학' 카테고리의 다른 글
기초 수학 - 편미분(Partial Derivative) (0) | 2024.06.29 |
---|---|
기초 수학 - Pytorch, Tensorflow를 활용한 자동 미분 (0) | 2024.06.24 |
기초 수학 - 델타 논법을 통한 미분 계수 구하기 (0) | 2024.05.26 |
기초 수학 - 미분(Differential)의 개념 (0) | 2024.05.18 |
기초 수학 - PCA(주성분 분석) (0) | 2024.05.01 |