본문 바로가기
C.W.K.
Stream
Lesson 02 of 05 · published

도함수: 한 점에서 읽는 변화율

~10 min · derivative, slope, tangent

Level 0수학 초심자
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

평균 변화율을 한 점까지 밀어붙이기

두 점 사이의 평균 변화율은 야. 를 0에 가깝게 보낼 때 이 비율이 한 값으로 수렴하면 그 값이 에서의 도함수야.

그래프에서는 그 점의 접선 기울기로 볼 수 있어. 충분히 가까이 확대했을 때 곡선이 직선처럼 보인다는 말은 함수가 그 점에서 미분 가능하다는 뜻을 품고 있어. 뾰족점이나 불연속점에서는 이 근사가 성립하지 않을 수 있고.

손실은 매개변수마다 다른 방향으로 변한다

매개변수가 하나면 의 부호와 크기가 w를 조금 바꿀 때 손실이 어떻게 달라지는지 알려 줘. 매개변수가 많으면 각 편미분을 모은 기울기 가 현재 점에서 손실이 가장 빠르게 증가하는 방향을 가리켜. 유클리드 좌표에서는 그 반대 방향이 가장 가파른 국소 하강 방향이야.

기울기는 한 점 근처의 선형 근사라서 큰 걸음을 보장하지 않아. 학습률과 곡률, 잡음, 제약에 따라 실제 손실이 줄지 않을 수도 있어. 도함수는 방향 신호이지 목적지까지의 지도가 아니야.

자주 만나는 도함수

함수도함수조건
상수 함수
모든 실수
모든 실수
모든 실수
실수 로그에서는
각도는 라디안

자동미분이 계산을 맡더라도 부호와 크기, 정의역을 예상할 수 있어야 그래프 단절과 잘못된 목적함수를 찾아낼 수 있어.

도함수는 한 점에서의 국소 변화율이야. 기울기는 모든 매개변수의 국소 민감도를 모아 주지만, 유한한 학습 걸음의 결과까지 보장하지는 않아.

Code

수치미분과 해석적 도함수 비교하기·python
import numpy as np
import torch

# 수치 도함수 — 줌인으로 근사
def numerical_derivative(f, x, h=1e-6):
    return (f(x + h) - f(x)) / h

f = lambda x: x ** 2
print(numerical_derivative(f, 3.0))   # ~6.0  (2*3 = 6 이어야 함)

# Autograd 로 symbolic
x = torch.tensor(3.0, requires_grad=True)
(x ** 2).backward()
print(x.grad.item())                   # 6.0

External links

Exercise

중심차분 (f(x+h)-f(x-h))/(2h)로 임의 함수의 수치 도함수를 구하는 Python 함수를 작성해. f(x)=sin(x), x=0에서 여러 h 값을 시험하고 정확한 값 cos(0)=1과의 오차를 그려.
Hint
매끄러운 함수에서 중심차분의 절단오차는 보통 전진차분보다 빠르게 줄지만, h가 너무 작으면 부동소수점 소거오차가 커져. 두 오차가 만나는 지점을 찾아.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.