1.2 수열과 집합의 합과 곱

데이터를 분석하기 위해서는 많은 숫자의 합이나 곱을 계산해야 한다. 따라서 숫자의 합과 곱을 나타내는 수학 기호에 익숙해지는 것은 데이터 분석의 첫걸음이다. 이 절에 나온 기호와 수식들은 앞으로 계속 반복하여 나오므로 반드시 외우고 손으로 여러 번 쓰기를 바란다.

수열

수열(sequence)은 \(N\)개 숫자 또는 변수가 순서대로 나열된 것이다. 다음은 수열의 예다.

\[ \begin{align} 1, 2, 3, 4 \tag{1.2.1} \end{align} \]
\[ \begin{align} x_1, x_2, x_3, x_4, x_5, x_6 \tag{1.2.2} \end{align} \]

문자에 붙은 아래 첨자는 순서를 나타내는 숫자로서 인덱스(index)라고 부른다.

수열이 아주 길거나 수열의 길이가 숫자가 아닌 문자인 경우에는 \(\ldots\)(dots) 기호를 사용하여 다음처럼 가운데 부분을 생략할 수 있다.

\[ \begin{align} x_1, x_2, \ldots, x_N \tag{1.2.3} \end{align} \]

집합

순서가 중요하지 않은 숫자들은 집합(set)으로 표시한다.

\[ \begin{align} \{ 1, 2, 3, 4 \} \tag{1.2.4} \end{align} \]
\[ \begin{align} \{ x_1, x_2, x_3, x_4, x_5, x_6 \} \tag{1.2.5} \end{align} \]

집합에서도 원소가 많으면 가운데를 생략할 수 있다.

\[ \begin{align} \{ x_1, x_2, \ldots, x_N \} \tag{1.2.6} \end{align} \]

데이터 분석에서는 1부터 \(N\)까지의 수열 또는 집합이 자주 나오기 때문에 위에서 사용한 기호 대신 다음과 같이 더 간단한 기호를 쓰는 경우도 많다.

\[ \begin{align} x_{1:N} \tag{1.2.7} \end{align} \]
\[ \begin{align} \{ x_i \}_N \tag{1.2.8} \end{align} \]

집합에 알파벳 대문자로 이름을 붙일 수도 있다. 데이터 분석에서 자주 나오는 집합 중의 하나는 1, -2, 3.14와 같은 실수(real number) 전체의 집합이다. 실수 집합은 \(\mathbf{R}\)이라는 이름을 가진다. 어떤 숫자 \(x\)가 실수이면 집합 \(\mathbf{R}\)에 포함되므로 다음과 같은 기호로 나타낸다.

\[ \begin{align} x \in \mathbf{R} \tag{1.2.9} \end{align} \]

만약 두 개의 숫자로 이루어진 숫자 쌍 \((x_1, x_2)\)가 있고 각각의 숫자 \(x_1\), \(x_2\)가 모두 실수라면 다음처럼 표시한다.

\[ \begin{align} (x_1,x_2) \in \mathbf{R} \times \mathbf{R} \tag{1.2.10} \end{align} \]

또는

\[ \begin{align} (x_1,x_2) \in \mathbf{R}^2 \tag{1.2.11} \end{align} \]

수열의 합과 곱

다음 기호는 수열을 더하거나 곱하는 연산을 짧게 줄여 쓴 것이다. 그리스 문자의 시그마(\(\Sigma\))와 파이(\(\Pi\))를 본따서 만든 기호지만 시그마와 파이로 읽지 않고 영어로 썸(sum), 프로덕트(product)라고 읽는다. 합과 곱 기호 아래에는 인덱스의 시작값, 위에는 인덱스의 끝값을 표시한다. 곱셈은 알파벳 x와 혼동될 수 있기 때문에 \(a \times b\)가 아니라 \(a \cdot b\)와 같이 점(dot)으로 표시하거나 아예 생략한다.

\[ \begin{align} \sum_{i=1}^N x_i = x_1 + x_2 + \ldots + x_N \tag{1.2.12} \end{align} \]
\[ \begin{align} \prod_{i=1}^N x_i = x_1 \cdot x_2 \cdot \ldots \cdot x_N \tag{1.2.13} \end{align} \]

더하기나 곱하기를 반복해서 써야할 때는 합과 곱 기호를 사용하면 수식이 간결하고 명확해진다.
예를 들어 1부터 4까지 더해야 하는 경우에는 다음처럼 쓴다.

\[ \begin{align} \sum_{i=1}^4 i = 1 + 2 + 3 + 4 \tag{1.2.14} \end{align} \]

만약 10부터 90까지 10씩 증가하는 수열을 모두 더해야 한다면 다음처럼 쓴다.

