근데 이제 헤시안행렬과 볼록성을 곁들인...(볼록성은 진짜 곁들이기만한)
개념의 연결고리
quadratic form - definitiveness - hessian - convexity
keyword
- quadratic form/formula : 이차형식 (사실, 근의 공식)
- definitiveness of matrix : 정부호 행렬
-------------------------------------------------
- hessian matrix
- convexity
목차
hessian matrix
definitiveness와의 관계
EIGENVALUE와의 관계
convexity
definition
딥러닝에서 중요한 이유
HESSIAN MATRIX
위키피디아에 따르면, 헤시안 행렬은 어떤 함수의 이계도함수(2차 미분)를 행렬로 표현한 것이다.
고등학생이 되면, 이차방정식의 미분에서의 이차 미분 결과를 통해 그 함수가 위로 볼록인지 아래로 볼록인지 , 극대/극소 여부를 판정할 수 있게 된다. 같은 맥락에서, 헤시안 행렬도 다변수 함수가 극값을 가질 때, 그 값이 극대인지, 극소인지 판정할 때 사용된다. 차이가 있다면, 우리가 고딩 때 배운 이차방정식은 일변수 함수이고, 헤시안 행렬을 통해 다변수 함수의 이계도 함수를 나타낼 수 있다는 것이다.
헤시안 행렬의 꼴을 살펴보면, 대각성분을 중심으로 같은 값을 가지고 있음을 알 수 있다. 정확히 말하면, 함수 f의 이계도 함수가 "연속"일 때, 헤시안 행렬은 대칭행렬이 된다.
극값 판정 여부로 바로 들어가기 전에...
사실, 고딩 때 배운 미분지식에서, 우리는 2차 미분계수의 부호에 따라 함수의 오목성/볼록성을 판단했었다. 이를 통해, 헤시안 행렬의 고유값을 통해 concavity/convextiy도 함께 판별할 수 있음을 유추할 수 있다. 또, 함수의 특정점에서의 이계도함수(혹은 2차 미분계수)의 크기가 크다는 것은 함수의 형태가 더 볼록하다는 의미를 갖는다 (https://angeloyeo.github.io/2020/06/17/Hessian.html)
그렇다면, 이 헤시안 행렬이 어떤 값을 가질 때 극값을 판별할 수 있을까? 이를 위해서는 지난번 배운 definitiveness와의 관계를 먼저 살펴보아야 한다.
DEFINITIVENESS와의 관계
함수 f의 이계도함수가 연속일 때, 헤시안 행렬을 대칭행렬이 되는 것을 앞서 확인했다. 여기에 스펙트럼 정리를 사용하여 헤시안 행렬을 직교 대각화하면 다음과 같다.
이 헤시안 행렬의 고윳값의 부호에 따라 quadratic form의 definitiveness를 판별한다.
- 헤시안 행렬의 고윳값이 모두 양수이면, quadratic form은 positive definite이고, 임계점은 극소값이다. (고유값에 0이 섞여있다면 positive semi-definite 이 되고, 임계점은 local minima 혹은 saddle point가 된다)
- 헤시안 행렬의 고윳값이 모두 음수이면, quadratic form은 negative definite이고, 임계점은 극대값이다. (고유값에 0이 섞여있다면 negative semi-definite 이 되고, 임계점은 local maxima 혹은 saddle point가 된다)
- 헤시안 행렬의 고윳값에 양수와 음수가 섞여있으면, quadratic form은 indefinite이고, 임계점은 안장점 (saddle point) 이다.
이해를 돕기 위해, 지난 포스팅의 그림을 발췌해왔다.
EIGENVALUE와의 관계
공돌이님의 글을 많이 참고했습니다.
위에서 고유값에 따른 극값 판정을 알아보았다. 이를 좀더 직관적으로 풀어내보자.
헤시안 행렬은 어떤 함수에 대한 이계도함수를 행렬로 나타낸 것이라고 했다. "함수" 라는 단어를 보면 행렬의 "사상(mapping)"이라는 단어가 떠오르지 않는가? 즉, 어떤 함수의 2차 미분을 행렬에 대한 선형 변환 사상으로 해석해보자는 것이다.
그 다음, 이 선형변환의 고유값, 고유벡터를 구했다고 하자. 고유벡터는 선형변환을 해도 방향이 변하지 않는 벡터이며, 고유값은 선형변환 후 그 벡터가 변한 크기를 의미한다. 원 행렬을 헤시안행렬을 통해 선형 변환 시켰을 때, 원행렬과 비교해서 더 늘어나고, 줄어든 부분이 있을 것이고 이를 고유값이 표현해줄 것이다. 고유값이 더 큰 부분은 더 볼록할 것이다.
마지막으로, 변형된 결과 행렬의 모양을 보고, 우리는 함수의 오목/볼록성을 파악할 수 있었다. 그 뿐인가, 극대/극소/안장점을 판정할 수 있었다.
DEFINITION
볼록 집합(convex set)은 임의의 두 점을 잇는 선분을 포함하는, 유클리드 공간의 부분 집합이다.
임의의 두 점에 대해 그 함수값보다 크거나 같은 점들의 집합이 항상 볼록 집합인 경우 그 함수를 볼록함수라고 정의하기도 한다.
위키피디아에 따르면, 볼록함수는 임의의 두점을 이은 할선이 두점을 이은 곡선보다 위에 있는 함수이다. 위의 볼록집합의 정의를 기억하고 있다면, 볼록함수의 정의 또한 유추할 수 있을 것이다.
특히 두번 미분가능한 일변수 함수는 이차 도함수가 정의역 전체에서 음수가 아닐 때에만 볼록 함수이다 -> 앞서 배운 것을 다시 떠올리면, 헤시안 행렬의 고유값 부호가 모두 양수일 때 볼록 함수이다.
딥러닝에서 CONVEXITY가 중요한 이유
이 글을 참고하였습니다.
왼쪽과 같은 손실함수가 convex function일 때, global minima가 단 하나 존재하기 때문에 우리는 gradient descent 방법을 통해 빠르게 수렴할 수 있다.
이와 반대로 non-convex의 경우, local minima가 존재하고, 초깃값에 따라 local minima에 빠져 손실을 최소화하지 못할 위험이 있다.
나중에 읽어보면 좋을 글
https://hyunlee103.tistory.com/98
참고자료
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sw4r&logNo=221157302215
https://medium.com/sho-jp/linear-algebra-101-part-8-positive-definite-matrix-4b0b5acb7e9a