[선형대수] Hessian
다변수 스칼라 함수 $f:\mathbb{R}^n\to\mathbb{R}$에 대해, 각 입력 변수에 대한 2차 편미분을 모은 행렬을 헤시안이라고 한다.
헤시안은 그래디언트를 입력 변수에 대해 다시 미분한 것으로 볼 수 있다.
\[H=\nabla_{\mathbf x}^2 f(\mathbf x) \frac{\partial}{\partial \mathbf x} \left( \nabla_{\mathbf x}f(\mathbf x) \right)^{\mathsf T} \tag{15}\]성분으로 표현하면 다음과 같다.
성분으로 표현하면 다음과 같다.
\begin{bmatrix} \dfrac{\partial^2 f(\mathbf x)}{\partial x_1^2} & \dfrac{\partial^2 f(\mathbf x)}{\partial x_1\partial x_2} & \cdots & \dfrac{\partial^2 f(\mathbf x)}{\partial x_1\partial x_n} [6pt] \dfrac{\partial^2 f(\mathbf x)}{\partial x_2\partial x_1} & \dfrac{\partial^2 f(\mathbf x)}{\partial x_2^2} & \cdots & \dfrac{\partial^2 f(\mathbf x)}{\partial x_2\partial x_n}
\vdots & \vdots & \ddots & \vdots [6pt] \dfrac{\partial^2 f(\mathbf x)}{\partial x_n\partial x_1} & \dfrac{\partial^2 f(\mathbf x)}{\partial x_n\partial x_2} & \cdots & \dfrac{\partial^2 f(\mathbf x)}{\partial x_n^2} \end{bmatrix} \in\mathbb{R}^{n\times n}. \tag{16} ]
헤시안의 각 성분은 다음과 같이 나타낼 수 있다.
\frac{\partial^2 f(\mathbf x)} {\partial x_i\partial x_j}. \tag{17} ]
대각 원소
[ \frac{\partial^2 f}{\partial x_i^2} ]
는 변수 (x_i) 방향으로 함수의 기울기가 얼마나 변하는지를 나타낸다.
비대각 원소
[ \frac{\partial^2 f}{\partial x_i\partial x_j} ]
는 변수 (x_j)의 변화가 (x_i) 방향의 기울기에 어떤 영향을 주는지를 나타낸다. 즉, 서로 다른 두 변수 사이의 상호작용을 표현한다.
그래디언트와 헤시안의 관계
그래디언트는 함수의 1차 변화율을 나타낸다.
\begin{bmatrix} \dfrac{\partial f}{\partial x_1}
\vdots
\dfrac{\partial f}{\partial x_n} \end{bmatrix}. \tag{18} ]
헤시안은 이 그래디언트가 입력에 따라 어떻게 변하는지를 나타낸다.
J_{\nabla f}(\mathbf x). \tag{19} ]
즉, 헤시안은 그래디언트 함수의 자코비안이다.
[ \nabla f:\mathbb{R}^n\to\mathbb{R}^n ]
이므로, 그 자코비안인 헤시안의 크기는
[ n\times n ]
이 된다.
2차 근사
입력에 작은 변화 (\Delta\mathbf x)를 주었을 때, 함수는 점 (\mathbf x) 근처에서 다음과 같이 2차 근사할 수 있다.
[ f(\mathbf x+\Delta\mathbf x) \approx f(\mathbf x) + \nabla f(\mathbf x)^{\mathsf T}\Delta\mathbf x + \frac{1}{2} \Delta\mathbf x^{\mathsf T} H_f(\mathbf x) \Delta\mathbf x. \tag{20} ]
여기서
[ \nabla f(\mathbf x)^{\mathsf T}\Delta\mathbf x ]
는 함수의 1차 변화, 즉 기울기에 의한 선형적인 변화를 나타낸다.
반면,
[ \frac{1}{2} \Delta\mathbf x^{\mathsf T} H_f(\mathbf x) \Delta\mathbf x ]
는 함수의 2차 변화, 즉 곡률에 의한 비선형적인 변화를 나타낸다.
따라서 그래디언트가 함수가 어느 방향으로 증가하는지를 나타낸다면, 헤시안은 그 기울기가 각 방향에서 얼마나 빠르게 변하는지를 나타낸다.
헤시안의 대칭성
함수 (f)의 2차 편미분이 연속이라면 혼합 편미분의 순서를 바꿀 수 있다.
\frac{\partial^2 f}{\partial x_j\partial x_i}. \tag{21} ]
따라서 이러한 조건에서는 헤시안이 대칭행렬이 된다.
H_f(\mathbf x)^{\mathsf T}. \tag{22} ]
단, 모든 함수의 헤시안이 무조건 대칭인 것은 아니다. 일반적으로 함수의 2차 편미분이 존재하고 연속이라는 조건이 필요하다.
곡률과 헤시안의 고유값
헤시안의 고유값은 함수가 각 주요 방향에서 휘어진 정도를 나타낸다.
점 (\mathbf x)에서 헤시안의 모든 고유값이 양수이면 함수는 모든 방향으로 위쪽으로 휘어진다.
[ \lambda_i>0 \quad\text{for all }i ]
이 경우 헤시안은 양의 정부호이며, (\nabla f(\mathbf x)=0)이라면 해당 점은 국소 최솟값이다.
헤시안의 모든 고유값이 음수이면 함수는 모든 방향으로 아래쪽으로 휘어진다.
[ \lambda_i<0 \quad\text{for all }i ]
이 경우 헤시안은 음의 정부호이며, (\nabla f(\mathbf x)=0)이라면 해당 점은 국소 최댓값이다.
양수와 음수인 고유값이 모두 존재하면 방향에 따라 위쪽 또는 아래쪽으로 휘어진다. 이 경우 해당 점은 안장점이다.
표기법
헤시안은 일반적으로 다음과 같이 표기한다.
[ H_f(\mathbf x) ]
또는
[ \nabla^2 f(\mathbf x). ]
문맥상 어떤 함수의 헤시안인지 명확하다면 다음처럼 간단히 쓸 수도 있다.
[ H=H_f(\mathbf x). ]
따라서 처음 정의할 때는
\nabla_{\mathbf x}^2 f(\mathbf x)
J_{\nabla f}(\mathbf x) } ]
와 같이 표현하는 것이 가장 명확하다.