"What is the Optimization?"
본 블로그에서 중요하게 다룰 주제 중 하나가 최적화이다.
앞으로 Deep dive into Optimization 에서는 최적화에 대해, 특히 딥러닝 / 머신러닝에서의 최적화에 대해 이야기하고자 한다. 이 시리즈에서는 딥러닝 / 머신러닝에 대한 기본적인 개념들을 이미 알고 있다는 가정 하에 작성하기 때문에 딥러닝을 처음 접하는 입문자라면 Deep dive into Deep learning을 보기를 권한다. 오늘은 간단하게 최적화란 무엇인지에 대해 이야기해보고자 한다.
'최대', '최소'는 우리에게 있어 매우 중요한 개념이다.
나의 이익을 어떻게 최대화할 것인가?나의 비용을 어떻게 최소화할 것인가?주어진 문제를 어떻게 최소한의 비용으로 해결할 것인가?
이는 개인에게 있어서도, 기업에 있어서도, 더 나아가 한 국가의 운영에 있어서도 매우 중요한 의사 결정의 준거틀이다.최적화에서 다루고 있는 것이 위의 문제들이다.
최적화는 주어진 문제 상황 속에서 가장 최선의 해결책, 결과를 얻기 위한 일련의 과정을 의미한다.이를 수학적으로 표현해보자.
$\min_{x \in X} f(x)$
"$f(x)$를 최소화하는 $x$를 찾자"
이것이 결국 최적화 문제이다. 정확히는 수학적 최적화 문제이다.
최소화를 최대화로 바꾸고 싶다면, 다음과 같이 정확히 동치의 문제로 바꿔 표현할 수 있다.
앞으로 최적화 문제는 딥러닝에서의 관습에 따라 최소화 문제로만 국한하여 이야기를 하고자 한다.
$\max_x -f(x)$
그러면 위 수식에 나온 각각의 용어에 대해 정의해보자.
- $f(x)$ : objective function
- $X$ : feasible set
- $x$ : parameter
Objective function (목적 함수)은 최적화의 대상이 되는 함수이다.
당연히 정의된 문제 상황에 따라 다양한 함수들이 그 대상이 될 수 있고, 우리가 이후에 살펴볼 딥러닝에서의 목적 함수는 다른 말로 손실 함수 / 비용 함수 (Loss function, Cost function)이라고도 표현한다.
$x$는 변수이다. 목적 함수의 변수는 하나 혹은 그 이상이며, 실수 값이 될 수도 있고, 벡터가 될 수도 있고 그 이상의 차원에서의 텐서가 될 수도 있다.
$\min$ 아래 부분을 보면, $x$가 집합 $X$ 안에 포함되는 원소라는 수식이 있다. ( $x \in X$) 있다.
이를 제약 조건 (constraint condition) 이라고 한다.
constraint condition이라 함은, 주어진 함수를 최소화하는 '해' (solution) 가 무조건 만족해야 하는 '제약'을 의미한다.
즉, 위 상황에서 함수 $f(x)$를 최소화하는 parameter $x$는 무조건 집합 $X$ 안에 포함된 원소여야 한다.
집합 $X$ 안에 포함되는 것은 주어진 최적화 문제의 '해' (solution)이 되기 위한 필요 조건이기 때문에 이 조건을 만족해야 해가 될 수 있는 자격이 생긴 것이다. 그런 의미에서 집합 $X$는 'feasible set' 이라고 한다.
이 집합 $X$는 유클리드 공간 ($\mathbb{R}^n$)의 어떤 부분집합 (e.g., open set, compact set etc.) 이 될 수도 있고, 또는 Manifold의 부분집합이 될 수도 있고, 상황에 따라 다양하다.
정리해보면, 최적화는 주어진 목적함수를 최소화하는 (혹은 최대화하는) 해의 집합을 찾는 수학적 문제를 의미하고, 이때 해의 집합은 최소한 실현 가능한 해의 집합 (feasible set)의 부분집합이어야 한다.
그리고 위와 같이 constraint condition이 있는 최적화 문제를 Constrained optimization problem이라 하고, constraint condition이 없는 최적화 문제를 Unconstrained optimization problem이라고 한다.
다음 포스팅에서는 딥러닝 / 머신러닝에서 자주 쓰이는 목적 함수에는 무엇이 있는지에 대해 알아보도록 하자.
'Deep dive into Optimization' 카테고리의 다른 글
Deep dive into optimization : Gradient descent - Updated (0) | 2023.03.20 |
---|---|
Deep dive into optimization: Gradient descent - Updated (0) | 2023.03.16 |
Deep dive into optimization: Convexity - Updated (0) | 2023.03.11 |
Deep dive into optimization part 3 - Updated (0) | 2023.03.08 |
Deep dive into optimization part 2. 손실함수와 최적화 (Updated) (2) | 2023.03.06 |
댓글