최솟값이 어디에 있는지 알려면 먼저 “최솟값이라면 반드시 만족해야 하는 조건”(필요조건)과 “이것만 확인하면 최솟값이라고 말할 수 있는 조건”(충분조건)을 알아야 합니다. 고등학교에서 f′(x)=0을 풀고 f′′의 부호를 본 것을 여러 변수로 넓힌 것이 이 장입니다. 그리고 반복 알고리즘이 얼마나 빨리 수렴할지를 정하는 수, 조건수를 소개합니다.
2.1 1계 필요조건
정리 2.1. f가 미분가능하고 x∗가 (제약 없는) 국소 최솟값이면 ∇f(x∗)=0입니다.
증명. 어떤 방향 d로 ∇f(x∗)⊤d<0이면, 그 방향으로 조금 가면 f가 줄어듭니다. 그래디언트가 0이 아니면 d=−∇f(x∗)가 그런 방향이므로 모순입니다. □
∇f(x)=0인 점을 임계점(critical point) 또는 정류점(stationary point)이라 합니다. 임계점은 최솟값일 수도, 최댓값일 수도, 둘 다 아닌 안장점일 수도 있습니다.
정리 2.2 (볼록이면 충분). f가 볼록이고 미분가능하면, ∇f(x∗)=0은 x∗가 전역 최솟값일 필요충분조건입니다.
증명. 1장 정리 1.8에 ∇f(x∗)=0을 넣으면 모든 y에 대해 f(y)≥f(x∗)입니다. □
2.2 2계 조건
볼록이 아니면 헤세 행렬로 임계점을 분류합니다(다변수 미적분 4장).
정리 2.3. ∇f(x∗)=0일 때 헤세 행렬 H=∇2f(x∗)에 대해
- H가 양의 정부호(고윳값이 모두 양수)이면 순 국소 최솟값,
- 음의 정부호이면 순 국소 최댓값,
- 양수와 음수 고윳값이 섞여 있으면 안장점(saddle point),
- 0인 고윳값이 있으면 이 판정으로는 알 수 없습니다.
예제 2.4. f(x,y)=x3−3x+y2. ∇f=(3x2−3,2y)=0에서 임계점은 (1,0)과 (−1,0). 헤세 행렬 diag(6x,2)는 (1,0)에서 diag(6,2)로 국소 최솟값, (−1,0)에서 diag(−6,2)로 안장점입니다.
고차원에서는 안장점이 국소 최솟값보다 훨씬 흔합니다. 고윳값 n개가 모두 양수일 확률보다 섞여 있을 확률이 훨씬 크기 때문입니다. 딥러닝 이론에서 “학습이 멈추는 곳은 대부분 나쁜 국소 최솟값이 아니라 안장점 근처의 평평한 곳”이라는 주장이 여기서 나옵니다.
2.3 이차함수
가장 중요한 모형 문제입니다. 모든 매끄러운 함수는 최솟값 근처에서 이차함수처럼 보이기 때문입니다(테일러 전개).
정리 2.5. A가 대칭이고 양의 정부호일 때 f(x)=21x⊤Ax−b⊤x의 유일한 최솟값은 x∗=A−1b이고, 최솟값은 −21b⊤A−1b입니다.
증명. ∇f=Ax−b=0에서 x∗=A−1b. 헤세 행렬 A가 양의 정부호이므로 순볼록이고 유일한 최솟값입니다. 대입하면 21b⊤A−1b−b⊤A−1b=−21b⊤A−1b. □
그러므로 “이차함수를 최소화하는 것”과 “연립일차방정식 Ax=b를 푸는 것”은 같은 문제입니다.
예제 2.6. A=(2008), b=(2,4)이면 x∗=(1,21), 최솟값은 −21(2⋅1+4⋅21)=−2입니다.
2.4 강볼록성과 조건수
정의 2.7 (강볼록성과 매끄러움). 두 번 미분가능한 f의 헤세 행렬 고윳값이 모든 점에서 m≤λ≤L(m>0)이면, f를 m-강볼록(strongly convex)이고 L-매끄럽다(smooth)고 합니다. 비 κ=L/m을 조건수(condition number)라 합니다.
- m>0: 그릇이 적어도 이만큼은 휘어 있습니다(바닥이 평평하지 않음).
- L: 그릇이 이보다 가파르게 휘지는 않습니다.
- κ: 그릇이 얼마나 길쭉한가. κ=1이면 동그란 그릇, κ가 크면 좁고 긴 골짜기입니다.
예제 2.8. f(x,y)=x2+50y2은 헤세 행렬 diag(2,100)이므로 m=2, L=100, κ=50입니다. 등위선은 매우 길쭉한 타원입니다.
3장에서 보듯이 경사하강법의 수렴 속도는 κ로 정해집니다. 입력 특성의 크기를 맞추는 정규화(feature scaling)나 배치 정규화가 학습을 빠르게 하는 것은 조건수를 줄이기 때문입니다.
2.5 이 장의 요약
- 국소 최솟값이면 ∇f=0(필요). 볼록이면 이것으로 충분.
- 헤세 행렬의 고윳값 부호로 최소·최대·안장점을 판정합니다.
- 이차함수의 최솟값 x∗=A−1b.
- 조건수 κ=L/m = 그릇이 길쭉한 정도.
쓰이는 곳. “stationary point”, “saddle point”, “ill-conditioned”, “condition number”는 최적화·딥러닝 논문에 자주 나오는 말입니다. 신경망 손실 지형 연구(헤세 행렬의 고윳값 분포), 사전조건화(preconditioning), 입력 정규화가 학습을 안정시키는 이유, 수치해석에서 연립방정식이 얼마나 오차에 민감한지가 이 장의 개념으로 설명됩니다.
문제
2.1 [계산] · 확인 문제
f(x,y)=x2+xy+y2−3x의 임계점을 구합니다.
정답
풀이
∂xf=2x+y−3=0, ∂yf=x+2y=0. 둘째 식에서 x=−2y, 첫째에 넣으면 −3y=3, y=−1, x=2입니다. 헤세 행렬의 고윳값이 1,3이므로 전역 최솟값입니다.
2.2 [개념]
f(x,y)=x2−4xy+y2의 원점은 어떤 점인가요?
- 국소 최솟값
- 국소 최댓값
- 안장점
- 판정할 수 없음
정답
풀이
헤세 행렬 (2−4−42)의 고윳값은 6,−2로 부호가 섞여 있으므로 안장점입니다.
2.3 [계산] · 확인 문제
A=(4223), b=(2,1)일 때 f(x)=21x⊤Ax−b⊤x의 최솟값은?
정답
풀이
Ax=b를 풀면 x∗=(21,0)이고, 최솟값은 −21b⊤x∗=−21⋅1=−21입니다.
2.4 [계산] · 확인 문제
f(x,y)=3x2+2xy+3y2의 조건수 κ는?
정답
풀이
헤세 행렬 (6226)의 고윳값은 4,8이므로 κ=8/4=2입니다.
2.5 [증명]
∇f(x∗)=0이고 헤세 행렬에 음의 고윳값 λ가 있으면, 고유벡터 방향으로 조금 움직일 때 f가 줄어듦을 테일러 전개로 보입니다.
풀이
고유벡터 v(∥v∥=1)에 대해 f(x∗+tv)=f(x∗)+t∇f⊤v+2t2v⊤Hv+o(t2)=f(x∗)+2λt2+o(t2)입니다. λ<0이므로 작은 t=0에서 f(x∗)보다 작아집니다. 그러므로 x∗는 국소 최솟값이 아닙니다.