오늘은 positive definite matrix와 Hessian, 그리고 Convexity에 대해 간단히 다뤄보도록 하겠습니다.
Definition(정의)
우선 정의부터 알아야겠죠, Positive definite matrix는 다음과 같은 정의를 따르는 어떤 행렬입니다.
((x^{T}))((A))((x)) ((>)) ((0)), ((x)) ((\neq)) ((0))
이게 무슨 정의인가 싶습니다. 한 눈에 들어오지도 않고요.
하나하나 뜯어서 살펴보겠습니다.
우리가 내적을 쓸 때, 예를 들어서 ((a))와 ((b))를 내적할 때, 표기는 다음과 같다는 것을 다룬 적이 있습니다.
((a^{T}))((b)) = ((\left | a \right |))((\left | b \right |))((cos\theta))
그러면, 위의 정의를 조금 따로 떼어서 보면, ((x)) 와 ((A))((x))를 내적한 형태라고 볼 수 있습니다.
우리는 두 벡터의 내적을 통해 두 벡터 사이의 각도의 크기를 알 수 있다는 것을 이미 알고 있습니다. 이전 게시물에서도 내적이 0인 경우 두 벡터는 직교한다라는 점을 말씀드린 바 있기도 합니다. 좀 더 들어가면, 내적의 부호에 따라 두 벡터의 사잇각이 예각인지, 직각인지, 둔각인지 알 수 있습니다.

그러면 위의 정의가 무엇을 뜻하는지 조금 감이 오시나요?
일단 ((x))와 ((A))((x)) 간의 사잇각을 다룬다고 어렴풋이 알 수 있습니다. 근데 이게 0 이상이 되어야 하는게 바로 양의 정부호 행렬입니다. 0 이상은 예각에 해당하는 경우입니다.
또한 ((A))((x))는 어떤 벡터 ((x))에 선형변환 ((A))를 가하여 바뀐 벡터를 뜻합니다. 왜 행렬 ((A))인데 이를 선형변환이라고 칭하는지는 반드시 이전 글을 봐보시는 걸 추천드립니다.
https://jaehoonstudy.tistory.com/4
행렬은 선형변환이다.
"Matrix as a Linear Transformation" Matrix is a Linear Transformation. 매우 중요한 말입니다. 오늘은 저번 게시물에서 잠깐 다뤘던 '행렬은 선형변환이다' 라는 말에 대해서 설명해보겠습니다. 먼저 약간 얘기하
jaehoonstudy.tistory.com
종합적으로 정리해보면, "벡터 ((x))에 선형변환 ((A))를 가한 새 벡터와, 벡터 ((x)) 간의 사잇각이 예각이 되도록 하는 행렬 ((A))" 가 positive definte matrix의 정의입니다.
그림을 통해 좀 더 디테일하게 말하자면,

벡터 ((x))가 파란색으로 다음과 같이 존재할 때, ((A))((x))가 저 연두색 기준선을 넘으면 안된다는 뜻입니다.
저걸 넘기지 않게 적당히 선형변환 해주는 ((A))가 positive definite matrix인 것입니다.
분홍색으로 ((A))((x))가 될 경우, ((x^{T}))((A))((x)) ((<)) ((0))이 되어 정의를 만족하지 않게 됩니다. 연두색 선이 ((x^{T}))((A))((x)) ((=)) ((0))인 기준점 같은 느낌이 되는 것이죠.
Positive definite matrix와 Convexity
결론 먼저 말하면,
어떤 함수의 Hessian matrix가 Positive definite matrix일 때, 그 함수는 convex하다는 것입니다.
무슨 소리인지 하나하나 짚어보겠습니다.
Positive definite matrix가 중요한 이유는 Convexity에 이유가 있습니다. 함수가 Convex하다면 Gradient Descent(경사하강법)을 이용한 최적화가 아주 간단해지고, 극소점이나 극대점을 보장받을 수 있기 때문입니다.
함수가 Convex하다라는 뜻은, 볼록하다는 뜻입니다.

