안녕하세요?

지난 강에서 Direct Solution은 컴퓨팅 비용이 높아서 Gradeint Descet를 알고리즘으로 쓴다고 했습니다. 그라디언트 디센트를 학습해야 하는데, 먼저 Gradient에 대해서 자세히 보고 가겠습니다.

 

강의 틀린 부분 정정합니다: 그라디언트의 방향이 그라디언트 값이 커지는 방향이라고 했는데 함수 $f$ 가 커지는 방향이 더 정확합니다.

강의보기:https://www.youtube.com/watch?v=rpZnpiAa_TI

 

그라디언트의 정의

일차함수 $y = ax + b$를 $x$에 대해서 미분하면 $\frac{dy}{dx} = a$가 됩니다. 이 $a$ 값을 gradient라고 할 수 있을까요? 정답은 아닙니다. 그라디언트의 정의를 봅시다.

"다변수 함수 모든 입력값에서 모든 방향에 대한 순간변화율"

 

네, 적어도 다변수 함수여야 그라디언트라고 할 수 있는 겁니다.

$ f(x_1, x_2) = w_0 + w_1x_1 + w_2x_2 $ 평면에서 그라디언트의 설명

그럼 $ f(x_1, x_2) = w_0 + w_1x_1 + w_2x_2 $를 보겠습니다.

이변수 함수

만약 $f(x_1, x_2)$의 그래프가 위 그림과 같다면 $ f(x_1, x_2) $의 Gradient는 편미분한 벡터 $[w_1, w_2]$ 입니다. 이는 노란 평면 각 지점에서 기울기를 나타냅니다.

 

그라디언트 벡터 $[w_1, w_2]$는 노락 평면 각 점에서 $(x_1, x_2)$ 평면으로 사영 됐을때 벡터입니다. 즉, 그라디언트 벡터는 $(x1, x2)$ 평면에 있다는 거죠. 그런데 어떻게 기울기일까요?

 

그라디언트 벡터가 기울기가 아니라, 그라디언트 벡터의 크기가 기울기 입니다. $(x_1, x_2)$ 평면에 대해 그라디언트 크기인 $\sqrt{w_1^2 + w_2^2}$ 만큼 노란 평면이 기울어져 있다는 뜻입니다.

 

$(x_1, x_2)$ 값이 조금만 움직여도( = $\lim_{x_1, x_2 \to 0}$ ), $ f(x_1, x_2) $ 방향(위 그림에서 세로축방향)으로 $\sqrt{w_1^2 + w_2^2}$ 만큼 움직인다는 겁니다. 그럼 왜 그라디언트를 기울기 벡터라고 하는지 이해하셨을 겁니다.

 

그리고, 노란평면 어디에서도 그라디언트 벡터는 $(w_1, w_2)$니까 기울기의 크기도 당연히 같습니다. $y = ax + b$의 직선이 어느점에서도 순간 기울기가 $a$인거랑 같은 개념이라고 생각하시면 됩니다.

 

그라디언트의 방향은 어떻게 되는 걸까요? $ f(x_1, x_2) $의 값이 커지는 방향입니다. 강의에서는 그라디언트 값이 커지는 방향이라고 했는데 틀렸습니다. 함수 $f$가 커지는 방향이라고 정정합니다.

예시

아직 아리송하신 분들을 위해 예를들어 설명드릴께요. 강의에서 말씀드렸지만, 저는 단순하거나 극단적인 예를 좋아합니다. $ f(x_1, x_2) = 2x_1 + x_2 $의 예를 봅시다.

그라디언트 벡터는 [2, 1]입니다. 그리고, 그라디언트 벡터의 크기는 $\sqrt{5}$ 입니다. $(x_1, x_2)$ 축으로 아주 조금씩만 움직여도 $ f(x_1, x_2) $ 방향으로는 $\sqrt{5}$ 만큼 움직인다는 겁니다.

 

그라디언트 벡터 자체는 $(x_1, x_2)$ 평면에 표시되는 거고요. 저 보라색 면이 $(x_1, x_2)$ 평면에 대하여 $\sqrt{5}$ 만큼 기울어져 있다고 해석할 수 있는 겁니다.

 

저는 사실 2차 포물면으로 처음 이해했습니다. 대부분의 자료에서 2차 포물면으로 설명하고 있습니다. 처음 이해했을때 아주 감동을 받았었죠. 다 이해하고 나니까 1차 평면에서 먼저 이해하고 2차 포물면으로 넘어가는게 훨씬 수월할거 같아서 1차 평면부터 설명드렸습니다.

 

혹시 이해가 잘 가셨나요? 피드백 부탁드립니다.

2차 포물면에의 그라디언트

강의에서는 조금 더 나아가서, 2차 포물면에서 그라디언트와 독립변수가 2개 이상인 경우도 설명했습니다. 원리는 같습니다.

 

예를들어 2차 포물면에서는 그라디언트 벡터가 $[w_1, w_2]$가 아니라 $[2w_1x_1, w_2x_2]$ 이렇게 되는 겁니다. 무슨 얘기냐고요? 그라디언트 벡터가 $(x_1, x_2)$ 좌표에 따라서 값이 변한다는 거죠?

 

우리는 $f(x) = x^2$의 순간기울기가 $x$ 값에 대해서 변한다는 걸 이미 알고 있습니다. 같은 개념이니까 충분히 이해할 수 있습니다.

 

상세한 내용은 유트브 강의 참고하세요. 감사합니다.

+ Recent posts