본문으로 건너뛰기

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

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

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

Set과 interval​

집합은 원소들의 모음입니다. 예를 들어 x∈Sx \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={x∈Rn∣gi(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:Rn→Rf:\mathbb{R}^n\to\mathbb{R}

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

min⁡x∈Rnf(x).\min_{x\in\mathbb{R}^n} f(x).

반대로 F:Rn→RmF:\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.

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

1n∑i=1n(yi−y^i)2.\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2.

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

Norm​

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

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

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

norm정의직관
∥x∥1\|x\|_1$\sum_ix_i
∥x∥2\|x\|_2∑ixi2\sqrt{\sum_i x_i^2}직선거리
∥x∥∞\|x\|_\infty$\max_ix_i

최적화 문장을 읽는 법​

아래 식을 보세요.

min⁡x∈Rnf(x)subject toAx≤b.\min_{x\in\mathbb{R}^n} f(x)\quad\text{subject to}\quad Ax\le b.

읽으면 다음과 같습니다.

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

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