이런 식으로 말이죠.
경사하강법에 대해서 아주 간단히만 다루자면, 어떤 문제에서 최적해를 찾기 위해 쓰이는 최적화 기법 중에 하나 입니다.
위 그림처럼 함수가 있을 때, 이를 미끄러져 내려가면서 계속해서 아래로 내려가며 가장 아래의 점을 탐색하는 방법이고, 이 가장 아래 점이 최적해입니다.
결국 위 그림처럼 가장 아래의 점이 딱 1개밖에 없는 convex한 함수는 Gradient descent로 쭉 미끄러져 내려가다 보면 최적해를 찾을 수 있는게 보장이 되어있다는 것입니다.
그런데 어떤 함수의 Hessian matrix가 positive definite matrix일 때, 함수가 convex한 특성을 가지고 있습니다.
Hessian matrix는 또 뭔가요?
어떤 다변수함수의 모든 second partial derivative(2차 편미분계수) 들을 모두 묶어 행렬로 나타낸 것이 바로 Hessian matrix, ((H)) 입니다.
Hessian matrix는 이렇게 구합니다만,

머리에 잘 들어오지 않으니 같이 계산해보면서 구해보겠습니다.

이 함수의 Hessian을 구해보도록 하겠습니다. 이 함수는 다변수함수(multivariate function)입니다. 지금 함수에 ((x)) 와 ((y)) 이렇게 변수가 1개 이상 존재하고 있습니다. 이런 함수를 미분할 때 쓰이는 방법이 편미분입니다.
편미분은 다변수함수의 특정 변수를 제외한 나머지 변수들을 그냥 상수 취급해버리는 방법입니다.
예를 들면, ((x))에 대해 미분하고 싶다면 ((x))를 제외한 나머지들을 전부 상수 취급하고 미분해버리는 것입니다.
미분에서 상수 취급한다는 말은 미분 과정에서 없어진다는 뜻이죠. ((x))에 대해 미분하고 싶은데, 아예 다른 게 나오니 그냥 없는 취급하겠다는 뜻입니다.
그럼 두 번 미분해야하니, 1차 미분부터 한 번 보겠습니다.

이렇게 되겠습니다. ((x))에 대해 미분할 때는, 뒤에 상수항인 ((y^{6}))은 아예 없어졌고, ((-2xy))는 ((x))의 계수가 ((-2y)) 라고 해석되어 ((x))가 없어지고 계수만 남았습니다. ((y))에 대해 미분해줄 때도 마찬가지도 진행됩니다.
그럼 이제 두 번 미분해볼까요?

이렇게 되겠습니다.
((x))에 대해 미분한 걸 ((x))로 미분해준 거, ((x))((x))
((x))에 대해 미분한 걸 ((y))로 미분해준거, ((x))((y))
((y))에 대해 미분한 걸 ((x))로 미분해준 거, ((y))((x))
((y))에 대해 미분한 걸 ((y))로 미분해준 거, ((y))((y))
이런 구성입니다.
그럼 이걸 다시 행렬 형태로 구성해보면,

