[optimization] Convex

YJCho·2024년 8월 14일

Optimization

목록 보기
1/2

최적화에서 Convex가 그렇게 중요하다고 들은 기억이 있어서 정리해 보려고 한다.

Convex? Convex set?

우선 Convex set이란
기하학 및 최적화 이론에서 중요한 개념으로, 임의의 두 점을 선택했을 때 이 두 점을 연결하는 선분이 항상 그 집합 내부에 포함되는 집합을 말한다.

조금 더 공식적으로 설명하자면,
SS라는 집합이 유클리드 공간 또는 벡터 공간 내에 있다고 할 때, 만약 임의의 두 점 xxyySS에 속한다면, xxyy 사이를 연결하는 모든 점들이 SS에 속하면 SSconvex set이라고 한다.

이를 식으로 표현하면 아래와 같다!

z=λx+(1λ)yz=\lambda x +(1-\lambda)y

단 여기서 λ\lambda0λ10 \leq \lambda \leq 1를 만족하는 실수다

대표적인 Convex set의 예를 찾는다면 2차원 평면에서의 원, 정사각형, 삼각형 등이 있다.

전역 최적해의 보장
Convex 함수에서 최적화 문제를 풀 때, 전역 최적해를 쉽게 찾을 수 있다!

Convex 집합에서 정의된 convex 함수는 극소점이 반드시 전역 최소점임을 보장합니다. 즉, 함수 f(x)f(x)가 convex이고 정의역이 convex 집합 CC라면, f(x)f(x)의 모든 극소점은 동시에 전역 최소점이 된다

이는 최적화 문제를 풀 때, 탐색하는 해가 지역 최적해에 갇히는 문제가 없음을 의미합니다. 이 때문에 convex 함수는 최적화 문제에서 많이 선호된다

그래서 왜 중요한데?

Convex 함수에서는 그 지점에서 미분계수가 0인 것과 최소인 것이 필요충분조건 관계를 가진다

정말 간단하게 말하자면 극소값이 곧 최소값이 되기 때문이다!!

그래서 많은 non-convex 문제들을 convex 문제로 바꾸려는 시도가 많이 있다고 한다.

Convex 에서 local minimum = global minimum인 것을 증명해보자

