미분 : 어떤 함수의 정의역에 속한 각 점에서 독립변수(x값) 값의 변화량(Δx)과 함숫값의 변화량(f(x+Δx)-f(x)
비율 (f(x+Δx)-f(x) 의 극한(무한히 작아짐 0은 아니지만, 0과 가깝게) 혹은 극한의 집합을 치역으로 새로운 함수.
Δx
→ 이런 새로운 함수를 미분 or 미분 함수(derivative), 도함수라고 쓰여요.
derivative(도함수,미분함수,미분해서 결과로나오는함수)
하나의 함수에서 미분 함수(도함수)를 구하는 작업을 지칭하는 용어 → 미분 → differentiation(미분하는 과정)
쉽게 설명하면 미분은 함수에 있어서 특정 순간의 변화량을 지칭해요.
함수값의 변화량 → 변화량이 극한(lim) → 미분
독립변수 값의 변화량
lim (f(x + delta_x) - f(x-delta_x))/delta_x→0 delta_x ← 변화량
y =(x) x에서의 작은 변화가 y =(x)를 어떻게 변화시키냐? → 미분
그림에서 기본적으로 Δx가 줄어들어 미분된 접하는 직선의기울기를 구하는 거예요.
<기본공식>
f(x) = constant ←constant 는 f(x) = 2와 같은 상수를 뜻해요 → derivative f'(x)= 0 derivative 는 미분한다는 뜻
f(x) = ax^n → derivate f'(x)= n * an^n-1 f(x)=2^x3 →f'(x)=6x^2
f(x) = e^x → derivate f'(x) = e^x
f(x) = e^-x → derivate f'(x) = -e^2x
f(x) = lnx → derivate f'(x) = 1/x
f(x) = 상수 -> f`(x) = 0
f(x) = e^x -> f`(x) = e^x
f(x) = e^-x -> f`(x) = -e^-x
f(x) = ax^n -> f`(x) = nax^n-1
f(x) = lnx -> f`(x) = 1/x
대표사진 삭제
사진 설명을 입력하세요.
미분 종류
해석 미분(analytical differentiation) : 종이와 펜을 가지고 논리적으로 미분
수치 미분(numerical differentiation) :해석 미분을 수행할 수 없을 때 수치적 접근방법으로(숫자를 넣어서) 근삿값을 찾는 방법.
수치미분의 방법
전향 차분
후향 차분
중앙 차분 - 바로 이전과 이후를 구해 2로 나눠주는 방법, 결괏값이 가장 정확해서 중앙차분만 이용해요.
중앙차분 - f(x)가 중앙에 있고, Δx가 앞과 뒤에 있어요→ x의 변화량이 늘었어요 → 2Δx
lim (f(x + delta_x) - f(x-delta_x))
delta_x→0 2delta_x ← 앞과 뒤 니까 2delta_x
함수 f(x)를 미분해라 입력변수 deltax 가 아주 미세하게 변할때 f(x)가 얼마나 변하는지?미분은 Machine learning , Deep learning 에서 빈번하게 사용돼요!
해석미분을 수치미분으로 구현해 보아요!
f(x) = x^2 함수를 미분해서 f'(5)는 얼마인가요?
# 미분을 하고 미분계수를 구하는 함수
def numerical_differentiation(f, x): #첫번째 함수를 인자를 받고,어디에서 미분을 할 지 숫자가 나와요
# 입력인자 f는 미분하려고 하는 함수
# 입력인자 x는 미분값을 알고자하는 입력값
# Δx 를 프로그램적으로 변수로 잡아요
delta_x = 1e-4 #0.0001(10의 -4승 의미) #python에서 1e-8(10-8승)이하의 값을 delta로 사용하면 floating point 문제가 나타나요.
#중앙차분을 이용한 수치미분
result = (f(x + delta_x) - f(x-delta_x))/(2 * delta_x)
return result
def my_func(x): #f(x)
return x*x #f(x) = x^2
result = numerical_differentiation(my_func,5)
print(result)
#9.999999999976694
위에 코드정리
def numerical_differentiation(f, x):
delta_x = 1e-4
result = (f(x + delta_x) - f(x-delta_x))/(2 * delta_x)
return result
def my_func(x):
return x*x
result = numerical_differentiation(my_func,5)
print(result)
#9.999999999976694
'머신러닝 딥러닝' 카테고리의 다른 글
0826 회귀(regression ) (0) | 2021.08.26 |
---|---|
0826 편미분(partial derivative), 연쇄법칙(Chain Rule) (0) | 2021.08.26 |
0825 Machine Learning Process (0) | 2021.08.25 |
0825 지도학습(Supervised Learning) (0) | 2021.08.25 |
0825 AI introduction (1) | 2021.08.25 |
댓글