먼저 인스턴스와 피처에 대한 개념을 이해해야 합니다. 아래와 같은 데이터가 있다고 합시다.
과목1 | 과목2 | 과목3 | |
사람1 | 90 | 100 | 85 |
사람2 | 75 | 80 | 66 |
... |
위 데이터에서 과목을 피처(feature)라고 부르고, 사람을 인스턴스(instance)라고 부릅니다.
인스턴스를 벡터로 나타내면 아래와 같습니다.
사람1=[90 100 85 ]
사람2=[75 80 88]
일반화 시키면 아래와 같습니다. 인스턴스의 개수는 N개, 피처의 개수는 n개인 경우입니다.
$\vec{x}^{(1)}=\left [ x^{(1)}_{1},\cdots,x^{(1)}_{n} \right ]$
$\vec{x}^{(2)}=\left [ x^{(2)}_{1},\cdots,x^{(2)}_{n} \right ]$
...
$\vec{x}^{(N)}=\left [ x^{(n)}_{1},\cdots,x^{(n)}_{n} \right ]$
i번째 인스턴스는 아래와 같습니다.
$\vec{x}^{(i)}=\left [ x^{(i)}_{1},\cdots,x^{(i)}_{n} \right ]$
일반적으로 벡터의 기본상태는 열벡터입니다. 아래와 같이 열벡터로 나타내겠습니다 .
$\vec{x}^{(i)}=\begin{bmatrix}
x^{(i)}_{1}\\
\vdots \\
x^{(i)}_{n}
\end{bmatrix}$
1. 공분산행렬
이제 공분산행렬을 구해봅시다. 각 피처의 평균으로 이루어진 벡터를 아래와 같이 놓겠습니다.
$\left ( \vec{x} \right )_{m}=\begin{bmatrix}
\left ( x_{1} \right )_{m}\\
\vdots \\
\left ( x_{n} \right )_{m}
\end{bmatrix}$
$\vec{x}^{(i)}$ 에서 평균벡터 $\left ( \vec{x} \right )_{m}$ 을 뺀 벡터를 정의합니다.
$\vec{x}^{(i)}-\left ( \vec{x} \right )_{m}=\begin{bmatrix}
x^{(i)}_{1}-(x_{1})_{m}\\
\vdots \\
x^{(i)}_{n}-(x_{n})_{m}\\
\end{bmatrix}$
아래와 같이 두 벡터를 곱해봅시다.
$\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )
\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )^{T}=\begin{bmatrix}
x^{(i)}_{1}-(x_{1})_{m}\\
\vdots \\
x^{(i)}_{n}-(x_{n})_{m}\\
\end{bmatrix}
\begin{bmatrix}
x^{(i)}_{1}-(x_{1})_{m} & \cdots & x^{(i)}_{n}-(x_{n})_{m}
\end{bmatrix}$
결과는 아래와 같습니다.
$\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )
\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )^{T}
=
\begin{bmatrix}
\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) & \cdots & \left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\\
\vdots & \ddots &
\vdots
\\
\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) &
\cdots &
\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )
\end{bmatrix}$
아래와 같이 시그마를 취해줍니다.
$\frac{1}{N}\sum_{i=1}^{N}\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )
\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )^{T}
=
\begin{bmatrix}
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) & \cdots & \frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\\
\vdots & \ddots &
\vdots
\\
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) &
\cdots &
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )
\end{bmatrix}$
우변이 공분산행렬입니다.
$\frac{1}{N}\sum_{i=1}^{N}\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )
\left ( \vec{x}^{(i)}-\left ( \vec{x} \right )_{m} \right )^{T}
=
\begin{bmatrix}
Var\left [ x_{1} \right ] & \cdots & Cov\left [ x_{1},x_{n} \right ]\\
\vdots & \ddots &
\vdots
\\
Cov\left [ x_{n},x_{1} \right ]&
\cdots &
Var\left [ x_{n} \right ]
\end{bmatrix}$
2. 다른 방법 (시그마 기호 없이)
$\vec{x}^{(i)}$ 에서 평균벡터 $\left ( \vec{x} \right )_{m}$ 을 뺀 벡터에서 출발합시다.
$\vec{x}^{(i)}-\left ( \vec{x} \right )_{m}=\begin{bmatrix}
x^{(i)}_{1}-(x_{1})_{m}\\
\vdots \\
x^{(i)}_{n}-(x_{n})_{m}\\
\end{bmatrix}$
아래와 같은 행렬을 정의합니다.
$X=\begin{bmatrix}
\left ( \vec{x}^{(1)}-(\vec{x})_{m} \right )^{T}\\
\vdots \\
\left ( \vec{x}^{(N)}-(\vec{x})_{m} \right )^{T}
\end{bmatrix}$
각 행이 인스턴스인 행렬입니다. 열은 피처입니다. 풀어서 쓰면 아래와 같습니다.
$X=\begin{bmatrix}
x^{(1)}_{1}-(x_{1})_{m} & \cdots & x^{(1)}_{n}-(x_{n})_{m} \\
\vdots & \ddots & \vdots \\
x^{(N)}_{1}-(x_{1})_{m} & \cdots & x^{(N)}_{n}-(x_{n})_{m}
\end{bmatrix}$
아래와 같이 곱해봅시다.
$X^{T}X=
\begin{bmatrix}
x^{(1)}_{1}-(x_{1})_{m} & \cdots & x^{(N)}_{1}-(x_{1})_{m} \\
\vdots & \ddots & \vdots \\
x^{(1)}_{n}-(x_{n})_{m} & \cdots & x^{(N)}_{n}-(x_{n})_{m}
\end{bmatrix}
\begin{bmatrix}
x^{(1)}_{1}-(x_{1})_{m} & \cdots & x^{(1)}_{n}-(x_{n})_{m} \\
\vdots & \ddots & \vdots \\
x^{(N)}_{1}-(x_{1})_{m} & \cdots & x^{(N)}_{n}-(x_{n})_{m}
\end{bmatrix}$
곱한 결과는 아래와 같습니다.
$X^{T}X
=
\begin{bmatrix}
\sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) & \cdots & \sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\\
\vdots & \ddots &
\vdots
\\
\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) &
\cdots &
\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )
\end{bmatrix}$
양변을 N으로 나눠줍니다.
$\frac{1}{N}X^{T}X
=
\begin{bmatrix}
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) & \cdots & \frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{1}-(x_{1})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\\
\vdots & \ddots &
\vdots
\\
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{1}-(x_{1})_{m} \right ) &
\cdots &
\frac{1}{N}\sum_{i=1}^{N}\left ( x^{(i)}_{n}-(x_{n})_{m} \right )\left ( x^{(i)}_{n}-(x_{n})_{m} \right )
\end{bmatrix}$
우변이 공분산행렬입니다.
$\frac{1}{N}X^{T}X
=
\begin{bmatrix}
Var\left [ x_{1} \right ] & \cdots & Cov\left [ x_{1},x_{n} \right ]\\
\vdots & \ddots &
\vdots
\\
Cov\left [ x_{n},x_{1} \right ]&
\cdots &
Var\left [ x_{n} \right ]
\end{bmatrix}$
'공대생을 위한 수학--------------------- > 고급행렬연산' 카테고리의 다른 글
[고급 행렬 연산] 9. 두 벡터로 만든 평행사변형의 넓이 (0) | 2023.09.08 |
---|---|
[고급 행렬 연산] 8. 한 벡터를 다른 벡터에 투영 (0) | 2023.09.08 |
[고급 행렬 연산] 7. 이중 시그마 순서 바꾸기 (0) | 2023.08.25 |
[고급 행렬 연산] 5. (AB)^{T}=B^{T}A^{T} (0) | 2023.08.19 |
[고급 행렬 연산] 4. (A+B)^T=A^T+B^T 증명 (0) | 2023.08.18 |
[고급 행렬 연산] 3. 행렬과 행렬의 곱의 성분을 시그마로 나타내기 (0) | 2023.08.18 |
[고급 행렬 연산] 2. 벡터 내적의 여러가지 표현방식 (0) | 2023.08.17 |
[고급 행렬 연산] 1. 행렬과 벡터의 곱의 성분을 시그마로 나타내기 (0) | 2023.08.17 |
댓글