먼저 f(x)f(x)가 Convex이고 feasible set FF가 Convex이고
f(x)f(x^*) : local minimum, f(x)f(x')는 local minimum이 아닌 최솟값이라고 해보자.

그렇다면 f(x)<f(x)f(x') < f(x^*) 이런 관계가 성립한다고 출발할 수 있다.
또한 convex 조건에 따라 아래의 식이 성립한다.

αx+(1α)xF\alpha x^* +(1-\alpha)x' \in F

f(x)<f(x)f(x') < f(x^*) 이기에 아래와 같은 식이 성립한다.

f(αx+(1α)x)αf(x)+(1α)f(x)f(\alpha x^* +(1-\alpha)x') \leq \alpha f(x^*) + (1-\alpha)f(x')

우변에 f(x)f(x^*)를 더하고 다시 빼주자

f(αx+(1α)x)αf(x)+(1α)f(x)+f(x)f(x)f(\alpha x^* +(1-\alpha)x') \leq \alpha f(x^*) + (1-\alpha)f(x') +f(x^*) -f(x^*)

(1α)(1-\alpha) 항을 기준으로 식을 정리하자

f(αx+(1α)x)f(x)+(1α)(f(x)f(x)f(\alpha x^* +(1-\alpha)x') \leq f(x^*) + (1-\alpha)(f(x') -f(x^*)

여기서 f(x)<f(x)f(x') < f(x^*) 이기에 f(x)f(x)<0f(x') -f(x^*) < 0이다.
또한 0α10 \leq \alpha \leq 1 이기에 (1α)(1-\alpha) 항은 항상 양수를 가진다.

따라서 (1α)(f(x)f(x)(1-\alpha)(f(x') -f(x^*) 항은 항상 음수 값을 가지게 된다.

f(αx+(1α)x)f(x)+(1α)(f(x)f(x)<f(x)f(\alpha x^* +(1-\alpha)x') \leq f(x^*) + (1-\alpha)(f(x') -f(x^*) < f(x^*)

그래서 이와 같은 관계가 성립해야 한다

이제 가장 왼쪽의 식을 보자! α\alpha가 1에 가까워질수록 f(αx+(1α)x)f(\alpha x^* +(1-\alpha)x')식은 f(x)f(x^*)값에 가까워진다. 하지만 이러면 모순이다!

f(x)f(x^*)는 local minimum 값이다. 즉 주변에서 최소값을 가진다는 것이다.
하지만 f(αx+(1α)x)f(\alpha x^* +(1-\alpha)x') 이 식은 xx^*주변을 보니 xx^*보다 더 작은 값이 있다고 말하고 있다.

따라서 기존의 전제, f(x)<f(x)f(x') < f(x^*) 는 모순이 잇다.

여기서 set F가 feasible한 set이란 것이 제일 중요하다.
왜냐하면 이 조건이 없다면 다른 조건에 제약을 받게 되어서 f(x)<f(x)f(x') < f(x^*) 이 식이 성립할 수도 있기 때문이다.

따라서

local minimum point : feasible sol. 중에 주변에서 가장 작게 만드는 것
이라고 정리할 수 있다!


다른 증명 버전

🟦 Convex Function의 정의

함수 f:RnRf: \mathbb R^n \to \mathbb{R}convex하다는 것은, 임의의 x,yx, y Rn\in \mathbb{R}^nλ[0,1]\lambda \in [0, 1]에 대해 다음 부등식이 성립함을 의미한다

f(λx+(1λ)y)λf(x)+(1λ)f(y)f(\lambda x + (1 - \lambda) y) \leq \lambda f(x) + (1 - \lambda) f(y)

이 부등식은 함수 ff의 그래프가 두 점 xxyy를 잇는 직선보다 아래에 있음을 의미합니다. 이런 함수가 convex 함수다

극소값과 최소값의 개념

  • 극소값 (local minimum): 함수 ff의 한 점 xx^*가 극소점이 되려면, xx^*의 어떤 작은 근방에서f(x)f(x)f(x^*) \leq f(x)를 만족하는 xx가 존재해야 한다

  • 최소값 (global minimum): 함수 ff의 한 점 xx^*가 최소점이 되려면, f(x)f(x)f(x^*) \leq f(x)가 모든 xRnx \in \mathbb{R}^n에 대해 성립해야 한다

증명: Convex Function에서 극소값이 최소값이 됨

ff가 convex 함수이고, xx^*ff의 극소점이라고 가정하자,
이제,xx^*가 최소점임을 보이기 위해 xx^*가 최소점이 아니라면 모순이 생긴다는 것을 증명하겠다!

  1. xx^*가 극소점이므로, δ>0\exists \delta > 0에 대해 f(x)f(x)f(x^*) \leq f(x) for all xx<δ\|x - x^*\| < \delta

  2. xx^*가 최소점이 아니라고 가정,
    즉, f(x)>f(y)f(x^*) > f(y)인 어떤 점 yy가 존재한다고 하자

  3. 이제 xx^*yy 사이의 선분을 고려, λ[0,1]\lambda \in [0, 1]에 대해,
    z=λx+(1λ)yz = \lambda x^* + (1 - \lambda) y라 하면, convex 함수의 정의에 따라:

    f(z)λf(x)+(1λ)f(y)f(z) \leq \lambda f(x^*) + (1 - \lambda) f(y)
  4. 0<λ<10 < \lambda < 1인 경우를 고려하면,f(y)<f(x)f(y) < f(x^*)이므로:

    λf(x)+(1λ)f(y)<f(x)\lambda f(x^*) + (1 - \lambda) f(y) < f(x^*)

    따라서 f(z)<f(x)f(z) < f(x^*)가 된다! 이는 zzxx^*의 근방 내에 있으면서도 f(z)<f(x)f(z) < f(x^*)를 만족하게 된다

  5. 그러나, 이는 xx^*가 극소점이라는 가정에 모순이 된다 왜냐하면 극소점에서는 그 근방에서 f(x)f(z)f(x^*) \leq f(z)이어야 하기 때문이다

따라서, xx^*가 convex 함수 ff의 극소점이라면, 그것은 반드시 최소점이 됩니다. 이로써 convex 함수에서는 극소값이 곧 최소값이 된다는 것이 증명되었다


🟦 Convex와 경사하강법

경사하강법(Gradient Descent)은 최적화 문제를 푸는 매우 일반적인 방법입니다. 경사하강법은 함수의 기울기(그래디언트)를 따라 내려가면서 최소점을 찾는 알고리즘입니다. Convex 함수에서 경사하강법이 특히 유용한 이유는 다음과 같습니다:

단일 극소점: Convex 함수는 극소점이 하나뿐이며, 그 극소점이 곧 전역 최소점입니다. 경사하강법을 사용할 때, 초기값에 관계없이 이 전역 최소점에 도달할 수 있습니다. 즉, 경사하강법이 수렴하는 해는 최적해임이 보장됩니다.

효율성: Convex 함수의 성질 덕분에 경사하강법이 비교적 빠르고 안정적으로 수렴합니다. 특히, 강한 convex성(strong convexity)을 갖는 함수에서는 수렴 속도가 더 빨라집니다.

단순성: Convex 함수에서는 경사하강법이 복잡한 최적화 알고리즘 없이도 쉽게 구현할 수 있으며, 그 결과의 신뢰성이 높습니다.

경사 하강법 작동 과정

  1. 초기점 설정: 최적화를 시작할 초기점 x0x_0를 설정

  2. 기울기 계산: 현재 위치 xtx_t에서의 기울기 f(xt)\nabla f(x_t)를 계산합니다.

  3. 갱신: 기울기의 반대 방향으로 한 걸음 나아갑니다. 갱신 식은 다음과 같다

xt+1=xtαf(xt)x_{t+1}=x_t - \alpha \bigtriangledown f(x_t)

여기서 α\alpha는 학습률(learning rate)로, 한 걸음의 크기를 결정

  1. 수렴: 더 이상 크게 변화하지 않을 때까지, 또는 미리 정의된 조건을 만족할 때까지 이 과정을 반복
profile
호로록

0개의 댓글