본문 바로가기

헤시안3

벡터 함수를 행렬로 미분하기 다변수 스칼라 함수를 벡터로 미분한 것을 그래디언트(gradient), 벡터 함수를 벡터로 미분한 것을 자코비안(Jacobian), 스칼라 함수를 벡터로 두 번 미분한 것을 헤시안(Hessian)이라고 한다. 이번에는 스칼라 함수를 행렬로 미분해 보자. \( X=\begin{bmatrix} x_{11} & \cdots & x_{1n} \\ \vdots & \ddots & \vdots \\ x_{m1} & \cdots & x_{mn} \end{bmatrix} \in \mathbb{R}^{m \times n}\) 가 행렬이고 스칼라 함수 \(f(X)\)가 주어졌을 때 \(f(X)\)에 대한 \(X\)의 미분은 다음과 같이 정의한다. \[ \frac{d f}{d X} = \begin{bmatrix} \frac.. 2021. 3. 27.
최소화의 필요조건과 충분조건 다음과 같이 제약조건이 없는 일반적인 함수의 최적화 문제에서, \[ \min_\mathbf{x} f(\mathbf{x}) \] 함수 \(f(\mathbf{x})\)가 \( \mathbf{x}^\star\)에서 로컬(local) 최소값이 되기 위한 필요조건(necessary condition)은 \( \mathbf{x}=\mathbf{x}^\star\)에서 계산한 \(f\)의 그래디언트(gradient)가 \(0\)이 되는 것이다. \[ \nabla_\mathbf{x} f(\mathbf{x}^\star ) = 0 \] 위 조건을 \(\mathbf{x}^\star\)이 최소점이 되기 위한 1차(first order) 필요조건이라고 한다. 사실 위 조건은 로컬 최대점에서도 성립한다. 그럼 또 다른 필요조건이 .. 2021. 1. 10.
스칼라 함수를 벡터로 두번 미분하기 : 헤시안 스칼라 함수의 그래디언트는 벡터다. 그러면 그래디언트를 벡터에 대해 한번 더 미분한다면 행렬이 될 것이다. 이 행렬은 스칼라 함수를 벡터로 두 번 미분하여 얻어진 것으로 헤시안(Hessian)이라고 한다. 수식으로 알아보자. 벡터 \( {\bf x} = \begin{bmatrix} x_1 & x_2 & ... & x_n \end{bmatrix} ^T \)의 구성요소를 변수로 하는 다변수 스칼라 함수 \( f( {\bf x}) \)를 벡터 \( \bf x \)에 대해 미분하면 다음과 같이 된다. \[ \frac{d f}{d {\bf x} } = \begin{bmatrix} \frac{\partial f}{\partial x_1 } \\ \frac{\partial f}{\partial x_2 } \\ \vd.. 2020. 7. 17.