Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
관리 메뉴

OnlyOne

헤세행렬식(Hessian) 본문

Mathematics/Vector Calculus

헤세행렬식(Hessian)

Taesan Kim 2024. 8. 17. 03:00

헤세행렬식(Hessian)

출처 : MathWorks

 

아 불행히도 나의 컴퓨터는 외장그래픽카드가 없다. 즉 매트랩 3차원 그래프를 돌리기엔 극심한 똥컴(ddong com)인 셈이다. 그래도 괜찮다. 손은 눈보다 빠르니

 

Intro

자 한번 생각해 보자. 당연히 위 그래프를 똥컴 드립이나 치자고 가져왔을 리가 없다. 오늘 우리가 해결할 문제는 위 그래프에서 어떻게 극점들의 좌표를 구할 수 있는가이다.

 

극값 local extreme value, 극점 local extreme point

극점에 대해 이미 고등 미적시간에 배웠을 것이다. 정의는 아주 간단히 이야기하자면 주변과 비교했을 때, 가장 값이 큰 함숫값을 극댓값(local maximum)이라 하고, 그 점은 극대점이라 한다. 반대의 경우엔 극솟값(local minimum), 극소점이라 한다. '주변'이라는 단어가 범위가 모호하여 위 정의가 수학적이지 않다고 느낄 수 있을 테지만, 사실 위 정의를 수학적으로 서술한다고 해도 바뀌는 점은 '주변'의 정의가 그저 극점을 포함하는 '공'으로 변할 뿐, 범위가 엄밀하게 정해지지 않는 것은 마찬가지다. 하지만, 범위는 중요하지 않다. 그저 우리는 그래프를 시각적으로 그리고, 그 그래프에서 유독 튀어나온 지점을 구하고 싶은 것뿐이다. 주변의 범위를 엄밀하게 따지지 않는 것은 아마 내 생각에는 이것을 공학에 사용할 때, 상황에 따라 범위를 임의적으로 정한 뒤, 원하는 극점을 뽑아내는 것이 유용하기 때문인 듯싶다.

 

임계점 critical point

위에서 배웠던 극점은 모두 임계점이다. 그러나 임계점이 모두 극점은 아니다. 즉, 극점은 임계점에 포함되는 개념인 셈이다. 임계점의 정의는 다음과 같다.

 

어떤 점 P에서 f의 기울기벡터의 성분이 모두 0이면 점 P는 f의 임계점이다.

 

안장점 saddle point

그렇다면 임계점이면서 극점이 아닌 점은 어떻게 정의할까? 이것을 안장점이라 한다. 

 

 

최댓값 maximum, 최솟값 minimum

말 그대로이다. 정의역의 모든 점의 함숫값이 최댓값보다 클 수 없고, 최솟값보다 작을 수 없다.

 

 

용어정리

자 그럼 위에 배웠던 용어들의 스키마를 그려보자.

 

용어 스키마

 

 

헤세판정법(Hessian Condition)

최대최소를 구하는 것까지 이미 고등학교 교육과정에서 배웠지만, 다변수함수의 최대최소를 고등학교 때 배웠던 이계도함수를 이용해서 구하는 데에는 복잡함으로 인해 다소 무리가 있다. 다변수함수의 최대최소를 간편하게 구할 수 있도록 해주는 도구가 있다. 그 도구가 바로 헤세판정법이다.

 

헤세행렬(Hessian matrix); 헤세행렬식(Hessian determinant; Hessian)

헤세판정법에 들어가기에 앞서 헤세행렬과 헤세행렬식에 대해 공부하도록 하겠다.

헤세행렬의 (i, j)항은 다음과 같다.

 

만약 이변수의 경우 f(x, y)의 헤세행렬을 구한다고 하면 다음과 같이 표현할 수 있다.

 

이변수함수의 헤세행렬

 

헤세행렬의 determinant가 헤세행렬식이다. 헤세행렬식은 다음과 같이 표현한다. 참고로 determinant는 인풋 크기 또는 넓이에 대한 아웃풋 크기 또는 넓이의 비율이다.

 

