2017-11-22 17:47:09

오늘은 대칭 행렬 중에서 특수한 케이스인 양의 정부호 행렬(positive definite matrix)에 대해서 정리하려고 한다. 

 

 

나중에 자세히 다루겠지만 양의 정부호 행렬은 아주 유용하게 쓰이는 행렬이다. 대칭 행렬은 실수인 고유값들을 갖는다고 이전 포스팅(http://bskyvision.com/179)에서 설명했었다. 양의 정부호 행렬도 마찬가지로 실수인 고유값들을 갖는데 더 나아가서 그 고유값들이 모두 양수인 친구다

 

양의 정부호(positive definite)의 의미

우선 먼저 변수가 하나인 이차함수에 대해서 생각해보자. 왜 갑자기 생뚱맞게 이차함수에 대해서 살펴보는지 이해가 되지 않을 것이다. 그러나 이차함수의 극점을 찾는 것이 양의 정부호 행렬과 밀접한 관계가 있다는 사실만 알고 쭉 읽어가자. 일단 아래와 같은 이차함수가 있을 때, 언제 극점을 갖고 그 극점의 값은 무엇일까?

 

 

고등학교때 배운 것을 기억해서 풀면, 

 

 

x가 -2일 때 극값 4를 갖는다는 것을 알 수 있다. 이 극값 4는 극소값이면서 또 이 함수의 최소값이다. 미분을 이용해도 언제 극점을 갖는지를 알 수 있다. 우선 x에 대해 한번 미분하면, 

 

 

 

x가 -2일 때 극점을 갖는다는 것을 알 수 있다. x=-2를 

에 대입하면 y=4가 나오므로 점(-2,4)가 극점이고 4가 극값이다. 이 극점이 극소점인지 극대점인지 결정하기 위해서 x에 대해서 두번 미분하면,

 

 

두번 미분한 결과 양수가 나왔으므로 점(-2, 4)는 극소점임을 알 수 있다. 그러니까 일차미분을 통해서 어디에서 극점이 존재하는지를 알 수 있고, 이차미분을 통해서는 그 점이 극소점인지 극대점인지 판단할 수 있다. 

 

그러면 이번에는 변수가 두 개인 이차 함수(이변수함수)를 생각해보자. 

 

 

이와 같은 이변수함수는 극소점 또는 극대점을 가질 수도 있고, 아니면 안장점(saddle point)를 가질 수도 있다. 안장점은 어떻게 보면 극대점인데, 어떻게 보면 극소점인 약간 신비로운 점이다. (안장점은 밑에서 자세히 설명할테니 일단 넘어가자.) 마찬가지로 극소점 또는 극대점 또는 안장점이 어디에서 존재하는지 알려면 일차미분이 0이 되는 점을 찾아야 한다. 변수가 두 개이므로 x, y 각각에 대해서 편미분을 해줘야 한다. 

 

 

위 두 식을 0으로 만드려면 x와 y가 모두 0이어야 한다.  즉, 점(0, 0)에서 극소점 또는 극대점 또는 안장점을 갖는다. 이 점을 정류점(stationary point) 또는 임계점(critical point)이라고 부른다. 즉, 정류점은 극소점, 극대점, 안장점 모두를 포함하는 개념이다. 점(0, 0)을 f(x, y)에 대입하면 0이 나오므로, 0이 극소값 또는 극대값 또는 안장값이다. 그러면 이처럼 변수가 두개인 함수의 정류점이 극소점인지 극대점인지 안장점인지 결정하기 위해서는 어떻게 해야할까? 변수가 하나일 때와 다르게 단순히 이차미분하는 것으로는 결정할 수 없다. 위에서처럼 고등학교때 사용했던 극대점, 극소점 구하던 방식을 이용해보자. 

 

 

두 항 모두 제곱의 형태이므로 0보다 크거나 같다. f(x, y)는 점(0, 0)을 제외하고는 모두 다 0보다 큰 값을 갖는다. 이것을 두고 바로 양의 정부호(positive definite)라고 칭한다. 함수값들이 정류점을 제외하고는 양수로 한정되어 있기 때문이다. 따라서 점(0, 0)은 f(x, y)에서 극소점이면서 최소점이다. 양의 정부호인 경우에는 극소점을 갖는다는 것을 기억하자. (참고로 음의 정부호(negative definite)인 경우에는 극대점, 안장인 경우에는 안장점을 갖는다.) 그래프를 보면 이해가 쉬워진다(그림1).

 

그림1. 함수 f(x, y) = 2x^2 + 4xy + 4y^2의 그래프, 양의 정부호이므로 그래프가 그릇 형태이다. 점(0,0)이 극소점이다.

 

그림1과 같이 양의 정부호인 경우에는 그래프가 그릇과 같은 형태가 된다. 점(0, 0)에서 최소값을 갖고 나머지는 모두 다 0보다 크다. 

 

 

 

이변수함수가 양의 정부호(positive definite), 음의 정부호(negative definite), 안장(saddle) 중에 무엇인지 판단하는 방법

그러면 좀 더 문제를 일반화시켜서 변수가 두 개인 함수(이변수함수)를 아래와 같이 적겠다. 

 

 

이 함수도 역시 제곱항들로만 구성되게 만들어보자.

 

 

그러면 어떤 경우에 함수 f(x, y)가 양의 정부호일까? 우선 a > 0이어야 한다. 그러면 첫번째 항은 점(0, 0)을 제외하고 무조건 0보다 커진다. 또한 두번째 항의 계수도 0보다 커야 한다. 즉 

이어야 한다. 이것을 정리하면, 

 

 

가 된다. 이 두가지만 만족시키면 함수 f(x, y)는 양의 정부호다. 

 

<양의 정부호가 되는 조건>

이면,

은 양의 정부호다. 

 

이번에는 음의 정부호(negative definite)에 대해 알아보자. 음의 정부호는 양의 정부호를 이해했다면 매우 쉽다. 점(0, 0)을 제외하고 모든 점이 음수로 한정되는 함수다. 따라서 점(0, 0)에서 극대값을 가진다. f(x, y)가 음의 정부호가 되려면, 양의 정부호일 때와 반대로 a < 0이 되어야 하고, 

이어야 한다. 

를 정리하면,

 

 

이 된다. 

 

<음의 정부호가 되는 조건>

이면, 은 음의 정부호다. 

 

위에서 양의 정부호였던 

에 -1을 곱하면 음의 정부호인 함수가 된다. 그래프를 통해 음의 정부호인 경우 어떤 형태인지 살펴보자(그림2).

 

그림2. 함수 -2x^2 - 4xy - 4y^2의 그래프, 음의 정부호이므로 그래프가 뒤집어진 그릇 형태이다. 점(0,0)은 극대점이다.

 

 

음의 정부호는 그림2와 같이 그릇이 뒤집어진 형태의 그래프를 갖는다. 또한 점(0, 0)이 극대점이고, 그 외의 모든 점은 음수값을 갖는다. 

 

드디어 안장(saddle)에 대해서 알아볼 시간이다. 양의 정부호든 음의 정부호든 

에서

이었다. 만약 

이라면 어떻게 될까? 이때가 바로 안장점을 갖는 경우다. 아래와 같이 함수를 생각해보자. 

 

 

이는 

에서 a = 1, b = 0, c = -1인 경우다. 따라서 

인 상황이다. 한번 그래프를 그려보겠다(그림3).

 

그림3. 함수 x^2 - y^2의 그래프, 그래프가 말 안장같이 생겨서 안장(saddle)이라고 불린다. 점(0,0)은 안장점이다.

 

그래프를 보니 말 안장같이 생겼다. 이 그래프 모양때문에 이러한 특성의 함수에 안장이라는 이름이 붙여진 것이다. 점(0, 0)에서 안장점을 갖는데, 흥미로운 것은 x축 방향에서 이 그래프를 보면 점(0, 0)은 극소점처럼 보인다. 그런데 y축 방향에서 보면 점(0, 0)은 극대점처럼 보인다. 안장은'이건 극소점도 극대점도 아니여~' 개콘의 유행어가 생각나게 하는 특별한 친구다. 

 

<안장이 되는 조건>

이면, 은 안장이다. 

 

이변수함수 및 다변수함수를 행렬로 표현하기

지금까지 살펴보았던 이변수함수 

로 나타낼 수 있다. 여기서 A는 2x2 대칭행렬이다. 

 

 

그렇다면 어떤 2x2 대칭 행렬을 보면 바로 이 행렬이 양의 정부호인지 음의 정부호인지 아니면 안장인지를 결정할 수 있다. 예를 들어, 

 

 

는 양의 정부호 행렬일까, 음의 정부호 행렬일까, 아니면 안장 행렬일까? a = 2, b = 2, c = 1이므로 a > 0이고 

이다. 따라서 행렬A는 안장 행렬이다. 하나의 예를 더 살펴보자. 

 

 

은 어떤 행렬일까? a<0이고 

이므로, 음의 정부호 행렬이다. 

 

이제 이변수를 넘어서 n개의 변수가 있는 경우로 확장해보자. 

 

 

행렬 A가 3 x 3 이상인 경우에는 방금 이용했던 a의 부호와 ac와 

간의 관계를 이용해서 양의 정부호인지 음의 정부호인지 안장인지 판단할 수 없다. 0벡터인 x를 제외하고 

가 된다면 양의 정부호일 것인데 이것을 어떻게 알 수 있을까?

 

어떤 행렬이 양의 정부호 행렬인지 아닌지 테스트하는 방법

판단하는 방법은 매우 간단하다. 아래의 5가지 중에 아무 테스트나 통과하면 그 행렬은 바로 양의 정부호 행렬이다. 그러므로 행렬을 보고 아래 5가지 중에 가장 계산하기 쉬운 방법을 택하면 된다.

 

<양의 정부호 행렬의 조건>

1. 영이 아닌 모든 실수 벡터 x에 대해서 

을 만족한다.

2. 행렬 A의 모든 고유값들이 0보다 크다.

3. 행렬 A의 모든 서브행렬들(상위 왼쪽 서브행렬들)의 행렬식들이 0보다 크다.

4. 행렬 A의 모든 피봇들이 0보다 크다.  

5.

인 독립 열들을 지닌 행렬 R이 존재한다. 

 

 

>> 왜 이 조건 중에 하나라도 만족하면 행렬A가 양의 정부호 행렬인지 하나씩 증명해보자. 별로 어렵지 않으니 한 번 꼭 읽어보자. 

 

1. 이것은 별도로 증명할 필요가 없다. 단지 양의 정부호 행렬에 대한 정의이기 때문이다. x가 영벡터인 경우를 제외하고 

이어야 양의 정부호이기 때문이다. 

 

2.  행렬 A가 양의 정부호라는(

) 가정 하에 모든 고유값들이 양수가 되는지 먼저 확인해보자.

이므로,

 

이 되는데, 여기서

이 되려면 반드시

가 양수가 되어야 한다. 따라서 행렬 A가 양의 정부호라면 모든 고유값들은 양수이다. 

 

이번에는 반대로 고유값들이 양수라는 가정 하에

를 만족하는지를 살펴보자. 모든 대칭 행렬들은 정규직교인 고유벡터들을 풀세트로 가지고 있다. 그래서 어떤 x이든 그들의 조합으로 표현될 수 있다.

 


그러면,

 

 

이다. 


이므로, 

 

 

이 된다. 모든 고유값들이 양수이므로 자연스럽게

이 만족된다. 쌍방향으로 만족하므로 양의 정부호 행렬은 양의 고유값들을 갖는다는 것이 증명되었다. 

 

3. 행렬 A의 행렬식은 모든 고유값들의 곱이다:

. 두번째 조건에서 증명한 것과 같이 양의 정부호 행렬은 모든 고유값들이 양수이기 때문에 당연히 det(A)도 양수가 된다. 그런데 서브행렬들(상위 왼쪽 서브행렬들)의 행렬식들도 양수가 된다는 것은 어떻게 증명할 수 있을까? 벡터 x의 요소 중 k번째까지는 0이 아니고, 그 이후의 값들은 0인 경우를 생각해보자. 

 

 

결과적으로 A의 모든 서브행렬들(

)이 양의 정부호가 된다. 양의 정부호이므로 모든 조건2에 의해 모든 고유값들이 양수가 되고, 모든 서브행렬의 행렬식들도 모두 양수가 된다.

 

4. 세번째 조건을 통해 양의 정부호행렬에서 모든 서브행렬의 행렬식은 양수라는 것을 증명했다. k번째 피봇은

이므로, 모든 피봇은 양수가 된다. 

 

5. 행렬 A가

로 분해되고 행렬 R이 선형독립인 열벡터들을 가지고 있다면,  

 


와 같이 전개된다. 즉, 

이 되므로, 

을 만족시키는 선형독립인 열벡터들을 가지는 행렬 R이 존재한다면 행렬 A는 양의 정부호이다.  

 

조금은 길었던 증명 파트를 읽으시느라 수고가 많으셨습니다. 그러면 이제 실제로 한번 위의 조건들을 이용해서 행렬들이 양의 정부호인지 아닌지를 판단해보자. 

 

 

가장 간단해 보이는 세번째 방법을 통해 테스트 해보자. 모든 상위 좌측 서브행렬들의 행렬식이 0보다 클까? 하나씩 계산해보자. 

 

 

모든 상위 좌측 서브행렬들의 행렬식이 0보다 크므로 행렬 A는 양의 정부호이다. 고유값을 이용하는 두번째 방법을 통해서 테스트해보자. 모든 고유값들이 0보다 크면 양의 정부호이다. 

 

 

보다시피 모든 고유값들이 양수이다. 따라서 행렬 A는 양의 정부호이다. 

 

정리

지금까지 양의 정부호, 음의 정부호, 안장에 대해서 설명한 후, 어떤 행렬이 양의 정부호인지 아닌지를 판단하는 테스트를 소개했다. 양의 정부호란 0벡터를 제외하고 모든 함수값이 0보다 큰 경우이다(

). 양의 정부호는 극소점을 가지며 그래프의 모양은 그릇 형태이다. 음의 정부호는 반대로 0벡터를 제외하고 모든 함수값이 0보다 작은 경우이다(

). 이때는 극대점을 가지며 뒤집혀진 그릇 형태의 그래프를 갖는다. 안장은 극소점도 극대점도 아닌 안장점을 지닌다. 그래프 형태가 말 안장 같이 생겼기 때문에 안장이다. 

 

어떤 n x n 행렬이 양의 정부호행렬인지 테스트하는 방법은 총 다섯 가지가 있다. 첫번째는 직접 

인지 확인해보는 것이다. 두번째는 모든 고유값들이 양수인지 확인하는 것이다. 세번째는 모든 상위 좌측 서브행렬들의 행렬식이 양수인지 확인하는 것이다. 네번째는 모든 피봇들이 양수인지 확인하는 것이다. 마지막 다섯번째 방법은 

를 만족시키는 행렬 R(선형독립인 열벡터들을 가지는)의 존재 여부를 확인하는 것이다. 이 다섯 가지 테스트 중에 하나만 확인해봐도 행렬이 양의 정부호인지 아닌지를 판단할 수 있다. 

 

관련 글

[선형대수학] 헤시안 행렬과 극소점, 극대점, 안장점

 

참고자료

[1] https://ko.wikipedia.org/wiki/%EC%95%88%EC%9E%A5%EC%A0%90 => 위키백과, 안장점

[2] http://mskyt.tistory.com/79 => 헤시안의 행렬식(ac - b^2)이 0보다 크면 양의 정부호. 

[3] Gilbert Strang, Linear algebra and its applications, 4판, p. 311-320.

[4] http://matrix.skku.ac.kr/2014-Album/Quadratic-form/4.Hessian%20matrix.htm => 헤시안 행렬