Post

[AI Day 07] 그래디언트란 무엇이고 AI는 왜 반대 방향으로 움직일까?

[AI Day 07] 그래디언트란 무엇이고 AI는 왜 반대 방향으로 움직일까?

[AI 수학] Day 7 - 그래디언트란 무엇이고 AI는 왜 반대 방향으로 움직일까?

들어가며

지난 시간에는 여러 변수 중 하나만 선택하여 미분하는 편미분을 공부했다.

예를 들어 다음과 같은 함수가 있다고 하자.

1
z = x² + y²

이 함수에는 x와 y라는 두 개의 변수가 있다.

x에 대해 편미분하면 다음과 같다.

1
∂z/∂x = 2x

y에 대해 편미분하면 다음과 같다.

1
∂z/∂y = 2y

편미분을 이용하면 각 변수가 함수의 결과에 얼마나 영향을 주는지 따로 알 수 있다.

그런데 AI에는 변수가 몇 개만 존재하는 것이 아니다. 모델에 따라 수천 개에서 수십억 개의 가중치가 존재할 수 있다.

AI는 각각의 편미분값을 모두 계산해야 한다. 그리고 이렇게 구한 편미분값들을 하나로 묶어서 사용한다.

이것이 바로 그래디언트(Gradient)다.


1. 그래디언트란?

그래디언트는 다음과 같이 정의할 수 있다.

여러 변수에 대한 편미분값을 하나로 모은 벡터

다음 함수를 다시 살펴보자.

1
z = x² + y²

각 변수에 대해 편미분하면 다음과 같다.

1
∂z/∂x = 2x
1
∂z/∂y = 2y

이 두 편미분값을 하나로 묶으면 다음과 같다.

1
Gradient = (2x, 2y)

수학에서는 그래디언트를 다음과 같은 기호로 표현하기도 한다.

1
∇z = (2x, 2y)

∇ 기호는 나블라라고 읽는다.

따라서 다음 식은

1
∇z

z의 그래디언트라고 읽을 수 있다.


2. 편미분과 그래디언트의 차이

편미분과 그래디언트는 서로 다른 개념이지만 밀접하게 연결되어 있다.

편미분은 변수 하나가 결과에 미치는 영향을 나타낸다.

1
∂z/∂x = x 방향의 변화율
1
∂z/∂y = y 방향의 변화율

반면 그래디언트는 이 편미분값들을 하나로 모은 것이다.

1
∇z = (∂z/∂x, ∂z/∂y)

즉, 다음처럼 이해할 수 있다.

1
2
편미분
= 변수 하나의 기울기
1
2
그래디언트
= 모든 변수의 기울기를 모은 벡터

그래디언트는 완전히 새로운 미분법이라기보다, 편미분 결과를 한 번에 표현하는 방법에 가깝다.


3. 그래디언트는 왜 벡터일까?

벡터는 크기와 방향을 가지는 값이다.

예를 들어 다음 벡터가 있다고 하자.

1
(3, 2)

이 벡터는 좌표평면에서 다음과 같은 이동을 나타낼 수 있다.

1
2
x 방향으로 3
y 방향으로 2

그래디언트도 이와 비슷하다.

다음 함수의 그래디언트는

1
z = x² + y²
1
∇z = (2x, 2y)

이다.

여기서 첫 번째 값 2x는 x 방향의 변화율이고, 두 번째 값 2y는 y 방향의 변화율이다.

그래디언트는 함수의 각 방향에 대한 변화 정보를 하나의 벡터에 담는다.


4. 특정 위치에서 그래디언트 구하기

다음 함수를 사용해 그래디언트를 직접 계산해보자.

1
z = x² + y²

그래디언트는 다음과 같다.

1
∇z = (2x, 2y)

현재 위치가 다음과 같다고 하자.

1
(x, y) = (1, 2)

x와 y에 각각 값을 대입한다.

1
2x = 2 × 1 = 2
1
2y = 2 × 2 = 4

따라서 (1, 2)에서의 그래디언트는 다음과 같다.

1
∇z(1, 2) = (2, 4)

이 결과에서 중요한 점은 그래디언트가 함수 전체를 나타내는 식일 수도 있고, 특정 위치에서 계산된 실제 벡터일 수도 있다는 것이다.

1
그래디언트 함수: (2x, 2y)
1
(1, 2)에서의 그래디언트: (2, 4)

5. 그래디언트가 알려주는 방향

그래디언트는 단순히 편미분값을 모아놓은 것만은 아니다.

그래디언트 벡터는 현재 위치에서

함수값이 가장 빠르게 증가하는 방향

을 알려준다.

산을 예로 생각해볼 수 있다.

산 중간에 서 있을 때 어느 방향으로 걸어가야 높이가 가장 빠르게 증가하는지 알고 싶다고 하자.

이때 가장 가파르게 올라가는 방향이 그래디언트 방향이다.

1
2
그래디언트 방향
→ 함수값이 가장 빠르게 증가하는 방향

그래디언트 벡터가 크다는 것은 해당 방향으로 함수값이 빠르게 증가한다는 의미도 가진다.


6. AI는 왜 그래디언트의 반대 방향으로 이동할까?

그래디언트는 함수값이 가장 빠르게 증가하는 방향을 가리킨다.

하지만 AI 학습의 목표는 일반적으로 손실 함수의 값을 크게 만드는 것이 아니다.

손실 함수는 모델의 예측이 정답과 얼마나 다른지를 나타낸다.

