스칼라(scalar)를 벡터(vector)로 미분 하는 방법


정의역이 스칼라이고 출력값이 스칼라인 함수에 대해서는 미분이 잘 정의되었다. 아마 익숙할것이다. 그런데! 정의역이 n차원이고 출력값이 스칼라인 함수 $f: \mathbf{R}^n \to \mathbf{R}$의 미분은 어떻게 해야할까? $f$의 입력값인 $\mathbb{x}$는 벡터이기 때문에 주의가 필요하다. [1]을 보고 스칼라(scalar)를 벡터(vector)로 미분하는 방법을 정리 해봤다. [1]에서 본 스칼라를 벡터로 미분하는 방법과 예시를 살펴보도록 하겠다.

스칼라(scalar)를 벡터(vector)로 미분하는 기호

$f : \mathbf{R}^n \to \mathbf{R}$인 함수를 생각하자. 입력이 n차원 열벡터인 $\mathbf{x}$ 함수이다. 출력이 스칼라인 함수를 벡터 $\mathbb{x}$를 이용해 미분할 때 기호를 아래와 같은 기호를 사용한다.

$$\frac{\partial f}{\partial \mathbf{x}^T}$$

스칼라(scalar)를 벡터(vector)로 미분하는 정의

스칼라를 벡터로 미분한다는 것을 정의하기 위해 $df$란 것을 정의해보자. 여기서 $d\mathbb{x}$또한 벡터임을 유념하자.

$$df = f(x+dx) – f(x)$$

위의 식은 $f$값의 조그마한 변화이다. 위의 식을 이용하면 아래와 같이 $\frac{\partial f}{\partial \mathbf{x}^T}$를 정의한다. !

$$df = \frac{\partial f}{\partial \mathbf{x}^T} d\mathbb{x}$$

해석을 하자면 $df$를 정리하고 $d\mathbb{x}$라는 인수를 뒤로 빼서 정리할수 있다면 $d\mathbb{x}$에 붙어있는 것이 $\frac{\partial f}{\partial \mathbf{x}^T}$으로 정의됨을 알 수 있다.

스칼라(scalar)를 벡터(vector)로 미분 주의

위의 식으로 $\frac{\partial f}{\partial \mathbf{x}^T}$을 구할 때 $\frac{\partial f}{\partial \mathbf{x}^T}$ 안에 $d \mathbb{x}$가 있을 수 있다. $d\mathbb{x}$는 굉장히 작은 숫자이므로 $\frac{\partial f}{\partial \mathbf{x}^T}$에서 나타나는 $d\mathbb{x}$는 무시한다.

스칼라(scalar)를 벡터(vector)로 미분 예시

$f(\mathbb{x}) = (y-A \mathbb{x})^T (y-A \mathbb{x})$라고 정의하자. 미분 $\frac{\partial f}{\partial \mathbf{x}^T}$을 구해보자.  계산을 빠르게 하면

$$df = -(y-A \mathbb{x})^TAd\mathbb{x} – d\mathbb{x}^T A^T (y-A \mathbb{x}) + d\mathbb{x}^TA^TAd\mathbb{x}$$

여기서 두번째 텀 은 스칼라이므로 트랜스포즈 취해줘도 그대로 이므로 트랜스포즈 시켜본다. 그리고 마지막 항에는 $d \mathbb{x}$가 두개 있으므로 무시해준다. 정리를 해보면

$$df = -2(y-A\mathbb{x})^T A d\mathbb{x}$$가 나오므로

정의에 따라 $\frac{\partial f}{\partial \mathbf{x}^T}=-2(y-A\mathbb{x})^T A$이 나온다.

Reference

[1] 혁펜하임 “[딥러닝] 5-1강. 10분 투자로 평생가는 실력! (스칼라를 벡터로 미분),” YouTube, Apr. 20, 2020 [Video file]. Available: https://www.youtube.com/watch?v=JYOA2zNL9bw. [Accessed: Jul. 15, 2022].

Leave a Comment