본문 바로가기
AI 수학/최적화

스칼라 함수를 벡터로 두번 미분하기 : 헤시안

by 깊은대학 2020. 7. 17.

스칼라 함수의 그래디언트는 벡터다. 그러면 그래디언트를 벡터에 대해 한번 더 미분한다면 행렬이 될 것이다. 이 행렬은 스칼라 함수를 벡터로 두 번 미분하여 얻어진 것으로 헤시안(Hessian)이라고 한다. 수식으로 알아보자.

벡터 x=[x1x2...xn]T의 구성요소를 변수로 하는 다변수 스칼라 함수 f(x)를 벡터 x에 대해 미분하면 다음과 같이 된다.

 

dfdx=[fx1fx2fxn]

 

벡터 함수의 벡터 미분 표기에 의하면, 벡터 함수 dfdx를 벡터 x에 대해 미분한다는 표기는 ddx(dfdx)가 된다. 그리고 벡터 함수의 미분 정의에 의하면 헤시안 ddx(dfdx)는 다음과 같이 계산된다.

 

ddx(dfdx)=d2fdx2=[x1(fx1)x1(fx2)x1(fxn)x2(fx1)x2(fx2)x2(fxn)xn(fx1)xn(fx2)xn(fxn)]

 

정의에 의하면 헤시안은 행과 열의 개수가 n인 정방 행렬(square matrix)이다. n은 벡터의 구성 성분의 개수다. 스칼라 함수가 연속이고 미분 가능하면 미분의 순서는 상관없으므로 헤시안은 다음과 같이 대칭 행렬(symmetric matrix)이 된다.

 

ddx(dfdx)=[2fx122fx1x22fx1xn2fx1x22fx222fx2xn2fx1xn2fx2xn2fxn2]

 

예를 들어 보자. 다음과 같은 스칼라 함수가 있을 때,

 

f(r,θ)=rcosθ

 

헤시안 ddx(dfdx)는 다음과 같이 계산된다. 여기서 x=[rθ]이다.

 

ddx(dfdx)=[2fr22frθ2frθ2fθ2]=[0sinθsinθrcosθ]

 

 

 

댓글