Hessian matrix

In mathematics, the Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a scalar-valued function, or scalar field. It describes the local curvature of a function of many variables. The Hessian matrix was developed in the 19th century by the German mathematician Ludwig Otto Hesse and later named after him. Hesse originally used the term "functional determinants".

Specifically, suppose f : ℝn → ℝ is a function taking as input a vector x ∈ ℝn and outputting a scalar f(x) ∈ ℝ; if all second partial derivatives of f exist and are continuous over the domain of the function, then the Hessian matrix H of f is a square n×n matrix, usually defined and arranged as follows:

$\bold H = \begin{bmatrix} \dfrac{\partial^2 f}{\partial x_1^2} & \dfrac{\partial^2 f}{\partial x_1\,\partial x_2} & \cdots & \dfrac{\partial^2 f}{\partial x_1\,\partial x_n} \\[2.2ex] \dfrac{\partial^2 f}{\partial x_2\,\partial x_1} & \dfrac{\partial^2 f}{\partial x_2^2} & \cdots & \dfrac{\partial^2 f}{\partial x_2\,\partial x_n} \\[2.2ex] \vdots & \vdots & \ddots & \vdots \\[2.2ex] \dfrac{\partial^2 f}{\partial x_n\,\partial x_1} & \dfrac{\partial^2 f}{\partial x_n\,\partial x_2} & \cdots & \dfrac{\partial^2 f}{\partial x_n^2} \end{bmatrix}.$

or, component-wise:

$\bold H_{i,j} = \frac{\partial^2 f}{\partial x_i \partial x_j}.$

The determinant of the above matrix is also sometimes referred to as the Hessian.[1]

The Hessian matrix can be considered related to the Jacobian matrix by H(f)(x) = J(∇f)(x).

Mixed derivatives and symmetry of the Hessian