이렇게 됩니다.
바로 이 행렬이 Hessian matrix입니다. 이게 Positive definite matrix일 때 함수가 convex하다고 할 수 있습니다. 매우 단순하게 말하자면, Hessian matrix가 positive definite이면 최적화가 매우 좋고 편리하고 간단하다! 라고 알아두셔도 좋습니다.
'선형대수' 카테고리의 다른 글
Four Fundamental Subspaces(4개의 주요 부분공간) (0) | 2024.01.28 |
---|---|
Vector Space(벡터공간), Subspace(부분공간) (0) | 2024.01.27 |
Transpose(전치행렬) / Symmetric Matrix(대칭행렬) (1) | 2024.01.26 |
Solving ((A))((x)) ((=)) ((b)) (When ((n)) x ((n))) - part 2 (2) | 2024.01.26 |
Solving ((A))((x)) ((=)) ((b)) (When ((n)) x ((n))) - part 1 (1) | 2024.01.22 |
오늘은 positive definite matrix와 Hessian, 그리고 Convexity에 대해 간단히 다뤄보도록 하겠습니다.
Definition(정의)
우선 정의부터 알아야겠죠, Positive definite matrix는 다음과 같은 정의를 따르는 어떤 행렬입니다.
((x^{T}))((A))((x)) ((>)) ((0)), ((x)) ((\neq)) ((0))
이게 무슨 정의인가 싶습니다. 한 눈에 들어오지도 않고요.
하나하나 뜯어서 살펴보겠습니다.
우리가 내적을 쓸 때, 예를 들어서 ((a))와 ((b))를 내적할 때, 표기는 다음과 같다는 것을 다룬 적이 있습니다.
((a^{T}))((b)) = ((\left | a \right |))((\left | b \right |))((cos\theta))
그러면, 위의 정의를 조금 따로 떼어서 보면, ((x)) 와 ((A))((x))를 내적한 형태라고 볼 수 있습니다.
우리는 두 벡터의 내적을 통해 두 벡터 사이의 각도의 크기를 알 수 있다는 것을 이미 알고 있습니다. 이전 게시물에서도 내적이 0인 경우 두 벡터는 직교한다라는 점을 말씀드린 바 있기도 합니다. 좀 더 들어가면, 내적의 부호에 따라 두 벡터의 사잇각이 예각인지, 직각인지, 둔각인지 알 수 있습니다.

그러면 위의 정의가 무엇을 뜻하는지 조금 감이 오시나요?
일단 ((x))와 ((A))((x)) 간의 사잇각을 다룬다고 어렴풋이 알 수 있습니다. 근데 이게 0 이상이 되어야 하는게 바로 양의 정부호 행렬입니다. 0 이상은 예각에 해당하는 경우입니다.
또한 ((A))((x))는 어떤 벡터 ((x))에 선형변환 ((A))를 가하여 바뀐 벡터를 뜻합니다. 왜 행렬 ((A))인데 이를 선형변환이라고 칭하는지는 반드시 이전 글을 봐보시는 걸 추천드립니다.
https://jaehoonstudy.tistory.com/4
행렬은 선형변환이다.
"Matrix as a Linear Transformation" Matrix is a Linear Transformation. 매우 중요한 말입니다. 오늘은 저번 게시물에서 잠깐 다뤘던 '행렬은 선형변환이다' 라는 말에 대해서 설명해보겠습니다. 먼저 약간 얘기하
jaehoonstudy.tistory.com
종합적으로 정리해보면, "벡터 ((x))에 선형변환 ((A))를 가한 새 벡터와, 벡터 ((x)) 간의 사잇각이 예각이 되도록 하는 행렬 ((A))" 가 positive definte matrix의 정의입니다.
그림을 통해 좀 더 디테일하게 말하자면,

벡터 ((x))가 파란색으로 다음과 같이 존재할 때, ((A))((x))가 저 연두색 기준선을 넘으면 안된다는 뜻입니다.
저걸 넘기지 않게 적당히 선형변환 해주는 ((A))가 positive definite matrix인 것입니다.
분홍색으로 ((A))((x))가 될 경우, ((x^{T}))((A))((x)) ((<)) ((0))이 되어 정의를 만족하지 않게 됩니다. 연두색 선이 ((x^{T}))((A))((x)) ((=)) ((0))인 기준점 같은 느낌이 되는 것이죠.
Positive definite matrix와 Convexity
결론 먼저 말하면,
어떤 함수의 Hessian matrix가 Positive definite matrix일 때, 그 함수는 convex하다는 것입니다.
무슨 소리인지 하나하나 짚어보겠습니다.
Positive definite matrix가 중요한 이유는 Convexity에 이유가 있습니다. 함수가 Convex하다면 Gradient Descent(경사하강법)을 이용한 최적화가 아주 간단해지고, 극소점이나 극대점을 보장받을 수 있기 때문입니다.
함수가 Convex하다라는 뜻은, 볼록하다는 뜻입니다.