\[ \begin{align} \sum_{k=1}^9 10k = 10\cdot 1 + 10\cdot 2 + \cdots + 10\cdot 9 = 10 + 20 + \cdots + 90 \tag{1.2.15} \end{align} \]

곱셈도 마찬가지이다. 다음은 10부터 20까지의 수를 모두 곱하는 식이다.

\[ \begin{align} \prod_{i=10}^{20} i = (10) \cdot (11) \cdot \cdots \cdot (20) \tag{1.2.16} \end{align} \]

합이나 곱을 중첩하여 여러 번 쓰는 경우도 있다. 합과 곱을 중첩하여 쓸 때는 다음처럼 괄호를 생략할 수 있다. 합이나 곱이 중첩된 경우에는 인덱스가 여러 개가 된다.

\[ \begin{align} \sum_{i=1}^N \left( \sum_{j=1}^M x_{ij} \right) = \sum_{i=1}^N \sum_{j=1}^M x_{ij} \tag{1.2.17} \end{align} \]

다음은 합과 곱을 중첩한 수식의 예이다.

\[\begin{split} \begin{align} \begin{aligned} \sum_{i=1}^2 \sum_{j=1}^3 ( i+j ) &= \sum_{i=1}^2 \left( \sum_{j=1}^3 ( i+j ) \right) \\ &= \sum_{i=1}^2 \big( (i+1) + (i+2) + (i+3) \big) \\ &= \big((1 + 1) + (1 + 2) + (1 + 3)\big) + \big((2 + 1) + (2 + 2) + (2 + 3)\big) \end{aligned} \tag{1.2.18} \end{align} \end{split}\]
\[\begin{split} \begin{align} \begin{aligned} \prod_{m=1}^3\prod_{n=1}^2 (m + 2n) &= \prod_{m=1}^3 \left( \prod_{n=1}^2 (m + 2n) \right) \\ &= \prod_{m=1}^3 \big( (m + 2 \cdot 1) \cdot (m + 2 \cdot 2) \big) \\ &= \big( (1 + 2 \cdot 1) \cdot (1 + 2 \cdot 2) \big) \cdot \big( (2 + 2 \cdot 1) \cdot (2 + 2 \cdot 2) \big) \cdot \big( (3 + 2 \cdot 1) \cdot (3 + 2 \cdot 2) \big) \end{aligned} \tag{1.2.19} \end{align} \end{split}\]

거듭 강조하지만 수학 공부는 눈으로 읽기만 하고 손으로 쓰지 않으면 아무런 의미가 없다. 지금까지 나온 수식을 꼭 손으로 반복하여 쓰면서 의미를 익히기 바란다.

연습 문제 1.2.1

다음 수식을 풀어 써라. 이 수식들은 이후에 머신러닝 모형에 등장할 수식이다.

(1) 이 식은 분류 모형 중의 하나인 서포트 벡터 머신(support vector machine) 모형에 나온다. $\( \begin{align} \sum_{i=1}^3\sum_{j=1}^3 a_i a_j y_i y_j x_i x_j \tag{1.2.20} \end{align} \)$

(2) 이 식은 특잇값 분해(singular value decomposition)에 나온다. $\( \begin{align} \sum_{k=1}^3 \sum_{i=1}^3 \sigma^2_i (v_iw_k)^2 \tag{1.2.21} \end{align} \)$

(3) 이 식은 카테고리 분포(categorical distribution)의 추정에 사용된다. $\( \begin{align} \prod_{i=1}^4 \prod_{k=1}^4 \theta_k^{x_{i,k}} \tag{1.2.22} \end{align} \)$

(4) 가우시안 혼합 모형(Gaussian mixture model)에 다음과 비슷한 수식이 나온다. $\( \begin{align} \prod_{i=1}^4 \sum_{k=1}^2 \pi_k x_i \mu_k \tag{1.2.23} \end{align} \)$

연습 문제 1.2.2

수열의 곱은 여러개의 값 중 하나를 선택하는 경우에도 쓰일 수 있다. 수열 \(x_i\)가 다음과 같다고 하자.

\[ \begin{align} x_i : x_1, x_2, x_3, x_4 \tag{1.2.24} \end{align} \]

이 값 중 하나만 선택하고 싶다면 다음처럼 모두 0이고 하나만 1인 수열 \(y_i\)를 사용하면 된다.

\[ \begin{align} y_i : 0, 1, 0, 0 \tag{1.2.25} \end{align} \]

(1) \(x_i\)\(y_i\)가 위와 같을 때 다음 값을 계산하라.

\[ \begin{align} \prod_i x_i^{y_i} \tag{1.2.26} \end{align} \]

(2) 만약 수열 \(y_i\)에서 \(y_3=1\)이고 나머지값이 0이라면 답이 어떻게 달라지는가?

