본문으로 건너뛰기

01. 수학 표기법 — 최적화 언어의 최소 문법

// BACKGROUND 1/6 — set, interval, vector, function, mapping, summation, norm을 같은 방식으로 읽기

최적화 문서는 기호가 많아서 어렵게 보입니다. 하지만 대부분은 “가능한 값의 모음”, “입력을 출력으로 보내는 규칙”, “여러 항을 더하는 방식”, “크기를 재는 방식”을 짧게 쓴 것입니다.

Set과 interval

집합은 원소들의 모음입니다. 예를 들어 xSx \in S는 “xx가 집합 SS의 원소”라는 뜻입니다. 최적화에서는 가능한 후보 전체를 집합으로 표현합니다.

구간은 실수 집합의 연속된 조각입니다.

표기의미끝점 포함 여부
[a,b][a,b]aa 이상 bb 이하둘 다 포함
(a,b)(a,b)aa 초과 bb 미만둘 다 제외
[a,b)[a,b)aa 이상 bb 미만왼쪽만 포함
(a,b](a,b]aa 초과 bb 이하오른쪽만 포함

최적화의 feasible region은 보통 이런 집합 표기로 씁니다.

F={xRngi(x)0, hj(x)=0}.\mathcal{F}=\{x\in\mathbb{R}^n \mid g_i(x)\le 0,\ h_j(x)=0\}.

여기서 F\mathcal{F}는 “모든 제약을 만족하는 후보의 집합”입니다.

Vector

벡터는 여러 숫자를 한 번에 묶은 결정입니다.

x=(x1,x2,,xn)Rn.x = (x_1,x_2,\dots,x_n)^\top \in \mathbb{R}^n.

최적화에서 xx는 대개 decision variable입니다. 예를 들어 공장 설계라면 x1x_1은 길이, x2x_2는 두께, x3x_3은 유량일 수 있습니다.

:::tip 기억할 문장 스칼라 하나를 고르는 문제는 선 위에서 찾는 문제이고, 벡터를 고르는 문제는 공간 안에서 한 점을 찾는 문제입니다. :::

Function and mapping

함수는 입력을 출력으로 보내는 규칙입니다.

f:RnRf:\mathbb{R}^n\to\mathbb{R}

nn차원 벡터를 숫자 하나로 보내는 함수입니다. 목적함수는 보통 이런 형태입니다.

minxRnf(x).\min_{x\in\mathbb{R}^n} f(x).

반대로 F:RnRmF:\mathbb{R}^n\to\mathbb{R}^m은 입력 벡터를 출력 벡터로 보냅니다. 여러 개의 제약이나 시뮬레이션 출력은 벡터값 함수로 보는 것이 자연스럽습니다.

Summation

합 기호는 반복되는 더하기를 압축합니다.

i=1nxi=x1+x2++xn.\sum_{i=1}^{n} x_i = x_1+x_2+\cdots+x_n.

회귀 문제의 평균제곱오차는 보통 이렇게 씁니다.

1ni=1n(yiy^i)2.\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2.

읽는 법은 단순합니다. i=1i=1부터 nn까지 바꿔 넣고 전부 더합니다.

Norm

norm은 벡터의 크기를 재는 함수입니다. 가장 자주 쓰는 것은 Euclidean norm입니다.

x2=x12+x22++xn2.\|x\|_2=\sqrt{x_1^2+x_2^2+\cdots+x_n^2}.

최적화에서는 “얼마나 움직였는가”, “오차가 얼마나 큰가”, “gradient가 충분히 작아졌는가”를 norm으로 판단합니다.

norm정의직관
x1\|x\|_1$\sum_ix_i
x2\|x\|_2ixi2\sqrt{\sum_i x_i^2}직선거리
x\|x\|_\infty$\max_ix_i

최적화 문장을 읽는 법

아래 식을 보세요.

minxRnf(x)subject toAxb.\min_{x\in\mathbb{R}^n} f(x)\quad\text{subject to}\quad Ax\le b.

읽으면 다음과 같습니다.

  1. xx라는 벡터를 고른다.
  2. f(x)f(x)를 작게 만들고 싶다.
  3. 단, AxbAx\le b라는 제약을 반드시 지킨다.
  4. 가능한 xx들의 집합 안에서 가장 좋은 점을 찾는다.

다음: 최적화를 위한 미적분