이런 식으로 말이죠.
경사하강법에 대해서 아주 간단히만 다루자면, 어떤 문제에서 최적해를 찾기 위해 쓰이는 최적화 기법 중에 하나 입니다.
위 그림처럼 함수가 있을 때, 이를 미끄러져 내려가면서 계속해서 아래로 내려가며 가장 아래의 점을 탐색하는 방법이고, 이 가장 아래 점이 최적해입니다.
결국 위 그림처럼 가장 아래의 점이 딱 1개밖에 없는 convex한 함수는 Gradient descent로 쭉 미끄러져 내려가다 보면 최적해를 찾을 수 있는게 보장이 되어있다는 것입니다.
그런데 어떤 함수의 Hessian matrix가 positive definite matrix일 때, 함수가 convex한 특성을 가지고 있습니다.
Hessian matrix는 또 뭔가요?
어떤 다변수함수의 모든 second partial derivative(2차 편미분계수) 들을 모두 묶어 행렬로 나타낸 것이 바로 Hessian matrix, ((H)) 입니다.
Hessian matrix는 이렇게 구합니다만,

머리에 잘 들어오지 않으니 같이 계산해보면서 구해보겠습니다.

이 함수의 Hessian을 구해보도록 하겠습니다. 이 함수는 다변수함수(multivariate function)입니다. 지금 함수에 ((x)) 와 ((y)) 이렇게 변수가 1개 이상 존재하고 있습니다. 이런 함수를 미분할 때 쓰이는 방법이 편미분입니다.
편미분은 다변수함수의 특정 변수를 제외한 나머지 변수들을 그냥 상수 취급해버리는 방법입니다.
예를 들면, ((x))에 대해 미분하고 싶다면 ((x))를 제외한 나머지들을 전부 상수 취급하고 미분해버리는 것입니다.
미분에서 상수 취급한다는 말은 미분 과정에서 없어진다는 뜻이죠. ((x))에 대해 미분하고 싶은데, 아예 다른 게 나오니 그냥 없는 취급하겠다는 뜻입니다.
그럼 두 번 미분해야하니, 1차 미분부터 한 번 보겠습니다.

이렇게 되겠습니다. ((x))에 대해 미분할 때는, 뒤에 상수항인 ((y^{6}))은 아예 없어졌고, ((-2xy))는 ((x))의 계수가 ((-2y)) 라고 해석되어 ((x))가 없어지고 계수만 남았습니다. ((y))에 대해 미분해줄 때도 마찬가지도 진행됩니다.
그럼 이제 두 번 미분해볼까요?

이렇게 되겠습니다.
((x))에 대해 미분한 걸 ((x))로 미분해준 거, ((x))((x))
((x))에 대해 미분한 걸 ((y))로 미분해준거, ((x))((y))
((y))에 대해 미분한 걸 ((x))로 미분해준 거, ((y))((x))
((y))에 대해 미분한 걸 ((y))로 미분해준 거, ((y))((y))
이런 구성입니다.
그럼 이걸 다시 행렬 형태로 구성해보면,

이렇게 됩니다.
바로 이 행렬이 Hessian matrix입니다. 이게 Positive definite matrix일 때 함수가 convex하다고 할 수 있습니다. 매우 단순하게 말하자면, Hessian matrix가 positive definite이면 최적화가 매우 좋고 편리하고 간단하다! 라고 알아두셔도 좋습니다.
'선형대수' 카테고리의 다른 글
Four Fundamental Subspaces(4개의 주요 부분공간) (0) | 2024.01.28 |
---|---|
Vector Space(벡터공간), Subspace(부분공간) (0) | 2024.01.27 |
Transpose(전치행렬) / Symmetric Matrix(대칭행렬) (1) | 2024.01.26 |
Solving ((A))((x)) ((=)) ((b)) (When ((n)) x ((n))) - part 2 (2) | 2024.01.26 |
Solving ((A))((x)) ((=)) ((b)) (When ((n)) x ((n))) - part 1 (1) | 2024.01.22 |