[AI Day 04] 합성함수와 체인룰
[AI Day 04] 합성함수와 체인룰
지난 공부에서는 미분이 함수의 한 지점에서 기울기를 구하는 방법이라는 것을 배웠다.
예를 들어 다음 함수가 있다.
1
y = x²
이를 미분하면 다음과 같다.
1
y' = 2x
하지만 실제 계산에서는 x²처럼 한 단계로 끝나는 함수만 등장하지 않는다.
다음과 같이 함수 안에 또 다른 계산이 들어가기도 한다.
1
y = (x + 1)²
오늘은 이런 함수를 미분할 때 사용하는 체인룰을 공부했다.
추가로 두 함수가 곱해진 식을 미분하는 곱의 미분법과 체인룰의 차이도 함께 정리해 보았다.
1. 체인룰은 왜 필요할까?
다음 두 함수를 비교해 보자.
1
y = x²
1
y = (x + 1)²
첫 번째 함수는 x를 바로 제곱한다.
1
x → 제곱 → y
두 번째 함수는 먼저 x에 1을 더한 다음, 그 결과를 제곱한다.
1
x → x + 1 → 제곱 → y
즉, 계산이 두 단계로 이루어져 있다.
1
2
1단계: x에 1을 더한다.
2단계: 1단계의 결과를 제곱한다.
이처럼 한 함수의 결과가 다른 함수의 입력으로 들어가는 형태를 합성함수라고 한다.
체인룰은 이러한 합성함수를 미분할 때 사용하는 방법이다.
2. 괄호 안을 u로 바꾸는 이유
다음 함수는 괄호 때문에 조금 복잡하게 보인다.
1
y = (x + 1)²
이때 괄호 안 전체를 임시로 u라고 놓을 수 있다.
1
u = x + 1
그러면 원래 함수는 다음과 같이 바뀐다.
1
y = u²
함수의 계산 흐름을 나타내면 다음과 같다.
1
x → u → y
여기서 각각의 함수는 다음과 같다.
1
2
u = x + 1
y = u²
u는 새로운 공식이나 특별한 값이 아니다.
복잡한 괄호 안을 잠시 간단하게 표현하기 위해 사용하는 임시 이름이다.
3. 바깥 함수 미분하기
먼저 다음 함수를 미분한다.
1
y = u²
거듭제곱 미분법을 적용하면 다음과 같다.
1
dy / du = 2u
이 결과는 다음을 의미한다.
1
u가 변할 때 y가 얼마나 변하는가
하지만 우리가 최종적으로 구하고 싶은 것은 다음이다.
1
x가 변할 때 y가 얼마나 변하는가
따라서 안쪽 함수인 u = x + 1도 미분해야 한다.
4. 안쪽 함수 미분하기
안쪽 함수는 다음과 같다.
1
u = x + 1
이를 x에 대해 미분하면 다음과 같다.
1
du / dx = 1
각 항을 나누어 보면:
1
2
x의 미분 = 1
1의 미분 = 0
따라서:
1
2
(x + 1)' = 1 + 0
= 1
현재까지 두 개의 기울기를 구했다.
1
2
dy / du = 2u
du / dx = 1
5. 체인룰 적용하기
체인룰에서는 각 단계의 기울기를 곱한다.
1
dy / dx = dy / du × du / dx
앞에서 구한 값을 대입한다.
1
dy / dx = 2u × 1
따라서:
1
dy / dx = 2u
그런데 u는 원래 다음과 같았다.
1
u = x + 1
u를 원래 식으로 다시 바꾸면:
1
dy / dx = 2(x + 1)
최종 결과는 다음과 같다.
1
2
3
y = (x + 1)²
y' = 2(x + 1)
6. 전개해서 결과 확인하기
체인룰로 구한 결과가 맞는지 원래 식을 전개해서 확인할 수 있다.
1
y = (x + 1)²
제곱을 전개하면:
1
y = x² + 2x + 1
각 항을 미분한다.
1
2
3
x² → 2x
2x → 2
1 → 0
따라서:
1
y' = 2x + 2
체인룰로 구한 결과는 다음과 같았다.
1
2(x + 1)
괄호를 전개하면:
1
2(x + 1) = 2x + 2
두 방법의 결과가 같은 것을 확인할 수 있다.
7. 안쪽 미분값이 1이 아닌 경우
(x + 1)²에서는 안쪽 함수의 미분값이 1이다.
1
(x + 1)' = 1
실제로는 다음과 같이 체인룰을 적용한 것이다.
1
2(x + 1) × 1
하지만 1을 곱해도 결과가 변하지 않기 때문에 안쪽 미분이 잘 보이지 않는다.
이번에는 안쪽 함수의 미분값이 1이 아닌 예제를 살펴보자.
1
y = (3x + 1)²
괄호 안을 u라고 놓는다.
1
2
u = 3x + 1
y = u²
바깥 함수를 미분한다.
1
dy / du = 2u
안쪽 함수를 미분한다.
1
du / dx = 3
체인룰에 따라 두 결과를 곱한다.
1
dy / dx = 2u × 3
u를 원래 식으로 바꾸면:
1
dy / dx = 2(3x + 1) × 3
따라서:
1
y' = 6(3x + 1)
괄호를 전개하면:
1
y' = 18x + 6
(x + 1)²과 달리 안쪽 함수의 미분값인 3이 결과에 곱해진 것을 확인할 수 있다.
8. 체인룰의 계산 순서
체인룰은 다음 순서로 기억할 수 있다.
1
2
3
4
1. 바깥쪽 함수를 미분한다.
2. 안쪽 함수는 그대로 둔다.
3. 안쪽 함수를 미분한다.
4. 두 결과를 곱한다.
다음 함수를 예로 들어 보자.
1
y = (2x + 5)³
먼저 바깥쪽의 세제곱을 미분한다.
1
3(2x + 5)²
그다음 안쪽 함수를 미분한다.
1
(2x + 5)' = 2
두 결과를 곱한다.
1
y' = 3(2x + 5)² × 2
정리하면:
1
y' = 6(2x + 5)²
9. 안쪽도 복잡한 함수인 경우
다음 함수를 살펴보자.
1
y = (x² + 1)⁴
먼저 바깥쪽의 네제곱을 미분한다.
1
4(x² + 1)³
그다음 안쪽 함수인 x² + 1을 미분한다.
1
(x² + 1)' = 2x
두 결과를 곱한다.
1
y' = 4(x² + 1)³ × 2x
정리하면:
1
y' = 8x(x² + 1)³
체인룰에서는 안쪽 함수가 3x + 1처럼 단순한 일차식일 수도 있고, x² + 1처럼 또 다른 함수일 수도 있다.
10. 미분에서 곱하기는 어떻게 계산할까?
체인룰에서 각 단계의 기울기를 곱하는 것과 두 함수가 실제로 곱해진 식을 미분하는 것은 서로 다르다.
다음 함수가 있다고 하자.
1
y = x² × x³
여기서는 두 함수가 곱셈으로 나란히 연결되어 있다.
두 함수를 각각 미분한 뒤 바로 곱하면 다음과 같다.
1
2x × 3x²
하지만 이 방법은 틀리다.
두 함수가 모두 x에 따라 변하고 있기 때문에 양쪽에서 발생하는 변화를 각각 계산해야 한다.
곱의 미분법은 다음과 같다.
1
(f × g)' = f' × g + f × g'
말로 표현하면 다음과 같다.
1
2
3
앞을 미분하고 뒤는 그대로
+
앞은 그대로 두고 뒤를 미분
간단하게는 다음처럼 기억할 수 있다.
1
2
3
앞미분 뒤그대로
+
앞그대로 뒤미분
11. 곱의 미분법 예제
다음 함수를 미분해 보자.
1
y = x² × x³
앞의 함수를 f라고 하고 뒤의 함수를 g라고 하자.
1
2
f = x²
g = x³
각각 미분한다.
1
2
f' = 2x
g' = 3x²
곱의 미분법을 적용한다.
1
y' = f'g + fg'
값을 대입하면:
1
y' = 2x × x³ + x² × 3x²
각 곱셈을 정리한다.
1
2x × x³ = 2x⁴
1
x² × 3x² = 3x⁴
따라서:
1
y' = 2x⁴ + 3x⁴
동류항을 정리하면:
1
y' = 5x⁴
원래 함수를 먼저 정리해서 확인할 수도 있다.
1
x² × x³ = x⁵
이를 미분하면:
1
(x⁵)' = 5x⁴
두 방법에서 같은 결과가 나온다.
12. 체인룰과 곱의 미분법의 차이
체인룰과 곱의 미분법은 서로 다른 상황에서 사용한다.
곱의 미분법
두 함수가 옆으로 나란히 곱해져 있을 때 사용한다.
1
y = f(x) × g(x)
예를 들면 다음과 같다.
1
y = x² × x³
미분할 때는 다음 순서를 사용한다.
1
2
3
앞미분 뒤그대로
+
앞그대로 뒤미분
체인룰
함수 안에 다른 함수가 들어 있을 때 사용한다.
1
y = f(g(x))
예를 들면 다음과 같다.
1
y = (x + 1)²
미분할 때는 다음 순서를 사용한다.
1
2
3
바깥 함수의 미분
×
안쪽 함수의 미분
두 규칙을 비교하면 다음과 같다.
| 함수 형태 | 구조 | 미분 방법 |
|---|---|---|
x² + x³ | 덧셈 | 각각 미분한 뒤 더하기 |
x² × x³ | 함수 두 개의 곱 | 곱의 미분법 |
(x + 1)² | 함수 안에 함수 | 체인룰 |
정리하면:
1
2
3
4
5
함수 × 함수
→ 곱의 미분법
함수 안에 함수
→ 체인룰
13. AI에서 체인룰이 중요한 이유
AI 모델의 계산은 대부분 여러 단계로 연결되어 있다.
1
2
3
4
5
6
7
8
9
입력값
↓
가중치 계산
↓
중간 결과
↓
예측값
↓
손실값
가중치가 조금 변했을 때 최종 손실값이 얼마나 변하는지 구하려면 각 단계의 기울기를 계산해야 한다.
1
2
3
4
5
6
7
가중치의 변화
↓
중간 결과의 변화
↓
예측값의 변화
↓
손실값의 변화
이때 각 단계의 기울기를 곱하는 체인룰이 사용된다.
1
2
3
전체 변화율
=
각 단계의 변화율을 모두 곱한 값
딥러닝에서 사용하는 역전파도 계산 과정을 뒤에서부터 따라가며 체인룰을 반복해서 적용하는 과정이다.
14. 오늘 배운 내용 정리
오늘은 함수가 여러 단계로 연결되어 있을 때 사용하는 체인룰을 공부했다.
체인룰의 기본 순서는 다음과 같다.
1
2
3
4
1. 바깥쪽 함수를 미분한다.
2. 안쪽 함수는 그대로 둔다.
3. 안쪽 함수를 미분한다.
4. 두 결과를 곱한다.
예를 들어:
1
y = (3x + 1)²
를 미분하면:
1
y' = 2(3x + 1) × 3
이 된다.
또한 두 함수가 실제로 곱해져 있을 때는 체인룰이 아니라 곱의 미분법을 사용한다.
1
(fg)' = f'g + fg'
곱의 미분법은 다음과 같이 기억할 수 있다.
1
2
3
앞미분 뒤그대로
+
앞그대로 뒤미분
두 규칙의 차이는 다음과 같다.
1
2
3
4
5
함수 × 함수
→ 곱의 미분법
함수 안에 함수
→ 체인룰
체인룰을 처음 보았을 때는 괄호 안을 왜 다시 미분하고 곱해야 하는지 이해하기 어려웠다.
하지만 계산 과정을 다음과 같이 단계별로 나누어 보니 이해하기 쉬웠다.
1
x → u → y
x의 변화가 먼저 u에 영향을 주고, u의 변화가 다시 y에 영향을 주기 때문에 각 단계의 변화율을 곱해야 한다.
체인룰은 단순히 미분 공식을 하나 더 외우는 것이 아니라, 여러 단계로 연결된 계산에서 최종 변화율을 구하는 방법이다.