The mixed derivatives of f are the entries off the main diagonal in the Hessian. Assuming that they are continuous, the order of differentiation does not matter (Clairaut's theorem). For example,

$\frac {\partial}{\partial x_i} \left(\frac {\partial f }{\partial x_j} \right) = \frac {\partial}{\partial x_j} \left(\frac {\partial f }{\partial x_i} \right).$

In a formal statement: if the second derivatives of f are all continuous in a neighborhood D, then the Hessian of f is a symmetric matrix throughout D; see symmetry of second derivatives.

Critical points

If the gradient (the vector of the partial derivatives) of a function f is zero at some point x, then f has a critical point (or stationary point) at x. The determinant of the Hessian at x is then called the discriminant. If this determinant is zero then x is called a degenerate critical point of f, or a non-Morse critical point of f. Otherwise it is non-degenerate, and called a Morse critical point of f.

The Hessian matrix plays an important role in Morse theory, because its kernel and eigenvalues allow classification of the critical points.

Second derivative test

The Hessian matrix of a convex function is positive semi-definite. Refining this property allows us to test if a critical point x is a local maximum or a local minimum, as follows.

If the Hessian is positive definite at x, then f attains a local minimum at x. If the Hessian is negative definite at x, then f attains a local maximum at x. If the Hessian has both positive and negative eigenvalues then x is a saddle point for f. Otherwise the test is inconclusive. This implies that, at a local minimum (resp. a local maximum), the Hessian is positive-semi-definite (resp. negative semi-definite).

Note that for positive semidefinite and negative semidefinite Hessians the test is inconclusive (yet a conclusion can be made that f is locally convex or concave respectively). However, more can be said from the point of view of Morse theory.

The second derivative test for functions of one and two variables is simple. In one variable, the Hessian contains just one second derivative; if it is positive then x is a local minimum, and if it is negative then x is a local maximum; if it is zero then the test is inconclusive. In two variables, the determinant can be used, because the determinant is the product of the eigenvalues. If it is positive then the eigenvalues are both positive, or both negative. If it is negative then the two eigenvalues have different signs. If it is zero, then the second derivative test is inconclusive.

Equivalently, the second-order conditions that are sufficient for a local minimum or maximum can be expressed in terms of the sequence of principal (upper-leftmost) minors (determinants of sub-matrices) of the Hessian; these conditions are a special case of those given in the next section for bordered Hessians for constrained optimization—the case in which the number of constraints is zero. Specifically, the sufficient condition for a minimum is that all of these principal minors be positive, while the sufficient condition for a maximum is that the minors alternate in sign with the 1×1 minor being negative.

Bordered Hessian

A bordered Hessian is used for the second-derivative test in certain constrained optimization problems. Given the function f considered previously, but adding a constraint function g such that g(x) = c, the bordered Hessian appears as

$\bold H(f,g) = \begin{bmatrix} 0 & \dfrac{\partial g}{\partial x_1} & \dfrac{\partial g}{\partial x_2} & \cdots & \dfrac{\partial g}{\partial x_n} \\[2.2ex] \dfrac{\partial g}{\partial x_1} & \dfrac{\partial^2 f}{\partial x_1^2} & \dfrac{\partial^2 f}{\partial x_1\,\partial x_2} & \cdots & \dfrac{\partial^2 f}{\partial x_1\,\partial x_n} \\[2.2ex] \dfrac{\partial g}{\partial x_2} & \dfrac{\partial^2 f}{\partial x_2\,\partial x_1} & \dfrac{\partial^2 f}{\partial x_2^2} & \cdots & \dfrac{\partial^2 f}{\partial x_2\,\partial x_n} \\[2.2ex] \vdots & \vdots & \vdots & \ddots & \vdots \\[2.2ex] \dfrac{\partial g}{\partial x_n} & \dfrac{\partial^2 f}{\partial x_n\,\partial x_1} & \dfrac{\partial^2 f}{\partial x_n\,\partial x_2} & \cdots & \dfrac{\partial^2 f}{\partial x_n^2} \end{bmatrix}$

If there are, say, m constraints then the zero in the upper-left corner is an m × m block of zeroes, and there are m border rows at the top and m border columns at the left.

The above rules stating that extrema are characterized (among critical points with a nonsingular Hessian) by a positive-definite or negative-definite Hessian cannot apply here since a bordered Hessian can neither be negative-definite nor positive-definite, as zT H z = 0 if z is any vector whose sole non-zero entry is its first.

The second derivative test consists here of sign restrictions of the determinants of a certain set of n - m submatrices of the bordered Hessian.[2] Intuitively, one can think of the m constraints as reducing the problem to one with n - m free variables. (For example, the maximization of f(x1,x2,x3) subject to the constraint x1+x2+x3 = 1 can be reduced to the maximization of f(x1,x2,1-x1-x2) without constraint.)

Specifically, sign conditions are imposed on the sequence of principal minors (determinants of upper-left-justified sub-matrices) of the bordered Hessian, the smallest minor consisting of the truncated first 2m+1 rows and columns, the next consisting of the truncated first 2m+2 rows and columns, and so on, with the last being the entire bordered Hessian.[3] There are thus nm minors to consider, each evaluated at the specific point being considered as a candidate maximum or minimum. A sufficient condition for a local maximum is that these minors alternate in sign with the smallest one having the sign of (–1)m+1. A sufficient condition for a local minimum is that all of these minors have the sign of (–1)m (in the unconstrained case of m=0 these conditions coincide with the conditions for the unbordered Hessian to be negative definite or positive definite respectively).

Vector-valued functions

If f is instead a vector field f : ℝn → ℝm, i.e.

$\bold f(\bold x) = (f_1(\bold x), f_2(\bold x), \dots, f_m(\bold x)),$

then the collection of second partial derivatives is not a n×n matrix, but rather a third order tensor. This can be thought of as an array of m Hessian matrices, one for each component of f:

$\bold H(\bold f) = (\bold H(f_1), \bold H(f_2), \dots, \bold H(f_m))$

This tensor promptly degenerates to the usual Hessian matrix when m = 1.

Generalizations to Riemannian manifolds

Let $(M,g)$ be a Riemannian manifold and $\nabla$ its Levi-Civita connection. Let $f:M \to \mathbb{R}$ be a smooth function. We may define the Hessian tensor

$\displaystyle \mbox{Hess}(f) \in \Gamma(T^*M \otimes T^*M)$ by $\mbox{Hess}(f):=\nabla \nabla f = \nabla df$,

where we have taken advantage of the first covariant derivative of a function being the same as its ordinary derivative. Choosing local coordinates $\{x^i\}$ we obtain the local expression for the Hessian as

$\mbox{Hess}(f)=\nabla_i\, \partial_j f \ dx^i \!\otimes\! dx^j = \left( \frac{\partial^2 f}{\partial x^i \partial x^j}-\Gamma_{ij}^k \frac{\partial f}{\partial x^k} \right) dx^i \otimes dx^j$

where $\Gamma^k_{ij}$ are the Christoffel symbols of the connection. Other equivalent forms for the Hessian are given by

$\mbox{Hess}(f)(X,Y)= \langle \nabla_X \mbox{grad}f,Y \rangle$ and $\mbox{Hess}(f)(X,Y)=X(Yf)-df(\nabla_XY)$.

Use in optimization

Hessian matrices are used in large-scale optimization problems within Newton-type methods because they are the coefficient of the quadratic term of a local Taylor expansion of a function. That is,

$y=f(\mathbf{x} + \Delta\mathbf{x})\approx f(\mathbf{x}) + \nabla f(\mathbf{x}) \Delta\mathbf{x} + \frac{1}{2} \Delta\mathbf{x}^\mathrm T\mathbf{H}(\mathbf{x}) \Delta\mathbf{x}$

where f is the gradient (f/x1, ..., f/xn). Computing and storing the full Hessian matrix takes Θ(n2) memory, which is infeasible for high-dimensional functions such as the loss functions of neural nets, conditional random fields, and other statistical models with large numbers of parameters. For such situations, truncated-Newton and quasi-Newton algorithms have been developed. The latter family of algorithms use approximations to the Hessian; one of the most popular quasi-Newton algorithms is BFGS.[4]

Such approximations may use the fact that an optimization algorithm uses the Hessian only as a linear operator H(v), and proceed by first noticing that the Hessian also appears in the local expansion of the gradient:

$\nabla f (\mathbf{x} + \Delta\mathbf{x}) = \nabla f (\mathbf{x}) + \mathbf{H}(\Delta\mathbf{x}) + O(\|\Delta\mathbf{x}\|^2)$

Letting Δx = rv for some scalar r, this gives

$\mathbf{H}(\Delta\mathbf{x}) = \mathbf{H}(r\mathbf{v}) = r\mathbf{H}(\mathbf{v}) = \nabla f (\mathbf{x} + r\mathbf{v}) - \nabla f (\mathbf{x}) + O(r^2),$

i.e.,

$\mathbf{H}(\mathbf{v}) = \frac{1}{r} \Bigl[ \nabla f (\mathbf{x} + r\mathbf{v}) - \nabla f (\mathbf{x}) \Bigr] + O(r)$

so if the gradient is already computed, the approximate Hessian can be computed by a linear (in the size of the gradient) number of scalar operations. (While simple to program, this approximation scheme is not numerically stable since r has to be made small to prevent error due to the O(r) term, but increasing it loses precision in the first term.[5])