그라디언트(gradient)는 참 많이도 나옵니다. 다변수 미적분을 할 때 꼭 만나게 되는 용어이죠. 요즘에는 딥러닝을 공부하는 사람이 많이 생기면서 딥러닝의 주요알고리즘 경사하강법(gradient descent method)을 공부하는 사람이 많이 생겼습니다. 경사하강법을 이해하기 위해서는 gradient를 이해하는 것이 필수 인데요. gradient는 과연 무엇일까요? 이 글에서 살펴보실 수 있습니다.
그라디언트(gradient)의 정의
함수 $f:\mathbf{R}^n \to \mathbf{R}$이 있다고 합시다. 이 함수 $f$의 gradient를 정의하기전에 함수 $f$의 미분에 대해 복습해 주세요.(스칼라(scalar)를 벡터(vector)로 미분 하는 방법). 함수 $f$의 gradient는 기호로써는 $\nabla f( \mathbf{x})$라고 씁니다. 함수 $f$의 gradient 는 다음과 같이 정의할 수 있어요.
$$\nabla f(\mathbf{x}) = (\frac{\partial f}{\partial \mathbb{x}^T} )^T$$
그라디언트(gradient)의 의미
그라디언트는 위의 식에서 볼 수 있듯이 $f$의 미분의 transpose입니다. transpose는 모양을 바꿔주는 것입니다. $f$의 미분은 행벡터였던이엇던것에 반해 $f$의 그라디언트는 열벡터임을 알 수 있습니다.
그라디언트의 의미를 보았습니다. 그라디언트는 미분의 transpose입니다. transpose는 사이즈만 바꿔주는 연산이기 때문에 그라디언트는 f의 미분인데 열벡터로써 나타내는 미분임을 알 수 잇습니다.