수열의 합과 곱 연산은 다음과 같은 성질을 가지고 있다.

(1) 인덱스 문자가 바뀌어도 실제 수식은 달라지지 않는다.

\[ \begin{align} \sum_{i=1}^N x_i = \sum_{j=1}^N x_j \tag{1.2.27} \end{align} \]

(2) 상수 \(c\)를 곱한 후에 합을 한 결과는 먼저 합을 구하고 상수를 곱한 것과 같다.

\[ \begin{align} \sum_{i=1}^N cx_i = c\sum_{i=1}^N x_i \tag{1.2.28} \end{align} \]

(3) 더해야 하는 값들이 여러 항의 합으로 되어 있으면 각각의 합을 먼저 구한 후에 더해도 된다.

\[ \begin{align} \sum_{i=1}^N (x_i + y_i) = \sum_{i=1}^N x_i + \sum_{i=1}^N y_i \tag{1.2.29} \end{align} \]

(4) 합이나 곱을 중첩하는 경우에는 중첩의 순서를 바꾸어도 결과가 같다.

\[ \begin{align} \sum_{i=1}^N \sum_{j=1}^M = \sum_{j=1}^M \sum_{i=1}^N \tag{1.2.30} \end{align} \]
\[ \begin{align} \prod_{i=1}^N \prod_{j=1}^M = \prod_{j=1}^M \prod_{i=1}^N \tag{1.2.31} \end{align} \]

예를 들어 다음 두 식은 항들의 순서만 바뀌었고 그 합은 같다는 것을 알 수 있다.

\[ \begin{align} \sum_{i=1}^2 \sum_{j=1}^3 x_{ij} = (x_{11} + x_{12} + x_{13}) + (x_{21} + x_{22} + x_{23}) \tag{1.2.32} \end{align} \]
\[ \begin{align} \sum_{j=1}^3 \sum_{i=1}^2 x_{ij} = (x_{11} + x_{21}) + (x_{12} + x_{22}) + (x_{13} + x_{23}) \tag{1.2.33} \end{align} \]

연습 문제 1.2.3

다음 두 식의 좌변과 우변이 같음을 증명하라. (힌트: 등호의 왼쪽과 오른쪽 각각의 식을 풀어서 같아짐을 보인다.) 이 수식들은 선형대수에서 벡터 및 행렬의 곱에 유용하게 사용된다.

(1)

\[ \begin{align} \left( \sum_{i=1}^3 x_i \right)^2 = \sum_{i=1}^3 \sum_{j=1}^3 x_i x_j \tag{1.2.34} \end{align} \]

(2)

\[ \begin{align} \sum_{i=1}^3 \sum_{j=1}^3 x_i y_{ij} = \sum_{i=1}^3 \left( x_i \sum_{j=1}^3 y_{ij} \right) \tag{1.2.35} \end{align} \]

집합의 합과 곱

수열이 아니라 집합의 원소들의 합과 곱을 구할 때는 인덱스 대신 집합 기호를 사용한다.

만약 집합 \(X\)의 원소가 다음과 같다면,

\[ \begin{align} X = \{ x_1, x_2, x_3 \} \tag{1.2.36} \end{align} \]

이 집합의 원소의 합과 곱은 다음처럼 표시한다. 이 때는 합과 곱 기호 안에 인덱스가 없다.

\[ \begin{align} \sum_X x = x_1 + x_2 + x_3 \tag{1.2.37} \end{align} \]
\[ \begin{align} \prod_X x = x_1 \cdot x_2 \cdot x_3 \tag{1.2.38} \end{align} \]

원소 중에서 특정한 조건을 가진 원소만 포함시키거나 제외하여 합과 곱을 구하는 경우도 있다. 이 때는 인덱스 위치에 조건을 표시한다. 예를 들어 다음 식은 집합 \(X\)의 원소 중 0이 아닌 것만 곱한 값을 뜻한다.

\[ \begin{align} \prod_{x \in X, x \neq 0 } x \tag{1.2.39} \end{align} \]

연습 문제 1.2.4

두 집합 \(X_1, X_2\)가 있고 \(x_1\)\(X_1\)의 원소들, \(x_2\)\(X_2\)의 원소들을 가리킬 때 다음 두 식의 좌변과 우변이 같음을 증명하라. 문제를 간단하게 하기 위해 여기에서는 각각의 집합이 3개의 원소만 가지고 있다고 가정하자. 이 식의 확장된 버전은 추후 베이지안 네트워크의 합-곱(sum-product) 알고리즘에 사용된다.

\[ \begin{align} \prod_{i=1}^2 \sum_{X_i} x_{i} = \sum_{X_1 \times X_2} \prod_{i=1}^2 x_i \tag{1.2.40} \end{align} \]