미분이란?
함수를 작게 나누는것으로 X의 값을 아주 미세하게 변화시킨 후 그 결과값이 어떻게 바뀌는지 보며 0에 가깝게 만드는것.
즉, 특정한 파라미터 값 (input, x)에 대해서 나오는 결과값(output, y)이 변화하는 정도를 (0에 가까운 부분을 찾기 위해) 계산하는 것.
Data Science 에서의 미분은 Simple Linear Regression (단순선형회귀)에서 주로 사용 한다.
== X로 y를 예측할 수 있는 하나의 선을 그린다.
ŷ = b0 + b1x
b0 = y intercept
b1 = Slope
* 미분 공식 Python
기본 공식 : f′(x)=f(x+Δx)−f(x) / Δx
== f(x+Δx)−f(x−Δx) / 2Δx
Δx→0 하지만 실제로 0으로 나눌 수는 없기 때문에 0에 매우 근사한 값을 사용하게 됩니다.
보통 Δx= 1e−5 을 t사용. 이러한 접근 방식을 numerical method 라는 방법으로 표현.
* ML에서 많이 쓰이는 미분 공식
1. f(x) = 상수 → f′(x) = 0
f'(x)가 상수 (constant)인 경우에는 x를 아무리 늘리거나 줄여도 늘 같은 숫자이기 때문에 변화가 전혀 없습니다. 그 말은 즉 변화율이 0이기 때문에 미분계수도 늘 0입니다
# 예시 1 : Numerical Method
# f(x) = 5
def f(x):
return 5
def numerical_derivative(fx, x):
delta_x = 1e-5
return (fx(x + delta_x) - fx(x)) / delta_x
print(numerical_derivative(f, 1))
# 예시 2 : Scipy의 derivative 활용
from scipy.misc import derivative
# 두 방법의 결과값 비교
derivative(f,1, dx=1e-6) == numerical_derivative(f, 1)
2.f(x)=ax^n → f′(x)=anx^(n−1)
Power Rule로도 알려져있는 미분법입니다. x 기준으로 n승을 미분할 경우 n을 내려보내서 곱해준 후, 이후에 n승에서 "하나"를 가져왔기 때문에 빼주는 방법.
예시
f(x)=3x^4+10 를 미분
먼저 4승에서 하나를 내려보내서 앞에 있는 3과 곱.
(10은 상수이기 때문에 미분을 하면 0)f′(x)=(4∗3)x^4
이후에는 4승에서 1을 빼줍니다 ("빌려줬기 때문에")f′(x)=(4∗3)x^(4−1)
최종적으로 f(x)의 도함수는 이렇게 계산됩니다.f′(x)=12x^3
x = 2일 때 f'(x)는 다음과 같습니다
f′(2)=96
# 같은 결과를 numerical method를 활용해서 계산해보겠습니다
# 예시 1 : 함수정의하여 미분
def f(x):
return 3*(x**4) + 10
def numerical_derivative(fx, x):
delta_x = 1e-5
return (fx(x + delta_x) - fx(x)) / delta_x
print(numerical_derivative(f, 2))
# 예시 2 : Scipy의 derivative 활용
from scipy.misc import derivative
# 두 방법의 결과값 비교
print(derivative(f,2, dx=1e-5))
derivative(f,2, dx=1e-5) == numerical_derivative(f, 2)
#delta X의 값은 같지만 Rounding 에러로 인해 두 결과가 미묘하게 다른 것을 확인하실 수 있습니다.
3.f(x)=e^x → f′(x)=e^x
지수 함수의 경우에도 도함수 역시 지수 함수.
4.f(x)=lnx → f′(x)=1/x
자연 로그의 미분은 주로 Logistic Regression 이나 신경망의 활성 함수인 sigmoid 함수를 미분할 때 상당히 편하게 미분을 할 수 있도록 도와준다. sigmoid 함수에 자연로그를 씌움으로서 미분을 훨씬 수월하게 할 수 있게 되기 때문입니다.
'개념 이론 수학' 카테고리의 다른 글
[수학] 경사하강법 (Gradient Descent) (0) | 2021.06.09 |
---|---|
[수학] 합성함수 미분(Chain Rule) (13) | 2021.06.09 |
[수학] 편미분 (Partial Derivative) (0) | 2021.06.09 |
[DataAnalysis] Feature Engineering - DataFrame(Tabular Data) (0) | 2021.06.08 |
[DataAnalysis] EDA (Exploratory Data Analysis) -탐색적 데이터 분석 (0) | 2021.06.07 |