지난 글에서는 convex의 성질에 대해서 간단히 살펴보았습니다.
또 마지막에 convex의 특징에 대해서 설명드렸습니다. 하지만 일일히 convex의 특징을 찾기엔 비용적으로 어려운 부분이 있으니
Hessian이라는 매트릭스를 이용하여 convex인지 아닌지를 더욱 쉽게 판별할 수 있다고 말씀드리면서 마쳤습니다.
그 방법을 알기전에 convex와 concave를 구분짓는 방법부터 살펴보겠습니다.
(기타 예제 및 그림은 KMOOC의 수업자료를 참조하였습니다.)
Convex , Concave?
미분에 대한 이해가 필요합니다. 자세한 설명은 거의 생략하였습니다.
위의 그림은 Hessian matrix, 2차편미분행렬입니다. 이 행렬은 미분을 통해 함수의 방향성을 나타낼 수 있다고 말할 수 있습니다.
예를 들면 다음 그림과 같습니다.
오른쪽에 보이는 것은 아시는 것과 같이 등고선입니다. 또 여러분은 Gradient가 함수의 이동방향이라고 이해하실 수 있습니다.
그렇다면 이 함수가 가지는 값이 결국 방향을 나타낼 수 있다고 말할 수 있다는 것입니다.
이러한 방향성을 담고 있는 것이 Hessian matrix라고 이해하시면 쉽습니다.
먼저 용어부터 알고 가시겠습니다. 다변수 함수 f(x)를 가질 때,
f(x) is strictly convex over X
-> if its Hessian matrix is positive definite for any x in X
f(x) is convex over X
-> if its Hessian matrix is positive semi-definite for any x in X
f(x) is strictly concave over X
-> if its Hessian matrix is negative definite for any x in X
f(x) is concave over X
-> if its Hessian matrix is negative semi-definite for any x in X
구분은 다음 식의 조건에 따라 달라집니다.
이 식이 (h(x)라고 두겟습니다)
1. if h(x)>0, positive definite
2. if h(x) >= 0, positive semi-definite
3. if h(x) <0, negative definite
4. if h(x) <= 0, negative semi-definite
를 만족하게끔 할 것입니다.
(단일 변수의 경우, α 의 조건으로 결정하게 됩니다. H를 α 로 보시면 됩니다 ^.^)
다변수에서는 예를 들어보도록 하겠습니다. y = [y1, y2]라고 두었을 때,
첫번째 식과 두번째 식은 대입해보면 convex라는 사실을 알 수 있습니다. 하지만 3번쨰는 그렇지 않습니다.
convex와 concave를 결정할 때, 위의 방법과 같이 결정하게 됩니다. 하지만 이 방법은 문제가 있습니다.
일일히 수를 생각해줘야 하므로 비용이 많이 든다는 점입니다. 즉, 모든 y에 대해 전부 검사하기는 상당히 어려운 일입니다.
따라서 우리는 k-th principle minor 방법을 생각해 볼 수 있습니다.
Principal Minor
정의는 이렇습니다.
요약하자면 k번째 소 주행렬이란, 매트릭스 H에서 (n-k)만큼의 행과 열을 제거하고 남는 수의 결정자라고 하네요.
예를 보겠습니다.
소 주행렬(principal minor)을 구하는 것은, (n-k)개의 행과 열을 삭제하는 것에서부터 시작됩니다.
>> matrix H에서 대각행렬은 1st principal minor이 됩니다. (이 때 k 는 2)
>> 행렬 [[1,3], [7,9]](2X2 행렬) 는 2nd principal minor중 하나가 될 것입니다. (k = 1)
>> 전체 행렬은 3번째 소 주행렬이 됩니다.
다음은 선도 주행렬(leading principal minor)에 대해 살펴보겠습니다.
matrix H 가 n by n 이라는 것을 감안하면, 다음 그림과 같이 n개의 선도 주행렬을 가지게 됩니다.
바로 예를 보겠습니다.
행렬
에서
>> Leading principal minors : D1 = a, D2 = ac - b^2 (여기서 D는 determinant)
>> Principal minors : dev1 = a, dev1 = d, dev2 = ac-b^2
(여기서 선도 행렬과 소 주행렬의 차이를 볼 수 있습니다. 선도는 a만 고려하지만 소 주행렬은 a와 c 둘 다 고려하게 됩니다.)
이 됩니다. 거의 마지막에 다왔습니다.
선도 및 소 주행렬식을 구하면 다음과 같은 조건으로 convex와 concave를 구별하게 됩니다.
(여기서 k는 위의 k와 같은 의미를 가집니다)
• 𝑯 is positive definite if and only if 𝐷 > 0 for all leading principal minors (선도 주행렬 판단)
• 𝑯 is positive semi-definite if and only if 𝛥𝑘 ≥ 0 for all principal minors (소 주행렬 판단)
• 𝑯 is negative definite if and only if (−1) 𝑘𝐷 > 0 for all leading principal minors (선도 주행렬 판단)
• 𝑯 is negative semi-definite if and only if (−1) 𝑘𝛥𝑘 ≥ 0 for all principal minors (소 주행렬 판단)
바로 예제를 살펴보고 글을 마치도록 하겠습니다.
(다른 예제는 KMOOC의 수업자료를 참고하시길 바랍니다. 글 길이가 너무 길어져 올리지 않았습니다.)
이 예제에서 함수가 convex인 부분을 원한다면 선도행렬들이 양의 값이 되어야 하겠죠??
따라서 12x1 - 36 >=0 이 되는 x값부터가 convex한 부분이라고 할 수 있겠습니다.
이상으로 convex가 무엇인지 간단하게 살펴보았는데요.
정말 쉽게 생각한다면 위의 선도 주행렬이니 소 주행렬이니 생각하지 마시고,
convex하면 경사(기울기)를 이용한 문제를 풀기 쉽다.
또한, 밥그릇 모양을 생각하시면 됩니다 :)
Reference
KMOOC
'# 기타 공부한 것들 > math' 카테고리의 다른 글
Set theory (0) | 2018.07.26 |
---|---|
Local Minimum, Local Maximum (0) | 2018.06.21 |
Convexity(1) (4) | 2018.06.20 |
Duality Thorey (0) | 2018.06.19 |
RandomSampling과 hypothesis (0) | 2018.06.18 |