1
2
손실이 크다
→ 예측이 정답과 많이 다르다
1
2
손실이 작다
→ 예측이 정답에 가깝다

따라서 AI는 손실값을 줄여야 한다.

그래디언트가 손실이 가장 빠르게 증가하는 방향을 알려준다면, 손실을 줄이려면 그 반대 방향으로 이동해야 한다.

1
2
그래디언트 방향
→ 손실이 가장 빠르게 증가
1
2
그래디언트의 반대 방향
→ 손실이 가장 빠르게 감소

그래서 AI는 그래디언트 앞에 마이너스 기호를 붙인 방향으로 가중치를 수정한다.

1
-Gradient

이 개념은 다음 시간에 공부할 경사하강법(Gradient Descent)의 핵심이 된다.


7. 간단한 손실 함수 예제

두 개의 가중치를 사용하는 손실 함수가 있다고 하자.

1
L = w₁² + w₂²

여기서 L은 손실값이고 w₁, w₂는 모델의 가중치다.

먼저 각 가중치에 대해 편미분한다.

1
∂L/∂w₁ = 2w₁
1
∂L/∂w₂ = 2w₂

이 편미분들을 하나로 묶으면 손실 함수의 그래디언트가 된다.

1
∇L = (2w₁, 2w₂)

현재 가중치가 다음과 같다고 하자.

1
(w₁, w₂) = (3, 2)

값을 대입하면 다음과 같다.

1
∇L = (6, 4)

(6, 4) 방향은 손실이 가장 빠르게 증가하는 방향이다.

따라서 AI는 그 반대인 다음 방향으로 가중치를 이동시켜야 한다.

1
(-6, -4)

실제 학습에서는 한 번에 이 값만큼 전부 이동하지 않고, 학습률이라는 작은 값을 곱해 조금씩 이동한다.

학습률은 다음 시간에 경사하강법을 공부하면서 자세히 다룰 예정이다.


8. 그래디언트가 0이라는 것은 무엇일까?

다음 함수의 그래디언트를 다시 살펴보자.

1
z = x² + y²
1
∇z = (2x, 2y)

그래디언트가 0이 되려면 다음 조건을 만족해야 한다.

1
2x = 0
1
2y = 0

따라서

1
2
x = 0
y = 0

이다.

즉, (0, 0)에서는 그래디언트가 다음과 같다.

1
∇z(0, 0) = (0, 0)

그래디언트가 0이라는 것은 현재 위치에서 어느 방향으로 조금 움직여도 바로 증가하거나 감소하는 뚜렷한 기울기가 없다는 의미다.

z = x² + y²에서는 (0, 0)이 함수값이 가장 작은 위치다.

1
z = 0² + 0² = 0

AI 학습에서는 손실 함수의 그래디언트가 0에 가까워질수록 손실이 가장 작은 지점에 가까워졌다고 해석할 수 있다.

다만 실제 복잡한 함수에서는 그래디언트가 0인 모든 위치가 반드시 가장 작은 값인 것은 아니다. 현재 단계에서는 그래디언트가 0이면 함수가 평평해지는 중요한 지점이라고 이해하면 된다.


9. AI에서 그래디언트를 사용하는 과정

AI가 학습하는 과정을 단순하게 정리하면 다음과 같다.

1
2
3
4
5
6
1. 현재 가중치로 예측한다.
2. 예측값과 정답을 비교해 손실을 계산한다.
3. 각 가중치에 대해 손실을 편미분한다.
4. 모든 편미분을 모아 그래디언트를 만든다.
5. 그래디언트의 반대 방향으로 가중치를 수정한다.
6. 이 과정을 반복한다.

각 가중치가 손실에 얼마나 영향을 주는지 알아야 올바른 방향으로 가중치를 수정할 수 있다.

그래디언트는 수많은 가중치의 수정 방향을 한꺼번에 알려주는 역할을 한다.


10. 오늘 배운 내용 정리

편미분은 여러 변수 중 하나를 선택해 미분하는 것이다.

1
∂z/∂x

그래디언트는 모든 편미분을 하나로 모은 벡터다.

1
∇z = (∂z/∂x, ∂z/∂y)

예를 들어

1
z = x² + y²

라면

1
∇z = (2x, 2y)

이다.

그래디언트의 방향은 함수값이 가장 빠르게 증가하는 방향이다.

AI는 손실을 줄여야 하므로 그래디언트의 반대 방향으로 가중치를 이동시킨다.

1
2
그래디언트
→ 가장 빠르게 증가하는 방향
1
2
-그래디언트
→ 가장 빠르게 감소하는 방향

마무리

편미분을 처음 배웠을 때는 각 변수를 하나씩 미분하는 이유만 이해했다.

오늘 그래디언트를 공부하면서 각각의 편미분값이 따로 사용되는 것이 아니라, 하나의 벡터로 모여 AI의 학습 방향을 결정한다는 것을 알게 되었다.

그래디언트는 단순히 미분값을 모은 결과가 아니다.

현재 위치에서 함수가 어느 방향으로 가장 빠르게 변하는지를 알려주는 방향 정보다.

AI는 이 정보를 이용해 손실이 줄어드는 방향으로 가중치를 조금씩 수정한다.

다음 시간에는 그래디언트의 반대 방향으로 실제 값을 이동시키는 방법인 경사하강법(Gradient Descent)을 공부할 예정이다.

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