background
Total Derivative
- 다변수 스칼라함수를 생각해보자. 즉 2개이상의 변수가 input이며 ouput은 하나의 스칼라인 함수이다.
- 만약 함수를 이루는 모든 변수가 각각 조금씩 바뀐다면? \(\to\) 함숫값도 작지만 아주 조금 변화할 것이다.
- 전미분은 위와 같은 상황 즉, 다변수 함수의 모든 변수가 조금씩 변화했을때 함숫값의 변화량을 근사하는 양이다.(from wikipedia)
- 다변수함수의 미소증분
추가설명(엄밀한 notation 제외)
- 편미분 \(\frac{\partial{f}}{\partial{x}}\)는 임의의 변수 x의 단위변화량이다.
- x를 매우 미소하게 증가시키고 : \(x \overset{+dx}{\to} x+dx\)
- 이에 따라서 f가 얼마나 변화했는지 그 양을 측정한 뒤 : \(f(x+dx) - f(x)\)
- “x가 1만큼 증가하면 얼마나 f는 변화해?”를 측정한 값(비율)이다. : \(\frac{f(x+dx) - f(x)}{dx}\)
- 하나의 변수 x의 매우 조그마하고 순간적인 변화에 의해 함숫값의 변화가 아주 조금 변할 때
- 이러한 조그마한 변화가 변수가 1만큼 증가하는 것을 기준으로 삼는 경우에는 얼마정도 일지 측정한 단위(길이에 대한)변화량이다.
- 느낌 : 이런 순간적인 변화를 1만큼 계속 유지하면 얼마나 변화할까?
- 정리하자면 임의의 단일변수의 미소변화에 대한 단위변화량이다.(딱딱한 정의)
- 여러개의 변수가 있지만 하나의 변수만 조금 변화시킨뒤 측정한다.(그래서
편
미분이다.) - 사실 식이 엄밀하진 않다.위의 표현은 상미분에 대한 표현이다.
- 자세한 표현식은 wiki를 참조하자.
- 단위변화량을 어떤 값과 곱해주면 변화량이 나온다.
- 밥을 100g먹으면 몸무게가 5kg 찐다고 하자.(ㅜㅜ억울한 상황이다.)
- 그렇다는 것은 1g먹으면 0.05kg이 찐다는 것을 암시하며
- 이는 밥(x) 1g에 대한 몸무게(f)의 단위변화량은 0.05kg이다. \(\Longleftrightarrow= \frac{\partial f}{\partial x} = 0.05\)
- 밥 300g 먹으면? \(\frac{\partial f}{\partial x}300 = 0.05 \times 300 = 15\)
- 밥 0.03g 먹으면? \(\frac{\partial f}{\partial x}0.03 = 0.05 \times 0.03 = 0.0015\)
- 밥 \(db\)만큼(진짜조금) 먹으면? \(\frac{\partial f}{\partial x}db = 0.05 \times db\)
- 변화를 시키는 여러가지 요인을 전부 고려하면?
- 밥(\(x_1\))도 조금먹고 물도 조금(\(x_2\))먹고 조금 자다가(\(x_3\)) 운동도 조금(\(x_4\))하면 몸무게(f)가 어떻게 될까??
- \(df = \frac{\partial{f}}{\partial{x_1}}dx_1 + \frac{\partial{f}}{\partial{x_2}}dx_2 + \frac{\partial{f}}{\partial{x_3}}dx_3 + \frac{\partial{f}}{\partial{x_4}}dx_4\)
Lagrange multiplier
추후 정리
Scalar를 Vector로 미분
Definition
- 다음과 같이 길이가 2인 벡터가 input이고 하나의 값을 output하는 스칼라함수를 생각해보자.
- 이 함수는 다른 시각으로 2개의 변수를 input으로 받는 다변수 스칼라 함수로 생각할 수도 있다.
- 위와 같은 스칼라함수의 벡터에 대한 미분은 다음과 같이 정의된다.
- 왜 \(\partial{x^T}\)일까?
- input은 column vector인데 output은 row vector이다.
- 그래서 눕혀서 transpose
- 그런데 사실 많은 곳에서 notation을 헷갈리게 한다.
- 미분의 결과를 column vector로 적는 곳도 많고
- \(\partial{x^T}\)대신 \(\partial{x}\)로 적는 곳도 많다.
- 그래서 그냥 함수를 이루는 모든 변수에 대해서 미분해본뒤 모아놓은 거구나 이렇게 기억해놓는게 좋다.
★쉽게 미분 구하기★
- 정석적으로 구하려면 위의 정의에 해당하는 모든 component를 각각 편미분 취해서 구해줘야 한다.
- 이건 너무 번거로운 과정이며 더 쉽게 구하는 방법이 있다.
- \(df\)는 정의는 다음과 같다
- 또한 \(df\)의 total derivative는 정의에 의해 다음과 같다.(두 번째 정의라고 생각해도 무방하다.)
- 두 정의를 모아서 정리해보자.
\[\begin{align} df &= f(x+ dx) - f(x) \\ &= \frac{\partial{f}}{\partial{x}^T}dx \end{align}\]
- 그래서 어떻게 구할까?
- (1)을 통해서 \(df\)를 계산한 후
- (2)와 같은 형식을 어떻게든 만들고
- dx앞에 있는 항이 원하는 미분이다.
- 주의
- \(f(x+dx)\)를 계산하는 과정에서 \(dx^Tdx,dx_1dx_2\)와 같은 2차 이상의 항이 나올 수 있다.
- 이건 그냥 제외시키면 된다. 즉, 1차항만을 남기고는 싹 지우면 된다.
- 왜 그럴까?(엄밀하지 않은 증명)
- \(df = f(x+dx) - f(x) = dx^Tdx = dx^2\)라 해보자.(dx^2처럼 쓸 수 있다.)
- 여기서 \(dx\)가 벡터가 아니라 스칼라라고 생각해보면 \(dx\)로 양변을 나눌 수 있다.
- 양변을 \(dx\)로 나누고 (2)에 의하여 \(\frac{df}{dx} = dx = \frac{\partial f}{\partial x^T}\)이다.
- 미분의 정의에 의해 \(dx \to 0\) 이므로 \(dx^2\)와 비슷한 2차이상의 항에 대한 \(\frac{\partial{f}}{\partial{x^T}} = 0\)이다.
- 따라서 2차이상의 항이 나오면 \(\frac{\partial{f}}{\partial{x^T}} = 0\)이 될 것이므로 제외를 시켜줘도 된다.
- 사실 벡터미분이기 때문에 나눠줄 수 없어서 엄밀한 증명은 아니다.
예시
- \(f(x) = (y-Ax)^T(y-Ax)\)일때 \(\frac{\partial{f}}{\partial{x^T}}\)를 구해보자.