Hessian determinant

 

 

헤세판정법

f의 정의역에 속하는 점 P에 대해서 f의 기울기벡터의 성분이 모두 0이 될 때(임계점이 될 때)...

  • Hf(P) > 0, fxx(P) > 0이면 P는 f의 극소점이다.
  • Hf(P) > 0, fxx(P) < 0이면 P는 f의 극대점이다.
  • Hf(P) < 0이면 P는 f의 안장점이다.
  • Hf(P) = 0이면 판별할 수 없다.

헤세판정법의 증명은 후에 다룰 테일러 정리를 통해 증명 가능하다. 그러나 여기서는 생략하도록 하겠다. 물리적으로 보았을 때, 직관적으로 이해를 할 수 있다. Determinent인 헤세행렬식이 0이라면, 아웃풋은 인풋에 비해 차원이 줄어들었으므로, 우리는 아웃풋 값만 보고 인풋값을 알 수 없다. 그래서 Hf(P)가 0이면 P가 어떤 점인지 판별할 수 없다. Hf(P)가 0보다 크다는 것은 fxx와 fyy 즉, 한 방향으로의 2차 미분 기울기가 독립된 두 방향의 미분 기울기보다 크다는 것이므로, 극소점 또는 극대점이 정해질 것이라는 느낌을 받을 수 있다. 만약, 독립된 두 방향의 미분 기울기가 한 방향으로의 2차 미분 기울기보다 크다면, 이것은 극대이면서 극소처럼 보이는 점이 될 것이다. 그래서 이 상황에는 안장점이 존재한다고 이야기하며, 반대 상황에서는 극대 또는 극소점이 존재한다는 것을 직관적으로 알 수 있다. 만약 fxx가 양수라면, 기울기가 증가하고 있으므로, P가 극소점이며, 반대의 경우에는 극대점이라는 점을 알 수 있다.

 

Exercise

1. 다음 함수의 극점, 최대, 최솟값을 구하고, 최솟값을 제1 사분면 위의 x = 0, y = 4, y = 0.5x를 경계로 갖는 삼각형 모양의 닫힌 집합에서 찾아라.

graph

%================================================
%Handong Global University
%------------------------------------------------
%Name:      Taesan Kim
%ID:        22300203
%Create:    2024.08.16
%Modifire:  2024.08.16
%------------------------------------------------
%Plot of exercise 1 graph
%================================================
clc; clear all; close all;

X = struct('start', 0, ...
           'Xs', 0.4, ...
           'stop', 10.0);
X.time = X.start : X.Xs : X.stop;
x = X.time;

Y = struct('start', 0, ...
           'Ys', 0.4, ...
           'stop', 10.0);
Y.time = Y.start : Y.Ys : Y.stop;
y = Y.time;

[X_mesh, Y_mesh] = meshgrid(x, y); 
%x와 y는 벡터이다. surf함수는 xyz모두 행렬이 되여야 하므로
% x와 y에 대한 행렬로 변환시켜야 한다.

f = 2 * X_mesh .* X_mesh + Y_mesh .* Y_mesh - 4*(X_mesh + Y_mesh) + 1;

surf(X_mesh, Y_mesh, f); 
%3차원 곡면 플롯.
%Z행렬에는X-Y평면의 그리드 위 높이로 플로팅.

xlabel('X');
ylabel('Y');
zlabel('f(X,Y)');
title('3D Surface plot of f(X,Y)');

 

위 그래프를 그려주는 Matlab코드이다.

 

풀이

 

2. 원점에서 곡면 z = xy + 5까지의 거리를 구하여라.

 

z = xy + 5

원점과 곡면 사이의 거리는 원점으로부터 곡면 위의 모든 점 사이의 거리의 최솟값이다.

 

아래는 풀이이다.

예제풀이

 

마치며...

이로써 오늘 우리는 다변수함수의 임계점과 극점, 안장점을 구하고, 최대최솟값도 구할 수 있게 되었다. 하하하