산에서 가장 낮은 곳을 찾는다고 해 봅시다. 골짜기가 하나뿐인 그릇 모양이라면 계속 내려가기만 하면 바닥에 닿습니다. 골짜기가 여러 개라면 내려간 곳이 진짜 바닥인지 알 수 없습니다. “그릇 모양”을 수학으로 쓴 것이 볼록성이고, 볼록한 문제는 국소 최솟값이 곧 전역 최솟값이라 안심하고 풀 수 있습니다. 최소제곱, 로지스틱 회귀, SVM이 볼록 문제이고, 신경망 학습은 볼록이 아니라서 어렵습니다. 그 차이를 이해하는 것이 이 장의 목표입니다.
1.1 최적화 문제
정의 1.1. 다음 꼴의 문제를 최적화 문제(optimization problem)라 합니다.
x∈Cminf(x)
f를 목적함수(objective function), C를 실행 가능 집합(feasible set)이라 하고, 최솟값을 주는 x∗를 최적해(optimal solution)라 합니다.
최댓값 문제는 −f의 최솟값 문제로 바꿀 수 있으므로 최솟값만 다룹니다.
- f(x∗)≤f(x)가 C의 모든 x에 대해 성립하면 전역 최솟값(global minimum).
- x∗ 근처의 x에 대해서만 성립하면 국소 최솟값(local minimum).
예제 1.2. f(x)=x4−2x2은 x=±1에서 국소 최솟값 −1을 가지며, 둘 다 전역 최솟값입니다. x=0은 국소 최댓값입니다. f(x)=x3−3x는 x=1에서 국소 최솟값을 갖지만 x→−∞에서 끝없이 작아지므로 전역 최솟값이 없습니다.
1.2 볼록집합
정의 1.3. 집합 C의 임의의 두 점 x,y와 0≤θ≤1에 대해 θx+(1−θ)y∈C이면 C를 볼록집합(convex set)이라 합니다.
두 점을 잇는 선분이 집합 밖으로 나가지 않는다는 뜻입니다.
예제 1.4.
- 볼록: 직선, 평면, 원판 {x2+y2≤1}, 반공간 {a⊤x≤b}, 다면체(반공간 여러 개의 교집합).
- 볼록 아님: 원 둘레 {x2+y2=1}, 도넛 모양, 초승달 모양.
정리 1.5. 볼록집합들의 교집합은 볼록집합입니다.
증명. 두 점이 모든 집합에 들어 있으면 그 선분도 각 집합에 들어 있으므로 교집합에도 들어 있습니다. □
그래서 “부등식 제약 여러 개를 동시에 만족하는 점의 집합”은 각 제약이 볼록이면 볼록입니다.
1.3 볼록함수
정의 1.6. 볼록집합에서 정의된 f가 모든 x,y와 0≤θ≤1에 대해
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)
이면 f를 볼록함수(convex function)라 합니다. 0<θ<1이고 x=y일 때 부등호가 엄격하면 순볼록(strictly convex)이라 합니다.
그래프 위의 두 점을 이은 현이 그래프보다 위에 있다는 뜻입니다. 고등학교에서 “아래로 볼록”이라 부르던 것과 같습니다. −f가 볼록이면 f를 오목(concave)이라 합니다.
예제 1.7. x2, ex, ∣x∣, −lnx(x>0)는 볼록입니다. sinx, x3은 볼록이 아닙니다. 일차함수 a⊤x+b는 볼록이면서 오목입니다(등호).
1.4 판정법
정의를 직접 확인하기는 어려우므로 미분으로 판정합니다.
정리 1.8 (1계 조건). 미분가능한 f가 볼록일 필요충분조건은 모든 x,y에 대해
f(y)≥f(x)+∇f(x)⊤(y−x).
접평면이 언제나 그래프 아래에 있다는 뜻입니다. 이 식은 한 점의 그래디언트가 함수 전체에 대한 정보(하한)를 준다는 점에서 중요합니다.
정리 1.9 (2계 조건). 두 번 미분가능한 f가 볼록일 필요충분조건은 모든 x에서 헤세 행렬 ∇2f(x)가 양의 준정부호(positive semidefinite, 모든 고윳값 ≥0)인 것입니다. 일변수이면 f′′(x)≥0입니다.
예제 1.10. f(x,y)=x2+xy+y2의 헤세 행렬은 (2112)이고 고윳값이 1,3이므로 볼록입니다. g(x,y)=x2+3xy+y2은 (2332)의 고윳값이 5,−1이라 볼록이 아닙니다(안장 모양).
예제 1.11 (이차형식). f(x)=21x⊤Ax+b⊤x(A 대칭)의 헤세 행렬은 A입니다. 그러므로 A가 양의 준정부호일 때만 볼록입니다. 최소제곱 ∥Xβ−y∥2은 A=2X⊤X이고, X⊤X는 항상 양의 준정부호라서 볼록입니다.
1.5 볼록성을 지키는 연산
복잡한 함수는 아래 규칙으로 조립해 판정합니다.
- 음이 아닌 가중합: f,g가 볼록이고 a,b≥0이면 af+bg도 볼록.
- 일차변환과의 합성: f가 볼록이면 f(Ax+b)도 볼록.
- 최댓값: f,g가 볼록이면 max(f,g)도 볼록.
예제 1.12.
- 릿지 회귀 ∥Xβ−y∥2+λ∥β∥2: 볼록 두 개의 합.
- ReLU max(0,x)와 힌지 손실 max(0,1−yw⊤x): 일차함수들의 최댓값.
- 로지스틱 손실 ln(1+e−z): 두 번 미분하면 σ(z)(1−σ(z))>0이므로 볼록이고, z=yw⊤x는 일차식이라 규칙 2로 w에 대해 볼록.
반면 신경망은 볼록함수를 여러 번 합성하는데, 볼록함수끼리의 합성은 일반적으로 볼록이 아닙니다. 그래서 신경망의 손실은 볼록이 아닙니다.
1.6 볼록 최적화의 핵심 정리
정리 1.13. 볼록집합 위의 볼록함수에서는 모든 국소 최솟값이 전역 최솟값입니다. 순볼록이면 최적해가 많아야 하나입니다.
증명. x∗가 국소 최솟값인데 f(y)<f(x∗)인 y가 있다고 합시다. 볼록성에서 선분 위의 점 z=θy+(1−θ)x∗는 f(z)≤θf(y)+(1−θ)f(x∗)<f(x∗)를 만족합니다. θ를 아주 작게 하면 z가 x∗에 얼마든지 가까워지므로, 국소 최솟값이라는 가정에 모순입니다. □
1.7 이 장의 요약
- 최적화 문제 = 목적함수 + 실행 가능 집합. 국소 최솟값과 전역 최솟값을 구별합니다.
- 볼록집합: 선분이 안에 머뭄. 볼록함수: 현이 그래프 위.
- 판정: 접평면이 아래(1계), 헤세 행렬이 양의 준정부호(2계).
- 볼록 문제에서는 국소 최솟값 = 전역 최솟값.
쓰이는 곳. 논문에서 “convex”, “the loss is convex in w”, “non-convex optimization”이라는 말은 이 장의 정의를 가리킵니다. 선형회귀·로지스틱 회귀·SVM의 수렴 보장, 신경망 학습이 왜 이론적으로 어려운지에 대한 논의, 제어공학의 볼록 최적화(모델 예측 제어), 신호처리의 압축 센싱이 모두 볼록성 위에 있습니다.
문제
1.1 [개념]
다음 중 볼록함수가 아닌 것은?
- e2x
- ∣x−3∣
- x4
- lnx (x>0)
정답
풀이
(lnx)′′=−1/x2<0이므로 lnx는 오목입니다. 나머지는 이계도함수가 ≥0이거나(1, 3), 일차함수의 절댓값입니다(2).
1.2 [계산] · 확인 문제
f(x,y)=x2+kxy+4y2이 볼록이 되는 k의 최댓값은?
힌트 1
헤세 행렬 (2kk8)이 양의 준정부호이려면 대각성분이 ≥0이고 행렬식이 ≥0이어야 합니다.
정답
풀이
행렬식 16−k2≥0이므로 ∣k∣≤4, 최댓값은 4입니다.
1.3 [계산] · 확인 문제
f(x,y)=3x2+2xy+3y2의 헤세 행렬의 고윳값을 작은 것부터 씁니다.
정답
풀이
헤세 행렬 (6226)의 고윳값은 6±2, 곧 4,8입니다. 모두 양수이므로 순볼록입니다.
1.4 [계산] · 확인 문제
f(x)=x2에 대해, x=1에서의 접선을 이용한 1계 조건의 하한 f(x)+f′(x)(y−x)를 y=4에서 계산합니다.
정답
풀이
1+2(4−1)=7이고, 실제 값 f(4)=16≥7입니다.
1.5 [증명]
f,g가 볼록이면 h=max(f,g)도 볼록임을 보입니다.
풀이
z=θx+(1−θ)y라 하면 f(z)≤θf(x)+(1−θ)f(y)≤θh(x)+(1−θ)h(y)이고, g도 같습니다. 그러므로 둘의 최댓값 h(z)도 같은 상한을 갖습니다.