Convex 최적화(1): Convex Function, Set
4 min readDec 18, 2019
어떤 주어진 조건에 대해 목적함수를 최대/최소화하는 문제를 Optimization 문제(Optimization Programming)이라고 부른다. 주어진 Optimization 문제의 특성에 따라서 Linear Program Optimization, Integer Program Optimization, Convex Optimization 등의 하위 분류로 나뉘어진다.
- 이 중 Convex Optimization은 목적함수 및 제약 조건 함수가 Convex Function에 속하며, 동시에 문제의 범위에 해당하는 Domain이 Convex Set으로 정의된 경우에 해당한다.
Convex Function
- 흔히들 Convex에 대한 이야기를 꺼낼 때, 가장 먼저 떠올리게 되는 개념이 Convex function이다. 흔히들 볼록 함수라고 말하는 함수인데, 아래 그래프를 보면 아래로 볼록한 형태를 띄고 있는 것을 확인할 수 있다. 위로 볼록인 경우도 Convex 아니냐?라고 반문할 수 있겠으나, 정의가 그러하다. 위로 볼록한 함수는 아래로는 ‘오목’한 함수이고, 그에 따라 Concave function이라 정의되어 있다. Concave function의 경우 함수 값에 부호만 바꿔 취해준 형태에 해당하므로, 쉽게 Convex function으로 바꾸어 활용 가능하다.
- 함수의 범위를 x1에서 x2 사이로 한정지어 살펴본다고 할 때, f(x1)과 f(x2)를 이은 직선을 우선 상정해보자(l이라 부르겠다). 위 그림에서 볼 수 있듯 x1과 x2사이의 모든 값에 대해 f(x)가 l보다 작은 값을 갖게 된다.
- 수식으로 표현하면, 아래와 같다.
- (우변의 f 안에 들어간 함수 형태는 Convex combination이라는 형태로 자주 보게될 형태다.)
- 정의 자체는 꽤나 간단한 편이다. 앞으로 Optimization 문제 내에서 사용되는 함수의 모양이 위와 같은 특성을 갖게 될 경우, Convex Optimization 문제의 특성을 갖게 될 가능성이 높다. 추가로 필요한 조건은 아래에서 살펴볼 Convex set에 대한 조건이다.
Convex Set
- Convex set은 흔히 말하는 ‘볼록’ 개념은 없다고 볼 수 있다.( Set이 바깥으로 볼록하다던가…라는 식의 주장은 펼 수 있겠으나.)
- Convex Set의 정의는 Set 내에 포함된 두 점을 이었을 때, 그 선분 내에 모든 점이 해당 Set 내에 포함된다는 것이다.
- 그림으로 예시를 들여다보면, Set에 음푹 패인 부분이 없다고 한다면, Convex Set에 해당한다고 쉽게 판단할 수 있다.
- Convex function과의 연결점도 존재하는데, 만일 함수가 Convex function이라면, 그 epigraph(함수 위에 해당하는 area)는 항상 Convex set의 성질을 갖게 된다.
Optimization 문제 내에 포함된 모든 함수(목적 함수 및 제약조건 식)가 convex function이고, 그 함수들이 정의되는 Domain이 Convex set의성질을 만족한다면, 해당 문제는 Convex Optimization 문제가 된다.