Post

[AI Day 04] 합성함수와 체인룰

[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에 영향을 주기 때문에 각 단계의 변화율을 곱해야 한다.

체인룰은 단순히 미분 공식을 하나 더 외우는 것이 아니라, 여러 단계로 연결된 계산에서 최종 변화율을 구하는 방법이다.

This post is licensed under CC BY 4.0 by the author.